Skip to content

Latest commit

 

History

114 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Starter

Production-ready school platform monorepo built with Bun + Turborepo.

Apps: Next.js web, Expo mobile, NestJS API, Fumadocs docs, optional Rust demo. Shared UI, hooks, CI, Docker Compose, and a slim Dev Container.

Quick start

Prerequisites

  • Bun 1.3.13
  • Optional: Docker Compose v2.20+, Rust toolchain (for apps/rust)
git clone https://github.com/shabirkhan-dev/school-os.git
cd school-os
bun install
bun run prepare
bun run dev
App URL (dev)
Web http://localhost:3000
Nest API http://localhost:4000 (/api/v1/health, /api/docs)
Docs http://localhost:3002/docs

Monorepo layout

Area Purpose
apps/web Next.js 16 admin + marketing + auth/billing
apps/mobile Expo SDK 57 (auth, billing via hosted checkout)
apps/nest-api NestJS API spine (Drizzle + Postgres/Neon)
apps/docs Fumadocs documentation site
apps/ai-api Optional FastAPI AI assist (Nest proxies; not public)
apps/rust Optional Rust/Axum demo
packages/* Shared @school-os/ui, logger, TypeScript configs
docker/ Compose fragments (Postgres, Nest, web, optional profiles)
.github/workflows/ CI, CD, Security
.devcontainer/ Bun + Rust + Python/Bash tooling

Root commands

Command Purpose
bun run dev Start workspace dev servers (Turbo)
bun run build Build all apps
bun run lint / lint:fix Biome + script linters
bun run format Format TS/JS, shell, Python, Rust
bun run typecheck TypeScript across workspaces
bun run test / test:coverage Unit + coverage gates
bun run test:e2e:web Playwright e2e for web
bun run architecture:check Import boundary rules
bun run preflight Lint + typecheck + test

Target one app: bun --cwd apps/web run dev (same pattern for mobile, nest-api, docs, rust).

Tooling

  • Bun workspaces + Turborepo
  • Biome for TS/JS (tabs, line width 100)
  • Lefthook pre-commit / commit-msg (Conventional Commits)
  • Bash: ShellCheck + shfmt · Python: Ruff · Rust: rustfmt + clippy

Docker

cp env.docker.example .env
docker compose up -d --build
  • Web :3000 · Nest :4000 · Postgres host :5433
  • Optional: docker compose --profile rust up -d --build · --profile ai for FastAPI
  • Details: /docs/docker and docker/README.md

Deploy

Piece Host
Web + docs Vercel (apps/*/vercel.json)
Nest API Render (render.yaml)
Database Neon (DATABASE_URL)

Guide: /docs/deploy (apps/docs/content/docs/deploy.mdx).

Dev Container

.devcontainer/ installs Bun, Rust, Python/Ruff, and Bash lint tools. C and Lua are not included.

Reopen in Container → bun run prepare → bun run dev

See .devcontainer/README.md.

Docs

bun --cwd apps/docs run dev

Also: PROJECT.md, DESIGN.md, AGENTS.md, CHANGELOG.md.

License

Dual-licensed under MIT or Apache-2.0: LICENSE-MIT, LICENSE-Apache-2.0.

About

Production Bun + Turborepo monorepo starter: Next.js, Expo, NestJS, Fumadocs, shared UI, auth/billing, CI, Docker, and Dev Container.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages