A web app to manage garage stock, orders, and purchases.
https://garage.nokopia.com
- TypeScript 97.2%
- CSS 1.9%
- Nix 0.4%
- Dockerfile 0.3%
- JavaScript 0.2%
|
All checks were successful
Build and Publish Container / build-push (push) Successful in 5m34s
## Summary - deduplicate report order/purchase queries and inventory lookups - centralize manual stock adjustments - collapse duplicated report tables and movement badges - remove repeated session/type/config plumbing - remove dead `db:seed`, store fields/helpers, and unused exports ## Verification - management TypeScript: passed - store TypeScript: passed - management tests: 25 passed - store tests: 6 passed - management production build: passed (Next.js emitted one existing NFT tracing warning from dynamic env file access) - `git diff --check`: passed DetailsShell extraction was intentionally skipped: existing `DetailsPanel` already owns the reusable shell, and extracting the remaining entity-specific wrappers increased code size. Reviewed-on: #20 |
||
|---|---|---|
| .forgejo/workflows | ||
| .omp | ||
| apps | ||
| docs | ||
| packages/catalog | ||
| .dockerignore | ||
| .gitignore | ||
| biome.json | ||
| devenv.lock | ||
| devenv.nix | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| turbo.json | ||
Garage monorepo
pnpm + Turborepo workspace hosting both garage applications.
Layout
apps/management # Next.js CRM / management dashboard (garage)
apps/store # Next.js static storefront (garage-store)
packages/ # shared packages (e.g. @garage/catalog, added later)
Prerequisites
Commands
Run from the repository root:
pnpm install # install all workspaces (frozen lockfile in CI)
pnpm dev # turbo run dev (all apps)
pnpm build # turbo run build
pnpm lint # turbo run lint (Biome)
pnpm test # turbo run test
pnpm format # biome format --write
Target a single app with pnpm filters:
pnpm --filter garage dev # management on :3000
pnpm --filter garage-store dev # storefront
App-specific setup, environment variables, and scripts live in each app's
README.md and .env.example.