Learn anything with step-by-step activities.
Waitlist
Caution
This project is still in early development and not ready for use. There will be breaking changes before stable that won't be backwards compatible. Star this repository or follow us on social media to stay updated.
| Feature | Not Started | In Progress | Beta | Stable |
|---|---|---|---|---|
| Learn Anything (Catalog) | π¨ | |||
| Personalized Lessons | π | |||
| Editor | π¨ | |||
| Teams | π | |||
| Schools | π | |||
| White-Label (Creators) | π | |||
| iOS App | π | |||
| Android App | π | |||
| API | π¨ |
- Node.js v24
- pnpm v10
- PostgreSQL v17
We recommend using mise to manage your Node.js and pnpm versions.
pnpm installto install dependencies for all apps and packages- Check out the @zoonk/db package README for database setup instructions
- Check out the main app README for app-specific setup instructions
pnpm devto start the development serverpnpm buildto create a production buildpnpm lintto run lintingpnpm typecheckto run TypeScript type checkingpnpm knipto check for unused codepnpm testto run tests with Vitestpnpm e2eto run end-to-end tests with Playwright
- main: Public web app (
zoonk.com) - admin: Dashboard for managing users and organizations (
admin.zoonk.com) - api: Centralized API and authentication UI (
api.zoonk.com) - editor: Visual editor for building courses and activities (
editor.zoonk.com) - evals: Local-only tool for evaluating AI-generated content
- ai: AI prompts, tasks, and helpers for content generation
- auth: Shared Better Auth setup and plugins
- core: Shared server utilities
- db: Prisma schema and client
- e2e: Shared Playwright config and test fixtures
- error-reporter: Error reporting utilities
- oxlint-plugin: Custom oxlint rules
- mailer: Email-sending utilities
- next: Shared Next.js utilities
- testing: Shared testing utilities
- tsconfig: Shared TypeScript config
- ui: Shared React components, patterns, hooks, and styles
- utils: Shared utilities and helpers
You can use lingo.dev to manage translations for this project. Run pnpm i18n from the root directory to translate missing keys.
This is optional. If using lingo.dev, make sure to set the LINGODOTDEV_API_KEY environment variable in your local .env file.
We're using Vercel's Remote Caching to speed up our Turborepo tasks. To enable remote caching, authenticate the Turborepo CLI with your Vercel account:
pnpm turbo loginThen, link to the remote cache:
pnpm turbo linkSee everyone who has supported this project.