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

Onara

  • 3 Devlogs
  • 43 Total hours

Onara is a AI website-generation SaaS for small local businesses, especially DC / Northern Virginia contractors and home-service businesses.

Ship #1

I made Onara, an AI website builder for local businesses. It helps contractors turn their Google Business Profile, or manually entered business info, into a live website with copy, design, SEO, photos, contact forms, and a public URL.

The hardest part was connecting everything together: the Next.js app, Supabase auth/database, Stripe billing, the FastAPI AI pipeline, Cloudflare deployment, GitHub backups, and the revision system. Getting the AI output to be good and not broken was also challenging.

I’m proud that it is not just a mockup anymore. Users can sign in, search or enter a business, generate a site, revise it, manage billing, and keep their generated code backed up.

To test it, sign up, search for a local business, confirm the details, pick a style, and start a build. After the site generates, try the revision page and ask for a small change like “make the hero CTA bigger.”

  • 3 devlogs
  • 43h
Try project → See source code →
Open comments for this post

8h 4m 28s logged

devlog 003 - making Onara launch-ready

Date: 2026-06-19

Since devlog 002, I mostly worked on turning Onara from “it works” into something closer to launch-ready.

what I worked on

billing + accounts

I added more real account controls:

  • cancel subscription from billing
  • plan limits
  • better account page
  • better checkout layout
  • Google-login warning if someone tries password login on a Google account
Google account -> use Continue with Google
Password account -> normal email/password login

generated sites

I worked on making the sites Onara creates more useful after launch:

  • contact form lead emails
  • better email HTML
  • Pro code download
  • cancellation placeholder pages
  • Google Reviews refresh job
  • support email surfaces
contact form -> Onara lead email -> site owner inbox

pipeline fixes

I fixed more backend/build issues:

  • longer pipeline timeout
  • better health monitor support
  • fixed /health HEAD checks
  • fixed broken generated HTML cases
  • improved Google Maps region filtering back toward DC / VA
GET /health -> 200 OK
HEAD /health -> 200 OK

launch cleanup

I added launch stuff that real products need:

  • privacy policy
  • terms of service
  • support page
  • favicon/logo polish
  • SEO metadata
  • .env.example updates
  • docs for production fixes

AI + training data

I also added the start of a cleaner AI improvement system:

  • user consent copy
  • opt-out/delete handling
  • training example storage
  • QA-approved examples only
  • no saving random bad generated sites into RAG
good QA result -> redact -> save as training example
bad result -> do not save

biggest change

Onara is not just generating sites now. It is starting to act like a real app with billing, support, cancellation, reviews, contact leads, account limits, and safer AI improvement rules.

still left

  • finish production deploy polish
  • make generated site quality more consistent
  • keep fixing slow render/build issues
  • launch testing
  • outreach assets

devlog 003 - making Onara launch-ready

Date: 2026-06-19

Since devlog 002, I mostly worked on turning Onara from “it works” into something closer to launch-ready.

what I worked on

billing + accounts

I added more real account controls:

  • cancel subscription from billing
  • plan limits
  • better account page
  • better checkout layout
  • Google-login warning if someone tries password login on a Google account
Google account -> use Continue with Google
Password account -> normal email/password login

generated sites

I worked on making the sites Onara creates more useful after launch:

  • contact form lead emails
  • better email HTML
  • Pro code download
  • cancellation placeholder pages
  • Google Reviews refresh job
  • support email surfaces
contact form -> Onara lead email -> site owner inbox

pipeline fixes

I fixed more backend/build issues:

  • longer pipeline timeout
  • better health monitor support
  • fixed /health HEAD checks
  • fixed broken generated HTML cases
  • improved Google Maps region filtering back toward DC / VA
GET /health -> 200 OK
HEAD /health -> 200 OK

launch cleanup

I added launch stuff that real products need:

  • privacy policy
  • terms of service
  • support page
  • favicon/logo polish
  • SEO metadata
  • .env.example updates
  • docs for production fixes

AI + training data

I also added the start of a cleaner AI improvement system:

  • user consent copy
  • opt-out/delete handling
  • training example storage
  • QA-approved examples only
  • no saving random bad generated sites into RAG
good QA result -> redact -> save as training example
bad result -> do not save

biggest change

Onara is not just generating sites now. It is starting to act like a real app with billing, support, cancellation, reviews, contact leads, account limits, and safer AI improvement rules.

still left

  • finish production deploy polish
  • make generated site quality more consistent
  • keep fixing slow render/build issues
  • launch testing
  • outreach assets

Replying to @aarushk

0
1
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

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

Replying to @aarushk

0
0
Open comments for this post

8h 22m 46s logged

devlog 001 - i started making the app

Date: 2026-06-14

This update was big because Onara is not just plans anymore. I added real app
code inside Onara_Code.

Before this, it was mostly wiki pages, task lists, and design references. Now it
has a real frontend and Supabase setup.

what I built

Next.js app
landing page
auth pages
dashboard
business build flow
Google Places search
agent progress screen
Supabase migrations
Supabase edge functions

The app now has login, signup, password reset, protected dashboard routes, a
contractor landing page, and a 4-step build flow:

Find -> Confirm -> Style -> Generate

I also added the mock agent progress screen. It shows the 10 agents running,
streams progress, updates a preview, and has a fake retry moment. It is not the
real backend yet, but it makes the frontend flow feel real.

Supabase now has migrations for users, projects, pipeline jobs, revisions, RLS,
auth triggers, and cron jobs. I also added edge functions for trial downgrade,
revision reset, and Stripe webhook handling.

what is still missing

The big missing thing is:

Onara_Code/pipeline/

That is where the FastAPI server needs to go.

Still needed:

FastAPI app
/generate endpoint
/health endpoint
real agents
AI client
RAG
deployment code
account/billing pages
Stripe checkout route

verification

I tried:

npm run type-check

but it failed because dependencies are not installed:

tsc: not found

next

Next step:

Build the FastAPI server.

That is what turns the fake agent progress flow into the real Onara AI pipeline.

devlog 001 - i started making the app

Date: 2026-06-14

This update was big because Onara is not just plans anymore. I added real app
code inside Onara_Code.

Before this, it was mostly wiki pages, task lists, and design references. Now it
has a real frontend and Supabase setup.

what I built

Next.js app
landing page
auth pages
dashboard
business build flow
Google Places search
agent progress screen
Supabase migrations
Supabase edge functions

The app now has login, signup, password reset, protected dashboard routes, a
contractor landing page, and a 4-step build flow:

Find -> Confirm -> Style -> Generate

I also added the mock agent progress screen. It shows the 10 agents running,
streams progress, updates a preview, and has a fake retry moment. It is not the
real backend yet, but it makes the frontend flow feel real.

Supabase now has migrations for users, projects, pipeline jobs, revisions, RLS,
auth triggers, and cron jobs. I also added edge functions for trial downgrade,
revision reset, and Stripe webhook handling.

what is still missing

The big missing thing is:

Onara_Code/pipeline/

That is where the FastAPI server needs to go.

Still needed:

FastAPI app
/generate endpoint
/health endpoint
real agents
AI client
RAG
deployment code
account/billing pages
Stripe checkout route

verification

I tried:

npm run type-check

but it failed because dependencies are not installed:

tsc: not found

next

Next step:

Build the FastAPI server.

That is what turns the fake agent progress flow into the real Onara AI pipeline.

Replying to @aarushk

0
1

Followers

Loading…