cd /news/ai-products/i-shipped-my-first-aws-vercel-produc… Β· home β€Ί topics β€Ί ai-products β€Ί article
[ARTICLE Β· art-25783] src=dev.to pub= topic=ai-products verified=true sentiment=↑ positive

I shipped my first AWS + Vercel product in 7 days during a Meta attribution crisis πŸ‘‹

Developer Andres built Ad Engine, a 24/7 AI ad-ops monitoring tool for DTC telehealth brands, in seven days for the H0 hackathon. The project was motivated by Meta's February 14 enforcement of health-data restrictions that broke pixel-based conversion tracking, causing a single ad set to burn $4,200 without alert. Andres chose Amazon Aurora PostgreSQL Serverless v2 over DynamoDB for its support of multi-entity joins and time-series windowing.

read2 min publishedJun 13, 2026

Hi dev.to πŸ‘‹

I'm Andres. Long-time builder, first-time dev.to poster. (Pretty sure I should have done this years ago.)

Just shipped Ad Engine β€” a 24/7 AI ad-ops monitoring tool for DTC telehealth brands β€” in 7 focused days for the H0 hackathon. The build had teeth because there was a real reason for it: on February 14 this year, Meta enforced new health-data restrictions that killed pixel-based conversion tracking for the entire DTC telehealth space. At 11 PM the day it happened, I watched a single ad set at Bliss Health burn $4,200 with no alert. The tool I wanted didn't exist, so I built it.

Amazon Aurora PostgreSQL Serverless v2 (us-east-2, 0.5–1.0 ACU) Next.js 16 β€” App Router, Server Components, Server Actions

Vercel Fluid Compute + Cron β€” 15-min polling cadence on Meta + Google APIs

Claude Sonnet 4.6 with schema-enforced structured output via Zod + AI SDK Output.object()

Drizzle ORM with postgres-js driver

The juiciest engineering decision was rejecting DynamoDB for Aurora Serverless v2. The workload turned out to be multi-entity joins + time-series windowing for 7-day baselines, and DynamoDB's GSI-design tax made that worse than a relational engine's OVER ROWS BETWEEN 336 PRECEDING window function.

Wrote the full decision matrix + schema + SQL + the postgres-js Fluid Compute connection-pool pattern prepare: false, max: 1) here:

β†’ Read the full decision matrix here Three questions for the community β€” and I'd genuinely love feedback:

For 24/7 polling workloads with bursty Claude diagnosis calls β€” would you reach for Vercel Fluid Compute or stand up a separate worker? Curious about the threshold where the answer flips.

Anyone hit the postgres-js prepare: false + max: 1 Fluid Compute pattern? Worked great for my scale (1 cluster, ~96 polls/day). Curious if anyone has stress-tested it past that.

What would you have built differently in a 7-day sprint targeting this kind of operational-monitoring shape? Open to the roast.

Live: [https://runadengine.com](https://runadengine.com)

2-min walkthrough: [https://youtu.be/poFYDHB9WyU](https://youtu.be/poFYDHB9WyU)

Happy to be here. πŸš€

── more in #ai-products 4 stories Β· sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/i-shipped-my-first-a…] indexed:0 read:2min 2026-06-13 Β· β€”