Thank you for your interest in contributing. This guide helps you get set up and submit changes.
- Node.js 22+ (or as specified in
package.jsonengines) - pnpm 10+
- Docker and Docker Compose (for full stack)
- Bun (optional, for API/worker; Node works too)
git clone https://github.com/timurmaio/studykit.git
cd studykitpnpm installcp .env.example .env
# Edit .env if needed (JWT_SECRET, DB URL, etc.)docker compose up -d db redis
# Wait ~10 seconds for PostgreSQL
docker compose run db-init# Full stack
docker compose up db redis api worker executor frontend directus
# Or frontend only (for UI work, API must run separately)
pnpm dev:frontend| Command | Description |
|---|---|
pnpm dev:frontend |
Start frontend dev server (port 5173) |
pnpm build:frontend |
Build frontend for production |
pnpm test |
Run unit tests (Vitest + API) |
pnpm test:e2e |
Run E2E tests (Playwright) |
pnpm --filter @studykit/api dev |
Start API dev server |
- Framework: React 19, Vite 7
- Styles: Tailwind CSS
- Forms: React Aria Components
- Tests: Vitest, @testing-library/react, jsdom
- E2E: Playwright (see
apps/frontend/e2e/)
- Framework: Hono
- DB: Drizzle ORM, PostgreSQL
- Validation: Zod
- Tests: Bun test
- TypeScript strict mode
- Prettier for formatting (run
pnpm fmtin frontend) - Prefer named exports for components
- Branch: Create a branch from
main(e.g.fix/signin-redirect,feat/new-component) - Commit: Use clear messages (e.g.
feat(api): add enrollment endpoint) - Tests: Ensure
pnpm testpasses - Push: Push branch and open a Pull Request
feat:— new featurefix:— bug fixdocs:— documentationrefactor:— refactoringtest:— testschore:— tooling, dependencies
- Swagger UI: http://localhost:3100/docs (when API is running)
- OpenAPI spec: http://localhost:3100/openapi.json
- Spec source:
apps/api/openapi.ts
apps/
├── frontend/ # React SPA
├── api/ # Hono REST API
├── worker/ # BullMQ jobs
└── executor/ # SQL validator
packages/
└── db/ # Shared schema
docs/
├── ARCHITECTURE.md
├── CONTRIBUTING.md
└── VISION.md
- Open an issue for bugs or feature requests
- Check ARCHITECTURE.md for technical details
- See VISION.md for roadmap