Faculty grade in any format. Students get structured, criterion-aligned feedback.
A private client's early-stage grading SaaS for faculty and instructors. We rebuilt it end to end in six months. Faculty upload assignments as documents, PDFs, or audio and video recordings, attach a rubric or prompt, and receive structured feedback they can export as a PDF. Students join by course code and see their graded work in the same dashboard.
The client had spent months building a grading workflow that faculty genuinely liked. The grading logic was solid. Everything around it was not. There was no billing. Authentication was partial. Document intake only covered text. Faculty and students used the same surface with no real separation. The platform worked on one laptop and nowhere else. The brief was simple: take this from a demo-stage product to a launched, multi-tenant SaaS with billing, role-based access, reliable hosting, and a document pipeline that could handle the work faculty actually receive.
Production-ready is not a checklist. For this platform it meant four concrete things. First, a real billing layer with credit metering, so a grading call could not run unless the user had credit for it. Second, a real identity layer with email verification, Google sign-in, and refresh-token sessions. Third, a document intake that could read what faculty actually upload, not just typed text. Fourth, a split between the relational teaching model and the billing state, so a late-night webhook could never corrupt a student's assignment record. Every one of those shipped.
Faculty and instructors who spend hours every week marking student work and want feedback to stay consistent from the first paper to the fortieth. Academic leaders who want a self-serve SaaS their teaching staff can sign up for without an IT project. Founders of early-stage SaaS products who have working features and need the production layer built out before they can charge for it. The platform is multi-tenant, so each instructor manages their own courses, rubrics, and students inside their own scope.
We started by mapping what the MVP was doing well and where it would break the moment a paying faculty member tried to use it. Data model, API contracts, auth flow, cost per grading call, deployment story. From that we agreed on the production scope, the stack choices, and the rollout plan.
The real work. We rebuilt the application on Next.js with a typed backend, added credit-metered Stripe billing with origin-guarded checkout, wired up email verification and Google sign-in, layered in rubric and prompt grading modes, and expanded the document pipeline to accept Word, PDFs, and transcribed audio and video. Along the way we split persistence so billing and academic data stopped sharing a single failure surface.
We shipped the application to AWS Elastic Beanstalk, the marketing site to Netlify, and the webhook chain to Stripe. Monitoring, logs, and health checks went live alongside the public launch. The platform has been running on that footprint since October 2025.
A launched, multi-tenant grading SaaS for the client. Live in production since October 2025, carrying real faculty, real students, and real billing.
A grading workflow that holds up outside a demo. Faculty upload the documents and recordings they already have, choose between rubric-aligned or prompt-only grading, and hand students structured feedback that exports straight to PDF.
Billing that runs without engineering intervention. Three Stripe plans, credit-metered grading, webhook-updated balances, and a hardened checkout redirect. The client charges, the platform collects, and nobody has to babysit it.
A data model the client can live with. Academic records and billing state sit in separate stores, so one failure surface never takes the other down, and adding a feature on one side never breaks the other.
Courses, rubrics, assignments, and enrollments live in MySQL. Credit balances and billing state live in MongoDB. A retried webhook can never corrupt a student's grade, and a classroom data fix can never leak into billing. This is the single biggest structural change between the MVP and the launched platform.
Every grading call checks credits before it runs and decrements only on success. A failed model call does not silently burn a user's balance. That one rule is the difference between a plan faculty trust and one they do not.
PDFs, Word documents, typed text, and transcribed audio or video all feed into the same grading flow. Faculty do not preprocess anything. Spoken presentations are graded through the same rubric engine as written essays.
The grader is constrained to emit HTML with headings, bullets, and justifications. That same HTML renders in-app and exports to PDF through the PDF engine. Faculty get one output they can use in two places, and the layout never breaks between them.