Installable PWA for household medicine inventory. Track expiry dates, get reminders before things go bad, and at the doctor's office pull up what you already have so they don't re-prescribe.
Turkish and English UI. Turkey-first market.
Single full-stack app — SSR pages and the API run in one Node process.
- App (
apps/web): TanStack Start (React 19 + TanStack Router + TanStack Query) + Tailwind v4 +react-i18next - Backend: server functions + API routes under
src/routes/api/, Drizzle ORM + libsql (SQLite local / Turso remote) - Auth: Better Auth — email/password + Google OAuth
- Web Push:
web-push(VAPID) - Runtime: Node 22, single process via
apps/web/server.mjs - Deploy: Docker → Dokploy (see
DEPLOY.md)
- Node.js 22+
- pnpm 10+
- (Optional) Docker for container deployment
pnpm install
pnpm db:migrate # creates apps/web/bundanvar.db, applies schema, seeds 50 use-cases
pnpm dev # http://localhost:5173 — SSR + API combinedCopy apps/web/.env.example → apps/web/.env.local and fill in values for
production-like config (Turso, Better Auth secret, Google OAuth, web push).
| Command | What it does |
|---|---|
pnpm dev |
Run the dev server (SSR + API) |
pnpm build |
Build to apps/web/dist/{client,server} |
pnpm start |
Run the production server (server.mjs) after build |
pnpm typecheck |
Typecheck |
pnpm lint |
Lint |
pnpm test |
Run the test suite (vitest) |
pnpm db:generate |
Regenerate the Drizzle migration after schema changes |
pnpm db:migrate |
Apply migrations + seed |
pnpm db:studio |
Open Drizzle Studio |
apps/
web/ TanStack Start app (SSR + API in one process)
src/routes/ file-based routes; API under src/routes/api/
src/db/ Drizzle schema + libsql client + seed
drizzle/ committed migration SQL
server.mjs production entry (static + SSR/API fetch handler)
Dockerfile build + run image (Node 22, pnpm)
docker-compose.yml app + daily expiry-cron sidecar
DEPLOY.md Dokploy deployment guide
.github/workflows/ CI — typecheck, lint, test, build, docker build
Docker, deployed to Dokploy with a remote Turso database. Full instructions in
DEPLOY.md.
Personal project. Source code: https://github.com/teengineer/medmanager