Drop company_id column from all 22 domain tables via migration. Remove companyId from JWT payload, auth plugins, all service method signatures (~215 occurrences), all route handlers (~105 occurrences), test runner, test suites, and frontend auth store/types. The company table stays as store settings (name, timezone). Tenant isolation in a SaaS deployment would be at the database level (one DB per customer) not the application level. All 107 API tests pass. Zero TSC errors across all packages.
Forte
Music store management platform — POS, inventory, rentals, lessons, repairs, and accounting.
Built by Lunarfront Tech LLC.
Tech Stack
- Runtime: Bun
- Language: TypeScript (end-to-end)
- API: Fastify + Drizzle ORM + PostgreSQL 16
- Frontend: React + TanStack Router + TanStack Query
- Validation: Zod (shared schemas)
- Queue/Cache: BullMQ + Valkey 8
- Monorepo: Turborepo + Bun workspaces
Quick Start
bun install
cp .env.example .env # configure DATABASE_URL, REDIS_URL, JWT_SECRET
cd packages/backend && bunx drizzle-kit migrate
bun run dev # starts backend (:8000) + admin UI (:5173)
Packages
| Package | Description |
|---|---|
packages/backend |
Fastify API server |
packages/admin |
Admin UI (React + Vite) |
packages/shared |
Zod schemas, types, shared utils |
Documentation
| Doc | Description |
|---|---|
| Setup | Prerequisites, environment, installation, running |
| Architecture | Monorepo structure, backend/frontend design, state management |
| API Reference | All endpoints, pagination, auth, permissions |
| Database | Schema overview, migrations, multi-tenancy |
| Testing | Test runner, suites, writing tests, assertions |
Commands
bun run dev # start all packages in dev mode
bun run test # run all tests
bun run lint # lint all packages
bun run format # format with Prettier
License
Proprietary. All rights reserved.
Description
Languages
TypeScript
99.2%
Shell
0.5%
CSS
0.2%