Skip to content

zoonk/zoonk

Minimalist brain icon with a lightning bolt in the center next to the text learn. build. shape.

Learn anything with step-by-step activities.

Waitlist

Caution

Early Development Notice

This project is still in early development and not ready for use. We’re actively working to make it available as soon as possible.

As we progress, we’ll open it for testing and contributions. Star this repository or follow us on social media to stay updated.

Table of Contents

Getting Started

Prerequisites

  • Node.js v24
  • pnpm v10
  • PostgreSQL v17

We recommend using mise to manage your Node.js and pnpm versions.

Installation

  • pnpm install to 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

Local Development

  • pnpm dev to start the development server
  • pnpm build to create a production build
  • pnpm lint to run linting
  • pnpm typecheck to run TypeScript type checking
  • pnpm test to run tests with Vitest

Overview

Apps

  • main: Public web app (zoonk.com)
  • admin: Dashboard for managing users and organizations (admin.zoonk.com)
  • editor: Visual editor for building courses and activities (editor.zoonk.com)
  • evals: Local-only tool for evaluating AI-generated content

Packages

  • ai: AI prompts, tasks, and helpers for content generation
  • core: Server utilities for database access and external integrations (the only package that should talk to db)
  • auth: Shared Better Auth setup and plugins
  • db: Prisma schema and client (used only by core)
  • mailer: Email-sending utilities
  • tsconfig: Shared TypeScript config
  • ui: Shared React components, patterns, hooks, and styles
  • utils: Shared utilities and helpers

i18n

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.

Remote Caching

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 login

Then, link to the remote cache:

pnpm turbo link

Supporters

See everyone who has supported this project.

Sponsor this project