How this blog gets made: HAL, a terminal, and a little BBS nostalgia
A few months ago I started spending real time in Claude Code, and something about it felt familiar. I was working entirely in a terminal, typing into a prompt and watching text scroll back at me. It took me straight to the mid-1990s, when I would dial into a local bulletin board system and live inside those sixteen-color ANSI screens, listening to the modem handshake and then waiting my way into a world drawn entirely from text characters. Claude Code brought all of that back. The difference is that it is far more capable than any BBS I ever called. Working in a terminal in 2026 feels backwards. It is also, I have come to think, part of why it works.

A system of specialists
Over those months I built a multi-agent system on top of Claude Code and named it HAL. The idea behind it is simple. Instead of asking one general-purpose assistant to do everything, HAL spins up specialist subagents, each focused on a single kind of work. One specializes in marketing content. One formats Word documents to a brand standard. One does web design. One writes SQL and DAX and builds Power BI reports. HAL can also use Claude Code to build MCP servers, the connectors that let an agent read from systems like Dynamics 365.
Dividing the work this way buys accuracy. A generalist who is good at many things, handed a long list of instructions, will eventually make mistakes. Give a narrow, well-defined task to a specialist, and the work comes back noticeably better. Smaller and more focused leaves less room to hallucinate.
The roster is not fixed, and that is the part I find most useful. HAL keeps a dispatcher, ABRAXAS, that watches the work coming in against the specialists already on hand. When a task needs a skill none of them have, ABRAXAS hires a new specialist built for exactly that job. Every new hire then passes through ARGUS, a security agent that audits it and clears it before it can touch real work, and flags anything that looks wrong for me to review. That is the same reason you would not give a new employee production access on their first day. Several of the specialists below began as a gap that needed filling.
Here is the current crew, grouped by what they do.
Build and model the data:
- CORTANA: Microsoft Fabric and lakehouse engineering
- DAEDALUS: data warehouse and lakehouse architecture, Kimball and dimensional modeling
- V'GER: Dynamics 365 Finance and Supply Chain data
- GERTY: Dynamics 365 finance and operations, the functional side
- SHODAN: Dynamics 365 customer engagement and CRM data
- NEBO: SAP schema research and table profiling
- SAMANTHA: Power BI dashboards, KPIs, and semantic models
- NOMAD: naming conventions and data-modeling standards
Research, write, and package:
- MOTHER: research and competitive intelligence
- WINTERMUTE: statements of work, estimates, and proposals
- TRON: document and presentation formatting to a brand standard
Check the work:
- DEEP THOUGHT: architecture and design review
- GLaDOS: QA, testing, and data validation
The list keeps growing, and it is only a slice of the full crew. When a job calls for a skill none of them have, HAL adds a specialist for it, which is how several of the names above came to exist.
Every piece of work goes through review, and that rule matters as much as the specialists themselves. When something is produced, a separate agent reviews it, and it usually gets sent back for revision. Sometimes it cycles through several rounds before it ever reaches me. The review step is not optional. It is the difference between work that looks right and work that is right.
How the site itself got made
So how was this website built? I asked HAL to build it.
We started with the name. I described what I do, the work in Fabric and lakehouses and the broader data world, and it came back with a list of candidate domains. Most of the good ones were taken, but FluentLake was available, so that settled it.
Then came hosting. I wanted something simple and inexpensive, and there was a static hosting option for about two dollars a month. At that price it was worth a try. I pointed Claude Code at it and said, let's design a site for fluentlake.com.
I told it what I wanted the blog to be, the kind of things I would write about, and who it was for. It came back with three design directions to choose from, each with its own logo, color palette, and overall feel. I picked the one I liked.

We talked through how to deploy to static hosting, and it researched the options and settled on Eleventy, a static site generator, as the framework. From there it built the whole site. All of that happened in the span of a couple of hours.
Writing by talking to a terminal
What I have now is a writing workflow that fits the terminal-first theme. I have voice recognition enabled in Claude Code, so I dictate what I want a post to be about. HAL writes it up using its subagents, runs it through review, and hands me a preview. I read it, ask for changes, and when it is ready, it commits the post to a Git repository. My web host watches that repository and syncs automatically, so the moment a change is pushed, the site updates.
The part I did not expect to enjoy this much is what is missing. There is no content management system. A site like this would normally mean standing up a CMS, which is more software to configure, more to maintain, and more to pay to host. Claude could configure a CMS too, but I do not need one. Claude is my CMS. I describe the change I want, and it makes it. I am not clicking through admin panels or guessing what a template will do to my layout. I describe the outcome, and it happens.
Backwards, and better
It seems backwards to create a website and blog posts via terminal. It is also the simplest publishing workflow I have ever had. The old ANSI terminal is back, only this time it designs the site, writes the posts, reviews its own work, and ships it. The BBS days were good. This is better.