cheap-data-website
Ship a cheap, public, mostly-static data website — rendering PRECOMPUTED data (JSON/parquet/CSV) as pages and charts, rebuilt on the data-refresh schedule and…
Skill by gesmith0606
Chalk Labs
Need help deploying cheap-data-website?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/gesmith0606-cheap-data-website
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: spreadsheets, data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/cheap-data-website
What's inside
- Skill name
cheap-data-website- Description
- Ship a cheap, public, mostly-static data website — rendering PRECOMPUTED data (JSON/parquet/CSV) as pages and charts, rebuilt on the data-refresh schedule and served from a free-tier CDN for ~$0. Use when the user wants to publish a dataset, leaderboard, tracker, stats page, or small public site backed by data computed on a cadence.
- License
- MIT
- Instructions
- 113 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Cheap Data Website
> **Routing:** a claude.ai HTML artifact that never gets deployed → `web-artifacts-builder`.
Publish a data-backed site that costs almost nothing and stays up under load. The trick: there is
**no server at request time**. You precompute the data, bake it into static HTML/JSON at build
time, push to a CDN, and rebuild only when the data changes. A request just hits a cached file.
This skill owns the *delivery decision and the build/deploy wiring*. It hands off:
- **Which chart answers the question → the `dashboard` skill.**
- **Making it look intentional (color, type, spacing) → the `design` skill.**
- **Where the data comes from / how it's scheduled upstream → `cheap-data-orchestration`**, and the
query/aggregation that produces the precomputed files → **`duckdb-warehouse`**.
## When static beats a live API/server (the core call)
Go static when the answer is the **same for everyone** and changes on a **known cadence**:
leaderboards, trackers, public stats, dataset browsers, "state of X" pages, daily/weekly reports.
A CDN-cached file is faster, cheaper, and far more spike-proof than any server you'd run.
| Signal | Static site | Live API/server |
|--------|-------------|-----------------|
| Data changes | on a schedule (hourly/daily) | per-request / per-user |
| Same content for all visitors | yes | no (auth, personalization) |
| Freshness needed | minutes–hours stale is fine | real-time / sub-second |
| Writes from users | none (or a form → external service) | yes |
| Traffic | spiky / unpredictable | steady, capacity-planned |
| Cost target | ~$0, no ops | budget for compute + scaling |
If you find yourself wanting "just a tiny serverless function" to read fresh data on each request,
stop: either the cadence is wrong (precompute more often) or it's genuinely dynamic (this is the
wrong skill). Don't smear a database behind a "static" site.
## How the pieces fit
```
upstream job (cheap-data-orchestration) ── runs on the data cadence
└─ query/rollup (duckdb-warehouse)
└─ writes PRECOMPUTED data/*.json|*.parquet ── small, page-shaped, committed or fetched
└─ SSG build (Astro/Eleventy/Next export) reads files → static HTML+assets
└─ free-tier CDN host serves cached files ── no server at request time
```
The data-refresh schedule and the site-rebuild schedule are the **same trigger**: when new data
lands, kick the build. Don't poll; have the upstream job fire the deploy hook (see below).
## Precompute, then bake (the data contract)
The site reads **files, not databases**. Shape the data for the page *before* the build:
- **Aggregate to page grain upstream** (in `duckdb-warehouse`), not in the browser. Ship the
summary the page shows, not the raw table. A 2 MB rollup beats a 200 MB dump every time.
- **Format:** small/simple → **JSON** the page imports at build time. Large or columnar → **parquet**
read during the build (DuckDB/Polars/Arrow), emitting per-page JSON. Don't ship parquet to the
browser unless you've deliberately chosen client-side DuckDB-Wasm and accepted the payload.
- **Split by page/route** so each page loads only its slice; paginate or top-N + "other" for long
lists (mirrors the `dashboard` grain rules).
- **Version/stamp the build** with a `generated_at` and the source data hash so stale deploys are
obvious and caches bust cleanly.
## Pick the generator
Any of these read local data at build time and emit static files. Match to what you already use:
| Situation | Reach for |
|-----------|-----------|
| Content/data site, minimal JS, islands for interactivity | **Astro** (great default here) |
| Already a React/Next shop | **Next.js static export** (`output: 'export'`) |
| Plain HTML/Markdown + data files, zero framework | **Eleventy (11ty)** |
| Pure single-page chart, no routing | one HTML file + a fetch of `data.json` (don't over-build) |
YAGNI check (`ponytail`): if it's *one* page reading *one* JSON, you may not need a generator at
all — a single static `index.html` that fetches `data.json` deploys to the same free host. Reach
for an SSG when you have many pages/routes, shared layout, or build-time data transforms.
## Deploy on a free tier
| Host | Good when |
|------|-----------|
| **Cloudflare Pages** | default pick — generous free bandwidth, fast global CDN, deploy hooks |
| **GitHub Pages** | repo already on GitHub, purely static, no build secrets needed |
| **Vercel / Netlify** | already in that ecosystem; mind bandwidth/build-minute free-tier caps |
All serve from a CDN, give HTTPS + a domain free, and cost $0 at small scale. Set cache headers so
the CDN actually caches (immutable hashed assets; short-TTL or purge-on-deploy for the data JSON).
## Rebuild on the data-refresh schedule
The site is only as fresh as its last build, so **trigger a rebuild when data lands**:
1. Upstream job (`cheap-data-orchestration`) finishes writing the precomputed files.
2. It calls the host's **deploy hook** (a POST URL) — or pushes the regenerated `data/` to the repo,
and the host's git integration auto-builds.
3. Host rebuilds the static site and atomically swaps the CDN to the new version.
A plain **scheduled CI job** (GitHub Actions cron) that rebuilds + deploys is the simplest version
and often enough. Match the cron to the data cadence — don't rebuild hourly if the data is daily.
Keep secrets (deploy hook URLs, tokens) in CI/host secret stores, never in the repo
(see `insecure-defaults`).
## Guardrails
- **Don't ship a server you didn't need.** A serverless function per request defeats the cost/spike
win — if every visitor triggers compute, you've built a live API, not a cheap data site.
- **Don't ship the whole dataset to the browser** to "filter client-side" when an upstream rollup
would do. Bandwidth is the free tier's real limit.
- **Stale-but-cheap is a feature, not a bug** — state `generated_at` on the page so "hours old" is
honest, not a surprise.
- **No secrets at build that leak to the client** — anything baked into static output is public.
- Charts must stay honest/accessible — that's `dashboard`'s rules; visual polish is `design`'s.From gesmith0606/claude-config-public, MIT.
More from gesmith0606/claude-config-public
- 0.570score
comfyui-local-image
gesmith0606
Generate images locally through a running ComfyUI instance (Stable Diffusion / SDXL / Flux, IP-Adapter, PuLID/InsightFace face-consistency) on the user's own…
SkillAFreshness: AClaude Code +9 - 0.565score
animate
gesmith0606
Make a short procedural animation in any style — an explainer, a history, a little story — as a single-file canvas video with a synthesized score, rendered to…
SkillAFreshness: AClaude Code +9 - 0.565score
data-throughput-accelerator
gesmith0606
Diagnose and accelerate large data movement — ingestion, backfill, export, ETL, warehouse loading, manifest catch-up, and table synchronization — by isolating…
SkillAFreshness: AClaude Code +9 - 0.561score
browser-harness
gesmith0606
Use for INTERACTIVE/STATEFUL browser work: filling forms, auth/login flows, JS-rendered scraping, screenshots, and multi-step site/app automation or testing.
SkillAFreshness: AClaude Code +9 - 0.560score
bitwarden
gesmith0606
Operate the Bitwarden CLI (`bw`) as this config's secrets backend — unlocking per shell, adding machine secrets, resolving them at runtime, and diagnosing…
SkillAFreshness: AClaude Code +9 - 0.539score
codebase-design
gesmith0606
Shared vocabulary for designing deep modules.
SkillAFreshness: AClaude Code +9 - 0.530score
api-design
gesmith0606
REST API design patterns including resource naming, status codes, pagination, filtering, error responses, versioning, and rate limiting.
SkillAFreshness: AClaude Code +9 - 0.529score
data-quality
gesmith0606
Data validation and quality contracts for pipelines — uniqueness/PK, not-null, range/domain, referential integrity, freshness/SLA, row-count tie-out…
SkillBFreshness: BClaude Code +9 - 0.529score
dashboard
gesmith0606
Build data dashboards and visualizations — the right chart for the question, the right library, honest accessible encodings, clean layout.
SkillBFreshness: BClaude Code +9 - 0.529score
dataframes
gesmith0606
Correct and performant in-process dataframe work in pandas, polars, and duckdb.
SkillBFreshness: BClaude Code +9 - 0.529score
diagram
gesmith0606
Create technical diagrams-as-code (Mermaid by default) — architecture, flowcharts, sequence/state/ER/class/data-flow diagrams, mind maps, Gantt, C4 —…
SkillBFreshness: BClaude Code +9 - 0.529score
dbt
gesmith0606
Author and review dbt / analytics-engineering projects — staging/intermediate/marts layering, ref()/source() lineage, incremental models with correct…
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 9, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from gesmith0606
- 0.570score
comfyui-local-image
gesmith0606
Generate images locally through a running ComfyUI instance (Stable Diffusion / SDXL / Flux, IP-Adapter, PuLID/InsightFace face-consistency) on the user's own…
SkillAFreshness: AClaude Code +9 - 0.565score
data-throughput-accelerator
gesmith0606
Diagnose and accelerate large data movement — ingestion, backfill, export, ETL, warehouse loading, manifest catch-up, and table synchronization — by isolating…
SkillAFreshness: AClaude Code +9 - 0.565score
animate
gesmith0606
Make a short procedural animation in any style — an explainer, a history, a little story — as a single-file canvas video with a synthesized score, rendered to…
SkillAFreshness: AClaude Code +9 - 0.561score
browser-harness
gesmith0606
Use for INTERACTIVE/STATEFUL browser work: filling forms, auth/login flows, JS-rendered scraping, screenshots, and multi-step site/app automation or testing.
SkillAFreshness: AClaude Code +9 - 0.560score
bitwarden
gesmith0606
Operate the Bitwarden CLI (`bw`) as this config's secrets backend — unlocking per shell, adding machine secrets, resolving them at runtime, and diagnosing…
SkillAFreshness: AClaude Code +9 - 0.539score
codebase-design
gesmith0606
Shared vocabulary for designing deep modules.
SkillAFreshness: AClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get cheap-data-website running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
cheap-data-website skill. Agent Mart. https://agentmart.dev/skills/gesmith0606-cheap-data-website (last updated 2026-10-24)