Case 001 — Owned SaaS

All work

A multi-tenant SaaS that scores websites across six AI-visibility dimensions, generates remediation plans, and produces client-branded PDF audits. Built by us, sold to agencies under a credit-wallet billing model.

geo.atellius.com — GEO audit SaaS
Livegeo.atellius.com

Industry

B2B SaaS / MarTech

Year

2026

Role

Architecture · Full-stack engineering · Product · DevOps

Stack

Next.js · React · FastAPI · PostgreSQL · Cloudflare · Stripe · Razorpay · SES

Architecture · 8 layers · request flows left to right

  1. Next.js
  2. React
  3. FastAPI
  4. PostgreSQL
  5. Cloudflare
  6. Stripe
  7. Razorpay
  8. SES
/ 01Outcomes

8

Scanner categories

bot access, schema, content, entity, FAQ, sameAs, E-E-A-T, platform

12

Multi-tenant tables

organisation_id NOT NULL + backfilled

2

Payment rails

Stripe (USD) + Razorpay (INR)

< 30 ms

Worker startup

Cloudflare edge cold start

/ 02The brief

Agencies selling SEO services need a way to deliver AI-visibility audits without standing up their own scanner. We built and continue to operate a multi-tenant SaaS that lets them white-label our entire pipeline — scan, score, remediate, report — under their own brand, with a PAYG credit wallet.

/ 03Architecture

Backend — FastAPI on a single DigitalOcean droplet

Async SQLAlchemy with selectinload everywhere — no MissingGreenlet errors, no N+1. An Alembic migration pipeline introduced organisation_id across 12 tenant tables, backfilled to an internal org during cutover.

  • OrgContext dependency injected into 81 router endpoints
  • Credit middleware on scan / ai_sim / pdf_report / verify
  • Append-only ledger with DB-level balance check constraint

Frontend — Vite + React + Tailwind + shadcn

A React SPA served by nginx on the same droplet — single-origin, no CORS. Built around an SSE feed for streaming scan results so users see findings populate live.

Edge — Cloudflare CDN, R2, WAF

Static assets cached on the edge. R2 holds branded PDF reports. WAF rules block scanner-targeted abuse. Workers reserved for future per-agency white-label routing.

/ 04Build highlights
  1. 01

    6-dimension streaming scorer

    A custom scorer evaluates retrievability, entity authority, content structure, schema markup, E-E-A-T, and platform-specific signals, streaming partial results over SSE so the UI updates incrementally.

  2. 02

    Multi-run AI simulation

    Each prompt runs 3–5 times against multiple LLMs; we report citation frequency rather than a binary yes/no. Statistical consistency is what makes the result defensible.

  3. 03

    White-label everything

    Brand name, primary colour, logo, and PDF chrome are per-organisation. The product is owned by NBN Ventures but ships with no hardcoded brand strings — a single PRODUCT_NAME constant flips the entire surface.

/ 05What it became

Operates as the proof-of-craft anchor for Atellius. The same patterns — async SQLAlchemy, credit wallets, multi-tenancy, edge-first delivery — now ship as templates for agency clients.

Next casesurfsonix.com