The marketing site for Brainstorm, a desktop OS for you and your AI — live at getbrainstorm.online.
Built with Astro, static-first: the page you land on is HTML and CSS with zero client-side JavaScript above the fold. The one exception is the 3D hero scene — a lazy React Three Fiber island that loads after the page paints and stands down entirely on reduced-motion and low-power devices.
src/pages/index.astro— the landing page: the product story, the roadmap, email signup.src/pages/apps.astro— the app catalog: every first-party app, with screenshots in both themes.src/pages/downloads.astro— platform downloads for the public beta, updated with each release.src/pages/llms.txt.tsandsitemap.xml.ts— machine-readable maps of the site for agents and crawlers.api/waitlist.ts— the one server-side piece: a Vercel function that stores email signups in libSQL.bun run waitlistlists them.public/screenshots/— captures of the real running app in the Default Light and Midnight (dark) themes, regenerated by the project's dogfood harness. The shell README hotlinks these too.
The copy on this site is tested like code:
tests/content-banned-phrases.test.tsfails the test suite if standard-issue marketing fluff lands anywhere insrc/. The voice is plain English, concrete claims, named tradeoffs.tests/content-citations.test.tsrequires every product claim in the content collections to cite the design doc it comes from.size-limitbudgets keep the site fast and honest: the landing page fits in 20 KB gzipped of HTML + CSS, and the 3D scene stays a lazy, gated chunk.
bun install
bun run dev # astro dev server (port 4321)
bun run build # static build to dist/
bun run preview # serve the production build locally
bun run test # vitest — the content rules above
bun run typecheck # astro check + tsc --noEmit
bun run lint # biome check
bun run size # size-limit budgets against dist/Static build deployed on Vercel to getbrainstorm.online; the waitlist function deploys alongside it. Config in vercel.json.
MIT © Brainstorm