Independent developer Steve Hanov published a detailed account of the technology choices he says allow him to operate several recurring-revenue web businesses with minimal infrastructure spending. His central argument is that a small company can extend its runway by keeping systems simple, avoiding premature enterprise architecture and accepting constraints that make operating costs predictable.
Hanov said his approach begins with a single low-cost virtual private server from providers such as Linode or DigitalOcean. He described one gigabyte of memory as sufficient for many early web applications when the software is designed with the limit in mind, with a swap file available for additional headroom. A single server, he argued, also makes logs, failures and restarts easier for one developer to understand.
For application code, Hanov favors Go. He cited its modest runtime footprint, static typing and ability to compile an application into one binary that can be transferred to a server. That deployment model avoids installing a language runtime and a large set of production dependencies on the host. The account presents this as a practical preference for his own businesses, not a benchmark demonstrating that every application would perform better with the same design.
His database choice is SQLite, configured with write-ahead logging. Hanov said this setup lets readers and a writer operate without blocking each other in the way developers sometimes associate with a basic SQLite configuration. He also described using a library he created for authentication functions including sign-ups, sessions and password resets. The source does not provide audited traffic figures or independent testing for the scale claims attached to the configuration.
Artificial intelligence work is divided between local and hosted services. For large batch-research jobs, Hanov said he runs VLLM on a used Nvidia RTX 3090 with 24GB of video memory. He developed a constrained-context research tool called laconic and an abstraction layer named llmhub for connecting to local or cloud models. For tasks that need frontier models, he uses OpenRouter for a common integration and fallback routing.
Hanov also said he relies on a longstanding GitHub Copilot subscription in Visual Studio Code for coding assistance. His post frames detailed prompts and strict success criteria as a way to extract more value from request-based pricing.
The resulting stack is a case study in deliberate trade-offs. It reduces recurring infrastructure expense and operational surface area, but it also concentrates services on fewer machines and depends heavily on the founder's ability to diagnose them. Hanov's account offers a concrete bootstrapping playbook; its revenue, cost and capacity statements remain self-reported. For his projects, the benefit is control over both spending and complexity.


