Landing page for Soromi — a small, fast, open-source home for AI coding agents.
- React Router v8 (framework mode) on Vite 8
- TypeScript (strict)
- CSS Modules for all component styles
- clsx for conditional class composition
- Dark-only design-token theme (
app/styles/theme.css)
- Node ≥ 22.22.0 (React Router v8 requirement).
- pnpm is the package manager for this project (see
packageManagerinpackage.json).
pnpm install
pnpm dev # dev server at http://localhost:5173
pnpm build # production build + static prerender of /
pnpm start # serve the production build
pnpm typecheck # react-router typegen + tscapp/
├─ root.tsx # HTML shell, fonts, global enhancements, <Background/>
├─ routes.ts / routes/ # single index route (the landing page)
├─ styles/ # theme tokens, global base, keyframes
├─ layout/ # page chrome: Nav, Footer, Background
├─ features/ # content sections (Hero, Remote, ProvidersTable, …)
├─ components/ # shared UI primitives: Reveal, icons/
├─ hooks/ # useScrolled, useReveal, useTypewriter
├─ data/content.tsx # typed content for every data-driven section
└─ lib/ # deterministic qr + meteor generators
Directory conventions:
layout/— structural chrome that frames content (Nav, Footer, ambient Background).features/— the marketing content sections, each a self-contained folder with its own.module.css.components/— genuinely shared/reusable UI (theRevealscroll wrapper, icon components).