NEXSUM_LABS
  1. Home
  2. Work
  3. A tutoring collective funded its expansion with a parent-facing progress MVP
Book a call

[ Case study ]

TutoringNext.jsTypeScriptPostgresAuth.js

A tutoring collective funded its expansion with a parent-facing progress MVP

Parents chose the collective on trust and left when they couldn't see progress; session notes lived in tutors' notebooks, head office compiled reports by hand, and franchisees had no shared way to show value at renewal time.

CLIENT a franchised tutoring collective — FOCUS Three-minute note flow

MVP DevelopmentCustom SoftwareMVP DevelopmentTutoringRepresentative example
Client
a franchised tutoring collective
Industry
Tutoring
Engagement
8 weeks — systems pod — engineer + designer
Service
Custom Software / MVP Development
Headline outcome
All franchisees reporting through the portal, with parents reading progress in their own login: Notebooks → parent-facing portal, read from Renewal-period survey

Representative examplesEvery case study in this library is an illustrative composite of the kind of engagement we deliver — written to show our method and standards, not to name clients.

Where they started

A franchised tutoring collective runs on two layers — a head office that owns the brand and curriculum, and independently owned franchise locations that own their student relationships. Sessions happen in homes and small centers, and tutors are paid contractors moving back to back between students. Parents enroll on word of mouth and decide on renewals at term boundaries. Before this build, the only evidence of progress was whatever each tutor wrote in a notebook, so the collective's story to parents lived in tutors' memories and franchisees' reassurances.

What it was costing

Parents chose the collective on trust and left when they couldn't see progress; session notes lived in tutors' notebooks, head office compiled reports by hand, and franchisees had no shared way to show value at renewal time.

What they could see

  • Renewal conversations happened with nothing to show; parents asked what the tutoring had changed and franchisees improvised.
  • Head office spent the first weeks of every term retyping tutors' notebook pages into term reports.
  • Tutors' notes described hours and moods, not progress; two tutors covering the same student wrote incompatible records.
  • Franchisees forwarded parents to head office for progress questions they had no data to answer.
  • Churn showed up as silent non-renewals — parents left at term boundaries without a conversation the collective could have won.

The constraints we worked inside

  • Tutors are contractors on tight schedules — anything they must do after a session gets three minutes, not ten.
  • Franchisees own their client relationships; data is partitioned per franchise from the first schema line.
  • The MVP had to run on the collective's existing student-management spreadsheet as its input, not require a migration.

What had been tried before

Asked tutors to email end-of-term summaries that head office would compile into parent reports.
Compilation took head office days each term, the reports arrived after renewal conversations, and tutors treated the emails as optional homework.
Bought a tutoring-management SaaS and asked franchisees to move their student records into it.
The vendor's accounts were shared rather than partitioned, so franchisees — who own their client relationships — refused to enter client data, and the trial lapsed.
Ran a pilot where one franchise published progress through a shared document folder.
Parents found the folder confusing, tutors forgot to upload, and the franchisee spent weekends curating files that two families ever opened.

What we proposed

We proposed a parent-facing progress portal built backwards from the renewal conversation: what a parent should be able to read in March, generated from what tutors record in October. The core move was a three-minute note flow — three structured taps and one optional sentence — because tutors would abandon anything longer, and unrecorded sessions produce no portal. The collective's existing student-management spreadsheet stays the source of truth, synced on a schedule with a visible reconciliation report, so no franchise has to migrate anything. Every table carries franchise ownership from the first schema line, which keeps future products from renegotiating data boundaries later.

Just as important is what we ruled out, and why:

  • Migrating franchises onto a shared student-management system firstFranchisees own their client data and had already refused one migration; the portal had to meet the spreadsheet where it lived or die in onboarding.
  • Tutor-facing session-recording mobile app with rich note captureRich capture contradicted the three-minute budget; a native app also meant app-store review and install friction for contractors on borrowed Wi-Fi between sessions.
  • Head-office-only reporting dashboard without parent accessThe renewal decision belongs to the parent, and an internal dashboard repeats the spreadsheet's job — value shown to staff does not reach the person deciding.

How the work ran

01Three-minute note flow

Tutors log a session in three structured taps plus one optional sentence; the portal does the writing, compiling notes into a readable progress narrative.

02Partition by franchise from day one

Every table carries franchise ownership, so the collective's product can grow without renegotiating data boundaries later.

03Import the spreadsheet, version it

The student-management spreadsheet remains the source of truth, synced on a schedule with a visible reconciliation report.

Delivered by the systems pod — engineer + designer over 8 weeks, with working increments reviewed with the client every week.

The stack, and the reasoning

Next.js
Parent pages and the tutor note flow share one rendering stack, and server rendering keeps the parent portal fast on phones over home Wi-Fi.
TypeScript
Head office will maintain this portal through a growing franchise list with contractors who never met us; typed row scopes make the partitioning a property of the codebase itself, so a refactor years from now cannot quietly leak one franchise's families into another's report.
Postgres
Progress narratives are assembled from many session records over time, and window functions over relational rows produce them without a second data store.
Auth.js
Three audiences — parents, tutors, head office — need separate logins against one dataset, and Auth.js handled the roles without building an identity team's worth of code.
Vercel
Head office has no technical staff; managed hosting and preview deploys meant the portal stayed current without anyone learning server administration.

What went wrong

Obstacle

The first note flow asked five structured questions; within a week, two pilot tutors had quietly reverted to notebooks and the portal showed gaps.

Handled: We rebuilt the flow around three taps and an optional sentence, tested it in a real back-to-back session gap with a timer running, and adoption held.

Obstacle

Head office requested an admin dashboard mid-build that duplicated what the spreadsheet already produced, and it consumed the schedule's middle third.

Handled: We paused it, shipped the parent view for the renewal window, and replaced the dashboard ask with the reconciliation report the spreadsheet sync already generated.

Obstacle

The spreadsheet's student rows carried no stable identifiers — the same child appeared under two spellings after a franchisee's assistant re-entered a family.

Handled: The sync surfaces duplicates in the reconciliation report instead of guessing, and merging became a franchisee decision made in the portal with one click.

How we worked together

Cadence
Weekly Wednesday demos to head office during the build, plus two franchisee preview sessions timed to the term calendar so feedback arrived before renewal season.
Client side
Head office supplied an operations manager who owned the spreadsheet and tutor communications; two franchisees served as the pilot review group.
Decisions
The operations manager gathered franchisee objections and returned one consolidated answer per week — franchisees influenced, head office decided.
They provided
The student-management spreadsheet with its real quirks, tutor time for the adoption pilots, and franchisee families for the parent-view preview.

What changed

The headline: all franchisees reporting through the portal, with parents reading progress in their own loginNotebooks → parent-facing portal, read from Renewal-period survey. A second check: term-to-term renewal rate in pilot franchises at +14%.

The end-of-term email a parent receives is a three-line read now — what the tutor recorded, how the sessions went, what next term proposes. Franchisees walk into term meetings with a progress narrative generated from real sessions instead of reassurance, and parents read their own login rather than a PDF summary that arrived late. Tutors stopped being asked to write reports — the three taps happen inside the gap between students, and the optional sentence is genuinely optional. Head office no longer retypes notebooks at term start; the reconciliation report replaced that ritual. The collective also confirmed an organizational lesson: franchises adopt tools that respect their client ownership.

The result was read from Renewal-period survey against the pre-engagement baseline over the stated window, with a guardrail check on term-to-term renewal rate in pilot franchises. Where platform-reported numbers and business outcomes differ, this record says which layer it is quoting.

What they own now

  • The portal repository with environments, deployment pipeline, and schema documentation
  • The spreadsheet sync job with its reconciliation report and merge workflow
  • Admin accounts for head office and per-franchise logins for tutors and parents
  • A three-minute note-flow training recording for onboarding new tutors
  • The franchise-onboarding checklist for adding a new location without engineering help

What we would do differently

We would cut the admin dashboard from the MVP entirely — franchises needed the parent view first, and the admin side duplicated what the spreadsheet already did for one more month.

Custom SoftwareMVP DevelopmentTutoringNext.js

Next case study

A diagnostics startup proved its at-home testing concept with a booking MVP in ten weeks