You are browsing as a guest. Sign up (or log in) to start making projects!

Open comments for this post

26h 48m 2s logged

devlog 002 - the fake flow became the real app

Date: 2026-06-18

Sorry abt not posting a devlog in a while, completely forgot i had to do them! (too locked in lol).

Onara moved from prototype to real product system.

Devlog 001 ended with the app shell, Supabase setup, and mock agent progress. Since then, the missing backend got built: FastAPI, real agents, deployment, revisions, billing, and account gating.

Find -> Confirm -> Style -> Generate

now connects to the actual pipeline.

what I built

  • FastAPI backend
  • /generate and /health
  • job queue + dedupe
  • SSE progress stream
  • dashboard build resume
  • Cloudflare Tunnel + PM2
Next.js -> FastAPI -> agents -> Cloudflare -> Supabase

AI pipeline

I added the real 10-agent flow: Analyst, Content Writer, Style Agent, Planner, Prompt Engineer, Code Generator, Debugger, SEO Agent, QA, and Mobile check.

Agent 6 now has a plan-gated model picker.

Free -> Onara default
Starter -> Copilot options
Trial / Pro -> full access

I also added shared AI clients for NVIDIA NIM, Ollama, and GitHub Copilot SDK.

z-ai/glm-5.1 -> llama-4-maverick -> gemma4:e4b

RAG and deployment

I added RAG with ChromaDB, BM25 search, seeded HTML/CSS/JS patterns, and contractor layout examples.

Deployment now does this:

  • parse generated HTML
  • split component files
  • back up code to GitHub
  • deploy to Cloudflare Pages
  • save metadata in Supabase
generated site -> GitHub -> Cloudflare -> Supabase

revisions

The revision page became a real workflow with:

  • revision threads
  • queued work log
  • auto-pick or manual components
  • changed-file summaries
  • rollback UI
  • retry without charging failed builds
{
  instruction: "make the hero CTA bigger",
  componentSelection: { mode: "auto" }
}

The UI also got cleaner: denser chat, better work log placement, flatter composer, and Onara styling.

billing

I added real billing:

  • Stripe checkout sessions
  • Starter monthly
  • Starter annual at $99/year
  • Pro checkout
  • Stripe webhooks
  • payment failed / succeeded handling
  • reverse trial setup
  • trial downgrade
  • monthly revision reset
STRIPE_STARTER_PRICE_ID=...
STRIPE_STARTER_ANNUAL_PRICE_ID=...
STRIPE_PRO_PRICE_ID=...

Checkout now uses embedded Stripe Elements with PaymentElement, ExpressCheckoutElement, wallet buttons when available, and an Onara checkout page.

account and limits

I added plan display, trial days left, usage stats, upgrade CTAs, Starter / Pro cards, and annual Starter.

Free -> 1 active site
Starter -> 1 active site
Pro / Trial -> 3 active sites

Limits are checked before generation and enforced in Supabase.

cancellation flow

When Stripe sends customer.subscription.deleted or invoice.payment_failed, Onara now:

  • updates the account
  • sets show_url=false
  • deploys a Cloudflare placeholder
  • marks projects as suspended
  • keeps Supabase records and GitHub backups
cancel -> hide URL -> placeholder -> suspended project

Cancellation hides the site but does not delete the generated code.

what changed from devlog 001

Now the pipeline runs, agents generate sites, previews stream status, sites deploy, code backs up, projects persist, revisions work, billing is wired, trials downgrade, limits are enforced, and canceled sites get suspended.

still missing

  • lead SMS
  • Pro code download
  • weekly Google Reviews badge refresh
  • monitoring
  • privacy / terms cleanup
  • support / consent copy
  • launch outreach assets
0
0

Comments 0

No comments yet. Be the first!