Static-first starter for directory-style sites.
The current model is:
- checked-in site config under
sites/** - checked-in listing data in
data/listings.json - static export builds into
dist/sites/<site-id> - deploys sync that artifact into a target GitHub Pages repo
Use Node 24 and pnpm.
pnpm install
pnpm devThat starts the default active site wrapper, currently serpdownloaders.com, at http://localhost:3005.
If you want the starter wrapper specifically:
pnpm dev:starterTo scaffold a new thin site wrapper app:
pnpm generate:site-wrapper -- --site your-site-idActive checked-in site:
pnpm validate:site -- --site serpdownloaders.com
pnpm build:site -- --site serpdownloaders.com
pnpm deploy:site -- --site serpdownloaders.comOther active checked-in sites can be selected with --site, for example
browserextensions.io or serp.ai. The former serp.co directory now lives at
https://best.serp.co in the serpcompany/best.serp.co repo and is no longer built here.
Starter wrapper:
pnpm validate:site -- --site default
pnpm build:site -- --site defaultUseful repo checks:
pnpm test:repo
pnpm --dir apps/starter exec jest --runInBand- site config:
sites/site-config.default.tsplussites/<site-id>/site-config.ts - optional site-owned content:
sites/<site-id>/site-content.ts - active listing data:
data/listings.json - public docs content:
packages/content/data/docs/*.mdx - legal content:
packages/content/data/legal/*.mdx
- Current Plan
- Onboarding Notes
- Build Pipeline
- Rebrand Runbook
- Deploy Runbook
- Site Config Notes
- Static Starter Notes
In scope now:
- static directory pages
- optional docs, posts, and network pages
- GitHub-issue-based submit flow
- deterministic build and Pages-style deploy
Out of scope for the active starter:
- hosted auth
- database-backed submissions
- runtime moderation dashboards
- dynamic user accounts as a core build dependency
This repo still contains some legacy/reference areas from the earlier product direction.
Use Legacy Reference Boundary for the keep/move/rewrite decisions on:
packages/content/data/websites/**apps/e2e/playwright-report/**apps/e2e/test-results/**websites/**_archive/**
The Playwright source under apps/e2e/tests/** remains active coverage.
The areas above are not the active starter contract unless explicitly called out in the docs above.