Split a Legacy Monolith Only When It Earns a Service
Split a legacy monolith only when a component needs its own lifecycle. Use a service-extraction card to keep the first boundary small, testable, and reversible.
Deployment guides for AI-built apps, with practical notes on hosting, Git builds, databases, domains and keeping the next release repeatable.
Articles, shipping notes, and the thinking behind how aidrop.it works.
Split a legacy monolith only when a component needs its own lifecycle. Use a service-extraction card to keep the first boundary small, testable, and reversible.
Move a legacy app without a rewrite: define one deployable, run a first build, record the facts it proves, and give the next developer a safe start.
Connect an existing GitHub repository to your coding agent, name the runtime facts, build one Service, and record the commit and address that result.
Store a secret once at project scope, then allow each service only the names it needs. A value access matrix makes rotation and review concrete.
A push changes a repository, not a release. Compare the local head, tracked branch, built commit and running commit before debugging the app.
A committed Dockerfile can be ignored when the deploy still uses a buildpack. Record the mode, file path and build context before changing code.
A green build and a log line do not prove a migration landed. Four SQL statements that do, and the rules an agent follows when it runs them against live data.
Stop, delete and destroy leave different things behind. What each verb keeps, why a stopped app still has an address, and a report block for your agent.
Daily snapshots and independent database exports serve different needs. Set up a pg_dump job in your project, keep copies in your storage and test a restore.