mcpField
T
tigris-static-assets

tigris-static-assets

github.com/tigrisdataCloud & DevOps23.3k installsUpdated 14w ago
Repository

About tigris-static-assets

A skill for web developers deploying CSS, JavaScript, fonts, and build artifacts to Tigris public buckets. It covers edge delivery, cache headers, cache-busting approaches, and framework-specific setup.

Key features

  1. 01Deploy built static assets
  2. 02Configure cache-control headers
  3. 03Use content-hashed filenames
  4. 04Provide framework-specific guides
  5. 05Support multiple cache-busting strategies

Use cases

  1. 01Publish CSS and JavaScript bundles
  2. 02Host fonts on Tigris
  3. 03Set long-lived asset caching
  4. 04Configure asset deployment for a framework

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/tigrisdata/skills --skill tigris-static-assets

After installing, type/tigris-static-assetsin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

metadata.json
README.md
resources/
django.md
express.md
laravel.md
nextjs.md
rails.md
remix.md

Details

From the project README

Tigris Static Asset Hosting

Deploy CSS, JavaScript, fonts, and build artifacts to Tigris for global CDN delivery. Covers asset pipeline integration, cache-busting strategies, and Cache-Control configuration for all major frameworks.

Prerequisites

Before doing anything else, install the Tigris CLI if it's not already available:

tigris help || npm install -g @tigrisdata/cli

If you need to install it, tell the user: "I'm installing the Tigris CLI (@tigrisdata/cli) so we can work with Tigris object storage."

Overview

Tigris public buckets automatically serve files from the nearest global edge — no separate CDN configuration needed. Combined with content-hashed filenames and immutable cache headers, this gives you fast, cost-effective static asset delivery.

Key pattern:

  1. Build assets with content hashes (e.g., main-abc123.js)
  2. Upload to a public Tigris bucket
  3. Set Cache-Control: public, max-age=31536000, immutable
  4. Point your app's asset URL to the Tigris bucket

Cache Headers

# For immutable, hashed assets (CSS, JS bundles)
Cache-Control: public, max-age=31536000, immutable

# For mutable assets (manifest files, index.html)
Cache-Control: public, max-age=0, must-revalidate

# For fonts
Cache-Control: public, max-age=31536000, immutable
Setting Headers via CLI
tigris cp dist/main-abc123.js t3://my-assets/main-abc123.js \
  --cache-control "public, max-age=31536000, immutable" \
  --content-type "application/javascript"
Setting Headers via SDK
import { put } from "@tigrisdata/storage";

await put("assets/main-abc123.js", fileBuffer, {
  access: "public",
  contentType: "application/javascript",
});

Upload Script (General)

#!/bin/bash
# scripts/deploy-assets.sh
BUCKET="my-app-assets"
BUILD_DIR="dist"

# Upload hashed assets with long cache
tigris cp "$BUILD_DIR/" "t3://$BUCKET/" -r \
  --cache-control "public, max-age=31536000, immutable"

echo "Assets deployed to t3://$BUCKET/"

Framework Guides

Read the resource file for your framework:

  • Next.js — Read ./resources/nextjs.md for assetPrefix config and deploy script
  • Remix — Read ./resources/remix.md for Vite config and deploy script
  • Express — Read ./resources/express.md for static redirect pattern
  • Rails — Read ./resources/rails.md for Sprockets/Propshaft asset sync
  • Django — Read ./resources/django.md for collectstatic with S3 backend
  • Laravel — Read ./resources/laravel.md for Vite/Mix asset upload

Cache-Busting Strategies

StrategyExampleUse When
Content hash in filenamemain-abc123.jsBuild tools generate hashed names (Vite, Webpack)
Query stringmain.js?v=abc123Legacy systems without hashed filenames
Directory versioning/v2/assets/main.jsMajor version changes

Most modern build tools (Vite, Webpack, esbuild) generate content-hashed filenames by default. Use these with immutable cache headers for the best performance.


Critical Rules

Always: Use a public bucket for static assets | Set Cache-Control: immutable on hashed assets | Use content-hashed filenames | Upload after build, not on every request

Never: Serve static assets through your app server in production (use Tigris CDN) | Set long cache times on mutable filenames | Forget to update asset URL configuration in your framework


Related Skills

  • tigris-egress-optimizer — Reduce bandwidth costs
  • tigris-lifecycle-management — Clean up old asset versions

Official Documentation

Comments

Markdown supported