An Arrow.js starter template with file-based routing, layouts, reactive state, composables, and a full testing setup.
Stack: Arrow.js · Vite · Tailwind CSS v4 · Vitest · Playwright
Prerequisites: Node.js 18+
git clone https://github.com/go4cas/quiver
cd quiver
npm install
npm run devOpen http://localhost:5173.
| Command | Description |
|---|---|
npm run dev |
Start the Vite dev server |
npm run build |
Production build to dist/ |
npm run preview |
Preview the production build locally |
npm test |
Run unit tests (Vitest) |
npm run test:e2e |
Run end-to-end tests (Playwright) |
npm run docs:dev |
Start the documentation site locally |
npm run docs:build |
Build the documentation site |
npm run docs:preview |
Preview the built documentation site |
src/
├── framework/ # Router, DI, store, app bootstrap — framework internals
├── pages/ # File-based routes — add your pages here
├── layouts/ # Page wrapper components — add your layouts here
├── components/ # Reusable UI components — add your components here
├── state/ # Global reactive state modules — add your stores here
├── composables/ # Reusable logic functions — add your composables here
├── utils/ # Pure helper functions
└── main.js # App entry point
tests/
├── framework/ # Unit tests for framework utilities (Vitest)
├── composables/ # Unit tests for composables (Vitest)
└── e2e/ # End-to-end tests (Playwright)
- Getting started — what to add, what to leave alone
- Feature workflow — step-by-step walkthrough for adding a feature
- Routing — file-based routing, dynamic segments, navigation guards
- Layouts — page layouts, DI keys, creating new layouts
- State — reactive stores, built-in state modules
- Composables — useRoute, useRouter, useForm, provide/inject
- Testing — unit tests and E2E tests
- Framework — createApp, createStore, provide, inject, useMeta
- Router — initRouter, go, beforeEach, resolveRoute and utilities
- Composables — useRoute, useRouter, useForm
- Components — Link, Counter, ThemeToggle, UserCard, ErrorCard, LoadingCard
Quiver ships with context files and Claude Code slash commands that make AI assistants immediately productive in this codebase:
CLAUDE.md— loaded automatically by Claude Code; covers conventions, Arrow.js rules, and folder structureAGENTS.md— same context for OpenAI Codex.github/copilot-instructions.md— same context for GitHub Copilot/add-page,/add-state,/add-component,/add-feature,/add-test— Claude Code slash commands for the most common tasks
See the AI Tooling guide for usage examples.
Bug reports, fixes, and documentation improvements are welcome. Please read CONTRIBUTING.md before opening a PR.
MIT