Landing page for tightknit's open source repos. Auto-syncs the repo grid from github.com/tightknitai at build time.
- Stack: Astro 5 (static) · Tailwind v4 · TypeScript
- Hosting: Cloudflare Workers (Static Assets)
- Source of truth for repos: github.com/tightknitai
npm install
npm run dev # http://localhost:4321npm run build # type-checks then builds to ./dist
npm run preview # preview the static build locallyThe page calls the GitHub API at build time. Without a token you'll hit the unauthenticated rate limit (60/hr) — set GITHUB_TOKEN in CI:
GITHUB_TOKEN=ghp_xxx npm run buildIf the API call fails, the build falls back to a hardcoded list of the headline repos (block-kitchen, slack-block-kit-validator, slack-hono) so the site never breaks.
The site uses Cloudflare's Workers Static Assets — no Astro adapter, no SSR, just static files served from the edge.
npm run deploy # builds + wrangler deployFirst-time setup:
npx wrangler loginnpm run deploy— Wrangler will create the Worker- In the Cloudflare dashboard, add the custom domain
tightknit.devto thetightknit-devWorker (Workers & Pages → tightknit-dev → Settings → Domains & Routes) - Add
GITHUB_TOKENas a build-time secret in your CI for live repo data
The featured cards (yellow / pink / cyan) are hand-picked in src/components/RepoGrid.astro:
const FEATURED_NAMES = ['block-kitchen', 'slack-block-kit-validator', 'slack-hono'];All other public, non-archived, non-fork repos from tightknitai render in "// the rest", sorted by stars. To change which repos appear in the spotlight, edit that array.
Brutalist / neo-brutalist:
- Cream
#f3ede0ground · Ink#0a0a0aforeground - Accents: electric yellow
#ffe600, hot pink#ff2d7b, cyan#00e0ff - Sharp corners (zero radius), 3px ink borders, hard 8px offset shadows
- Type: Space Grotesk (display + body), JetBrains Mono (labels, code)
Tokens live in src/styles/global.css under @theme.
src/
├── pages/
│ ├── index.astro # the only page
│ └── 404.astro
├── layouts/
│ └── Layout.astro # html shell, fonts, meta
├── components/
│ ├── Nav.astro
│ ├── Hero.astro # giant headline + 3D floating blocks + marquee
│ ├── RepoGrid.astro # featured + the rest
│ ├── RepoCard.astro
│ ├── Manifesto.astro # ink-on-cream principles strip
│ └── Footer.astro
├── lib/
│ └── github.ts # build-time GitHub fetcher + fallback
└── styles/
└── global.css