Your Database Does Not Have to Live Where Your App Runs
Where your code runs and where your records live are separate decisions. The outbound port rule that decides which database providers you can reach.
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.
Where your code runs and where your records live are separate decisions. The outbound port rule that decides which database providers you can reach.
Record the decision, not the traffic. A stop needs a stage and a reason, or somebody reads the whole log to find what one line could have said.
A running container's filesystem is scratch space, not storage. The three things people accidentally put on disk, and where each kind of state belongs.
Memory is a wall and processor is a queue. Size for the peak you can actually reach, and start tight enough that the instance tells you something.
Staging is only useful while it resembles production, and resemblance decays. What a second environment is actually for, and what to have instead.
Code leaves easily, data leaves slowly, and operational knowledge usually does not leave at all. Test the exit once, while nothing is on fire.
Reviewing generated code is a different job: read for what is missing, make the agent justify before it fixes, and treat review capacity as the bottleneck.
A repository is a unit of source control, not of deployment. Split two apps when their lifecycles differ — not because they sit in separate folders.
A credential's problem is copies, not storage. Inject at deploy rather than baking at build, and judge the design by how fast you could rotate it.