Autonomous Coding

'Vibe coding' is the hot new term being used for basically letting a language model develop most of the code. There is a class of software now for "autonomous coding." Essentially I have a LLM (Large Language Model) plugged in to a folder on my desktop. I can then manage that LLM's permission to do things like create, read and write all the files and sub-folders, run terminal commands and some models will even open a browser and navigate on their own, if you allow it.
It's astonishing the first time you watch multiple steps automatically orchestrate code across multiple files. When the novelty wears off, I recommend bouncing between two instances of autonomous coding or some other task while the automation is working.
Using these tools I was able to stand up this blog and two additional calculators apps in 1 week.
- https://materialcalculator.protospace.xyz/
- Itemized area and volume calculations for estimating material quantity and cost.
- https://power-converter.protospace.xyz/
- Decibel <-> Watts conversion.
A popular stand-alone autonomous coding application is Cursor which I honestly have not tried yet because I noticed a pricing structure. Nothing against it; I just have not used it.
As an alternative I found many autonomous coding agent extensions that are free in Microsoft's Visual Studio Code (VS Code), also free. The extension I've been working with is named Cline. Cline let's you choose the language model you want to use in Settings > API Provider. Think of an API (Application Programming Interface) as an adapter so software can talk to other software.
Clicking the company names below will take you a page where you can get your own personal API key for each provider. Keep these secure!
For this week, my Provider and Models are:
- Google Gemini
- gemini-2.5-pro-exp-03-25
- Free
- Enormous context window
- Fast
- Excellent results. 1-shot many prompts.
- gemini-2.5-pro-exp-03-25
- OpenAI
- 03-mini (medium or high depending on complexity)
- cheap
- decent context window
- fast
- good enough results for many applications
- 03-mini (medium or high depending on complexity)
- Anthropic
- claude-3-7-sonnet-20250219
- reasonable price
- good context window
- reasonable speed
- Great results. Supports MCP
- Model Context Protocol (MCP) is like an API for LLMs; A framework enabling them to interact seamlessly with external tools, services, and data sources. It acts as a "universal adapter" providing a consistent interface for LLMs and expanding their capabilities beyond isolated text prediction. This is useful if you are developing an LLM powered application, otherwise, overkill.
- claude-3-7-sonnet-20250219
As for selecting a provider and model; As this is a rapidly developing field my preferences change constantly through experience, and my best recommendations is, 'Playing is learning'.
Play with a variety of providers and models and get a sense of how fast they are, the quality of their output and their cost. I recommend a general strategy of escalation where you attempt to use most economical model you can to get the results you want. If the model can't do the work, then escalate that work to a model capable of higher reasoning (or fine-tuned for your use case).

Documentation
The backbone of every project is documentation.
Imagine you are lead designer and project manager. You have an army of expert coders and writers at your disposal through a chat. The only problem is, you get a different person with every conversation who doesn't know anything about your project.
Documents add consistency to a project. Specified goals and progress logs allow new conversations to orient quickly on the context, state and progress of every project.
I prefer *.MD (Markdown) file format for docs that need to be consumable by humans and LLMs. Markdown is very easy to read and provides additional context and navigation.
Where docs need to be consumable by humans and LLMs, I recommend specifically asking for documents to be "in markdown form with good headings" in prompts.
- Specification.md
- Ask for a "Detailed Specification".
- Start your project working with a favored high reasoning model that is good at code. Describe the features of the application you are imagining in plain English.
- "Write a very detailed specification for an application...
- that functions as___
- and requires___.
- Prefer this common technical stack: ___"
- Best results come from mature and commonly used code in your 'tech stack'. For example, start with this...
- Frontend: HTML, CSS, and JavaScript for the user interface.
Backend: Python for server‑side logic and routing.
- Frontend: HTML, CSS, and JavaScript for the user interface.
- For more complex aps, I like the Django framework and SQL databases right now...
- Frontend: HTML, CSS, and JavaScript for the user interface.
Backend: Django (Python) for server‑side logic and routing.
Database: SQL databases (MySQL prefered); avoid JSON file storage.
- Frontend: HTML, CSS, and JavaScript for the user interface.
- Best results come from mature and commonly used code in your 'tech stack'. For example, start with this...
- Ask for a "Detailed Specification".
- Progress.md
- At the end of each LLM conversation, ask for Documentation
- "Append to progress.md the date/time, progress made and next steps for other developers on the team."
- Start each new conversation by asking the LLM to...
- Read the specification.md and progress.md
- At the end of each LLM conversation, ask for Documentation
As a human, separately, it is just good practice to...
- Log_Work.csv (TimeStart,TimeStop,#Hours,#People,ProjectName,Notes) [or your preferred spreadsheet app]
- It is worth the effort down the road to have as full a picture as you can of all the energy and time it really takes to get whatever the result is.
- Log how many hours by how many people spent progressing what project, at a minimum. The more notes you can make the better.
A CSV (Comma-Separated Values) file is a plain text file format used to store tabular data, where each row represents a record, and fields within a row are separated by commas. It is widely used for data exchange between applications due to its simplicity, readability, and compatibility with various software. Use whatever reduces the friction to creating a log of work done.

Develop
Continue to imagine you are lead designer and project manager. You have an army of expert coders and writers at your disposal, but nothing is remembered at the start of every conversation. Start each new conversation by asking the LLM to read the specification.md and progress.md files and then work on next steps.
I have a windows PC desktop with Docker Desktop for Windows supporting development in 'containers'. Containers provide consistency in the environment such that everything that supports your application remains constant if you plan to copy your application to another computer. If you find yourself saying, "...but, it worked on my machine...", that's a problem containers solve.
Full containerized and ready for deployment on the web...
- "Prefer this common technical stack: ___"
- Containerization: Full Dockerization isolating all components, with dedicated containers for development, testing, and production.
Frontend: HTML, CSS, and JavaScript offering a responsive and interactive UI, with potential future incorporation of modern JS libraries.
Backend: Django, enhanced with the Django REST Framework for structured API endpoints.
Database: While SQLite is used during development, a robust SQL database (MySQL preferred) is set for production.
Search: Elasticsearch powers full-text search over project records, with distinct indexes for dev and prod.
Web Server: Nginx (or Apache as an alternative) serves static assets and reverse proxies requests to Django.
Supporting Services: Redis is utilized for caching, and Celery handles asynchronous background tasks (e.g., notification delivery, report generation).
Testing & QA: A comprehensive suite of automated Python tests (unit, integration, and end-to-end) ensures quality and reliability.
Environments: Separate, Dockerized environments for development, testing, and production simulate real-world deployment conditions.

Deploy
For deployment to something public facing on the internet, I prefer to just pay for a service so I'm not inviting security problems into my home network since I am not a network security expert.
- This is my only referral link (I get a kickback) for my web server provider
- Digital Ocean (a Docker Droplet) on Ubuntu Operating System.
From here one can leverage whatever economical LLM gets results for a walkthrough of things like setting up a Domain Name Service (DNS) or configuring a server on whatever provider is preferred, or perhaps self-hosting.
With a server online it is possible to remote connect to VS Code via SSH. Again, just ask for a walkthrough of how to do that. I have even installed Cline extension on my server and had help fixing issues during deployment.
Backup frequently and have fun playing!
It takes some persistence and patience, but these tools make any coding project very accessible now. The main barrier is ones capacity for articulation.
-Chris Dahler