Project E — UI Redesign Baseline
Date: 2026-07-31
Server hostname: projecte (10.0.0.204)
Branch: redesign/ui-v2 (from integration/ux-28-gaps, commit c1e0a08)
Bun version: 1.3.14
DB schema snapshot: .migration-baseline-schema.sql (1372 lines)
Disk before cleanup
- 20G total, 11G used, 9.1G free
node_modules: 415M (root) + 294K (apps/web)
.next build outputs: 109M
- Total repo size: 575M
Disk after cleanup
- 20G total, 12G used, 9.0G free
- Repo size: 48M (node_modules, .next, tsbuildinfo removed)
- ~527 MB freed from build artifacts
Container state after T0
| Container |
Status |
project-e-db |
Running (healthy) — PostgreSQL 16 |
project-e-worker |
Running — Node.js worker |
project-e-web |
Stopped & removed — Next.js (big-bang per user decision) |
URL status
What T1 (Phase 1 Scaffold) needs to do next
- Create the Vite SPA scaffold in
apps/web/ (replacing the old Next.js app)
- Create the Hono API scaffold in
apps/api/
- Set up Bun workspace in root
package.json
- Wire up the new
docker-compose.yml for the new stack
- Reference
.migration-baseline-schema.sql for the DB schema the new API must preserve
- Use
bun (v1.3.14) for all package management and runtime
- Keep
db and worker containers running
T1 — Phase 1 Scaffold (completed)
Legacy code moved
- Old Next.js
apps/web/ → apps/web-legacy/ (preserved for T2-T8 reference)
New apps created
| App |
Path |
Tech |
Port |
| SPA |
apps/web/ |
Vite 5 + React 19 + TanStack Router/Query + shadcn/ui |
:3000 (dev) |
| API |
apps/api/ |
Hono 4 + Bun |
:3001 |
| Worker |
apps/worker/ |
Bun + Drizzle |
— |
Shared infrastructure
db/client.ts — shared Drizzle client (postgres-js driver)
db/ — root-level directory (shared by api + worker)
bunfig.toml — Bun package manager config
- Root
package.json — Bun workspaces monorepo (apps/*, packages/*)
Docker
Dockerfile.api — Bun base, copies apps/api + db + packages
Dockerfile.worker — Bun base, copies apps/worker + db + packages
Dockerfile.spa — Multi-stage: Bun build → Caddy serve
Caddyfile — Serves dist on :80, reverse-proxies /api/* and /mcp to api:3000
docker-compose.yml — 4 services: db, api, spa, worker (old web service removed)
Phase 7 — Deploy (completed)
Deploy time: 2026-08-01T02:40Z
Commit: fc59431140329bd93223dfae3c72406d9e02646e
Branch: redesign/ui-v2
Image SHAs
| Image |
SHA256 |
projecte-api |
fc46878d1618bb3a0d6a43d645a21cad14caa1bb6eaf773e4e32579a268adc10 |
projecte-spa |
1cced4e61fb35d31df53225b3c8f5863a3d581b82ed961c13286bd5e3f940f48 |
projecte-worker |
7fc57170100f6cf6b12439835f5700383c7c4570eecf3c4ab3f06fa739d10d07 |
Compose file SHA
bb21417829c866048509f81881304e81b5e29430270a278e0b3a77caa68f8b1b
Verification results
| Check |
Result |
docker compose ps — all 4 services running, db healthy |
✅ |
curl :3000/api/health — 200 + {"status":"ok"} |
✅ |
curl :3000/ — 200 + HTML |
✅ |
| Login (user@example.com) — token received |
✅ |
/api/domains — 2 domains returned |
✅ |
/mcp — endpoint reachable (requires API key) |
✅ |
| All 13 page routes return 200 |
✅ (13/13) |
Container state
| Container |
Status |
Ports |
project-e-db |
Running (healthy) |
:5432 |
project-e-api |
Running |
:3001 |
project-e-spa |
Running |
:3000 |
project-e-worker |
Running |
— |
URL