Migrating to Acvte
Remember this? I do. I finally got acvte to a point where I was comfortable using it in production.
Remember this? I do. I finally got acvte to a point where I was comfortable using it in production for this website.
So far, the performance improvement has been totally worth the sixteen days it has taken to get to this point. Check out the memory usage drop that I grabbed from NewRelic:
And a more quantitative view:
Right before 12:05 is when I flipped the switch[^1]. I killed the config using the rails-based obtvse2 and migrated to the one using acvte. The drop in the graph above shows that switch in more of a defined manner than I was expecting.
The table above details the actual memory usage of both apps. Obtvse2, well rails actually, was using 113MB, an average amount across the app's lifespan. Acvte, on the other hand, was only using 8MB. Here's a fun fact. Three instances of acvte (blog, acvte, and bash in the table) combined used only ~21% of the memory used by the rails app. The bash instance was me running acvte in dev mode for some debugging, while the other two were running via upstart.
Sadly, I don't have definitive numbers on app response time from the server as NewRelic doesn't support Go at the moment, although I can estimate using Chrome Developer Tools. NewRelic is showing that obtvse2 had an average response time of 67ms. Chrome shows an estimated average response time of 4ms, assuming response time is Time โ Latency[^2].
On the whole, Preparation H feels good
Go has left me wanting more. I just want more. More time with it. More projects written in it. Development time with it is quick, writing, compiling, and running, while the code is concise and easy to read for when I don't document (considering my track record with code, that will be most of the time).
[^1]: Obtvse2 was running as a Passenger app, while acvte was running as itself. Both were reverse-proxied from nginx, had varnish acting as an edge cache, and were running on a 1GB Memory, 1 Core, 30GB SSD cloud instance from DigitalOcean. [^2]: Definition of Time (total duration) and Latency (time to first byte) from Google.
More in Technical Deep Dives
001 2026.07.29
July 29, 2026
AEO Is DevRel Infrastructure (And Nobody Owns It)
A re-audit of Stripe, Clerk, and Neon shows the best developer-tool docs now reach five of six AEO layers. That clarifies who owns AI-readable infrastructure.
002 2026.07.09
July 9, 2026
The Framework Emergence Loop: How Durable AI Workflows Are Actually Found
Durable AI workflows are found through iterative rebuilding, not upfront design. The framework emergence loop turns each failure into the next version's lesson.
003 2026.06.18
June 18, 2026
How to Know If Your Agentic Workflow Is Actually Working
A broken agentic workflow fails loudly. The wrong one runs cleanly and quietly drifts. How to define correctness and evaluate against it before you ship.