Blog

Notes from the EdsDev workbench.

An AI lead generation agent that books meetings while you sleep
7/3/2026

An AI lead generation agent that books meetings while you sleep

How we build AI lead gen agents that actually book meetings overnight: the workflow, the prompts we use, the guardrails that stop it from embarrassing you.

ai agentslead generationautomation
Building an AI chatbot for small business that actually knows your products
7/2/2026

Building an AI chatbot for small business that actually knows your products

The RAG stack we ship for small businesses that need a chatbot to answer questions about their actual products, not hallucinate a generic FAQ. Real code, real costs.

ragai agentstutorial
How to vet MVP development companies without getting burned: 12 questions that filter the field
7/1/2026

How to vet MVP development companies without getting burned: 12 questions that filter the field

Twelve questions I ask before I let anyone touch my MVP. Skip these and you'll pay $80k for a demo that dies the week after launch.

mvphiringstartups
AI agent for customer support vs. the chatbot you already tried: what's actually different
6/30/2026

AI agent for customer support vs. the chatbot you already tried: what's actually different

You bought a chatbot. It answered FAQs and pissed off your customers. Here's what an actual AI agent does differently, and where it still falls on its face.

ai agentscustomer supportcomparison
MVP software development when the prototype already exists: finishing what Cursor started
6/29/2026

MVP software development when the prototype already exists: finishing what Cursor started

A field guide for taking a half-built Cursor or v0 prototype across the line. What to keep, what to rip out, and how to ship without rewriting the whole thing.

mvptutorialcursor
What to actually scope in an MVP development service contract: a buyer's checklist
6/28/2026

What to actually scope in an MVP development service contract: a buyer's checklist

Most MVP contracts are vague where they should be sharp. Here's the checklist I use when reviewing one, with the clauses that decide whether you ship in 8 weeks or sue in 8 months.

mvpcontractsstartups
AI chatbots for customer service: what actually works after 90 days in production
6/27/2026

AI chatbots for customer service: what actually works after 90 days in production

Ninety days in, the polished demo bot looks nothing like what's running in production. Here's what we kept, what we ripped out, and what nobody warned us about.

ai agentscustomer serviceopinion
Observability for a side project: 80% of the value for $0/month
6/26/2026

Observability for a side project: 80% of the value for $0/month

How I instrument side projects without paying Datadog $70/month. Free tiers, dumb tricks, and the three signals that actually catch fires before users tweet at me.

observabilityside-projectsengineering
How we batch-generate 50,000 cover images per month for Interior AI Designs
6/25/2026

How we batch-generate 50,000 cover images per month for Interior AI Designs

The actual queue, the actual costs, the actual failure modes behind running 50k FLUX renders a month for Interior AI Designs without lighting our bank account on fire.

ai-productfluxfal
Why we still pick Flutter + Firebase + AdMob for new mobile apps in 2026
6/24/2026

Why we still pick Flutter + Firebase + AdMob for new mobile apps in 2026

Everyone keeps asking why we haven't moved to React Native or native SwiftUI. Here's the honest stack math after shipping a dozen apps on Flutter, Firebase, and AdMob.

flutterfirebasemobile
Shipping an MCP server so agents can email us
6/23/2026

Shipping an MCP server so agents can email us

We built a tiny MCP server that lets Claude and other agents email the EdsDev team directly. Here is the code, the auth model, and what broke along the way.

mcpanthropicagents
Surviving App Store review: the 7 rejection causes we keep seeing
6/22/2026

Surviving App Store review: the 7 rejection causes we keep seeing

Seven rejection patterns we hit shipping iOS apps in 2024, the exact guideline numbers, and what we actually changed to get approved. Including the one that took five resubmits.

iosapp-storeapp-review
Anatomy of the Claude prompt that writes this blog
6/21/2026

Anatomy of the Claude prompt that writes this blog

A line-by-line look at the system prompt we use to make Claude write posts that don't sound like Claude. What worked, what didn't, and why the banned-word list keeps growing.

claudepromptingai-writing
Pair-build mode: how we work with vibe coders without taking over
6/20/2026

Pair-build mode: how we work with vibe coders without taking over

Half-built side projects don't need a rescue team. They need a senior engineer on the other end of a Slack DM. Here's how we actually run pair-build engagements.

collabprocessvibe-coding
Five product decisions that doubled Photo AI Studio retention
6/19/2026

Five product decisions that doubled Photo AI Studio retention

What actually moved the needle on Photo AI Studio's D7 retention. Pricing, onboarding, model choice, refund flow, and a push notification we almost shipped wrong.

ai-productretentionmobile
The vibe coder pre-launch checklist: what actually breaks in production
6/13/2026

The vibe coder pre-launch checklist: what actually breaks in production

A field-tested list of the things that quietly torch your launch day, from missing rate limits to leaked API keys to that one Stripe webhook you forgot to verify. Read before you ship.

launchproductionvibe-coding
An AI lead generation agent that books meetings while you sleep
6/3/2026

An AI lead generation agent that books meetings while you sleep

How we build AI lead generation agents that actually book meetings: the workflow, the prompts, the guardrails, and the bits that quietly break at 3am.

ai agentslead genautomation
Building an AI chatbot for small business that actually knows your products
6/2/2026

Building an AI chatbot for small business that actually knows your products

The RAG stack we ship for small business chatbots: ingestion, embeddings, retrieval, guardrails, and the boring parts that decide whether it answers correctly or hallucinates a refund policy.

ragai agentschatbots
How to vet MVP development companies without getting burned: 12 questions
6/1/2026

How to vet MVP development companies without getting burned: 12 questions

Twelve questions I use to separate real MVP development companies from agencies that will burn six months of runway and ship a demo. Here's what to ask.

mvphiringstartups
AI agent for customer support vs. the chatbot you already tried: what's actually different
5/31/2026

AI agent for customer support vs. the chatbot you already tried: what's actually different

Your old support bot routed people in circles. An AI agent reads tickets, calls your APIs, and closes loops. Here's the real gap, with examples.

ai agentscustomer supportcomparison
MVP software development when the prototype already exists
5/30/2026

MVP software development when the prototype already exists

A field guide to finishing what Cursor, v0, and Claude Code started. How to take a half-working vibe-coded prototype and ship it as a real MVP without rewriting from scratch.

mvpcursortutorial
What to actually scope in an MVP development service contract: a buyer's checklist
5/29/2026

What to actually scope in an MVP development service contract: a buyer's checklist

Most MVP contracts hide the parts that matter. Here is what to demand in writing before you sign with any MVP development service, with the line items I have watched startups get burned on.

mvpcontractsstartups
AI chatbots for customer service: what actually works after 90 days in production
5/28/2026

AI chatbots for customer service: what actually works after 90 days in production

Ninety days of running customer service bots in production. What survived, what got ripped out, and the design choices that decide whether your bot helps or annoys.

ai agentscustomer supportopinion
Cloudflare Turnstile vs reCAPTCHA: why we migrated and what it cost us
5/26/2026

Cloudflare Turnstile vs reCAPTCHA: why we migrated and what it cost us

We pulled reCAPTCHA out of three production apps and replaced it with Cloudflare Turnstile. Here's what broke, what it saved, and where Turnstile still falls short.

cloudflareturnstilerecaptcha
Observability for a side project: 80% of the value for $0/month
5/25/2026

Observability for a side project: 80% of the value for $0/month

How I wire up logs, errors, uptime and product analytics on side projects without paying a cent. Free tiers, sharp edges, and what I actually skip.

observabilityside-projectsmonitoring
How we batch-generate 50,000 cover images a month for Interior AI Designs
5/24/2026

How we batch-generate 50,000 cover images a month for Interior AI Designs

The actual pipeline behind 50k monthly room renders at Interior AI Designs: queues, FAL, idempotency keys, and the boring failure modes nobody writes about

ai-productimage-generationfal
Why we still pick Flutter + Firebase + AdMob for new mobile apps in 2026
5/23/2026

Why we still pick Flutter + Firebase + AdMob for new mobile apps in 2026

After shipping a pile of apps across iOS and Android, we keep landing on the same boring stack. Here's why Flutter, Firebase and AdMob still win for us in 2026.

flutterfirebaseadmob
Shipping an MCP server so agents can email us
5/22/2026

Shipping an MCP server so agents can email us

We built a tiny MCP server that lets Claude and Cursor send us email through Resend. Here's the actual code, the auth headaches, and what broke in production.

mcpclauderesend
Surviving App Store review: the 7 rejection causes we keep hitting
5/21/2026

Surviving App Store review: the 7 rejection causes we keep hitting

Seven specific reasons Apple keeps rejecting our apps, what each rejection actually looks like in Resolution Center, and what we changed in the build to get through.

app-storeiosshipping
Pair-build mode: how we work with vibe coders without taking over their project
5/20/2026

Pair-build mode: how we work with vibe coders without taking over their project

Most agencies eat the codebase. We don't. Here's how EdsDev runs pair-build engagements with vibe coders shipping in Cursor and Claude Code — without hijacking the keyboard or the vision.

collabvibe-codingpair-programming
Five product decisions that doubled Photo AI Studio retention
5/20/2026

Five product decisions that doubled Photo AI Studio retention

How we doubled D7 retention on Photo AI Studio by killing the gallery, charging differently, and removing 'AI' from half the UI. Specific changes, real numbers.

ai-productretentionproduct-design
Anatomy of the Claude prompt that writes this blog
5/20/2026

Anatomy of the Claude prompt that writes this blog

The actual system prompt we use to generate EdsDev posts, broken down section by section. Voice rules, forbidden words, JSON shape, and the parts that still don't work.

claudepromptsai-writing
The vibe coder pre-launch checklist: what actually breaks in production
5/14/2026

The vibe coder pre-launch checklist: what actually breaks in production

You shipped it in a weekend with Cursor. Now it has users. Here's the unglamorous list of things that break when AI-generated code meets real traffic, real money, and real people.

vibe-codingproductionai-tools
5/12/2026

My tokens at your disposal

Why this blog exists and an honest disclosure: most of these posts are written by Claude with my supervision.

metaaiedsdev