That's definitely true, but also in the other direction!
A simple AI agent is often better than an overengineered SaaS. :)
@pmihaylov.bsky.social
eng at Plain, ex-Uber, building stuff with AI and claude code The stuff: - http://claudecontrol.com - http://tinyurl.com/ai-eng-with-go - http://vibegest.com
That's definitely true, but also in the other direction!
A simple AI agent is often better than an overengineered SaaS. :)
Perhaps it needs some more work on the tooling and data access for the agent but it looks like some problems are still best solved by traditional SaaS.
21.10.2025 15:59 ā š 1 š 0 š¬ 2 š 0I tried rebuilding Vibe Jest to be fully agentic, driven by Claude Code instead of any code at all. So far, I haven't had any luck in making it perform well. I managed to get it to a point where it can send me a newsletter email, but the data it curated is not good at all.
21.10.2025 15:59 ā š 0 š 0 š¬ 1 š 0I'm really excited about the new Claude Skills release because it is a significant UX improvement in how agents are built. Suddenly, anyone who can speak English can build an agent. No coding required.
In fact, you can speak to your agent and let it build itself.
I stumbled upon a surprisingly good productivity hack. I set up an agent to run on a cron job, pick Linear tickets at random, and generate a PR for me while I sleep. In the morning, I review it and merge.
AI is literally writing code for me while I sleep
I had to do some evals on an AI agent I built, and turns out Claude Code is very good at running evals. I just told it to run itself with a prompt continuously, find any bugs or issues in the underlying tools which is preventing the agent from performing well, and fix them.
20.10.2025 15:57 ā š 0 š 0 š¬ 0 š 0I've been playing with building AI agents off of various APIs.
What I found is that GraphQL performs significantly better than REST because GraphQL allows you to return the normalised data, whereas REST typically returns IDs and you need to enrich them separately.
Skills are way more effective than MCP tools because they don't bloat the agent's memory. They are persisted and loaded on demand and it seems Claude is fine-tuned to be very aware of them.
20.10.2025 13:57 ā š 0 š 0 š¬ 0 š 0Claude skills made MCP obsolete for me. I was able to build a Linear project manager skill in ~10min by asking claude to browse their docs + claude skills docs and build a new skill for itself.
I no longer need to use the Linear MCP for that.
I just deployed a claude control agent on my server and it can now serve as my devops agent - anytime I need something done on my server, I can just ask it via Slack.
Eg here I wanted to stop a specific docker container for a couple mins and I didn't have to ssh to do it!
Today I asked Claude Control to analyse the system I've deployed and summarise what it does. I couldn't have said it better
13.10.2025 12:56 ā š 0 š 0 š¬ 0 š 0Maintaining docs is tedious and keeping CLAUDE md up to date is part of that. However, this is critical so your coding agent can improve over time for you and your whole team.
Fortunately, this is trivial to do when you can instruct claude to self-document its mistakes.
Small tip to ensure your claude kicks off a task with the right context - ask it to study the changes you're building on top of and ask it to summarise them for you.
It forces it to gather the necessary context to pick off from where it left off without too much context rot.
Claude Code has released a bunch of new features recently, but the one I'm most excited about is the ability to selectively enable/disable MCP servers.
This is a Big Deal because it enables you to have many MCP tools at stand-by without polluting your context
Quick tip for all the vim nerds using claude code - Press Ctrl+G to write the prompt in vim!
09.10.2025 14:00 ā š 0 š 0 š¬ 0 š 0In a nutshell, web sockets are hard. Even after using something like socket.io which automates a lot of the lifecycle management. There were times where I was considering just re-writing everything to use an HTTP API and polling for jobs.
But very happy with where I landed eventually!
- I modified the backend to not unassign any jobs when an agent disconnects. Instead, jobs like that will temporarily stay in the database and a background job will periodically check if they've been stale for too long, at which point they're cleaned up.
09.10.2025 13:01 ā š 0 š 0 š¬ 1 š 0- I added a persistent identifier for the agent so that the backend can re-identify the agent for a job even after server restarts. It's passed as a header upon establishing the web socket connection.
09.10.2025 13:01 ā š 0 š 0 š¬ 1 š 0- I added backoff and retry mechanisms for the socket.io client on the agent to re-establish the connection in case it tears down. Turns out the out of the box "reconnectAutomatically" option doesn't work well on the Go SDK so had to roll up my sleeves and ship my own reconnection flow.
09.10.2025 13:01 ā š 0 š 0 š¬ 1 š 0- I made a sidecar container responsible for refreshing auth tokens and dynamically updating the ccagent's environment.
Also added some code to dynamically fetch the environment periodically from within the running app because the env is hardcoded at startup, despite it changing on the outside!
Claude Control is now far more reliable than it used to be - it can continue an ongoing session more than 24h since it started.
Making this work was surprisingly challenging!
Checking in all your claude artifacts like CLAUDE md, subagents, etc into the repo turned out to not just help me because claude can reuse these tools out of the box.
Turns out it helped a random contributor make a meaningful change from scratch without any setup!
When I'm coding manually, I like to name my variables in a bit more cryptic way as a human watermark so they all know a human was here
08.10.2025 15:01 ā š 0 š 0 š¬ 0 š 0Today I had to deal with a very nasty, intricate bug which required manual coding and intervention.
This happens quite rarely with claude code these days as most of the mundane work I've automated, which leaves my attention for these more challenging tasks instead.
Very cool quality of life improvement for Claude Control I recently shipped - the agent is now made quite reliable to the point where it can continue working on a job even 24h later!
08.10.2025 13:04 ā š 0 š 0 š¬ 0 š 0Quick quality of life improvement for Claude Control - you can now start new jobs off of finished ones in the middle of a slack/discord thread š
06.10.2025 16:04 ā š 0 š 0 š¬ 0 š 0Looks like Anthropic starts counting the 5h window when you first use claude vs it being a constant fixed & rolling window.
So a tip to maximise usage is to trigger something quick like "hey Claude" the moment you wake up so the clock starts ticking during your morning downtime
This is my usage and I managed to squeeze in a final background job.
I doubt I was lucky to hit the 100% mark just in time.
One really nice thing about how Anthropic handles usage is that it doesn't cut you off halfway through a running session. This is great when you run background agents which are long-running by design.
06.10.2025 13:58 ā š 0 š 0 š¬ 1 š 0You can now deploy multiple claude code containers, effectively enabling you to have different repos routed to different discord/slack channels.
Now I have one channel for claudecontrol repo and one for ccagent