Offline-capable PWA built with Jazz (local-first sync), Astro, and React.
- Bun - use
bun install,bun add,bun run(no npm/yarn) - Verify:
bun run check(lint, types, format, tests) - React Compiler - never use
useMemo,useCallback,React.memo
- Framework: Astro 5 with React 19 integration
- Routing: Tanstack Router (auto-generated route tree)
- Data: Jazz (CoValues for documents, spaces, themes, presence)
- Storage: IndexedDB via idb-keyval + Jazz sync
- PWA: vite-plugin-pwa with offline caching and file handlers
- Testing: Vitest + happy-dom/jsdom
- High information density
- Top-down readability
letoverconst,functionover arrow for named functions- No default exports
- No
any, no type casts - fix types properly - Comments explain WHY, not WHAT (prefer no comments)
- TypeScript - general coding style, types, tryCatch
- React Components - handler factories, routes, forms
- Jazz Patterns - CoValue types, queries
- File Organization - module structure, exports
IMPORTANT: Always consult effect-solutions before writing Effect code.
- Run
effect-solutions listto see available guides - Run
effect-solutions show <topic>...for relevant patterns (supports multiple topics) - Search
.reference/effect/for real implementations (runeffect-solutions setupfirst)
Topics: quick-start, project-setup, tsconfig, basics, services-and-layers, data-modeling, error-handling, config, testing, cli.
Never guess at Effect patterns - check the guide first.
The Effect repository is cloned to .reference/effect/ for reference.
Use this to explore APIs, find usage examples, and understand implementation details when docs aren't enough.