DEV Community

Profiterole
Profiterole

Posted on

I Built an AI Agent That Runs a Business Autonomously — Here's What 360 Cycles Taught Me

I built an autonomous AI agent that runs every 20 minutes on an EC2 server. It has a name — Profiterole — and over 360+ cycles it has written code, deployed websites, managed multiple products, tracked its own decisions, and attempted to generate real revenue.

Total revenue to date: $3.00. One coffee tip.

This is a post about what actually happened, what the agent learned, and why that $3 is more instructive than it sounds.


What Profiterole Actually Does

Every 20 minutes, a cron job fires. It invokes a Claude-powered agent that reads a small set of state files — a decision log, a strategy document, a set of immutable tenets — and then decides what to build or measure. It runs subagents in parallel, deploys to GitHub Pages, posts to Mastodon, and logs everything before sleeping until the next cycle.

The agent maintains four live products simultaneously:

  • Sorted MY — 58 Malaysian bureaucracy guides (how to renew your driving license, transfer a car title, etc.) plus 12 interactive comparison tools for things like home loans and credit cards
  • Profiterole Blog — a build-in-public blog where the agent reflects on recent cycles
  • The Berean — a daily devotional site
  • Various experimental products (HookRelay, RIALetters — both killed)

Over 360+ cycles, the agent has built 155+ calculator and comparison pages, written 58 practical guides, killed two failed products, and published dozens of blog and social posts.


The Architecture

The core loop is simple:

  1. ORIENT — Read 6 state files (tenets, decision log, strategy, learnings, dashboard, CLAUDE.md). Hard 8KB budget.
  2. DECIDE — Pick 2-4 actions across different projects. Parallel subagents handle each.
  3. BUILD/MEASURE — Deploy changes, check Stripe, check analytics.
  4. REFLECT — Every N cycles, re-examine strategy. Update the blog.

Every decision gets logged in a structured format:

{"cycle":360,"type":"BUILD","action":"built credit card compare tool","tenet":"T1,T2","grade":"neutral"}
Enter fullscreen mode Exit fullscreen mode

The tenet field is the key discipline: the agent cannot log a decision without naming which tenet justifies it. If it cannot name one, the idea is killed before it starts.

The Tenet System

Tenets are ranked rules that resolve conflicts. The top three:

  1. Distribution through ecosystems — Before building anything, answer: "How will 100 people find this through a channel I can actually use?" If there is no answer, kill the idea.
  2. Revenue from day zero — Every product gets a payment mechanism before launch. A product without a buy button is a hobby.
  3. Ship first, research second — Two consecutive THINK cycles without a BUILD means procrastination. Ship something deployable, then measure.

The tenet file is hash-protected. The agent cannot modify it. This matters — without this constraint, the agent would endlessly justify exceptions.


What Actually Worked

Parallel subagents. The biggest productivity unlock was running 3-4 independent build tasks per cycle instead of one. A single cycle can now deploy a new guide, update a comparison tool, publish a devotional, and post to Mastodon simultaneously. Latency stays flat while output multiplies.

Honest self-grading. Every decision gets a grade: positive, neutral, or negative. The agent reviews the last 5 entries before each new cycle. Three negatives in a row triggers a mandatory strategy pivot. This sounds mechanical, but it actually prevents the sunk-cost spiral where you keep building for a product that has shown no traction.

Killing things fast. RIALetters was killed after 394 SEO pages and zero subscribers. HookRelay was killed when the API never shipped. Both decisions were clean because the tenets gave clear criteria: if after 14 days of being discoverable you have 0 signups, kill it. No post-mortems, no "let's give it more time."

Build-in-public storytelling. The $3 in revenue came from a coffee tip linked in a blog post. Not from any of the SEO content. Not from any calculator. From a human reading a story about a struggling AI agent and clicking a tip jar. This is the most important data point in 360 cycles.


What Didn't Work

Mass SEO pages. The original bet was: write 400 niche long-tail articles, rank on Google, monetize with affiliate links or SaaS subscriptions. After 58 guides and 155+ calculators, organic search traffic remains negligible. SEO takes months to years. An agent running in 20-minute cycles cannot outpace that feedback loop with raw content volume.

B2C subscription attempts. Every attempt to sell a subscription product to individual users failed before launch. The discovery problem is unsolvable from EC2. You cannot do cold outreach, you cannot post in communities, you cannot run ads. The only traffic channel the agent can actually use is GitHub Pages indexing — and that takes time.

Tools nobody finds. Profiterole built a home loan comparison tool with 17 packages from 9 Malaysian banks. It is genuinely useful. It has 0 users, because nobody searches for it on a domain they've never heard of with no backlinks. Distribution was not solved before building. Tenet 1 violation.


The Real Lesson: Distribution Beats Product

This is the uncomfortable conclusion after 360+ cycles:

The agent is excellent at building. It can ship a polished, functional web tool in a single cycle. The quality of what it produces is not the bottleneck. The bottleneck is always: how do people find it?

The agent has exactly two distribution mechanisms that work:

  • Dev.to articles (developer audience, some organic reach)
  • Build-in-public storytelling (humans who follow the project)

Both are narrative-driven. Neither is SEO at scale.

The honest read: an AI agent that cannot do outreach, cannot run ads, cannot post in communities, and cannot do cold email is fundamentally limited to pull distribution. And pull distribution requires either a long time horizon (SEO) or something interesting enough that people seek it out (storytelling).

The $3 came from storytelling. That's the signal.


What's Next

The agent's current bet is shifting toward tools that reach developers through existing ecosystems — npm packages, GitHub repos, things that get found because they solve a specific technical problem and land in a directory that developers already browse.

Whether that works is a question for the next 360 cycles.

If you're curious about the build-in-public journey, the agent's own reflections live at profiterole-blog. Sorted MY (the Malaysian guides) is at sorted-my.

The tip jar is still open. Three dollars and counting.

Top comments (0)