Budget leases
Each run holds a 60-second budget lease, renewed every 15 seconds. When the lease stops, so does the spend.
Indonesia · WIB--:--
👋 My startup · Indonesia · 2026 — now
Website toko buat Kopi Senja
A store website for Kopi Senja, and for every small brand like it.
Two AI agents that build and run an online store for Indonesian small businesses. One runs the shop, the other writes the actual website. Tanpa developer. Tanpa komisi. Cukup chat.No developer. No commission. Just chat.
ju·ra·gan
noun · Indonesian
A successful shop owner. The boss of their own business.
-in
suffix · Jakarta slang
“Do it for you.” Put them together and the name is the whole product: we make you the juragan.
Juraganin.
(The problem)
A Rp100.000 order on a marketplace leaves the seller Rp79.750. On their own Juraganin site it leaves Rp98.300. At a hundred orders a month that difference is real money.
more per month, at 100 orders
Marketplace
Toko: Kopi Senja · 1 pesanan
(what you receive)
✂ - - - - - - - - - - - -
Website sendiri
Toko: Kopi Senja · 1 pesanan
(what you receive)
✂ - - - - - - - - - - - -
(The product)
Asisten Juragan runs the business from a chat: products, photos, promos, orders, win-back messages, with the seller approving anything that touches money. Studio Juragan writes real Next.js code in the seller's own sandbox, screenshots it, tests the buttons, and waits for one click: Terbitkan.
Asisten Juragan
onlineTambahin produk dari foto ini ya 📸
Add a product from this photo
Siap! Kopi Susu Gula Aren, Rp25.000. Fotonya udah aku rapihin. Terbitkan?
Done! Palm-sugar iced coffee, Rp25.000. I cleaned up the photo. Publish?
Studio Juragan
studio-sandbox · OpenCodeexport default function Hero() {
return (
<section className="warung">
<h1>Kopi Senja</h1>
<p>Kopi susu gula aren, dari Jogja.</p>
<AddToCart product="kopi-susu" />
</section>
);
}✓ screenshot 1440×900 · desktop
✓ screenshot 390×844 · mobile
✓ tested: Add to cart, Checkout
(An A/B that paid off)
Sellers upload phone photos; the agent cleans them up. A blind A/B put a lite image model level with the premium one, so that is what ships.
(Under the hood)
Studio sandbox
One persistent VM per seller. Outbound traffic on an allowlist; the agent runs as an unprivileged user.
Root-owned proxy
Swaps a placeholder for the real key, after checking the run's admission, model and ownership.
OpenRouter
The seller's own key, capped at list price + 20% even when fallbacks kick in.
Each run holds a 60-second budget lease, renewed every 15 seconds. When the lease stops, so does the spend.
A run survives the HTTP request. Every event is logged; the panel reconnects from the last sequence number.
ECS Fargate, ALB, CloudFront + WAF, Route53, alarms and GitHub OIDC deploys: 991 lines of Pulumi in ap-southeast-1.
Incident · 5 Sep 2026
700 of 700 output tokens went to reasoning. The answer came back empty.
The kind of bug you only meet in production. Today the store agent runs with low reasoning effort and a hard price cap per million tokens.
commits in 11 weeks
database migrations
test files
Postgres tables
agent tools
models in the Studio
Stack: Next.js 16 · AI SDK 7 · OpenRouter · Supabase · Clerk · Xendit · Biteship · Vercel Sandbox · AWS · Pulumi · Langfuse. Online payments and courier booking are tahap aktivasibeing activated.
(Next case) · Client· Ralf, Germany
AtlasPad
Talk, and the chart writes itself.
ContinueAtlas.
Listening