TanStack Start blog for goose.dev.
bun install
bun dev
bun run build
bun run lint
bun run typecheck
bun run formatSend a newsletter for a post:
bun run newsletter -- <post-slug>Requires jq, curl, SITE_URL, and NEWSLETTER_SECRET.
- TanStack Start and TanStack Router
- React 19
- Bun
- Tailwind CSS v4
- MDX posts from
posts/*.mdx - Resend newsletter endpoints
- Vercel Analytics
- Dynamic Open Graph images with
@vercel/og
Create .env.local from .env.example.
VITE_PUBLIC_BASE_URL=https://goose.dev
RESEND_AUDIENCE_ID=
RESEND_API_KEY=
NEWSLETTER_SECRET=
SITE_URL=https://goose.devVITE_ values are public. Keep secrets server-only.
Deploy on Vercel from main. The app uses TanStack Start with Nitro's Vercel
preset on Vercel and Bun preset for local Bun builds. vercel.json sets
Vercel's TanStack Start framework preset plus Bun runtime selection. Enable Web
Analytics in the Vercel dashboard.
Manual deploy:
bun run deploySelf-hosted Woodpecker is the CI path for lint, tests, build, and automatic
newsletter dispatch. See docs/ops/self-hosted-ci.md.
The pre-commit hook runs lint, format check, typecheck, tests, and build through Bun before allowing a commit.