Kamol Nazarov The back office lab Brooklyn, NY

Lab notes · N°02 · · 2 min read

One night, five launches

On Oct 19, five names under kamol.dev were switched on in 71 minutes, with AI agents working in parallel. The log, the runbook, and what the count leaves out.

Written by
Kamol Nazarov
Published
Tags
agents · deploys · nginx
Follow
RSS feed

The note

On the evening of Oct 19, five names under kamol.dev were switched on in 71 minutes, the first at 10:53 PM and the last at 12:04 AM. I run a repair shop in Brooklyn and build its software with AI coding agents, several at a time, each in its own thread. This is the log of that night, the runbook that made it quick, and what the count leaves out.

The five

Time (ET) Name What it is
10:53 PM kamol.dev A placeholder page. The portfolio replaced it at 1:19 AM.
10:55 PM hello.kamol.dev A test page for the static-site steps
11:24 PM ScaledMail My outreach dashboard, behind my sign-in
11:36 PM WhatsMyCost My AI-spend tracker, reachable only from my private network
12:04 AM modernwars.kamol.dev Frontline, a browser strategy game

Other threads kept running around them. I opened the hosting-pipeline thread at 10:42 PM, on Grok 4.7. The server's nginx configuration was backed up at 10:53 PM, seconds before the first name went in. I opened a thread to move WhatsMyCost onto the server at 11:31 PM and one to build the portfolio at 11:48 PM, both on Claude Opus 5.5. In another project, BurnRate tagged two betas that evening: v0.3.0-beta.13 at 10:30 PM and v0.3.0-beta.14 at 11:13 PM.

Why it went quickly

kamol.dev and every name under it already pointed at one server, and nginx turns a name into a site. What the server didn't have was a wildcard certificate. That needs DNS changes made through an API, and the server has no credential for it. So every name gets its own certificate, issued over plain HTTP, which the server already answers for any name under kamol.dev.

That makes a new name the same four steps every time: put the files in place, issue the certificate, write one server block, test and reload. The runbook lists them in that order and says not to reload after a failed test. A short, fixed list is something an agent can follow and I can check: the address loads or it doesn't, and the certificate carries the name or it doesn't.

The private names use a variant. Public DNS still sends them to the server, so their certificates renew the normal way, but there is no public HTTPS server for them. From outside my private network the connection is simply closed. WhatsMyCost runs like that because it holds admin keys for the services it tracks.

What the count leaves out

  • hello.kamol.dev is a test page. It is the runbook's worked example for the static-site steps, not a product.
  • kamol.dev went in as a placeholder. The portfolio this note lives on went live at 1:19 AM, outside the 71 minutes.
  • For four of the names, the time is when the server block was created. For WhatsMyCost, it is when its service started. I have no log of the first request to each one.
  • There is no hours-saved figure here, because I didn't measure one.

Sources

Server: creation times of the nginx files, the configuration backup and the site folders, and service start times from systemd. BurnRate: its git tags. Threads: creation times in T3 Code, the app I run the agents in.