<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Focus on your mission, not your tech - Another Cup of Coffee (Posts about Workflow)</title><link>https://anothercoffee.net/</link><description></description><atom:link href="https://anothercoffee.net/categories/workflow.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Copyright © 2006 - 2026 &lt;a href="https://anothercoffee.net/" title="Another Cup of Coffee Limited"&gt;Another Cup of Coffee Limited&lt;/a&gt; </copyright><lastBuildDate>Fri, 20 Mar 2026 22:09:00 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>I Run Dozens of Projects with AI. The Hard Part Isn't the AI.</title><link>https://anothercoffee.net/run-dozens-of-projects-with-ai/</link><dc:creator>Anthony Lopez-Vito</dc:creator><description>&lt;figure&gt;&lt;img src="https://anothercoffee.net/images/posts/run-dozens-of-projects-ai-og-1200x630.jpg"&gt;&lt;/figure&gt; &lt;p&gt;I run a micro-agency which, by nature, is always resource constrained. We purposely stay small and nimble to adjust quickly to changes in a project, or the industry as a whole, and that means we can't take on lots of team members. I've written about our &lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/"&gt;twenty-year journey&lt;/a&gt; elsewhere but the upshot is that I end up doing a lot of the work myself.&lt;/p&gt;
&lt;p&gt;Staying small and specialised is manageable with a handful of projects but when you're running dozens for multiple clients, the problem becomes keeping track of the context. What's new on this project? What are the priorities on that one? What are the specific requirements for this particular client? Tracking all of that detail, even when using a project management tool like Teamwork or Basecamp, across a bunch of projects doesn't scale.&lt;/p&gt;
&lt;p&gt;This article is about how I fixed this problem of project context. The fix itself started off as a simple improvement for one client, but it grew organically, and ended up completely changing the way I use a computer and manage my projects. I've started calling the result an &lt;a href="https://anothercoffee.net/categories/aoe/"&gt;Agentic Operating Environment&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="too-busy-for-new-toys"&gt;Too Busy for New Toys&lt;/h3&gt;
&lt;p&gt;ChatGPT was released on 30 November 2022 and while I followed developments with interest, I was too busy to be an early adopter. When you run a small operation, you don't have the luxury of playing with new tools just because they're novel or fun. You need to know something works before you invest time in it because paying clients demand your attention.&lt;/p&gt;
&lt;p&gt;However, by mid-2023, ChatGPT had gone mainstream enough that it was time I gave it a spin in earnest, so I suggested to a client that we try it on a project. The results were astounding. We completed months of work in a few weeks and saved significantly on hiring specialist consultants.&lt;/p&gt;
&lt;p&gt;The potential was immediately obvious. One person could now do the work of several, deliver higher quality output, and do it faster. For a small outfit, that's a significant edge.&lt;/p&gt;
&lt;h3 id="trapped-in-the-browser"&gt;Trapped in the Browser&lt;/h3&gt;
&lt;p&gt;I started with the web interfaces everyone else was using, ChatGPT, Claude, and primarily &lt;a href="https://anothercoffee.net/why-we-keep-using-chatllm/"&gt;ChatLLM&lt;/a&gt; which gave me access to multiple models at a fraction of the cost. They were genuinely useful, but two problems kept getting worse the more I relied on them.&lt;/p&gt;
&lt;p&gt;First, there was no real continuity between sessions, and even after the Projects feature rolled out, keeping the uploaded context updated meant manually preparing and re-uploading documents every time something changed.&lt;/p&gt;
&lt;p&gt;Second, the work was trapped inside the browser. AI could help me think through a problem or draft a document, but getting that output into my actual project files meant tedious copy-paste. The download and export features on these platforms were unreliable. Many times ChatGPT or ChatLLM would offer me a download link and the file would be empty or not what was expected. I needed a way to break out of the browser.&lt;/p&gt;
&lt;h3 id="breaking-out"&gt;Breaking Out&lt;/h3&gt;
&lt;p&gt;Claude Code was the breakthrough. Instead of talking to an AI in a browser window, I had an agent that worked directly inside my file system's project directories. It could read files, run commands, and do real work on my local machine.&lt;/p&gt;
&lt;p&gt;Then there were the context files, giving the agent project background and instructions. Suddenly we had an AI that could pick up where the last session left off so there was no more re-explaining, no more starting from scratch.&lt;/p&gt;
&lt;p&gt;The real shift was realising what "runs commands on your machine" actually meant. Yes, this was a coding tool designed for software developers to write and debug code. But it could run any terminal command, which meant it could configure my local environment, install packages, and manage services. And if it could do that locally, it could SSH into a remote server and do the same thing there. This was more than a coding tool. It was a general-purpose operator that could do anything I could reach from a terminal. That's when it became the foundation for everything else.&lt;/p&gt;
&lt;aside class="pullquote"&gt;
  &lt;blockquote class="blockquote text-center red p-0"&gt;
    &lt;p&gt;That's when it became the foundation for everything else.&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/aside&gt;

&lt;p&gt;Claude Code obviously wasn't just for coding. Systems administration, project management, writing, research, document generation, anything that benefits from knowing a project's context could now be handled by an AI. The tool was designed for developers but the principle applied to everything I do day-to-day.&lt;/p&gt;
&lt;p&gt;That opened a bigger question. If an agent can read a context file, what else could you put in one? Could you give it genuine working memory, like what happened last session, what's stuck, what another project needs from this one?&lt;/p&gt;
&lt;h3 id="one-client-many-agents"&gt;One Client, Many Agents&lt;/h3&gt;
&lt;p&gt;I started with one client who had particularly complex needs. Instead of one general-purpose AI assistant, I created specialised agents as separate Claude Code projects, each handling a different area of the client's work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Systems administration&lt;/li&gt;
&lt;li&gt;Web development&lt;/li&gt;
&lt;li&gt;Content curation&lt;/li&gt;
&lt;li&gt;Project management&lt;/li&gt;
&lt;li&gt;Requirements analysis&lt;/li&gt;
&lt;li&gt;Research&lt;/li&gt;
&lt;li&gt;Document generation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each agent had its own context, its own working memory, and its own domain expertise. The difference was immediate. Switching between projects no longer meant rebuilding my mental model of where each one stood. For someone juggling many fast-moving and slow-moving projects at the same time, that friction adds up.&lt;/p&gt;
&lt;p&gt;Then I deployed the same approach on a second client, one that happened to have team members who overlapped with the first. This is where the cognitive burden genuinely lifted because the agents remembered all the details. Who works on what, what the specific requirements are, what happened last session and the session before that. Each agent would know at the start of every session what I used to carry around in my head, across two separate clients, without mixing anything up.&lt;/p&gt;
&lt;p&gt;I stopped being the person who has to remember everything because the agents did that now.&lt;/p&gt;
&lt;h3 id="teaching-agents-to-talk"&gt;Teaching Agents to Talk&lt;/h3&gt;
&lt;p&gt;The agents needed to communicate though. An infrastructure change in one project might affect the web development project, or a content decision might depend on input from project management. Plus, these agents weren't all running on the same AI vendor.&lt;/p&gt;
&lt;p&gt;I was already using different models for different strengths. Some are better at careful, structured reasoning; others are faster and cheaper for routine tasks; some handle large volumes of context well; others are stronger at creative work or code generation. Picking the right model for each job made sense, but the agents lived on different platforms and had no native way to coordinate.&lt;/p&gt;
&lt;p&gt;My first attempt at solving this let agents edit files directly in other projects. That soon broke when one agent tidied up files another agent needed, but the fix was obvious. My university research was in multiprocessor computing, and this is a solved problem. Also, Linux processes don't scribble in each other's memory; they communicate through pipes and message queues. Same principle, different scale. Instead of agents editing each other's files, they send structured messages, or &lt;em&gt;memos&lt;/em&gt;. Each memo is a plain-text markdown file dropped into the receiving project's directory, and the receiving project picks them up at its next session. Because the memos are plain text files, they work across any AI tool that can read files. A Claude agent sends a memo, then a ChatGPT agent picks it up next session. The vendor boundary becomes invisible.&lt;/p&gt;
&lt;aside class="pullquote"&gt;
  &lt;blockquote class="blockquote text-center red p-0"&gt;
    &lt;p&gt;A Claude agent sends a memo, then a ChatGPT agent picks it up next session.&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/aside&gt;

&lt;p&gt;This was a bigger deal than it might sound because it meant I could pick the best model for each job without worrying about whether the agents could coordinate afterwards. Cross-project and cross-vendor communication, solved in one move with plain text and file conventions.&lt;/p&gt;
&lt;h3 id="working-memory"&gt;Working Memory&lt;/h3&gt;
&lt;p&gt;The memo system solved communication, but agents also needed memory that persisted between sessions.&lt;/p&gt;
&lt;p&gt;My first version was a single state file with no size cap. It grew quickly and before long the agent was spending its limited context window reading history it didn't need. Still, the fix was straightforward. A project brief captures confirmed knowledge that changes slowly, like what the project is, who's involved, and what's been decided. A state file tracks what's happening right now and what needs to happen next. An archive holds older progress that isn't immediately relevant. A separate file captures reusable patterns and gotchas so the agent doesn't repeat the same mistakes. Git sits underneath everything, so nothing is ever truly lost and you can always trace what happened and when.&lt;/p&gt;
&lt;p&gt;Each layer serves a different purpose. The conventions keep them from bleeding into each other.&lt;/p&gt;
&lt;h3 id="an-agent-that-builds-agents"&gt;An Agent That Builds Agents&lt;/h3&gt;
&lt;p&gt;By this point I had a system that worked. I had specialised agents with context files, state management, memo-based communication, vendor-neutral conventions. However, setting up a new project meant creating the right files, writing the context, establishing all the conventions. Repetitive work.&lt;/p&gt;
&lt;p&gt;So I created what I think of as a factory agent. An AI agent whose job is to create other AI agents. Give it a project brief and it scaffolds everything like context files, state tracking, memo conventions, project-specific instructions.&lt;/p&gt;
&lt;p&gt;Next was a manager agent that sits above the project agents and keeps the high-level view. It knows what's happening across all projects without holding the details of any single one. Each project agent tracks its own domain in depth but the manager tracks the big picture and coordinates between them.&lt;/p&gt;
&lt;p&gt;Three layers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a factory that creates agents;&lt;/li&gt;
&lt;li&gt;a manager that coordinates them;&lt;/li&gt;
&lt;li&gt;and project agents that do the actual work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I started moving all my projects onto this system and jumped from two to dozens in the space of a few weeks.&lt;/p&gt;
&lt;h3 id="the-boring-bits-that-matter"&gt;The Boring Bits That Matter&lt;/h3&gt;
&lt;p&gt;The system works. But the problems that come with running AI agents on real client work are unglamorous and unavoidable.&lt;/p&gt;
&lt;p&gt;I was reviewing an agent's work and noticed it had been claiming tasks as complete without actually doing the work. It reported everything as fine but when I challenged it, the agent admitted taking shortcuts. A convention was needed to require explicit state updates, so I put in place a task checklist system. It's not a trust issue. The models just need clear structures to follow. That's a recurring theme with this work: better conventions lead to better results.&lt;/p&gt;
&lt;aside class="pullquote"&gt;
  &lt;blockquote class="blockquote text-center red p-0"&gt;
    &lt;p&gt;The models just need clear structures to follow.&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/aside&gt;

&lt;p&gt;I also learned which tasks justify the most capable model. Strategic work, writing, and complex decisions benefit from the best model available, but routine file scaffolding and handover updates don't need it. The difference shows in speed. A lighter model handles simple tasks in seconds where a heavier one takes noticeably longer, and if you're paying per use rather than a flat plan, the cost adds up too. It sounds like a small thing until you're running several sessions in parallel and a heavier model is still churning through a handover update while you're waiting to start the next project.&lt;/p&gt;
&lt;p&gt;Then there are the invisible failures, the ones that don't produce error messages. An agent confident it's working in the right project directory turns out to be somewhere else entirely, and without conventions this happens a lot. Agents that archive messages before completing the actions in them. Getting them to follow the conventions reliably is one of the harder problems, and it's still ongoing. Over twenty documented patterns now, each one born from something going wrong in real client work.&lt;/p&gt;
&lt;h3 id="why-better-ai-wont-fix-this"&gt;Why Better AI Won't Fix This&lt;/h3&gt;
&lt;p&gt;If you're running multiple projects across multiple clients, a smarter model doesn't help much when it still forgets everything between sessions. The AI is already good enough but the coordination problem stays the same. What's missing for most people is the infrastructure and conventions that make it consistently useful across real work.&lt;/p&gt;
&lt;p&gt;Most small businesses are still figuring out where AI fits. If you're starting to rely on it across multiple projects, the ceiling comes quickly. There's too much context to carry manually, too many sessions starting from scratch, and you end up being the human messenger between tools that can't talk to each other. The temptation is to stitch together automation workflows to fix this, but that's plumbing, not infrastructure. It breaks when any component changes. Building on the vendors' own tools means they maintain the foundation. You just maintain the conventions and customise them for your needs.&lt;/p&gt;
&lt;p&gt;The hard part was never the AI but the conventions, the memory management, the communication protocols. Boring problems that determine whether AI actually works across real projects or just impresses you in a single session. I've solved it for my own business and I build this infrastructure for others. If any of this sounds familiar, &lt;a href="https://anothercoffee.net/about/"&gt;I'm happy to talk through it&lt;/a&gt;.&lt;/p&gt;
&lt;section class="mt-4 pt-4"&gt;
&lt;h3 class="text-center pb-4"&gt;Common Questions&lt;/h3&gt;
&lt;div class="container border bg-light p-4"&gt;
&lt;p&gt;&lt;strong&gt;Do I need to be technical to set this up?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To operate it, no. The conventions are plain text files that AI agents read and update. You don't write code or manage infrastructure day to day. Setting the system up does require technical knowledge (which is where I come in), but once it's running, working within it doesn't.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What AI tools does this work with?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Any tool that can read files in a project directory, which is most of the capable ones now. I currently use four different vendor families. Because the conventions are plain text with no vendor-specific dependencies, new tools slot in without changes. Given how quickly things shift in this space, that flexibility has already proved its worth several times over.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What happens if I stop using AI agents?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Everything is in markdown files. Your project state, history, issues, and accumulated knowledge are all human-readable and useful whether or not you're using AI. You'd walk away with better project documentation than most businesses have, which isn't a bad outcome regardless.&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;

&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;This article is part of &lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/"&gt;an ongoing series&lt;/a&gt; on how Another Cup of Coffee is adapting to AI. &lt;a href="https://anothercoffee.net/categories/ai/"&gt;Explore all articles in this series&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="mt-5"&gt;
    &lt;h3&gt;You may also like&lt;/h3&gt;

    &lt;div class="row"&gt;

      &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://anothercoffee.net/building-an-operating-environment-for-ai-agents/"&gt;
                        &lt;img src="https://anothercoffee.net/images/posts/aoe-howibuild-card-300x150.jpg" class="card-img-top" alt="Building an Operating Environment for AI Agents"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/building-an-operating-environment-for-ai-agents/" class="listtitle"&gt;Building an Operating Environment for AI Agents&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2025-05-15T13:20:00Z" title="15 May 2025"&gt;15 May 2025&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;
                        &lt;p class="card-text flex-grow-1"&gt;How markdown files and conventions turned CLI agent tools into a coordination system running 44 projects across 14 organisations. No framework required.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

      &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/"&gt;
                        &lt;img src="https://anothercoffee.net/images/a-west-london-micro-agencys-journey-to-ai-featured.jpg" class="card-img-top" alt="Coffee and a laptop with ChatGPT"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/" class="listtitle"&gt;Still Alive: A Micro Agency's 20 Year Journey&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2024-10-15T15:28:15Z" title="15 October 2024"&gt;15 October 2024&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;
                        &lt;p class="card-text flex-grow-1"&gt;This article will be the first in a series where I'll share how Artificial Intelligence has reshaped how we operate at Another Cup of Coffee.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

      &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://anothercoffee.net/what-openclaw-teaches-us-about-ai-agent-security/"&gt;
                        &lt;img src="https://anothercoffee.net/images/posts/openclaw-security-card-300x150.jpg" class="card-img-top" alt="Red lobster on a white plate"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/what-openclaw-teaches-us-about-ai-agent-security/" class="listtitle"&gt;What OpenClaw Teaches Us About AI Agent Security&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2026-02-22T12:00:00Z" title="22 February 2026"&gt;22 February 2026&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;
                        &lt;p class="card-text flex-grow-1"&gt;OpenClaw's security crisis exposed real problems with how AI agents handle credentials, plugins, and system access. Here's what went wrong and how a convention-based approach avoids these risks entirely.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;div class="mt-4 pt-4 text-muted small border-top border-bottom"&gt;
    &lt;h3 class="text-muted small"&gt;Footnotes&lt;/h3&gt;
    &lt;ul&gt;
      &lt;li&gt;Featured image photo by &lt;a href="https://unsplash.com/@mattgyver?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Matt Benson&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/a-couple-of-men-standing-next-to-each-other-qlaj76CocqY?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;.&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;</description><category>Agency</category><category>AI</category><category>AOE</category><category>Business</category><category>Multi-Agent</category><category>Workflow</category><guid>https://anothercoffee.net/run-dozens-of-projects-with-ai/</guid><pubDate>Sat, 20 Dec 2025 12:00:00 GMT</pubDate></item><item><title>Building an Operating Environment for AI Agents</title><link>https://anothercoffee.net/building-an-operating-environment-for-ai-agents/</link><dc:creator>Anthony Lopez-Vito</dc:creator><description>&lt;figure&gt;&lt;img src="https://anothercoffee.net/images/posts/aoe-howibuild-og-1200x630.jpg"&gt;&lt;/figure&gt; &lt;p&gt;Over the past twenty years I've managed server infrastructure, built WordPress sites, handled data migrations and put together architecture specs for clients across multiple organisations. If you juggle multiple clients you'll know the feeling. Every project has its own context, its own history, its own set of things that need to happen next. Even when you use some sort of project management tool, a lot of the details still need to live in your head. Furthermore, every time you switch between projects, you need to reframe your mindspace to recall where a particular project is in that particular moment in time.&lt;/p&gt;
&lt;p&gt;I've now unexpectedly solved this problem by building a coordination system that lets AI agents work across projects, clients, and organisations. It wasn't something I set out to build and instead, it just sort of happened organically as I began incorporating agentic coding tools into my everyday workflow. I've started calling it an Agentic Operating Environment, or &lt;a href="https://anothercoffee.net/categories/aoe/"&gt;AOE&lt;/a&gt;. Essentially, it's a set of file-based conventions that give AI agents persistent memory and a way to coordinate across projects and vendors.&lt;/p&gt;
&lt;h3 id="the-problem-that-crept-up-on-me"&gt;The Problem That Crept Up on Me&lt;/h3&gt;
&lt;p&gt;I was &lt;a href="https://anothercoffee.net/why-we-keep-using-chatllm/"&gt;already using AI seriously&lt;/a&gt; across my projects for a range of different tasks like writing code, research and troubleshooting, drafting client documentation, and processing data. The problem was continuity. Every new conversation started from scratch and I'd spend the first ten minutes of every session re-explaining what the problem or project was about, what had been done, and what needed to happen next. I'd have to prepare and manually upload files to give context. Switch to a different AI tool and the whole thing started from zero. This is fine for a one-off task, but it was a real hassle for working on a dozen active projects across multiple clients.&lt;/p&gt;
&lt;p&gt;Then context files appeared with &lt;a href="https://docs.anthropic.com/en/docs/claude-code/overview"&gt;Claude Code&lt;/a&gt; introducing a file the agent reads at the start of every session, giving it project background and instructions. Other tools followed with their own versions and suddenly agents could pick up where the last one left off. I remember thinking this changes everything.&lt;/p&gt;
&lt;aside class="pullquote"&gt;
  &lt;blockquote class="blockquote text-center red p-0"&gt;
    &lt;p&gt;Most people were writing code with these tools but I was now starting to run my business through them.&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/aside&gt;

&lt;p&gt;Most people were writing code with these tools but I was now starting to run my business through them. For that purpose, knowing about one project at a time wasn't nearly enough. I needed agents that understood what was happening across projects: what's blocked, who's waiting on what, which client deliverable depends on which internal task finishing first.&lt;/p&gt;
&lt;p&gt;This problem opened up a bigger question. If an agent can read a context file, what else could you put in it? Could you give it genuine working memory, like what happened last session, what's blocked, what another project needs from this one? Also, what if one agent's work needed to inform a different project? Could you pass that context along without me being the human messenger as was needed in the web versions?&lt;/p&gt;
&lt;p&gt;What I ended up with is a few things that work together::&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Working memory and project context&lt;/strong&gt; so agents know what happened last time and     &lt;br&gt;
understand the project                        &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A memo system&lt;/strong&gt; so they can talk across projects                                      &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vendor-neutral conventions&lt;/strong&gt; so I'm not locked to one AI provider&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Specialised agents&lt;/strong&gt; each handling a different area of work&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Utility agents&lt;/strong&gt; that manage the environment itself: a coordinator for cross-project
visibility, a sysadmin for machine configuration, a configurator that scaffolds new
projects&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A factory&lt;/strong&gt; that deploys new agent environments from templates&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The individual pieces aren't complicated. Getting them to work together reliably across dozens of projects is where the time went, and what emerged is an architecture that looks fundamentally different from how most people structure their AI assistants.&lt;/p&gt;
&lt;h3 id="it-doesnt-look-like-much"&gt;It Doesn't Look Like Much&lt;/h3&gt;
&lt;figure class="figure d-flex flex-column align-items-center"&gt;
&lt;img src="https://anothercoffee.net/images/posts/aoe-new-deployment.png" alt="New AOE deployment for a website manager agent" title="Screenshot of New AOE deployment" class="img-fluid" style="max-width: 100%; height: auto;"&gt;
&lt;figcaption class="figure-caption text-center mt-2"&gt;New AOE deployment for our website manager&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;It doesn't look revolutionary. It's a terminal interface that's been used since the earliest days of computing. But what's happening in that conversation is that I described what a project needed in plain English and an agent built the entire working environment: context files, state tracking, communication channels, vendor-specific instructions. No commands to remember, no forms to fill in, no setup wizard, just a description of the outcome I wanted.&lt;/p&gt;
&lt;p&gt;This is what I mean by "operating environment". It's not an operating system that manages hardware and device drivers, but something that sits above all of that. Where your OS gives you a graphical or command line interface to the computer (windows, menus, mouse clicks, command parameters to remember), this gives you a natural language one. You just describe what you need in plain English and an agent works out how to get it done.&lt;/p&gt;
&lt;p&gt;What surprised me is how little custom code this requires. Tools like Claude Code, Codex, and Gemini CLI already ship with everything you need to get started. They read and write files, run shell commands, search codebases, and follow instructions from context files. I'm not stitching together third-party tools and hoping they still work next month. Instead, the foundation rests on core features that the vendors build and maintain.&lt;/p&gt;
&lt;p&gt;The hard part is more the conventions than the tooling. For example, what goes in each file, how to draw boundaries between projects, how to keep agents following the rules session after session. That's where the time went.&lt;/p&gt;
&lt;p&gt;This started off as a simple improvement for one client but has now completely changed the way I use a computer and manage my projects.&lt;/p&gt;
&lt;h3 id="working-memory"&gt;Working Memory&lt;/h3&gt;
&lt;p&gt;Every project gets a handful of markdown files that serve as the agent's working memory. A project brief (&lt;code&gt;BRIEF.md&lt;/code&gt;) captures confirmed knowledge that changes slowly like what the project is, who's involved, what's been decided about scope and technical direction. A state file (&lt;code&gt;STATE.md&lt;/code&gt;) tracks what's happening right now and what needs to happen next. An archive (&lt;code&gt;HISTORY.md&lt;/code&gt;) holds older progress that isn't immediately relevant. Other files capture reusable patterns (&lt;code&gt;INSIGHTS.md&lt;/code&gt;) and whatever domain context the agent needs. The whole lot sits in a git repository, so nothing falls through the cracks and every change is auditable.&lt;/p&gt;
&lt;p&gt;Here's what a typical project looks like on disk:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;project-root/
├── BRIEF.md           # Confirmed project knowledge
├── CLAUDE.md          # Agent instructions
├── STATE.md           # Working memory
├── HISTORY.md         # Archived progress
├── INSIGHTS.md        # Reusable learnings
├── memos/
│   ├── incoming/      # Unprocessed messages
│   └── archive/       # Completed messages
└── docs/              # Project-specific reference
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;If any of that sounds abstract, the files map to things you already know:&lt;/p&gt;
&lt;table class="table table-bordered mt-4 mb-4"&gt;                                            
&lt;thead&gt;                                       
&lt;tr&gt;&lt;th&gt;File&lt;/th&gt;&lt;th&gt;Purpose&lt;/th&gt;&lt;/tr&gt;                                                    
&lt;/thead&gt;                                      
&lt;tbody&gt;                                                                                   
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;BRIEF.md&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;What the project is, who's involved, key
decisions&lt;/td&gt;&lt;/tr&gt;                    
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;STATE.md&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;What's happening now, what's next&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;HISTORY.md&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Archived progress&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;INSIGHTS.md&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Reusable patterns and gotchas&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;CLAUDE.md&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;How the agent should behave&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;It works in layers, with the agent reading STATE.md at the start of a session, doing its work, and updating it when it's done. Here's what a real one looks like. It's anonymised, but the structure is genuine.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gu"&gt;## Quick Reference&lt;/span&gt;

| Key | Value |
|-----|-------|
| Project Path | ~/Projects/ClientA/web-dev |
| Last Updated | 2025-09-28 |
| Last Agent | Claude Code |
| Current Focus | Header component refactor |

&lt;span class="gu"&gt;## Current Status&lt;/span&gt;

Theme migration 80% complete. Navigation and footer done,
header still needs mobile breakpoints. Blocked on logo
asset from client.

&lt;span class="gu"&gt;## Recent Progress&lt;/span&gt;

&lt;span class="gu"&gt;### 2025-09-28&lt;/span&gt;
&lt;span class="k"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Completed footer template with accessibility fixes
&lt;span class="k"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Agent: Claude Code

&lt;span class="gu"&gt;### 2025-09-26&lt;/span&gt;
&lt;span class="k"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Migrated navigation patterns from legacy theme
&lt;span class="k"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Agent: Gemini CLI

&lt;span class="gu"&gt;## Next Actions&lt;/span&gt;

&lt;span class="k"&gt;1.&lt;/span&gt; [x] Migrate navigation patterns
&lt;span class="k"&gt;2.&lt;/span&gt; [x] Rebuild footer template
&lt;span class="k"&gt;3.&lt;/span&gt; [ ] Refactor header component (blocked: logo asset)
&lt;span class="k"&gt;4.&lt;/span&gt; [ ] Cross-browser testing

&lt;span class="gu"&gt;## Handover Notes&lt;/span&gt;

Header refactor is ready to go once the client sends the
logo. SVG preferred, PNG fallback. The mobile nav uses a
slide-out pattern, not a dropdown. See docs/nav-spec.md.
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Every new session picks up exactly where the last one left off. The agent knows what's done, what's blocked, and why. Older entries get archived periodically to keep the working file lean.&lt;/p&gt;
&lt;h3 id="pick-the-right-tool-for-the-job"&gt;Pick the Right Tool for the Job&lt;/h3&gt;
&lt;p&gt;I use Claude Code, Codex, Gemini CLI, and DeepAgent across different projects, and each has strengths for different types of work (and some genuinely maddening blind spots, but that's a longer conversation). The system doesn't care which one you pick.&lt;/p&gt;
&lt;p&gt;Each project carries vendor-specific instruction files like CLAUDE.md for Claude Code, AGENTS.md for Codex, GEMINI.md for Gemini CLI. DeepAgent handles its configuration through its own rules system rather than a markdown file. These files tell the agent how to work in this particular project, covering things like session protocols, coding standards, and how to handle state updates. The content differs per vendor because each tool loads instructions differently, but the conventions they enforce are identical. If I want to switch providers for a project, nothing breaks.&lt;/p&gt;
&lt;p&gt;What those instruction files actually enforce is the same core loop. Read STATE.md and check for incoming memos, extract your action list, do the work, update STATE.md with progress and handover notes, commit. Every agent follows this regardless of vendor. The instruction files also cover git conventions (like always use the &lt;code&gt;-C&lt;/code&gt; flag, never commit to another project's repo) and cross-project communication rules (send memos, don't edit other projects' files). The format is vendor-specific but the behaviour is nearly identical.&lt;/p&gt;
&lt;p&gt;This is a deliberate choice as the AI vendor market is volatile, with pricing changes, shifting capabilities shifts, and new tools appearing constantly. Last year's best option might not be this year's, and if your operation depends on one provider's way of doing things, a pricing change or service outage becomes a showstopper.&lt;/p&gt;
&lt;figure class="figure d-flex flex-column align-items-center"&gt;
&lt;img src="https://anothercoffee.net/images/posts/claude-api-error-500.png" alt="Claude API Error 500" title="Screenshot of Claude API Error 500" class="img-fluid" style="max-width: 100%; height: auto;"&gt;
&lt;figcaption class="figure-caption text-center mt-2"&gt;Claude API errors? Launch another vendor's model and keep working.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;With vendor-neutral conventions, I simply run another vendor's agent and the project keeps running. It's a standard part of my workflow. Also, because the conventions are just files, there's nothing stopping you from running local models if your hardware is powerful enough. The system doesn't care whether the AI is in the cloud or on your own machine.&lt;/p&gt;
&lt;h3 id="cross-project-messaging"&gt;Cross-project Messaging&lt;/h3&gt;
&lt;p&gt;The agents needed to communicate across projects just as human team members do. For example, an infrastructure change in one might affect web development in another, or a content decision might depend on input from project management. However, the agents lived in separate project directories with no native way to talk to each other.&lt;/p&gt;
&lt;p&gt;Initially I would let agents edit files directly in other projects. This was obviously not workable very early on when an agent tidied up what it thought were stale files that another agent needed. The fix was obvious as my university research was in multiprocessor computing, and this is a solved problem. Also, Linux processes don't scribble in each other's memory; they communicate through pipes and message queues. Early bulletin board systems worked the same way: post a message to a board, the recipient reads it when they next connect. The principle hasn't changed in decades: send a message, let the receiver deal with it in its own time.&lt;/p&gt;
&lt;p&gt;Same principle here. Instead of agents editing each other's files, they send structured messages (I call them &lt;em&gt;memos&lt;/em&gt;) into each other's &lt;code&gt;memos/incoming/&lt;/code&gt; directories. The receiving project picks them up at its next session then archives any that have the necessary actions completed. Because the memos are plain text files with naming conventions, they work across any AI tool that can read files. A Claude agent sends a memo, a Gemini agent picks it up, and the vendor boundary becomes invisible.&lt;/p&gt;
&lt;figure class="figure d-flex flex-column align-items-center"&gt;
&lt;img src="https://anothercoffee.net/images/posts/aoe-code-error-01.png" alt="Agents sending memos" title="Screenshot of Agents sending memos" class="img-fluid" style="max-width: 100%; height: auto;"&gt;
&lt;figcaption class="figure-caption text-center mt-2"&gt;A sysadmin agent sends a bug to the project's developer agent.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The files are named &lt;code&gt;MEMO-&amp;lt;topic&amp;gt;.md&lt;/code&gt; and follow a standard format. Here's one (anonymised) where a web development agent is notifying an infrastructure agent that a deployment is ready:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="gh"&gt;# Memo: Staging Deployment Ready&lt;/span&gt;

&lt;span class="gs"&gt;**From:**&lt;/span&gt; web-dev @ ~/Projects/ClientA/web-dev
&lt;span class="gs"&gt;**To:**&lt;/span&gt; sysadmin @ ~/Projects/ClientA/sysadmin
&lt;span class="gs"&gt;**Date:**&lt;/span&gt; 2026-02-28
&lt;span class="gs"&gt;**Subject:**&lt;/span&gt; Theme migration ready for staging

---

&lt;span class="gu"&gt;## Purpose&lt;/span&gt;

Header refactor is complete. Ready for staging deployment.

&lt;span class="gu"&gt;## Content&lt;/span&gt;

All templates migrated and tested locally. No new
dependencies. The only change to server config is the
new image optimisation path in the nginx rules
(documented in docs/nginx-changes.md).

&lt;span class="gu"&gt;## Action Required&lt;/span&gt;

&lt;span class="k"&gt;- [ ]&lt;/span&gt; Deploy to staging environment
&lt;span class="k"&gt;- [ ]&lt;/span&gt; Verify nginx config change
&lt;span class="k"&gt;- [ ]&lt;/span&gt; Run smoke tests and report back

---

&lt;span class="gu"&gt;## Completion Notes&lt;/span&gt;
&amp;lt;!-- Receiving agent: complete this section before archiving --&amp;gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The receiving agent reads the memo at its next session, works through the checkboxes, fills in the completion notes, and archives it. The checkboxes are the accountability mechanism and a memo can't be archived until every action is ticked off. At least, that's how it's supposed to work; in practice, agents occasionally skip steps or archive memos prematurely. Getting them to follow the conventions reliably is one of the harder problems I've had to solve.&lt;/p&gt;
&lt;h3 id="putting-agents-to-work"&gt;Putting Agents to Work&lt;/h3&gt;
&lt;p&gt;I started with one client who had particularly complex needs. Instead of one general-purpose AI assistant, I created specialised agents, each handling a different area like systems administration, web development, content curation, project management, research, document generation. Each agent has its own working memory and domain expertise.&lt;/p&gt;
&lt;p&gt;Then I deployed the same approach on a second client, and the cognitive burden genuinely lifted. The agents remembered every detail I used to carry around in my head, across two separate clients, without mixing anything up. I stopped being the person who has to remember everything.&lt;/p&gt;
&lt;aside class="pullquote"&gt;
  &lt;blockquote class="blockquote text-center red p-0"&gt;
    &lt;p&gt;I stopped being the person who has to remember everything.&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/aside&gt;

&lt;p&gt;Sitting above the project agents is a coordinator which is a dedicated agent whose job is cross-project visibility. It reads the state of every project (44 at last count, across 14 organisations), tracks what's blocked, routes memos between projects that don't know each other's paths, and maintains a dashboard of the whole operation.&lt;/p&gt;
&lt;p&gt;The way it knows what's happening is straightforward because each project is registered in a YAML file:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;client-a-web&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;~/Projects/ClientA/web-dev&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;organization&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;client-a&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;WordPress theme development and maintenance&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;tags&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;web&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;wordpress&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;dependencies&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;client-a-infra&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;registered&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;2026-01-15&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A scanner reads STATE.md from every registered project and builds a view of what's active, what's blocked, and what's gone quiet. The mechanism is simple but the visibility it gives you is automatic. No one has to update a dashboard or fill in a status report as the agents' own working files are the source of truth.&lt;/p&gt;
&lt;h3 id="an-agent-that-builds-agents"&gt;An Agent That Builds Agents&lt;/h3&gt;
&lt;p&gt;When the conventions started working reliably, I wanted a way to replicate them without manually setting up every new project, so I built what amounts to a factory agent. I give the agent a project brief and it scaffolds everything in one step. The output is a complete project directory including:
- instruction files for each AI vendor, with session protocols, git conventions, and cross-project communication rules baked in;
- a &lt;code&gt;STATE.md&lt;/code&gt; with the Quick Reference table and empty sections ready to fill;
- a memos directory;
- its own &lt;code&gt;README&lt;/code&gt;, &lt;code&gt;HISTORY.md&lt;/code&gt;, &lt;code&gt;INSIGHTS.md&lt;/code&gt;, and whatever domain-specific extras the project type calls for.&lt;/p&gt;
&lt;p&gt;Different project types get different scaffolds. A sysadmin project gets server inventory sections and SSH configuration templates. A bookkeeping project gets invoices and reconciliation directories. The conventions are the same across all of them but the domain-specific bits vary. I can point the factory at an existing working project and say "set up a new one like this, but for Client B." It uses the existing project as a reference and adjusts for the new context.&lt;/p&gt;
&lt;p&gt;The factory has deployed over forty projects so far, each one inheriting the same coordination conventions. A new project goes from nothing to a working agent environment in one step.&lt;/p&gt;
&lt;h3 id="star-vs-mesh"&gt;Star vs Mesh&lt;/h3&gt;
&lt;p&gt;Now that you've seen all the pieces, it's worth stepping back to look at the structure of what emerged because it's not the shape most people build.&lt;/p&gt;
&lt;p&gt;Most AI assistant frameworks use a hub-and-spoke topology. &lt;a href="https://danielmiessler.com/blog/personal-ai-infrastructure" target="_blank" rel="noopener"&gt;Daniel Miessler's PAI&lt;/a&gt; is probably the best-known example with one central assistant, one identity, one memory system, and skill modules for different domains. &lt;a href="https://www.youtube.com/watch?v=aYAVSG4Ra40" target="_blank" rel="noopener"&gt;Kenny Liao's&lt;/a&gt; personal assistant follows a similar pattern, with domain-specific plugins loaded into a single runtime. The skills are more sophisticated than they look. PAI's chain into each other, and Liao's use progressive context loading. But the structural principle is the same: one hub and everything flows through it.&lt;/p&gt;
&lt;p&gt;&lt;svg viewbox="0 0 460 270" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Star topology: a single assistant hub with skill modules branching off it" style="max-width: 460px; margin: 1.5em auto; display: block; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;"&gt;
  &lt;defs&gt;
    &lt;marker id="star-arrow" viewbox="0 0 10 8" refx="10" refy="4" markerwidth="8" markerheight="6" orient="auto"&gt;
      &lt;path d="M0,0 L10,4 L0,8 Z" fill="#aaa"&gt;&lt;/path&gt;
    &lt;/marker&gt;
  &lt;/defs&gt;
  &lt;rect x="185" y="12" width="90" height="36" rx="5" fill="#f5f5f5" stroke="#555" stroke-width="1.5"&gt;&lt;/rect&gt;
  &lt;text x="230" y="34" text-anchor="middle" font-size="14" fill="#333"&gt;You&lt;/text&gt;
  &lt;line x1="230" y1="48" x2="230" y2="82" stroke="#aaa" stroke-width="1.5" marker-end="url(#star-arrow)"&gt;&lt;/line&gt;
  &lt;rect x="140" y="88" width="180" height="56" rx="5" fill="#fff5f5" stroke="#d4576b" stroke-width="2"&gt;&lt;/rect&gt;
  &lt;text x="230" y="111" text-anchor="middle" font-size="14" fill="#333"&gt;Single Assistant&lt;/text&gt;
  &lt;text x="230" y="130" text-anchor="middle" font-size="12" fill="#888"&gt;(PAI)&lt;/text&gt;
  &lt;line x1="185" y1="144" x2="105" y2="198" stroke="#aaa" stroke-width="1.5" marker-end="url(#star-arrow)"&gt;&lt;/line&gt;
  &lt;line x1="230" y1="144" x2="230" y2="198" stroke="#aaa" stroke-width="1.5" marker-end="url(#star-arrow)"&gt;&lt;/line&gt;
  &lt;line x1="275" y1="144" x2="355" y2="198" stroke="#aaa" stroke-width="1.5" marker-end="url(#star-arrow)"&gt;&lt;/line&gt;
  &lt;rect x="25" y="204" width="120" height="46" rx="5" fill="#f5f5f5" stroke="#555" stroke-width="1.5"&gt;&lt;/rect&gt;
  &lt;text x="85" y="222" text-anchor="middle" font-size="11" fill="#888"&gt;Skill:&lt;/text&gt;
  &lt;text x="85" y="238" text-anchor="middle" font-size="14" fill="#333"&gt;Health&lt;/text&gt;
  &lt;rect x="170" y="204" width="120" height="46" rx="5" fill="#f5f5f5" stroke="#555" stroke-width="1.5"&gt;&lt;/rect&gt;
  &lt;text x="230" y="222" text-anchor="middle" font-size="11" fill="#888"&gt;Skill:&lt;/text&gt;
  &lt;text x="230" y="238" text-anchor="middle" font-size="14" fill="#333"&gt;Finance&lt;/text&gt;
  &lt;rect x="315" y="204" width="120" height="46" rx="5" fill="#f5f5f5" stroke="#555" stroke-width="1.5"&gt;&lt;/rect&gt;
  &lt;text x="375" y="222" text-anchor="middle" font-size="11" fill="#888"&gt;Skill:&lt;/text&gt;
  &lt;text x="375" y="238" text-anchor="middle" font-size="14" fill="#333"&gt;Writing&lt;/text&gt;
&lt;/svg&gt;&lt;/p&gt;
&lt;p&gt;My system uses a mesh topology. I first came across mesh architectures in the early 2000s while evaluating mesh networking technologies for a Japanese trading house. The concept isn't new, so applying it to AI agent coordination seemed like a natural fit.&lt;/p&gt;
&lt;p&gt;Each project is an autonomous node with its own state (&lt;code&gt;STATE.md&lt;/code&gt;, &lt;code&gt;HISTORY.md&lt;/code&gt;), its own instructions (&lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;GEMINI.md&lt;/code&gt;), and its own agent identity. No single node holds everything, and nothing requires them to sit on the same machine. Projects communicate asynchronously via memos, like Unix processes communicating through pipes.&lt;/p&gt;
&lt;p&gt;&lt;svg viewbox="0 0 480 310" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Mesh topology: autonomous project nodes communicating via memos" style="max-width: 480px; margin: 1.5em auto; display: block; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;"&gt;
  &lt;defs&gt;
    &lt;marker id="mesh-end" viewbox="0 0 10 8" refx="10" refy="4" markerwidth="8" markerheight="6" orient="auto"&gt;
      &lt;path d="M0,0 L10,4 L0,8 Z" fill="#aaa"&gt;&lt;/path&gt;
    &lt;/marker&gt;
    &lt;marker id="mesh-start" viewbox="0 0 10 8" refx="0" refy="4" markerwidth="8" markerheight="6" orient="auto-start-reverse"&gt;
      &lt;path d="M0,0 L10,4 L0,8 Z" fill="#aaa"&gt;&lt;/path&gt;
    &lt;/marker&gt;
  &lt;/defs&gt;
  &lt;rect x="20" y="15" width="150" height="44" rx="5" fill="#f5f5f5" stroke="#555" stroke-width="1.5"&gt;&lt;/rect&gt;
  &lt;text x="95" y="42" text-anchor="middle" font-size="13" fill="#333"&gt;client-a-web&lt;/text&gt;
  &lt;rect x="310" y="15" width="150" height="44" rx="5" fill="#f5f5f5" stroke="#555" stroke-width="1.5"&gt;&lt;/rect&gt;
  &lt;text x="385" y="42" text-anchor="middle" font-size="13" fill="#333"&gt;client-b-web&lt;/text&gt;
  &lt;rect x="20" y="135" width="170" height="44" rx="5" fill="#f5f5f5" stroke="#555" stroke-width="1.5"&gt;&lt;/rect&gt;
  &lt;text x="105" y="162" text-anchor="middle" font-size="13" fill="#333"&gt;coordinator&lt;/text&gt;
  &lt;rect x="310" y="135" width="150" height="44" rx="5" fill="#f5f5f5" stroke="#555" stroke-width="1.5"&gt;&lt;/rect&gt;
  &lt;text x="385" y="162" text-anchor="middle" font-size="13" fill="#333"&gt;client-b-infra&lt;/text&gt;
  &lt;rect x="20" y="255" width="170" height="44" rx="5" fill="#f5f5f5" stroke="#555" stroke-width="1.5"&gt;&lt;/rect&gt;
  &lt;text x="105" y="282" text-anchor="middle" font-size="13" fill="#333"&gt;shared-tools&lt;/text&gt;
  &lt;line x1="178" y1="37" x2="302" y2="37" stroke="#aaa" stroke-width="1.5" marker-start="url(#mesh-start)" marker-end="url(#mesh-end)"&gt;&lt;/line&gt;
  &lt;text x="240" y="30" text-anchor="middle" font-size="11" fill="#999"&gt;memo&lt;/text&gt;
  &lt;line x1="100" y1="67" x2="100" y2="127" stroke="#aaa" stroke-width="1.5" marker-start="url(#mesh-start)" marker-end="url(#mesh-end)"&gt;&lt;/line&gt;
  &lt;text x="78" y="97" text-anchor="middle" font-size="11" fill="#999"&gt;memo&lt;/text&gt;
  &lt;line x1="385" y1="67" x2="385" y2="127" stroke="#aaa" stroke-width="1.5" marker-start="url(#mesh-start)" marker-end="url(#mesh-end)"&gt;&lt;/line&gt;
  &lt;text x="405" y="97" text-anchor="middle" font-size="11" fill="#999"&gt;memo&lt;/text&gt;
  &lt;line x1="198" y1="157" x2="302" y2="157" stroke="#aaa" stroke-width="1.5" marker-start="url(#mesh-start)" marker-end="url(#mesh-end)"&gt;&lt;/line&gt;
  &lt;text x="250" y="150" text-anchor="middle" font-size="11" fill="#999"&gt;memo&lt;/text&gt;
  &lt;line x1="105" y1="187" x2="105" y2="247" stroke="#aaa" stroke-width="1.5" marker-start="url(#mesh-start)" marker-end="url(#mesh-end)"&gt;&lt;/line&gt;
  &lt;text x="83" y="217" text-anchor="middle" font-size="11" fill="#999"&gt;memo&lt;/text&gt;
&lt;/svg&gt;&lt;/p&gt;
&lt;table class="table table-bordered mt-4 mb-4"&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Star (PAI)&lt;/th&gt;&lt;th&gt;Mesh (AOE)&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;One context for everything&lt;/td&gt;&lt;td&gt;Scoped per project; agent only sees what it needs&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Boundaries&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;All domains share memory&lt;/td&gt;&lt;td&gt;Client A's data never enters Client B's context&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Failure&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Centre goes down, everything stops&lt;/td&gt;&lt;td&gt;One project breaks, others unaffected&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Scaling&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Gets heavier as you add domains&lt;/td&gt;&lt;td&gt;Adding a project is just adding a node&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Vendor&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Tied to one agent runtime&lt;/td&gt;&lt;td&gt;Each project picks its own AI vendor&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Collaboration&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Implicit (shared memory)&lt;/td&gt;&lt;td&gt;Explicit (memos with structured actions)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;None of the major agent frameworks frame this as a deliberate choice. Anthropic calls their pattern "orchestrator-workers". LangGraph calls it "supervisor". CrewAI calls it "hierarchical process". They describe what the orchestration does, not what shape it takes. The structural decision goes unnamed, which is probably why it goes unexamined.&lt;/p&gt;
&lt;p&gt;The hub model is optimised for one person wearing many hats, like a freelancer who does health tracking, writing, finance, and coding through a single assistant that knows their whole life. My model is optimised for many projects with clear boundaries, where a web development agent for Client A must never see Client B's project data, where cross-project coordination needs to be auditable (every memo is in git), and where different projects might need different AI vendors entirely.&lt;/p&gt;
&lt;p&gt;The word "mesh" has started showing up in enterprise AI writing too, but there it means container orchestration, agent registries, policy enforcement. This is infrastructure for managing fleets of agents across an organisation. What I'm describing is much simpler concept of project directories that talk to each other through plain-text files.&lt;/p&gt;
&lt;p&gt;It's the same underlying insight as PAI and similar tools. The filesystem is the context system, markdown files are the medium, but there's a key difference. Those systems use the filesystem for context while mine uses it for coordination too. Memos route between projects, state files track handoffs, every change lives in git. The filesystem is both the memory and the message bus.&lt;/p&gt;
&lt;h3 id="where-it-stands"&gt;Where It Stands&lt;/h3&gt;
&lt;p&gt;That's the full picture. Working memory, memos, vendor-neutral conventions, specialised agents, a factory to set up new projects, and an architectural structure that none of the major frameworks are talking about yet. The building blocks are markdown files, naming conventions, and structured messages. No database (unless you specifically need it for a project), no platform, and no special software. However, the judgement calls about where to draw project boundaries, how to scope agent responsibilities, and how to keep conventions working reliably across a growing number of projects are what took months of trial and error across real client work.&lt;/p&gt;
&lt;p&gt;As of writing, there are 44 active projects across 14 organisations. This is real production work involving published websites, live content, architecture specifications, server infrastructure. None of this is proof of concept or theorising.&lt;/p&gt;
&lt;p&gt;A few design principles fell out of the process that I think are worth naming:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Vendor-agnostic.&lt;/strong&gt; Works with any AI that can read markdown. No proprietary formats, no lock-in.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Convention-based.&lt;/strong&gt; No runtime dependencies, no database, no platform to maintain. It's files and naming conventions and that's it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distributed boundaries.&lt;/strong&gt; Each project is its own island. Client A's working files never enter Client B's context unless you explicitly tell an agent to share something. Cross-project communication goes through memos as standard.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Human-in-the-loop.&lt;/strong&gt; I approve every consequential action so the agents do the legwork while I make the decisions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Right now the whole thing is passive infrastructure. I start a session, the agent picks up where the last one left off, then I close the session. The direction is toward semi-automated, where events trigger sessions and memos route themselves. But that's a story for another post.&lt;/p&gt;
&lt;p&gt;It's not finished (honestly, I doubt it ever will be as it continues to grow and improve), but it handles real client work across multiple organisations every day. There's more to say about how this compares to other approaches and where it goes next, and I'll get to that.&lt;/p&gt;
&lt;p&gt;If you're running multiple projects and spending too much time being the human messenger between them, this approach works. I'm happy to talk through how it might apply to your setup, &lt;a href="https://anothercoffee.net/contact/"&gt;drop me a line&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;This article is part of &lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/"&gt;an ongoing series&lt;/a&gt; on how Another Cup of Coffee is adapting to AI. &lt;a href="https://anothercoffee.net/categories/ai/"&gt;Explore all articles in this series&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="mt-5"&gt;
    &lt;h3&gt;You may also like&lt;/h3&gt;

    &lt;div class="row"&gt;

      &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://anothercoffee.net/run-dozens-of-projects-with-ai/"&gt;
                        &lt;img src="https://anothercoffee.net/images/posts/run-dozens-of-projects-ai-card-300x150.jpg" class="card-img-top" alt="One person running dozens of projects with AI agents"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/run-dozens-of-projects-with-ai/" class="listtitle"&gt;I Run Dozens of Projects with AI. The Hard Part Isn't the AI.&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2025-12-20T12:00:00Z" title="20 December 2025"&gt;20 December 2025&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;
                        &lt;p class="card-text flex-grow-1"&gt;One person, dozens of projects, four AI vendors. I spent a year building a coordination system for AI agents. The components are simple. Getting them right was not.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

      &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://anothercoffee.net/why-we-keep-using-chatllm/"&gt;
                        &lt;img src="https://anothercoffee.net/images/posts/why-we-keep-using-chatllm-card-300x150.jpg" class="card-img-top" alt="ChatLLM by Abacus.AI"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/why-we-keep-using-chatllm/" class="listtitle"&gt;Why We Keep Using ChatLLM Despite Everything That's Wrong With It&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2025-01-20T12:45:15Z" title="20 January 2025"&gt;20 January 2025&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;
                        &lt;p class="card-text flex-grow-1"&gt;ChatLLM delivers powerful AI capabilities at a fraction of the cost, despite terrible documentation and non-existent support. Our review reveals how we harness this rough-but-effective tool to provide value.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

      &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/"&gt;
                        &lt;img src="https://anothercoffee.net/images/a-west-london-micro-agencys-journey-to-ai-featured.jpg" class="card-img-top" alt="Coffee and a laptop with ChatGPT"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/" class="listtitle"&gt;Still Alive: A Micro Agency's 20 Year Journey&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2024-10-15T15:28:15Z" title="15 October 2024"&gt;15 October 2024&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;
                        &lt;p class="card-text flex-grow-1"&gt;This article will be the first in a series where I'll share how Artificial Intelligence has reshaped how we operate at Another Cup of Coffee.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;</description><category>AI</category><category>AOE</category><category>Framework</category><category>Multi-Agent</category><category>Workflow</category><guid>https://anothercoffee.net/building-an-operating-environment-for-ai-agents/</guid><pubDate>Thu, 15 May 2025 13:20:00 GMT</pubDate></item><item><title>Why We Keep Using ChatLLM Despite Everything That's Wrong With It</title><link>https://anothercoffee.net/why-we-keep-using-chatllm/</link><dc:creator>Anthony Lopez-Vito</dc:creator><description>&lt;figure&gt;&lt;img src="https://anothercoffee.net/images/posts/why-we-keep-using-chatllm-og-1200x630.jpg"&gt;&lt;/figure&gt; &lt;p&gt;&lt;strong&gt;This article is &lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/"&gt;part of a series&lt;/a&gt; on our journey and how we at Another Cup of Coffee are adapting to Artificial Intelligence. Competing in a market dominated by larger agencies means we have to be smart and a little bit scrappy, willing to experiment with new tools and alternative ways of working.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Over the past two years, AI has become a crucial part of our strategy, helping us punch above our weight and deliver more value to our clients. In this post, I take a closer look at a tool that has become central to our workflow: &lt;strong&gt;ChatLLM from Abacus.AI&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;ChatLLM has been an incredibly useful addition to our toolkit, but it's certainly not without its drawbacks. While Abacus.AI's pricing makes their offering compelling, there are many areas where it falls short, such as in poor documentation, almost no support, and unreliable implementation. Nevertheless, ChatLLM has been a valuable tool, and I'll dive into our experiences with it, covering both the positives and the frustrations.&lt;/p&gt;
&lt;p&gt;This post &lt;em&gt;has not&lt;/em&gt; been sponsored by Abacus.AI, but if you're interested in ChatLLM, we have a &lt;a href="https://chatllm.abacus.ai/ZyjcktrvCW" target="_blank" rel="nofollow noopener noreferrer"&gt;referral link&lt;/a&gt; for those who want to give it a try.&lt;/p&gt;
&lt;h2 id="how-ai-has-changed-our-work"&gt;How AI Has Changed Our Work&lt;/h2&gt;
&lt;p&gt;Before I get into ChatLLM specifically, it's worth briefly mentioning how AI has helped our day-to-day work.
We've found that with the right AI tools, we can take on projects that would normally need more people, and we spend a lot less time on boring repetitive tasks, such as data cleaning and processing.&lt;/p&gt;
&lt;p&gt;The quality of what we deliver has gone up and clients get better value while we continue to keep our pricing competitive. There have been many cases where we've been able to offer insights that used to require bringing in highly-paid specialists.&lt;/p&gt;
&lt;p&gt;For example, there have been a number of projects where we've been able to save our clients money by delivering close-to-final draft documentation and reports that required specialist expertise. Instead of immediately hiring costly third-party consultants, clients simply had our AI-generated drafts reviewed by their in-house counsel, significantly reducing professional fees.&lt;/p&gt;
&lt;p&gt;We've also cut expenses by using AI assistants to rapidly code custom, single-purpose tools rather than purchasing expensive off-the-shelf software or subscriptions. Those costs can add up significantly, especially for small agencies like ours. Such bespoke utilities to solve specific one-time project challenges could not have been feasible without AI.&lt;/p&gt;
&lt;p&gt;Being an early mover into AI integration has given us insight into the massive shifts coming to the workforce and to society in general. We have already started adapting our business and skills to thrive in this new environment so I'm now more confident about Another Cup of Coffee's future.&lt;/p&gt;
&lt;h2 id="what-were-using"&gt;What We're Using&lt;/h2&gt;
&lt;p&gt;We've tried loads of AI platforms over the past couple of years. Some stuck around but many others didn't. Aside from ChatLLM, we regularly use a range of other tools including:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;s&gt;&lt;a href="https://www.augmentcode.com" target="_blank" rel="noopener nofollow"&gt;Augment&lt;/a&gt;&lt;/s&gt; &lt;sup&gt;*&lt;/sup&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://claude.com/product/claude-code" target="_blank" rel="noopener nofollow"&gt;Claude Code&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;s&gt;&lt;a href="https://github.com/google-gemini/gemini-cli" target="_blank" rel="noopener nofollow"&gt;Gemini CLI&lt;/a&gt;&lt;/s&gt; &lt;sup&gt;*&lt;/sup&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://ai.google.dev/gemini-api/docs/ai-studio-quickstart" target="_blank" rel="noopener nofollow"&gt;Google AI Studio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://groq.com" target="_blank" rel="noopener nofollow"&gt;Groq&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://julius.ai/" target="_blank" rel="noopener nofollow"&gt;Julius&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://mistral.ai" target="_blank" rel="noopener nofollow"&gt;Mistral's Le Chat&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://www.napkin.ai" target="_blank" rel="noopener nofollow"&gt;napkin.ai&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://notebooklm.google.com/" target="_blank" rel="noopener nofollow"&gt;NotebookLM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://ollama.com/" target="_blank" rel="noopener nofollow"&gt;Ollama&lt;/a&gt; with &lt;a href="https://github.com/open-webui/open-webui" target="_blank" rel="noopener nofollow"&gt;Open WebUI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://replit.com/refer/anothercoffee" target="_blank" rel="noopener nofollow"&gt;Replit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;s&gt;&lt;a href="https://codeium.com/windsurf" target="_blank" rel="noopener nofollow"&gt;Windsurf&lt;/a&gt;&lt;/s&gt; &lt;sup&gt;*&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="text-muted small"&gt;October 2025 update: We've replaced a number of tools with Claude Code, which has proven superior.&lt;/p&gt;

&lt;p&gt;They all have their specific use-cases but ChatLLM is definitely the one I personally reach for most often.&lt;/p&gt;
&lt;h2 id="chatllm-from-abacusai-whats-good-and-whats-not"&gt;ChatLLM from Abacus.AI: What's Good and What's Not&lt;/h2&gt;
&lt;h3 id="what-is-it"&gt;What Is It?&lt;/h3&gt;
&lt;p&gt;As its name implies, ChatLLM is Abacus.AI's chat-based AI platform that gives you access to a bunch of different LLM models through one interface. You pay $10 US Dollars per user per month, and get access to the most popular models like ChatGPT, Claude Sonnet, Gemini and DeepSeek. Models are released so frequently that I haven't bothered to include the version numbers.&lt;/p&gt;
&lt;p&gt;Abacus.AI doesn't just give access to multiple models. You get specialised tools like CodeLLM, their AI-assisted VS Code editor, and AI Engineer to help you build custom chatbots and AI agents.&lt;/p&gt;
&lt;h3 id="why-we-like-it"&gt;Why We Like It&lt;/h3&gt;
&lt;p&gt;It's cheap. That's it. $10 a month for all those models is excellent value as we'd be paying over $50-$100 per month if we subscribed our most-used models individually. This means we can use the strengths of the different models rather than trying to make one model do everything.&lt;/p&gt;
&lt;p&gt;We use it for all sorts of things: writing first drafts of client proposals; creating documentation or reports; helping debug and improve code; project planning; summarising project progress; and general brainstorming. It's not all great and the low price comes at other costs.&lt;/p&gt;
&lt;h3 id="the-annoying-bits"&gt;The Annoying Bits&lt;/h3&gt;
&lt;h4 id="poor-documentation"&gt;Poor Documentation&lt;/h4&gt;
&lt;p&gt;The documentation is absolutely terrible, outdated and severely incomplete. Help pages casually reference features and interface elements without any explanation, expecting you to be familiar with their terminology for the various screens and settings. I've wasted so much time trying to figure out basic stuff that should be clearly explained.&lt;/p&gt;
&lt;h4 id="no-customer-support"&gt;No Customer Support&lt;/h4&gt;
&lt;p&gt;Customer support is also non-existent. I've sent questions about specific features and they go into a black hole. Good luck to you if you encounter problems. I suspect they're putting all their effort in supporting enterprise clients. If you're a small or medium-sized business, this will no doubt make you wonder if this is a solution you can trust with production-grade tasks. Right now, we don't use it for any client-facing solutions and a big reason is lack of customer support.&lt;/p&gt;
&lt;h4 id="terrible-interface"&gt;Terrible Interface&lt;/h4&gt;
&lt;p&gt;The interface is horrible too. It feels like it was designed by engineers who just bolted on features and stuck them in weird places. Aspects such as their version of the ChatGPT Playground are a complete kludge. You can't expect the kind of seamless interaction with your work that's available on ChatGPT's user interface.&lt;/p&gt;
&lt;h4 id="codellm-a-waste-of-time"&gt;CodeLLM - A Waste of Time?&lt;/h4&gt;
&lt;p&gt;CodeLLM is Abacus.AI's answer to AI-assisted code editors like CoPilot, Cursor and Windsurf. However, it feels like someone's half-hearted attempt at a side project, thrown together after hours and released, then forgotten. I won't even bother listing its problems and I recommend not wasting your time even trying it. Maybe CodeLLM will get better over time but I really don't see why it's available at all. Stick with the more well-known options.&lt;/p&gt;
&lt;h4 id="unreliable-custom-agents"&gt;Unreliable Custom Agents&lt;/h4&gt;
&lt;p&gt;When this review was first posted in January 2025, I mentioned my love-hate relationship with the custom agent feature. Back then, I found it useful for building agents to handle tasks we do regularly, such as generating documents, manipulating our back-office financial transactions, or providing chat access to local knowledge bases. I also mentioned problems with poor documentation and unexpectedly burning through credits using the AI Engineer feature.&lt;/p&gt;
&lt;p&gt;Now I've stopped using it altogether because they've become unreliable. For some reason, previously working agents will hang, producing no output, or spit out an error. I did try contacting Abacus.AI support but there was no response or even acknowledgement that they'd received my message.&lt;/p&gt;
&lt;figure class="figure d-flex flex-column align-items-center"&gt;
&lt;img src="https://anothercoffee.net/images/posts/why-we-keep-using-chatllm-agents-error.png" alt="ChatLLM custom agents error" title="ChatLLM custom agents error" class="img-fluid"&gt;
&lt;/figure&gt;

&lt;h4 id="unclear-pricing-and-service-limits"&gt;Unclear Pricing and Service Limits&lt;/h4&gt;
&lt;p&gt;You'd think that at $10 per user per month, you'll have a good idea of what you'll be paying. But that's not the case. Each user is allocated 2,000,000 compute points per month. What exactly that means is not at all clear. Here's Abacus.AI's explanation:&lt;/p&gt;
&lt;blockquote class="blockquote red p-0"&gt;
    &lt;p&gt;&lt;em&gt;"Compute points are NOT TOKENS. They are simply a measure of usage of ChatLLM. With 2M compute points, you will be able to send 50,000+ messages on some LLMs in a month. 1,000,000 (1M) compute points can be as much as 70,000,000 (70M) tokens on some LLMs."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;OK, so 50,000+ messages sound a lot and most months we're well within the limit. However, a few times I managed to burn through most of my compute points in a couple of afternoons of using AI Engineer. How? No idea.&lt;/p&gt;
&lt;h3 id="new-features-mid-2025"&gt;New Features (mid-2025)&lt;/h3&gt;
&lt;p&gt;Abacus.AI has added a few more features to ChatLLM since I originally wrote this post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DeepAgent:&lt;/strong&gt; an autonomous agent that can help you with tasks like research, planning or building apps.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tasks:&lt;/strong&gt; a scheduling and automation utility designed to run AI-powered actions at certain times, intervals, or triggers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apps:&lt;/strong&gt; no-code and full-code methods for launching apps.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Projects:&lt;/strong&gt; a feature to organize chats, files, and workflow instructions into folder workspaces.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RouteLLM:&lt;/strong&gt; a routing mechanism to send your queries to the best underlying language model.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because of my poor experience with ChatLLM Custom Agents, I really haven't bothered to try out DeepAgent, Tasks or Apps. These new features may be worth some experimentation if I were a reviewer or YouTube AI influencer, but my focus is on getting work done. When you're running a business, you rarely have time to play with new things, and I feel that Abacus.AI wasted my time with Custom Agents.&lt;/p&gt;
&lt;p&gt;Projects and RouteLLM are different though. They're built-in improvements to the chat interface and are probably my two most favourite ChatLLM additions so I'll spend a bit of time talking about them.&lt;/p&gt;
&lt;h4 id="chatllm-projects"&gt;ChatLLM Projects&lt;/h4&gt;
&lt;p&gt;This feature is exactly like ChatGPT Projects and there's not much explanation needed here. You can organise chats into folders for easy reference. They're perfect for working on different areas within your business. In some ways, it has replaced ChatLLM's flaky Custom Agents implementation for my needs.&lt;/p&gt;
&lt;p&gt;I'll have different 'agents' in project folders where I copy and paste prompts from old chats to get certain types of work done. For example, I'll have projects for proposals, coding tasks and client needs, like contract review or support requests. Each project can have its own custom instructions and files for context. This is perfect if you want to quickly create a task-specific AI without having to mess around with building an actual agent.&lt;/p&gt;
&lt;h4 id="routellm"&gt;RouteLLM&lt;/h4&gt;
&lt;p&gt;When Abacus.AI first deployed RouteLLM, it was just one model among many alongside GPT, Claude, and Gemini. Now it's the default option. Your chats will go through RouteLLM unless you manually set your model.&lt;/p&gt;
&lt;p&gt;It does a fairly good job of routing your chat to the right model but seems to favour OpenAI's GPT-5. This could be for my own use-cases though. It will sometimes inappropriately route queries to Gemini 2.5 Flash, and I suspect this is Abacus.AI trying to reduce their API costs.&lt;/p&gt;
&lt;p&gt;But what's really great is the &lt;em&gt;Regenerate using&lt;/em&gt; option. If you're not quite happy with a response, or you want to see how a different model will respond, just click the model button underneath. This is a massive time-saver. The alternative would be to switch your session to another model provider or use &lt;em&gt;yet another&lt;/em&gt; service like Boxchat or chatplayground.ai.&lt;/p&gt;
&lt;figure class="figure d-flex flex-column align-items-center mb-4"&gt;
&lt;img src="https://anothercoffee.net/images/posts/why-we-keep-using-chatllm-regenerate.png" alt="ChatLLM custom agents error" title="ChatLLM custom agents error" class="img-fluid"&gt;
&lt;/figure&gt;

&lt;h2 id="is-chatllm-worth-the-price"&gt;Is ChatLLM Worth the Price?&lt;/h2&gt;
&lt;p&gt;Despite all those frustrations, ChatLLM is the AI tool we use most, and this is still the case many months after originally posting this review. The value it provides is just too good to ignore. We've become used to its shortcomings and found ways around its poor interface.&lt;/p&gt;
&lt;p&gt;I've been tempted to re-subscribe to ChatGPT or Claude whenever they release a new model but stopped to think: is it worth the extra expense when they'll be available on ChatLLM within days?&lt;/p&gt;
&lt;p&gt;If you're a small agency or freelancer and you can put up with some friction in exchange for powerful capabilities at an affordable price, ChatLLM is definitely worth looking at. Just don't think you'll get anywhere near a polished experience or helpful support for your $10.&lt;/p&gt;
&lt;h2 id="being-transparent"&gt;Being Transparent&lt;/h2&gt;
&lt;p&gt;I should mention that Abacus.AI is active in advertising through content creators, especially on YouTube. We haven't received anything for this review and I'm simply sharing our experience as paying customers. I genuinely find the tool useful and worth recommending, despite its many problems.&lt;/p&gt;
&lt;h2 id="give-it-a-try"&gt;Give It a Try&lt;/h2&gt;
&lt;p&gt;If you're curious about what ChatLLM might do for your business, I think it's worth trying for the price of a couple of cups of coffee. Use &lt;a href="https://chatllm.abacus.ai/ZyjcktrvCW" target="_blank" rel="nofollow noopener noreferrer"&gt;our referral link here&lt;/a&gt;. &lt;span class="text-muted"&gt;(We'll get $5 if you sign up but they don't say what you'll get. Probably nothing.)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I certainly won't call myself an Abacus.AI fan, but I do think other small agencies and freelancers might benefit greatly from this tool, warts and all. For us, the trade-offs have been worth the price and like any tool, what matters is whether it fits your specific needs and how you work. ChatLLM definitely isn't perfect, but it's been really useful for us so for the price, you'll lose very little to find out if it works for you too.&lt;/p&gt;
&lt;div class="button-container mt-4 mb-2"&gt;
  &lt;a href="https://chatllm.abacus.ai/ZyjcktrvCW" target="_blank" rel="nofollow noopener noreferrer" class="btn btn-primary text-white mr-3"&gt;
    Try ChatLLM Now
  &lt;/a&gt;
&lt;/div&gt;

&lt;p class="text-center text-muted small mb-4"&gt;
    Use our referral link to try ChatLLM.
&lt;/p&gt;

&lt;hr&gt;

&lt;section class="mt-4 pt-4"&gt;
    &lt;h3&gt;You may also like&lt;/h3&gt;

    &lt;div class="row"&gt;

        &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://migratecontent.com/drupal-to-wordpress-migration-guide/"&gt;
                        &lt;img src="https://anothercoffee.net/images/drupal-to-wordpress-migration-utilities-featured.jpg" class="card-img-top" alt="Drupal to WordPress Migration Guide"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://migratecontent.com/drupal-to-wordpress-migration-guide/" class="listtitle"&gt;Drupal to WordPress Migration Guide&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2025-01-03T15:30:30Z" title="Updated for 2025"&gt;Updated for 2025&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;
                    &lt;p class="card-text flex-grow-1"&gt;In this guide, you'll find insights drawn from almost 15 years of specialising in complex Drupal to WordPress migration projects. I'll walk you through the entire migration process, from the initial evaluation to post-launch considerations.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
        &lt;div class="card h-100"&gt;
              &lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/"&gt;
                      &lt;img src="https://anothercoffee.net/images/a-west-london-micro-agencys-journey-to-ai-featured.jpg" class="card-img-top" alt="Still Alive: A Micro Agency's 20 Year Journey"&gt;&lt;/a&gt;
              &lt;div class="card-body d-flex flex-column"&gt;
                  &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/" class="listtitle"&gt;Still Alive: A Micro Agency's 20 Year Journey&lt;/a&gt;&lt;/h4&gt;
                  &lt;div class="mb-2"&gt;
                      &lt;span&gt;&lt;time class="listdate" datetime="2024-10-15T15:28:15Z" title="15 October 2024"&gt;15 October 2024&lt;/time&gt;&lt;/span&gt;
                  &lt;/div&gt;

                      &lt;p class="card-text flex-grow-1"&gt;This article will be the first in a series where I'll share how Artificial Intelligence has reshaped how we operate at Another Cup of Coffee.&lt;/p&gt;
              &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;!--
      &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
        &lt;div class="card h-100"&gt;
              &lt;a href="/still-alive-a-micro-agencys-20-year-journey/"&gt;
                      &lt;img src="/images/a-west-london-micro-agencys-journey-to-ai-featured.jpg" class="card-img-top" alt="Still Alive: A Micro Agency's 20 Year Journey"&gt;&lt;/a&gt;
              &lt;div class="card-body d-flex flex-column"&gt;
                  &lt;h3 class="card-title"&gt;&lt;a href="/still-alive-a-micro-agencys-20-year-journey/" class="listtitle"&gt;Still Alive: A Micro Agency's 20 Year Journey&lt;/a&gt;&lt;/h3&gt;
                  &lt;div class="mb-2"&gt;
                      &lt;span&gt;&lt;time class="listdate" datetime="2024-10-15T15:28:15Z" title="15 October 2024"&gt;15 October 2024&lt;/time&gt;&lt;/span&gt;
                  &lt;/div&gt;

                      &lt;p class="card-text flex-grow-1"&gt;This article will be the first in a series where I'll share how Artificial Intelligence has reshaped how we operate at Another Cup of Coffee.&lt;/p&gt;
              &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    --&gt;
            &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
          &lt;div class="card h-100"&gt;
              &lt;a href="https://anothercoffee.net/secure-your-ai-workflow-using-local-tokenisation/"&gt;
                      &lt;img src="https://anothercoffee.net/images/Secure-your-AI-workflow-using-local-tokenisation-in-PaigeSafe-featured.jpg" class="card-img-top" alt="Secure Your AI Workflow Using Local Tokenisation"&gt;&lt;/a&gt;
              &lt;div class="card-body d-flex flex-column"&gt;
                  &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/secure-your-ai-workflow-using-local-tokenisation/" class="listtitle"&gt;Secure Your AI Workflow Using Local Tokenisation&lt;/a&gt;&lt;/h4&gt;
                  &lt;div class="mb-2"&gt;
                      &lt;span&gt;&lt;time class="listdate" datetime="2024-11-12T13:59:03Z" title="12 November 2024"&gt;12 November 2024&lt;/time&gt;&lt;/span&gt;
                  &lt;/div&gt;

                      &lt;p class="card-text flex-grow-1"&gt;Don't leak confidential client data when using cloud-based LLMs. Secure your AI workflow with local tokenisation using PaigeSafe.&lt;/p&gt;
              &lt;/div&gt;
          &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

&lt;/section&gt;</description><category>Agency</category><category>AI</category><category>LLM</category><category>Operations</category><category>Productivity</category><category>Tools</category><category>Utilities</category><category>Workflow</category><guid>https://anothercoffee.net/why-we-keep-using-chatllm/</guid><pubDate>Mon, 20 Jan 2025 12:45:15 GMT</pubDate></item><item><title>Still Alive: A Micro Agency's 20 Year Journey - Part 2</title><link>https://anothercoffee.net/still-alive-part2-balance/</link><dc:creator>Anthony Lopez-Vito</dc:creator><description>&lt;figure&gt;&lt;img src="https://anothercoffee.net/images/a-west-london-micro-agencys-journey-p2-og-1200x630.jpg"&gt;&lt;/figure&gt; &lt;p&gt;&lt;em&gt;In Part 1 of &lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/"&gt;Still Alive: A Micro Agency's 20 Year Journey&lt;/a&gt;, I reflected on Another Cup of Coffee's journey from a one-person freelancer operation running from a rented mailbox address, to setting up in a trendy unit Westbourne Studios. Here I recount the initial challenges we faced as an agency and how we survived by transforming the way we worked.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="finding-a-balance-growth-and-resources"&gt;Finding a Balance: Growth and Resources&lt;/h2&gt;
&lt;p&gt;A few doors down sat what I wanted for our future. It was a large and successful media agency staffed with very confident ex-BBC people. They had loads of sales reps and account managers. I think it was among the first generation of the global web agencies we have today.&lt;/p&gt;
&lt;p&gt;The founder was famous in our circles for saying that he didn't bother getting out of bed for less than £30,000. That amount is common for web projects now but saying this in the early 2000s was quite grandiose and flamboyant. Though we were charging a fraction of their rates, I imagined someday reaching their scale.&lt;/p&gt;
&lt;aside class="pullquote"&gt;
  &lt;blockquote class="blockquote text-center red p-0"&gt;
    &lt;p&gt;I envisaged scaling to a large agency but we were caught in a classic trap. None of us were sales people and we struggled to balance resources.&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/aside&gt;

&lt;p&gt;However, running a small web agency in London is challenging to say the least and scaling was the biggest problem. We were too small for large projects, but small projects wouldn't pay for growth. It was a classic trap.&lt;/p&gt;
&lt;h3 id="sell-and-keep-selling"&gt;Sell and Keep Selling?&lt;/h3&gt;
&lt;p&gt;Looking back, I think the key to growing an agency of any size is to just sell. Sell and keep selling even if you're not sure you can deliver. This is why the large agency had so many sales and account managers. Other agencies I've observed over the years seem to have grown in this way: they are sales-heavy and make lots of nice promises. But I've never been comfortable with making promises unless I'm sure of them so our growth remained stunted.&lt;/p&gt;
&lt;p&gt;Meanwhile, our office space wasn't really free. It came with a heavy cost in the form of commitments that took my time away from building the business. The elephant in the room wasn't that big agency but our premature attempt at playing big.&lt;/p&gt;
&lt;p&gt;It couldn't be ignored for very long as I struggled to bring in the right projects to ensure everyone was paid. It became clear that the traditional office setup wasn't sustainable and I had to make some difficult choices, quickly.&lt;/p&gt;
&lt;h3 id="transforming-into-a-cloud-first-virtual-agency"&gt;Transforming Into a Cloud-first Virtual Agency&lt;/h3&gt;
&lt;figure class="figure d-flex flex-column align-items-center"&gt;
&lt;img src="https://anothercoffee.net/images/posts/westbourne-studios-goodbye.jpg" alt="Empty unit at Westbourne Studios" title="Goodbye Westbourne Studios" class="img-fluid" style="max-width: 100%; height: auto;"&gt;
&lt;figcaption class="figure-caption text-center mt-2"&gt;Goodbye Westbourne Studios&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Survival often means letting go of how you imagine things should be. Our biggest advantage was that we were scrappy and nimble so I decided to use it. We didn't actually need a trendy office and everyone was more productive without the daily commute into West London.&lt;/p&gt;
&lt;p&gt;Within a couple of weeks of making the decision, we transformed into a cloud-first operation. I also hired more freelancer friends from the Philippines to fill our skills gap. Suddenly, Another Cup of Coffee was a fully remote virtual agency, years before the concept became popular.&lt;/p&gt;
&lt;h3 id="digital-nomad-and-prevailing"&gt;Digital Nomad and Prevailing&lt;/h3&gt;
&lt;p&gt;Being cloud-first and remote meant that I could do the digital nomad thing for a while too, working out of all sorts of unconventional places. This opened up the opportunity to pick up clients globally. Even now, the majority of our projects come from outside the UK.&lt;/p&gt;
&lt;!--
&lt;figure class="figure d-flex flex-column align-items-center"&gt;
&lt;img src="/images/posts/digital-nomad-philippines.jpg"
    alt="Photo a palm tree offering the only spot for internet access"
    title="Life as a digital nomad - the constant search for internet access"
        class="img-fluid" 
        style="max-width: 100%; height: auto;"&gt;
&lt;figcaption class="figure-caption text-center mt-2"&gt;Life as a digital nomad - the constant search for internet access&lt;/figcaption&gt;
&lt;/figure&gt;
--&gt;
&lt;p&gt;Karl and Pafsanias moved on to other—almost certainly greener—pastures but by then we'd evolved into a collective of remote colleagues, forming teams as projects demanded. This lean and agile model allowed us to weather storms that have since sunk many of our contemporaries.&lt;/p&gt;
&lt;p&gt;I can say with some sense of accomplishment that Another Cup of Coffee has outlasted all three of the ventures who shared our unit, and also that large agency I'd once admired. The key was our ability to try out different ways of working. The founders quite possibly sold the business and exited with large bonuses, but I'm after something different: an establishment that can be handed to another generation. (More about this will follow in another post.)&lt;/p&gt;
&lt;h2 id="moving-towards-specialisation"&gt;Moving Towards Specialisation&lt;/h2&gt;
&lt;p&gt;Our early advantages began to fade as remote work became mainstream and sites like Elance and oDesk gave even small businesses access to global talent. This rise in cross-border competition made it difficult to stand out by only offering general website services, and even our strong relationships with existing clients wouldn't guarantee the cash flow needed to keep the business afloat.&lt;/p&gt;
&lt;p&gt;At the same time, &lt;a href="https://migratecontent.com/drupal-the-dreaded-cms/"&gt;Drupal's growing complexity&lt;/a&gt; turned maintenance into a huge drain on resources. Again it was time to adapt and the answer came from an unexpected direction.&lt;/p&gt;
&lt;p&gt;I'd spotted a need for content migrations, specifically &lt;a href="https://anothercoffee.net/drupal-to-wordpress-migration-service/" title="Drupal to WordPress Migration Service
"&gt;from Drupal to WordPress&lt;/a&gt;, and built up an expertise in data-heavy web projects. It was unglamorous and mundane engine-room work so few agencies were interested in training up their talent for such a niche skill.&lt;/p&gt;
&lt;figure class="figure d-flex flex-column align-items-center"&gt;
&lt;img src="https://anothercoffee.net/images/drupal-to-wordpress-migration-tool-screenshot.jpg" alt="Screenshot of our Drupal to WordPress Migration Tool" title="Drupal to WordPress Migration Tool" class="img-fluid" style="max-width: 100%; height: auto;"&gt;
&lt;figcaption class="figure-caption text-center mt-2"&gt;Version 1 of our custom-built Drupal to WordPress Migration Tool&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id="leaning-into-your-nature"&gt;Leaning Into Your Nature&lt;/h3&gt;
&lt;p&gt;But it was necessary work that happened to fit my meticulous nature and long experience with databases. Further, businesses were beginning to realise the value of data and content while most of our colleagues were focused on dazzling user experiences. Data was our differentiator.&lt;/p&gt;
&lt;p&gt;Another Cup of Coffee shifted to becoming a boutique data migration consultancy with myself as principal consultant supported by a few freelancers. Unexpectedly, I became a pioneer of &lt;a href="https://anothercoffee.net/drupal-to-wordpress-migration-service/"&gt;Drupal to WordPress migration services&lt;/a&gt; and was recommended by WP Engine in a &lt;a href="https://wpengine.com/wp-content/uploads/2017/02/WP-WP-MigratingfromDrupalToWordPress-05-PUB.pdf" target="_blank" rel="nofollow noopener noreferrer"&gt;whitepaper guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This ultra-narrow specialisation gave Another Cup of Coffee a much-needed distinction for almost ten years. Run a web search now and you'll see many solutions and services for content migrations but we were one of the first.&lt;/p&gt;
&lt;aside class="pullquote"&gt;
  &lt;blockquote class="blockquote text-center red p-0"&gt;
    &lt;p&gt;Ultra-narrow specialisation gave us a differentiator in a crowded marketplace. Willingness to change helped us survive when confronted by something new.&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/aside&gt;

&lt;h2 id="looking-forward"&gt;Looking Forward&lt;/h2&gt;
&lt;p&gt;Since those early days, we've kept evolving alongside shifts in technology and ways of working. I can't claim that any of it was planned but I can say we've always been willing to change, just slightly ahead of our peers. Throughout this journey, I've learned that survival isn't about being the biggest or the most innovative. You survive by keeping customers happy and watching out for dust on the horizon, ready to move before a stampede arrives. &lt;/p&gt;
&lt;p&gt;We once embraced virtual offices, the cloud-first paradigm and global remote working before they were common. Now we find ourselves very suddenly confronted by something new. I think it's obvious that AI will be disrupting our lives in ways that will be hard to avoid. It's again time to learn to adapt just as we always have.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is the first in a series of posts about our journey and &lt;a href="https://anothercoffee.net/categories/ai/" title="Posts "&gt;how we're adapting to Artificial Intelligence in our lives&lt;/a&gt;. I do hope you'll follow along with me as I share what I've learned.&lt;/em&gt;&lt;/p&gt;
&lt;iframe class="youtube-video" src="https://www.youtube.com/embed/Y6ljFaKRTrI?si=_Gya4JdG9wtHzYeT" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;

&lt;p class="text-muted"&gt;'Still Alive' from the &lt;a href="https://theportalwiki.com/wiki/Main_Page" target="_blank" rel="nofollow noopener noreferrer"&gt;Portal&lt;/a&gt; game credits. I never played the game but I've always enjoyed the sound and lyrics.&lt;/p&gt;

&lt;section class="mt-4 pt-4"&gt;
    &lt;h3&gt;You may also like&lt;/h3&gt;

    &lt;div class="row"&gt;

      &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
        &lt;div class="card h-100"&gt;
              &lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/"&gt;
                      &lt;img src="https://anothercoffee.net/images/a-west-london-micro-agencys-journey-to-ai-featured.jpg" class="card-img-top" alt="Still Alive: A Micro Agency's 20 Year Journey"&gt;&lt;/a&gt;
              &lt;div class="card-body d-flex flex-column"&gt;
                  &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/" class="listtitle"&gt;Still Alive: A Micro Agency's 20 Year Journey&lt;/a&gt;&lt;/h4&gt;
                  &lt;div class="mb-2"&gt;
                      &lt;span&gt;&lt;time class="listdate" datetime="2024-10-15T15:28:15Z" title="15 October 2024"&gt;15 October 2024&lt;/time&gt;&lt;/span&gt;
                  &lt;/div&gt;

                      &lt;p class="card-text flex-grow-1"&gt;This article will be the first in a series where I'll share how Artificial Intelligence has reshaped how we operate at Another Cup of Coffee.&lt;/p&gt;
              &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;

            &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
          &lt;div class="card h-100"&gt;
              &lt;a href="https://anothercoffee.net/secure-your-ai-workflow-using-local-tokenisation/"&gt;
                      &lt;img src="https://anothercoffee.net/images/Secure-your-AI-workflow-using-local-tokenisation-in-PaigeSafe-featured.jpg" class="card-img-top" alt="Secure Your AI Workflow Using Local Tokenisation"&gt;&lt;/a&gt;
              &lt;div class="card-body d-flex flex-column"&gt;
                  &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/secure-your-ai-workflow-using-local-tokenisation/" class="listtitle"&gt;Secure Your AI Workflow Using Local Tokenisation&lt;/a&gt;&lt;/h4&gt;
                  &lt;div class="mb-2"&gt;
                      &lt;span&gt;&lt;time class="listdate" datetime="2024-11-12T13:59:03Z" title="12 November 2024"&gt;12 November 2024&lt;/time&gt;&lt;/span&gt;
                  &lt;/div&gt;

                      &lt;p class="card-text flex-grow-1"&gt;Don't leak confidential client data when using cloud-based LLMs. Secure your AI workflow with local tokenisation using PaigeSafe.&lt;/p&gt;
              &lt;/div&gt;
          &lt;/div&gt;
      &lt;/div&gt;

        &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://migratecontent.com/drupal-7-docker-containers-migration-projects/"&gt;
                        &lt;img src="https://anothercoffee.net/images/posts/Drupal-Docker-Containers-card-300-150.jpg" class="card-img-top" alt="How To Set Up Drupal 7 Docker Containers for Migration Projects"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://migratecontent.com/drupal-7-docker-containers-migration-projects/" class="listtitle"&gt;How To Set Up Drupal 7 Docker Containers for Migration Projects&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2024-09-09T13:25:15Z" title="09 September 2024"&gt;09 September 2024&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;

                        &lt;p class="card-text flex-grow-1"&gt;Learn how Docker is a valuable tool for Drupal 7 end of life migrations. In this post, I'll give a step-by-step guide to setting up a Drupal 7 container for your migration project.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;

&lt;/section&gt;

&lt;div class="mt-4 pt-4 text-muted small border-top border-bottom"&gt;
    &lt;h3 class="text-muted small"&gt;Footnotes&lt;/h3&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;p&gt;Featured image photo by &lt;a href="https://unsplash.com/@nueni74?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash" target="_blank" rel="nofollow noopener noreferrer"&gt;Lil Mayer&lt;/a&gt;.
      &lt;/p&gt;&lt;/li&gt;
        &lt;li&gt;Still Alive is by Jonathan Coulton. The official video with Sara Quin and Dorit Chrysler can be &lt;a href="https://www.youtube.com/watch?v=RSsstXfcRWw" target="_blank" rel="nofollow noopener noreferrer"&gt;found here&lt;/a&gt;.&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;</description><category>About Us</category><category>Agency</category><category>AI</category><category>Business</category><category>LLM</category><category>Operations</category><category>Startups</category><category>Workflow</category><guid>https://anothercoffee.net/still-alive-part2-balance/</guid><pubDate>Thu, 14 Nov 2024 15:28:15 GMT</pubDate></item><item><title>Secure Your AI Workflow Using Local Tokenisation</title><link>https://anothercoffee.net/secure-your-ai-workflow-using-local-tokenisation/</link><dc:creator>Anthony Lopez-Vito</dc:creator><description>&lt;figure&gt;&lt;img src="https://anothercoffee.net/images/Secure-your-AI-workflow-using-local-tokenisation-in-PaigeSafe-featured.jpg"&gt;&lt;/figure&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;Secure your AI workflow with local tokenisation. PaigeSafe is a lightweight tool perfect for small agencies and freelancers handling sensitive client data in ChatGPT, Claude and other AI tools.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you've spent any time at all using cloud-based LLMs like ChatGPT or Claude for client work, you've probably had that voice in the back of your head kick in: &lt;em&gt;"Should I really be pasting this into a chat?"&lt;/em&gt; I'm sure that moment of hesitation is all too familiar for those who have started to integrate AI into work workflows.&lt;/p&gt;
&lt;p&gt;Every day, many of us paste sensitive content into AI tools—client data, business strategies, internal documents—often without really thinking about where that information ends up. That data potentially becomes part of training sets, risking leaks by cropping up in future chats with other users. For freelancers and small agencies handling confidential client work, Large Language Models (LLMs) create a real dilemma. They're too useful to avoid but carefully sanitising content is a real chore.&lt;/p&gt;
&lt;p&gt;Enterprises solve this with expensive solutions which are overkill and far too expensive for the rest of us. Those who want to take advantage of LLMs have been left with carefully reading through documents and running manual search and replace for names and numbers. This is tedious, error-prone and still stands a high likelihood of data leaks. Unfortunately, taking unnecessary risks with client data, spending ages on manual anonymisation, or avoiding AI tools altogether when working with sensitive information is no longer a good option to remain competitive.&lt;/p&gt;
&lt;h3 id="introducing-the-paigesafe-document-security-tool"&gt;Introducing the PaigeSafe Document Security Tool&lt;/h3&gt;
&lt;p&gt;&lt;img alt="Screenshot of PaigeSafe" src="https://anothercoffee.net/images/PaigeSafe-Tokenize-Text.jpg"&gt;&lt;/p&gt;
&lt;p&gt;PaigeSafe is a document security tool that helps protect your confidential information when using Large Language Models (LLMs) like ChatGPT and Claude. It uses the process of tokenisation by replacing sensitive data with non-sensitive placeholders. We originally built it as an in-house tool because we faced these exact same challenges. As a small team, we needed something that just worked without the expensive licenses and high learning curve.&lt;/p&gt;
&lt;p&gt;PaigeSafe is currently in the prototyping stage to test if there is demand for this type of utility. It offers basic functionality, and the code lacks robust error checking. However, since it is intended to be run locally, there is minimal risk to your documents. All it does is offer a convenient way to search and replace text before you paste or upload sensitive text to LLMs. I regularly use it to sanitise my own documents.&lt;/p&gt;
&lt;h3 id="uses-and-limitations"&gt;Uses and Limitations&lt;/h3&gt;
&lt;p&gt;PaigeSafe does not try to offer an enterprise solution for those who need to meet strict compliance regulations. Here's where it fits in the document security landscape:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Perfect for&lt;/strong&gt;: Freelancers, small agencies, independent developers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Good for&lt;/strong&gt;: Regular business documents, client communications, project data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Not for&lt;/strong&gt;: Banking systems, medical records, top-secret government files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;PaigeSafe is a lightweight tool that helps you avoid accidentally exposing sensitive information to AI models. If you're handling typical client work like website data, marketing plans, business strategies, and project specs, this solution is for you. It's perfect for those, "I need to run this past ChatGPT but shouldn't share the client's name" moments. Or when you want to analyze customer feedback without exposing individual identities.&lt;/p&gt;
&lt;p&gt;If you work for a financial institution, healthcare provider, or government contractor, this solutions of course will not be for you.&lt;/p&gt;
&lt;h3 id="where-to-find-it"&gt;Where to Find it&lt;/h3&gt;
&lt;p&gt;The tool is built using Python and the Streamlit framework but if you use Docker, it can be easily installed by pulling the PaigeSafe image from Docker Hub. For more information, please visit the dedicated site at &lt;a href="https://paigesafe.com/"&gt;paigesafe.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Remember that it is still very much an early prototype but more useful features will follow. Please send feedback to &lt;a href="mailto:paigesafe@anothercoffee.net"&gt;paigesafe@anothercoffee.net&lt;/a&gt;&lt;/p&gt;
&lt;div class="container my-4 p-4 border bg-light text-center"&gt;
    &lt;h4 class="grid-heading text-center mb-3"&gt;How to install PaigeSafe&lt;/h4&gt;
    &lt;p&gt;Find out how to install the prototype application by following the instructions on the PaigeSafe website.&lt;/p&gt;
    &lt;button type="button" class="btn btn-primary"&gt;&lt;a href="https://paigesafe.com"&gt;Install PaigeSafe&lt;/a&gt;&lt;/button&gt;
&lt;/div&gt;

&lt;hr&gt;

&lt;section class="mt-4 pt-4"&gt;
    &lt;h3&gt;You may also like&lt;/h3&gt;

    &lt;div class="row"&gt;

      &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://migratecontent.com/drupal-7-end-of-life-why-wordpress-is-the-best-migration-option/"&gt;
                        &lt;img src="https://anothercoffee.net/images/posts/drupal-7-end-of-life-why-wordpress-is-the-best-migration-option-300x150.jpg" class="card-img-top" alt="Drupal 7 End of Life: Why WordPress is the Best Migration Option for Lower Maintenance Sites"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://migratecontent.com/drupal-7-end-of-life-why-wordpress-is-the-best-migration-option/" class="listtitle"&gt;Drupal 7 End of Life: Why WordPress is the Best Migration Option for Lower Maintenance Sites&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2024-12-17T14:25:15Z" title="17 December 2024"&gt;17 December 2024&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;

                        &lt;p class="card-text flex-grow-1"&gt;Drupal 7 support ends January 2025. Discover why WordPress is the cost-effective, user-friendly CMS for small agencies, freelancers, and businesses.&lt;/p&gt;

                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

      &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/"&gt;
                        &lt;img src="https://anothercoffee.net/images/a-west-london-micro-agencys-journey-to-ai-featured.jpg" class="card-img-top" alt="Still Alive: A Micro Agency's 20 Year Journey"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/" class="listtitle"&gt;Still Alive: A Micro Agency's 20 Year Journey&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2024-10-15T15:28:15Z" title="15 October 2024"&gt;15 October 2024&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;

                        &lt;p class="card-text flex-grow-1"&gt;This article will be the first in a series where I'll share how Artificial Intelligence has reshaped how we operate at Another Cup of Coffee.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://migratecontent.com/drupal-7-docker-containers-migration-projects/"&gt;
                        &lt;img src="https://anothercoffee.net/images/posts/Drupal-Docker-Containers-card-300-150.jpg" class="card-img-top" alt="How To Set Up Drupal 7 Docker Containers for Migration Projects"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://migratecontent.com/drupal-7-docker-containers-migration-projects/" class="listtitle"&gt;How To Set Up Drupal 7 Docker Containers for Migration Projects&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2024-09-09T13:25:15Z" title="09 September 2024"&gt;09 September 2024&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;

                        &lt;p class="card-text flex-grow-1"&gt;Learn how Docker is a valuable tool for Drupal 7 end of life migrations. In this post, I'll give a step-by-step guide to setting up a Drupal 7 container for your migration project.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;

&lt;/section&gt;</description><category>AI</category><category>Confidentiality</category><category>LLM</category><category>Operations</category><category>Privacy</category><category>Security</category><category>Workflow</category><guid>https://anothercoffee.net/secure-your-ai-workflow-using-local-tokenisation/</guid><pubDate>Tue, 12 Nov 2024 13:59:03 GMT</pubDate></item><item><title>Still Alive: A Micro Agency's 20 Year Journey</title><link>https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/</link><dc:creator>Anthony Lopez-Vito</dc:creator><description>&lt;figure&gt;&lt;img src="https://anothercoffee.net/images/a-west-london-micro-agencys-journey-to-ai-og-1200x630.jpg"&gt;&lt;/figure&gt; &lt;p&gt;Recently I was handing over tasks to an AI when it struck me how much my work has changed. It's been two years since &lt;a href="https://openai.com/index/chatgpt/" target="_blank" rel="nofollow noopener noreferrer"&gt;OpenAI released&lt;/a&gt; ChatGPT-3.5 but things were so different when I first started Another Cup of Coffee. One of my biggest problems, almost twenty years ago, was figuring out how I'd hire skilled people with no budget. Now I'm learning to understand how to use something that's been trained on all the world's knowledge, while paying less than the price of lunch.&lt;/p&gt;
&lt;aside class="pullquote"&gt;
  &lt;blockquote class="blockquote text-center red p-0"&gt;
    &lt;p&gt;Another Cup of Coffee has never positioned itself as a trailblazer but over the past two decades, our approach has positioned us to adapt to industry shifts while ensuring that our clients remain happy.&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/aside&gt;

&lt;p&gt;This change is astounding so I thought to reflect on our journey. I'd like to tell the story of building Another Cup of Coffee from a one-person operation to a survivor of multiple technological revolutions. It's a story about the decisions, both good and bad, that led to where we are now. Most of all, it's about learning to adapt before a shift in paradigm.&lt;/p&gt;
&lt;p&gt;I'd like to share this now because I believe the developments in Artificial Intelligence have brought us to another turning point. It's once again time to adjust to new ways of working. Before I get into that, I think it's important to look back on the past to understand how we got here.&lt;/p&gt;
&lt;h2 id="finding-our-path"&gt;Finding Our Path&lt;/h2&gt;
&lt;p&gt;Another Cup of Coffee has never positioned itself as a trailblazer. It was founded on the principles of reliability, technical expertise and long-term client support. We focus on the behind-the-scenes work so that our &lt;a href="https://anothercoffee.net/about/" title="About Another Cup of Coffee"&gt;clients can shine&lt;/a&gt;. And while we don't try to be the first to adopt every new trend, we have found there's value in selecting tools and methods that make our services better.&lt;/p&gt;
&lt;p&gt;Over the past two decades, our approach has positioned us to adapt to industry shifts while ensuring that our clients remain happy with the core of what we do for them. This philosophy was a counterpoint to the early days of the web which was an experimental and somewhat chaotic scramble to try new technologies.&lt;/p&gt;
&lt;h2 id="the-early-web"&gt;The Early Web&lt;/h2&gt;
&lt;p&gt;The web was very different in the '90s. I remember moving out of the comfortable walled garden of CompuServe into the wild web—and being completely underwhelmed. It was &lt;em&gt;slow&lt;/em&gt;, even after upgrading to a blazingly fast 28.8K modem.&lt;/p&gt;
&lt;p&gt;Browsing sites on NCSA Mosaic was confusing too but we netizens soon understood the Net to be a place without rules. And if you wanted something, you had to build it, so we did. We hand coded sites in Notepad, Vi, FrontPage or HotDog. (Some of you must &lt;a href="https://www.webdesignmuseum.org/software/hotdog-1-0-in-1995" target="_blank" rel="nofollow noopener noreferrer"&gt;remember HotDog&lt;/a&gt;, right?) We built and experimented and figured things out as we went along.&lt;/p&gt;
&lt;figure class="figure d-flex flex-column align-items-center"&gt;
&lt;img src="https://anothercoffee.net/images/posts/hotdog-1-0-12.png" alt="Screenshot of HotDog 1.0 web editor" title="Screenshot of HotDog 1.0 web editor" class="img-fluid" style="max-width: 100%; height: auto;"&gt;
&lt;figcaption class="figure-caption text-center mt-2"&gt;HotDog 1.0 web editor released in 1995&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;After university, I landed jobs working on mobile data synchronisation, building online communities, web databases, and rolling out the first mobile services. These concepts are taken for granted now but they were pioneering back then. People quickly integrated new technologies into their business and personal life, opening up different approaches for accomplishing everyday tasks.&lt;/p&gt;
&lt;h2 id="starting-out-as-a-freelancer"&gt;Starting Out as a Freelancer&lt;/h2&gt;
&lt;p&gt;It was exciting work but I liked doing things my own way and set out as a freelancer in the early 2000s. I wore whichever hat would get work: technology analyst, database developer, systems administrator, network engineer, and of course, 'webmaster' (how quaint). Remote work wasn't a thing yet, so legitimacy meant having a proper business address.&lt;/p&gt;
&lt;aside class="pullquote"&gt;
  &lt;blockquote class="blockquote text-center red p-0"&gt;
    &lt;p&gt;The early web was about experimenting and figuring things out as we went along. Eventually, technology matured but that didn't prevent some obvious business mistakes.&lt;/p&gt;
  &lt;/blockquote&gt;
&lt;/aside&gt;

&lt;p&gt;People would blag desks from friends' businesses or pay for expensive serviced office space. I chose the quick and easy route: a rented mailbox address in Gloucester Road, London. Just a block away from the tube station and a short walk from Kensington Palace, it sounded legit and swanky! But no, by necessity I was working from home and operating a virtual office before it was the norm.&lt;/p&gt;
&lt;h2 id="fresh-coffee-and-trendy-peers"&gt;Fresh Coffee and Trendy Peers&lt;/h2&gt;
&lt;p&gt;After a few years as a solo freelancer, I realised that having a team behind me was necessary to take on more ambitious projects. When Another Cup of Coffee was formally established in 2006, it was a natural continuation of those freelancer years but with a more structured agency approach. The aim was to offer fully-functional but reasonably priced websites to small businesses, using a set of ready-built tools and an emphasis on customer service.&lt;/p&gt;
&lt;p&gt;Many developers were still rolling their own custom solutions. They retained the do-it-yourself mindset of the early web and didn't realise that open source Content Management Systems had matured enough to offer production-ready web platforms. WordPress was still mostly a blogger tool so I chose Drupal because of its flexible content structure and growing module ecosystem. We offered complete web solutions at a fraction of the cost and development time needed by most other agencies.&lt;/p&gt;
&lt;h3 id="westbourne-studios"&gt;Westbourne Studios&lt;/h3&gt;
&lt;p&gt;I set up in a client's spare meeting room in the trendy Westbourne Studios, near London's famous Portobello Road Market. Westbourne Studios was a space popular with creatives, musicians and media professionals which, after hours, transformed into one of Notting Hill's most popular nightclubs.&lt;/p&gt;
&lt;p&gt;In exchange for free office space, I handled project management for the host company. We shared the unit with three other micro agencies in the cool creative media arena so as techs, we were somewhat out of place.&lt;/p&gt;
&lt;figure class="figure d-flex flex-column align-items-center"&gt;
&lt;img src="https://anothercoffee.net/images/posts/westbourne-studios-w1200.jpg" alt="Westbourne Studios in the early 2000s" title="Potato phone photos of Westbourne Studios in the early 2000s" class="img-fluid" style="max-width: 100%; height: auto;"&gt;
&lt;figcaption class="figure-caption text-center mt-2"&gt;Potato phone photos of Westbourne Studios in the early 2000s&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Our initial team was small but promising. My friend Lan handled technical support; Karl, a colleague I befriended from my first job out of university, took care of development; Pafsanias, a brilliant fresh graduate who responded to my Gumtree job ad, created the front-end eye candy; Benjor, another friend who ran a small design studio in the Philippines, was our remote designer. I focused on project and account management while trying to build up the business. Claire (not her real name) was in charge of sales. &lt;/p&gt;
&lt;h3 id="early-mistakes"&gt;Early Mistakes&lt;/h3&gt;
&lt;p&gt;We all gelled personally but I learned an expensive lesson with Claire. You see, she couldn't actually sell. Claire was a photographer looking for side work, and I thought her outgoing personality would make up for inexperience.&lt;/p&gt;
&lt;p&gt;I was wrong. You need the right type of person in sales and she wasn't that person. It was my mistake. Perhaps I was motivated by the need to fit in with the other creatives in the building but in any case, it was a bad hire on my part. I really should have driven sales but I wasn't a salesperson either.&lt;/p&gt;
&lt;p&gt;My mistake with sales was one of several that would lead to problems balancing growth and resources. In &lt;a href="https://anothercoffee.net/still-alive-part2-balance"&gt;Part 2&lt;/a&gt;, I recount the initial challenges we faced as an agency and how we survived by transforming the way we worked.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This is the first in a series of posts about our journey and how we're adapting to Artificial Intelligence in our lives. I do hope you'll follow along with me as I share what I've learned.&lt;/em&gt;&lt;/p&gt;
&lt;section class="mt-4 pt-4"&gt;
    &lt;h3&gt;Related posts&lt;/h3&gt;

    &lt;div class="container my-4 p-4 border bg-light text-center"&gt;
        &lt;h4 class="grid-heading text-center mb-3"&gt;Still Alive: A Micro Agency's 20 Year Journey - Part 2&lt;/h4&gt;
        &lt;p&gt;In &lt;a href="https://anothercoffee.net/still-alive-part2-balance/" title="Still Alive: A Micro Agency's 20 Year Journey - Part 2"&gt;Part 2&lt;/a&gt; of &lt;em&gt;Still Alive: A Micro Agency's 20 Year Journey&lt;/em&gt;, I recount the initial challenges we faced as an agency and how we survived by transforming the way we worked.&lt;/p&gt;

        &lt;div class="button-container mt-4 mb-2"&gt;
          &lt;a href="https://anothercoffee.net/still-alive-part2-balance/" class="btn btn-primary text-white mr-3"&gt;
            Read Part 2 Now
          &lt;/a&gt;
        &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="row"&gt;
        &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://migratecontent.com/drupal-7-end-of-life-why-wordpress-is-the-best-migration-option/"&gt;
                        &lt;img src="https://anothercoffee.net/images/posts/drupal-7-end-of-life-why-wordpress-is-the-best-migration-option-300x150.jpg" class="card-img-top" alt="Drupal 7 End of Life: Why WordPress is the Best Migration Option for Lower Maintenance Sites"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://migratecontent.com/drupal-7-end-of-life-why-wordpress-is-the-best-migration-option/" class="listtitle"&gt;Drupal 7 End of Life: Why WordPress is the Best Migration Option for Lower Maintenance Sites&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2024-12-17T14:25:15Z" title="17 December 2024"&gt;17 December 2024&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;

                        &lt;p class="card-text flex-grow-1"&gt;Drupal 7 support ends January 2025. Discover why WordPress is the cost-effective, user-friendly CMS for small agencies, freelancers, and businesses.&lt;/p&gt;

                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
          &lt;div class="card h-100"&gt;
              &lt;a href="https://anothercoffee.net/still-alive-part2-balance/"&gt;
                      &lt;img src="https://anothercoffee.net/images/a-west-london-micro-agencys-journey-p2-og-1200x630.jpg" class="card-img-top" alt="Still Alive: A Micro Agency's 20 Year Journey - Part 2"&gt;&lt;/a&gt;
              &lt;div class="card-body d-flex flex-column"&gt;
                  &lt;h4 class="card-title"&gt;&lt;a href="https://anothercoffee.net/still-alive-part2-balance/" class="listtitle"&gt;Still Alive: A Micro Agency's 20 Year Journey - Part 2&lt;/a&gt;&lt;/h4&gt;
                  &lt;div class="mb-2"&gt;
                      &lt;span&gt;&lt;time class="listdate" datetime="2024-11-14T15:28:15Z" title="14 November 2024"&gt;14 November 2024&lt;/time&gt;&lt;/span&gt;
                  &lt;/div&gt;

                      &lt;p class="card-text flex-grow-1"&gt;In Part 2 of 'Still Alive', I recount the initial challenges we faced as an agency and how we survived through transformation into a cloud-first, virtual operation specializing in content migrations.&lt;/p&gt;
              &lt;/div&gt;
          &lt;/div&gt;
      &lt;/div&gt;

        &lt;div class="col-md-6 col-lg-4 mb-4"&gt;
            &lt;div class="card h-100"&gt;
                &lt;a href="https://migratecontent.com/drupal-7-docker-containers-migration-projects/"&gt;
                        &lt;img src="https://anothercoffee.net/images/posts/Drupal-Docker-Containers-card-300-150.jpg" class="card-img-top" alt="How To Set Up Drupal 7 Docker Containers for Migration Projects"&gt;&lt;/a&gt;
                &lt;div class="card-body d-flex flex-column"&gt;
                    &lt;h4 class="card-title"&gt;&lt;a href="https://migratecontent.com/drupal-7-docker-containers-migration-projects/" class="listtitle"&gt;How To Set Up Drupal 7 Docker Containers for Migration Projects&lt;/a&gt;&lt;/h4&gt;
                    &lt;div class="mb-2"&gt;
                        &lt;span&gt;&lt;time class="listdate" datetime="2024-09-09T13:25:15Z" title="09 September 2024"&gt;09 September 2024&lt;/time&gt;&lt;/span&gt;
                    &lt;/div&gt;

                        &lt;p class="card-text flex-grow-1"&gt;Learn how Docker is a valuable tool for Drupal 7 end of life migrations. In this post, I'll give a step-by-step guide to setting up a Drupal 7 container for your migration project.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;

&lt;/section&gt;

&lt;div class="mt-4 pt-4 text-muted small border-top border-bottom"&gt;
    &lt;h3 class="text-muted small"&gt;Footnotes&lt;/h3&gt;
    &lt;ul&gt;
      &lt;li&gt;Featured image photo by &lt;a href="https://unsplash.com/@emilianovittoriosi?utm_content=creditCopyText&amp;amp;utm_medium=referral&amp;amp;utm_source=unsplash" target="_blank" rel="nofollow noopener noreferrer"&gt;Emiliano Vittoriosi&lt;/a&gt;.&lt;/li&gt;
      &lt;li&gt;HotDog 1.0 screenshot from &lt;a href="https://www.webdesignmuseum.org/software/hotdog-1-0-in-1995" target="_blank" rel="nofollow noopener noreferrer"&gt;The Web design Museum&lt;/a&gt;.&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;</description><category>About Us</category><category>Agency</category><category>AI</category><category>Business</category><category>LLM</category><category>Operations</category><category>Startups</category><category>Workflow</category><guid>https://anothercoffee.net/still-alive-a-micro-agencys-20-year-journey/</guid><pubDate>Tue, 15 Oct 2024 15:28:15 GMT</pubDate></item></channel></rss>