How-To Guide

How We Shipped rubrica.app: Building a Production AI SaaS End-to-End

12 May 202612 min read

Most "we built an AI SaaS" posts stop at the demo screenshot. This one goes further. rubrica.app is a live production AI web app we designed, built, and launched at Kinexapps — students upload an assignment brief, marking rubric, and draft, and the app returns a criterion-by-criterion coverage report with quoted evidence and verified citations.

In this case study we walk through every layer we actually shipped: the product decisions, the AI pipeline, the citation verification, the credit-based payment model, and the production infrastructure. If you're a founder considering an AI SaaS — or a software house evaluating whether to take one on — this is the post we wish we'd had at the start.

App Spotlight

The live product behind this case study

Rubrica — AI Rubric Feedback for Students

Rubrica: AI Rubric Feedback for Students

rubrica.app is the production AI SaaS we built end-to-end — design, frontend, backend, AI pipeline, payments, and operations. If you want a SaaS like it, this is the kind of work we deliver.

The problem that made rubrica obvious

Students get rubric-graded, but they rarely see how their draft actually maps to each criterion before submission. Generic AI writing tools don't read the rubric, can't quote evidence from the student's own draft, and routinely hallucinate citations.

The gap was specific enough to define a product around: read the rubric, read the draft, return a structured criterion-by-criterion coverage report with quoted evidence, and verify any references against CrossRef so hallucinated DOIs are caught before submission.

The lesson for anyone building an AI SaaS — the tighter the problem, the easier the product is to scope, price, and ship. Vague AI products ("AI assistant for X") are expensive to build and impossible to position. Specific ones ship.

The stack we actually use

rubrica.app runs on a stack we keep coming back to for AI SaaS work:

• Frontend & app — Next.js (App Router) + TypeScript + Tailwind CSS. Server Components for the static shell, Server Actions for mutations, streaming for the long-running AI calls.

• AI pipeline — an LLM behind a structured-output contract. The rubric and draft are normalised into a single prompt with criterion IDs; the model returns JSON keyed by criterion. No free-text parsing.

• Citation verification — every reference the student includes (or that the model suggests) is checked against the CrossRef REST API. Hallucinated DOIs are flagged before they hit the report.

• Document ingestion — PDFs, Word, plain text, and images are converted to text upfront so the AI never sees binary formats.

• Payments — Stripe in credit-purchase mode. Users buy credits; each rubric check is a debit. Failed checks are refunded automatically so the user is never charged for a model error.

• Hosting — Vercel. Fluid Compute for the long-running AI routes, the runtime cache for repeated rubric structure parses, and Vercel Blob for uploaded files.

The whole stack is boring on purpose. We have shipped enough AI products to know that the interesting work is in the AI pipeline and the pricing model — not in the framework choice.

The AI pipeline, in plain English

Every rubric check follows the same five steps:

1. Ingest — the brief, rubric, and draft are converted to plain text. Rubrics often arrive as images or PDFs; we OCR them, normalise the criterion list, and assign each criterion a stable ID.

2. Plan — we send the model a planning prompt that tells it what criteria exist and asks it to map the draft to each one. The output is structured JSON, not prose, so we can validate it programmatically.

3. Evidence — for each criterion, the model is asked to quote the exact passages from the draft that support it. Quoted spans must be substrings of the draft — we verify this server-side and reject the response if a quote is hallucinated.

4. Rewrite — for criteria that are partial or missing, the model proposes a voice-preserving paragraph rewrite. We constrain rewrites to a single paragraph and pass the original tone as part of the system prompt.

5. Verify — citations in the draft are checked against CrossRef. Real DOIs are confirmed; invented ones are flagged in red.

If any step fails (model timeout, JSON parse error, evidence verification fail), the credit is refunded automatically. The user never pays for our mistakes.

Pricing: why pay-per-check beat a subscription

We considered a $9/month subscription. It made forecast revenue easier, but it punished the exact buyer we needed: a student who has one essay due next week.

A pay-per-check credit model fit the actual use case. $0.49 per check, a $1.50 welcome credit, six free no-signup tools to demonstrate value, and unlimited free revisions on the same assignment so the user is rewarded for iterating.

The operational benefit is just as important: pay-per-check forces us to size every model call against a real unit price. If a check costs us more than $0.49 in inference, we have a margin problem we can see immediately — not a churn problem we discover six months later.

For any AI SaaS founder reading this: pick the pricing model that mirrors how the user actually uses the product. Subscriptions work when usage is continuous. Credits work when usage is event-driven.

What we'd do differently next time

Three honest lessons from shipping rubrica:

1. Build the AI evaluation harness first. We wrote one in week three when we should have written it in week one. An AI product without an evaluation suite is a product you cannot improve safely.

2. Treat the rubric parser as the moat. The model writes the feedback, but it's the rubric-normalisation step that decides whether feedback is good. We invested more there in v2 and quality jumped.

3. Ship the free tools earlier. The six no-signup tools (essay-length checker, reference-format converter, etc.) drive a surprising share of signups. We launched them as an afterthought; they should have shipped on day one.

If you're considering hiring a software house to build an AI SaaS, ask them what their evaluation strategy is before you ask about the framework. The rest is plumbing.

FAQ

Frequently asked questions

How long did it take to ship rubrica.app?

A focused AI SaaS at this scope ships in 8–12 weeks with a tight team. The first half is product and AI-pipeline design; the second half is payments, polish, and hardening. Add 4 weeks if you also need an evaluation harness and a marketing site.

Can Kinexapps build a similar AI SaaS for my idea?

Yes — rubrica.app is the explicit case study we point to when clients ask. We can deliver the full stack end-to-end (product, design, frontend, backend, AI pipeline, payments, ops) or plug into an existing team. Get a free quote via /contact.

What does a production AI SaaS like this actually cost?

Realistic 2026 budgets sit at $40k–$120k AUD depending on the AI pipeline complexity, the number of model calls per check, and the integrations (payments, document ingestion, third-party APIs). We give a fixed-milestone quote after a Discovery call.

Get a Free Quote for Your AI SaaS

All Kinexapps apps are free to download on the App Store. No subscriptions, no paywalls.