ondemandly
Apr 28, 2026 / ~9 min read / Building in public

I built a service on top of my own AI workflow. Here's what 14 days of shipping looks like.

AI helps you draft code. Shipping it is still the bottleneck. Here's the workflow I built — and the service I packaged it as.

AC
Alvaro Carvalho
Founder, Ondemandly
ondemandly.dev
Bring the backlog. We ship the work.
Alvaro Carvalho / ondemandly.dev / Intro · 2026
The one-line pitch. Bring the backlog, I ship the work.

I'll skip the hot take on AI replacing engineers. You've read it. I want to talk about the boring problem nobody is fixing: AI helps you draft code, but shipping it is still the bottleneck.

For most of last year I watched the same pattern across founder friends. AI spits out something that compiles, types check, looks right in a diff — then it breaks the moment a real user touches it. You spend the "savings" cleaning up the slop. Hiring is months of overhead before the senior eng you wanted is even productive. Agencies want discovery decks and weekly syncs. You wanted features shipped. You got a project plan.

Three failure modes, one outcome: your roadmap is moving slower than your AI hype cycle.

The problem

Your roadmap is moving slower than your AI hype cycle.

01

AI looks right, ships wrong.

Code that compiles, passes types, breaks the moment a user touches it.

02

Hiring is months of overhead.

Sourcing, interviews, ramp. By the time they're productive, the backlog has doubled.

03

Agencies want meetings.

Discovery decks, weekly syncs. You wanted features. You got a project plan.

Three failure modes founders keep paying for. Different invoices, same outcome.

I had this exact problem on three different projects, and I got tired of solving it by working weekends.

I spent the last year building a workflow on top of Claude Code that actually ships to prod. Then I turned it into a service: Ondemandly. The pitch is one line — bring the backlog, I ship the work — and the proof is that I built the entire service on the same workflow I sell.

What Ondemandly is
A human execution layer that turns clear tickets into shipped software.
clear ticket
refined & shaped
production-ready code
Senior judgment at AI speed. Async. One ticket at a time. Inside a defined stack.

What 14 days looks like

To stand up Ondemandly itself: 18 merged PRs in 14 days. Solo. That's the landing site, Stripe Checkout (with a Brazilian PSP integration because I'm not based in the US), Cloudflare Workers, abuse defenses (rate-limit + Turnstile + a global cap), three legal pages, the brand system, the deploy pipeline. Production. Live.

Nothing about that pace is heroic. It's the workflow.

Proof of throughput
18
merged PRs in 14 days — building Ondemandly itself.
#01–04 monorepo · CF Workers · brand
#05–08 landing · rate-limit · Turnstile
#09–11 rebrand · paper canvas · tokens
#12–14 privacy · refund · terms · footer
#15–16 Stripe Checkout · PSP integration
#17–18 launch assets · production deploy
Every line of the site you're reading this on shipped on the same workflow. Site, payments, abuse defenses, legal — all of it.

What's actually in the workflow

This isn't "I prompt Claude harder." It's a stack of constraints that force the AI to behave like a senior engineer instead of a junior one with a thesaurus.

Plan before you execute, never the same step. I have a hard rule codified in my repo and global instructions: writing a plan and starting to execute it are two separate steps. The model writes a plan, stops, and asks for approval. This single rule kills 80% of the "AI looks right, ships wrong" failure mode, because the failure mode is almost always the model rushing into code before anyone agreed on the approach.

Subagents in parallel, not one big agent in series. Specialized agents — Explore, Plan, code-reviewer, deployment-expert — dispatched per task instead of one model trying to hold the whole problem in its head. Each agent has a tight prompt and a narrow tool surface. Cheaper, faster, less drift.

Git worktrees for parallelism that doesn't collide. Four streams of work in flight at any time, each in its own worktree, each on its own dev port. You can't do this with one branch and one terminal — but you also can't do it without discipline, because four parallel streams of "vibes coding" is just four parallel disasters.

How I work with AI

Not "I prompt Claude." A workflow built on AI.

  • PLAN-GATE
    Plan first, execute second.Codified in repo. Overrides "auto-mode" pressure.
  • SUBAGENTS
    Specialized agents in parallel.Explore, Plan, code-review, deploy — per task.
  • WORKTREES
    Isolated git worktrees, dedicated ports.Four parallel streams without collisions.
  • MEMORY
    Durable project memory + thoughts/ docs.Decisions, ICP, won't-dos — never re-derived.
  • DISCIPLINE
    TDD, review, simplify, verify — as skills.Not optional vibes. Tools enforce the steps.
594
total Claude Code sessions, 19 workspaces
178
sessions in the last 7 days
93
sessions in the last 24 hours
4
git worktrees in parallel right now
The leverage isn't a secret prompt. It's the constraints.

Durable project memory + a thoughts/ doc system. Decisions, ICP, won't-dos, in-flight features, post-incident notes — never re-derived from scratch in a new session. The model walks back into a project knowing what we already decided three weeks ago. This is the part most "AI workflows" skip and it's the reason they degrade after a few days.

TDD, code review, simplify, verification — built-in skills, not optional vibes. The skills enforce the steps. You can't claim done without verification. You can't merge without review. The discipline isn't a culture thing, it's a tool thing.

That's the whole workflow. There's no secret prompt. The leverage is in the constraints.

Why I packaged it as a service

Here's the part that took me a while to admit: most founders don't want a workflow. They want the output. The Notion full of tickets, gone. The "we'll get to it next sprint" list, cleared.

The shape is borrowed. Brett Williams at Designjoy proved productized design works as a flat-fee subscription with one active task at a time and async-only delivery. Ondemandly is that same shape pointed at engineering execution.

So Ondemandly is shaped around that:

  • One active ticket at a time. Not because I can't do more in parallel — I do, internally — but because one ticket at a time is what makes it a dependable ticket eater instead of a freelancer with random availability.
  • Async first. No standups. No weekly syncs. Visible progress on the board.
  • Narrow scope on purpose. I don't do legacy rescue, open-ended discovery, 24/7 on-call, or custom design from scratch. Saying no is what protects the speed.
  • Flat $4k/month. Pause anytime. Days carry over. No lock-in.
Scope

Narrow scope is the feature.

In scope

  • Feature implementation in approved stack
  • Internal tools & admin surfaces
  • AI workflow integration
  • Spec-driven dev from clear tickets
  • Ticket refinement & shaping
  • Bug fixes & iteration

Out of scope

  • Legacy codebase rescue
  • Open-ended discovery
  • 24/7 support / on-call
  • Large-scale migrations
  • Custom design from scratch
  • Long meetings & recurring syncs
Saying no protects the speed and quality you're paying for. The list is firm.

The math, if you care

A senior engineer at loaded cost (base + benefits + payroll tax + amortized recruiting and ramp) is roughly $19k/month, or ~$228k for year one. Ondemandly is $48k for year one. That's a $180k delta, with day-one productivity instead of a 2–3 month ramp, and no hire-to-fire cycle if priorities shift.

The math

Senior reliability. Without senior overhead.

FT senior eng Ondemandly
Monthly cost ~$19,000 $4,000
Year 1 total ~$228,000 $48,000
Ramp 2–3 months day 1
Lock-in hire-to-fire pause anytime
$180k saved year one — same shipped throughput.
Cumulative cost — 12 months
$240k $180k $120k $60k $0 M1 M3 M6 M9 M12 $228k $48k
FT senior (loaded) Ondemandly
Loaded cost = base + ~30% benefits/payroll + amortized recruiting & ramp. Ondemandly delta: $180k year one.

I'm not pretending it's a 1:1 substitute for a senior FTE. An FTE owns more. They sit in your design reviews, hold institutional context, get paged at 3am. Ondemandly does none of that on purpose. It's an execution layer for teams that already know what to build.

Pricing

Flat. Predictable. Pause anytime.

$4,000 / month
One subscription. One active ticket at a time. Ship until the backlog is empty.
  • 30-day cycles, billed monthly
  • Pause mid-cycle — remaining days carry over, never expire
  • No lock-in, no minimum term
  • Cancel anytime, keep all work shipped to date
No lock-in. Pause anytime, days carry over.

Who this is actually for

Three patterns I see over and over:

  1. Solo founders with a Notion full of tickets and no one to clear them. You know what to build. You don't have time to build it. Hiring is months away.
  2. Product teams whose engineers are heads-down on the hard problem. You've got a 0.5-FTE backlog of well-defined feature work that nobody on the core team should be touching, but it has to ship.
  3. Operators wiring AI into a real product, not a demo. The integration work, the eval harness, the boring glue between the model and production.

If you're none of those, you're probably better off hiring or doing it yourself. I'd rather not waste your retainer.

The honest version

I'll save you the "founder journey" wrap-up. The actual story is: I had a workflow that worked for me, the math worked out for the kind of teams I wanted to work with, and the product is just exposing that workflow as a subscription. There's no growth playbook, no team, no funding round. It's me, the workflow, and a Stripe link.

If you've got a backlog and you're nodding at any of this, the next step is one concrete ticket. We refine it together, I ship it, and you decide if the rest of the backlog comes next.

Next step
Bring the
first ticket.

If we're a fit, the next step is a single concrete ticket. We refine it together, I ship it, and you decide if the rest of the backlog comes next.

ondemandly.dev / Apply for a slot / Alvaro Carvalho
Slots are limited because the model only works if I keep them limited.

Bring the first ticket.

One concrete ticket. We refine it together, I ship it, and you decide if the rest of the backlog comes next. No discovery decks, no sales call, no lock-in.

ondemandly.dev →

Happy to answer questions in the comments. Especially the skeptical ones.