StealThis.dev is a Bun-workspace monorepo for an open-source resource library of reusable web implementations:
- Showcase site (
www) for browsing and copying resources - Documentation site (
docs) with Starlight guides - Full-screen demo runner (
lab) for runnable snippets - Project graph explorer (
build) for planning implementations - DB visualizer (
dbviz) for relational schema commands and diagrams - MCP server (
mcp) to expose the catalog to AI tools - Remotion app (
remotion) for animation/video compositions
The canonical source of resource content lives in packages/content/resources/<slug>/.
apps/www currently exposes these localized routes:
en— Englishes— Spanishfr— Frenchja— Japanesems— Malayhi— Hindiko— Koreannl— Dutchde— Germanpt-br— Brazilian Portuguesezh-hk— Traditional Chinese (Hong Kong)zh-cn— Simplified Chinese (China)de-ch— Swiss Germanit— Italianpl— Polishuk— Ukrainian
Browser locale detection also maps UA users to uk.
.
├── apps
│ ├── www # Astro 5 showcase + library
│ ├── docs # Astro + Starlight docs
│ ├── lab # Full-screen demo runner (iframe srcdoc)
│ ├── build # Astro + React graph builder
│ ├── dbviz # Astro + React database visualizer
│ ├── mcp # Hono + Cloudflare Worker MCP server
│ └── remotion # Remotion compositions
├── packages
│ ├── content # Source-of-truth resources and docs
│ ├── schema # Zod schema + loaders/types
│ └── config # Shared tsconfig/tailwind presets
└── scripts # Import + vendor sync utilities
- Bun workspaces
- Astro 5 (multi-app)
- Starlight (docs)
- React (builder/remotion integrations)
- Tailwind CSS
- Hono + Wrangler (Cloudflare Worker for MCP)
- Zod + gray-matter + fast-glob (content schema/loading)
- Biome (lint/format)
- Bun installed
- Node-compatible environment for Wrangler/Remotion tooling
# from repo root
bun installRun any app independently:
bun run dev:www # http://localhost:4321
bun run dev:docs # http://localhost:4322
bun run dev:lab # http://localhost:4323
bun run dev:build # http://localhost:4324
bun run dev:dbviz # http://localhost:4327
bun run dev:mcp # http://localhost:8787 (Wrangler)
bun run dev:remotion # http://localhost:4325# development
bun run dev:www
bun run dev:docs
bun run dev:lab
bun run dev:build
bun run dev:dbviz
bun run dev:mcp
bun run dev:remotion
# builds
bun run build # www + docs + lab + build + styleforge + dbviz + mcp
bun run build:www
bun run build:docs
bun run build:lab
bun run build:build
bun run build:dbviz
bun run build:mcp
bun run build:remotion
# quality
bun run lint
bun run format
# content/catalog tooling
bun run sync:vendor
bun run import:examples
bun run --filter @stealthis/mcp catalog- Main site: https://stealthis.dev
- Docs: https://docs.stealthis.dev
- Lab: https://lab.stealthis.dev
- Builder: https://build.stealthis.dev
- DBViz: https://dbviz.stealthis.dev
- MCP: https://mcp.stealthis.dev/mcp
Each resource is a self-contained folder:
packages/content/resources/<slug>/
├── index.mdx
└── snippets/
├── html.html
├── style.css
├── script.js
└── react.tsx (optional, plus other targets)
If a resource should appear in Lab:
- Set
labRoute: /<category>/<slug>in frontmatter - Provide
html.html,style.css, andscript.js
Supported category IDs:
web-animationsweb-pagesui-componentspatternscomponentspagespromptsskillsmcp-serversarchitecturesboilerplatesremotion
- Create
packages/content/resources/<slug>/index.mdxwith valid frontmatter. - Add snippets in
packages/content/resources/<slug>/snippets/. - If runnable in Lab, add
labRouteand include HTML/CSS/JS snippets. - Regenerate MCP catalog:
bun run --filter @stealthis/mcp catalog- Validate:
bun run lint
bun run build:www
bun run build:lab
bun run build:mcpThe ROADMAP.md is organized into phases, each a themed vertical with
20–35 resources (Clinic, Gym, Salon, Real Estate, …). Building those one by one is slow, so
the repo has a documented pattern for generating a whole phase with a parallel multi-agent
Workflow in Claude Code — one subagent per resource, running concurrently.
To kick off the next phase, just ask Claude Code in plain language including the keyword
workflow (that keyword is what authorizes the multi-agent run — without it, Claude builds
by hand). For example:
finish Phase 30 (Gym) of the ROADMAP using a workflow
Claude then automatically:
- Reads
PHASE-WORKFLOW.md(the full how-to) and the Phase 30 table inROADMAP.md. - Studies the pattern by opening a finished resource (e.g.
clinic-appointment-list) to match structure/quality. - Wires the new collection (
gym) in the 4 places it must exist (schema enum,apps/www/src/content/config.ts,apps/www/src/lib/collections.ts, i18n strings). - Builds the
SPECSlist (one entry per resource) from the roadmap table. - Launches the workflow — a subagent per resource, in parallel (watch live with
/workflows). - Regenerates the MCP catalog and ticks the ROADMAP checkboxes.
Handy add-ons you can append to the request:
| If you want… | Say… |
|---|---|
| It to stop for review when done | "…and pause when Phase 30 is done" |
| Several phases back-to-back | "finish Phases 30, 31 and 32 with workflows, one after another" |
| To limit scope | "only sections 30.A and 30.B" or "only the 5 landings" |
| To recover after a cutoff (e.g. session limit) | "resume the workflow" → re-runs only what failed; finished ones return from cache for free |
A workflow spins up dozens of agents — fast in wall-clock but token-heavy. Worth it for 20+ resources; for 1–3, build by hand (see Add a New Resource). Full mechanics, the script template, and how to read
/workflowslive inPHASE-WORKFLOW.md.
If you add/rename category/type/target fields, keep these in sync:
packages/schema/src/schema.tspackages/schema/src/types.tsapps/www/src/content/config.tsapps/www/src/i18n/index.ts(labels/filters)
The MCP Worker serves a generated catalog (apps/mcp/src/catalog.json) built from packages/content.
Important commands:
# regenerate catalog after content changes
bun run --filter @stealthis/mcp catalog
# local worker
bun run dev:mcp
# validate worker bundle
bun run build:mcpPrimary endpoints:
POST /mcp(MCP JSON-RPC transport)GET /tools/list_resourcesGET /tools/get_resource/:slugGET /tools/get_snippet/:slug/:targetGET /tools/search?q=...GET /tools/get_lab/:slug
graphify turns this repo into a local, queryable knowledge graph of how apps, modules, and docs connect. Output lands in graphify-out/ — that folder is gitignored (cache, JSON, HTML, reports). Regenerate on your machine or in a separate checkout; do not commit it.
Requires the graphify skill/CLI (e.g. /graphify in Claude Code, or uv tool install graphifyy).
/graphify apps # Full extraction on apps/ (~2k nodes, 3k edges on last run)
/graphify apps --update # Incremental — only new/changed files (fast after first run)
/graphify apps --cluster-only # Re-run community detection on existing graph.json
/graphify apps --mode deep # More aggressive INFERRED edges (slower, richer graph)
/graphify apps --directed # Preserve edge direction (source → target) for call tracing
/graphify packages/content # Narrow scope to content package only
/graphify apps --watch # Auto-rebuild on file changes (no LLM, graph structure only)After a full build, open graphify-out/graph.html in a browser for the interactive view, or read graphify-out/GRAPH_REPORT.md for community hubs, god nodes, and import cycles.
These read the existing graphify-out/graph.json — no token cost if the graph is already built:
/graphify query "How does the MCP catalog get built?"
/graphify query "What connects ResourceCard to i18n?" --dfs # Trace one path (depth-first)
/graphify query "How does lab inline snippets?" --budget 1500 # Cap answer length
/graphify path "ForceGraph" "useI18n" # Shortest path between two nodes
/graphify explain "DbVizStudioInner" # Plain-language node summary/graphify apps --svg # graph.svg (Notion, GitHub embeds)
/graphify apps --graphml # graph.graphml (Gephi, yEd)
/graphify apps --neo4j # graphify-out/cypher.txt for Neo4j import
/graphify apps --obsidian # Obsidian vault (one note per node)
/graphify apps --wiki # Agent-crawlable wiki (index + articles)
/graphify apps --no-viz # Skip HTML — report + JSON only| Keep in repo (stable) | Local only (graphify-out/, gitignored) |
|---|---|
App inventory under apps/ |
cache/ extraction cache |
Content flow: packages/content → www/lab collections + apps/mcp catalog |
graph.json, graph.html, manifest.json, cost.json |
Cross-app hubs: useI18n(), ResourceCard.astro, ForceGraph, per-app shells |
GRAPH_REPORT.md, community labels, Obsidian/wiki exports |
Full flag list: /graphify --help.
- Do not edit generated output in
dist/orgraphify-out/. - Prefer reusing shared modules from
packages/schemaandpackages/config. - Use Bun commands across the monorepo (project standard).
- For app-specific docs:
apps/mcp/README.mdapps/remotion/README.md
Current deployment workflow uses:
- Cloudflare Pages for
www,docs,lab,build - Cloudflare Workers for
mcp
Reference commands are documented in COMMANDS.md.
For routing/UI smoke tests after local dev starts:
curl -s -o /dev/null -w "%{http_code}" http://localhost:4321/
curl -s -o /dev/null -w "%{http_code}" http://localhost:4321/library
curl -s -o /dev/null -w "%{http_code}" http://localhost:4323/
curl -s -o /dev/null -w "%{http_code}" http://localhost:4323/<category>/<slug>Resources default to MIT via frontmatter metadata.
If you need a repository-wide license, add a top-level LICENSE file.