Architecture decisions, Docker, and open-source CRM
Planning day: offline-first stack for a field app, project docs for dev onboarding, and evaluating Twenty CRM.
A day of architecture decisions. Three different fronts needed attention, each with its own trade-offs.
Offline-first stack
The biggest block was planning the stack for an app that must work without internet. The user is out in the field with no signal, so nearly everything needs to run offline.
I evaluated Next.js + Supabase with offline-first support. I studied the role of Capacitor and compared it with a pure PWA approach. The partial conclusion is that PWA + service worker covers most scenarios without extra complexity, at least for v1. I organized the scope into phases to keep the codebase clean.
Dev onboarding
On another project, the focus was making it easy for other developers (and vibecoders) to contribute. I created README.md, AGENTS.md, and CLAUDE.md with clear Docker setup instructions, including restart/reload without running full migrations from scratch every time.
I also evaluated migrating a legacy codebase into a TypeScript monorepo with Hono and oRPC, using Bun. Made the initial commit for the new structure.
Twenty CRM
I explored Twenty, an open-source CRM, as a possible management tool. Ran it locally via Docker to understand what it offers and whether it fits the ongoing projects.
The day ended with a recurring lesson: before writing code, it pays to spend time defining how the team will run the project.