← Case Studies·AUTOMATIC·2026·NEXTUP
Custom App · Construction

NextUp

A custom AI-powered task management app built for a construction team — purpose-fit for how they actually work, delivered on a fixed budget, with full ownership transferred at the end.

Client

Jeremy · Onyx

Engagement

Fixed-scope MVP build

Surface

Web app · Mobile-responsive

Status

In production

§01

The problem

Premise

Jeremy runs operations for a construction team. Like every operator in the trades, he'd tried the standard playbook. ClickUp was the "professional" option — and it was too complex. Onboarding alone took longer than most tasks, and the field crew refused to use it. Microsoft Tasks was the fallback — and it was too basic. You could make a list. That was about it.

The team needed something in between. A task system that respected how a construction operation actually works: category-based work that maps to specific people, scheduling that accounts for who's actually available, and a mobile experience that doesn't require five taps to mark something done. Nothing on the market fit. Buying another generic tool wasn't going to fix it — the problem was that the off-the-shelf options were built for a different kind of company.

§02

The thesis

Decision

For a small team, "buy software" had failed twice. The math on a custom build was simpler than most operators assume: one purpose-fit application, paid once, owned forever — for less than two years of ClickUp seats across the crew.

The engagement was structured as a $6,625 budget cap with a written feature list signed before work started. No "we'll figure scope out as we go." No "let's add this thing because it'd be cool." Every change request got acknowledged in writing with a clear impact on timeline and budget. The cap protected Jeremy. The scope discipline protected the project.

This is the playbook for every custom build worth doing: written scope, budget cap, milestone-based progress, weekly check-ins, and the kind of accountability where "done" is something you both agree on out loud — not something the developer decides unilaterally.

The budget cap was the smartest part. It forced the scope conversation up front, which meant we built the right thing instead of arguing about feature creep at the end.

Internal note, NextUp post-mortem
§03

The build

Approach

NextUp is a Next.js application on Supabase, deployed to Vercel. The core loop: tasks come in, the AI layer reads them, classifies them by category, and proposes an assignment based on who's available and who handles that kind of work. A human approves or overrides. The task lands on a drag-and-drop calendar that the whole team can see.

The mobile experience was non-negotiable. A construction operator is checking this from a job site, not a desk. Every key action — view today's work, mark complete, reassign, add a note — works in two taps on a phone. The calendar is the home screen. Everything else is a click off of it.

Under the hood: category-based smart scheduling, availability-aware assignment, a mobile-responsive layout built mobile-first instead of squeezed down from desktop, and a clean role system that separates what Jeremy can do from what the crew can do.

AI task classificationAuto-assignment by categoryAvailability-aware schedulingDrag-and-drop calendarMobile-first UIRole-based accessTask notes + status

Next.js · App Router

Full-stack app

TypeScript · Tailwind

Type-safe · responsive

Supabase

Postgres · Auth · Realtime

Claude API

Task classification · assignment

Vercel

Deploy · domain · edge

shadcn/ui

Component base

§04

Execution

Execution

Most custom-build projects end with a vague "everything's working, let me know if you need anything" email. NextUp ended with an actual checklist.

Jeremy received credentials and admin access to every account the app runs on — GitHub, Supabase, Vercel, the domain. The source code is his. The database is in his Supabase project. The deployment lives on his Vercel account. If he ever wants a different developer to take it over, the onboarding is one folder of repo access and a 30-minute walkthrough.

The final delivery included documentation, a walkthrough call, and a clear answer to the question every operator should ask before paying for software: "What does this cost to run, and what happens if something breaks?" NextUp's monthly running cost is the price of a Supabase plan and a few dollars of Claude API usage — and "what happens if something breaks" has a written answer instead of a salesperson.

$6,625

Budget · met exactly

100%

Scope shipped

4

Accounts transferred

0

Recurring vendor lock-in

§05

Timeline

Week 1

Scope + kickoff

Written feature list signed. Budget capped. Account setup — GitHub repo, Supabase project, Vercel deployment, domain. First working session to confirm the data model.

Weeks 2–3

Core build

Auth, schema, task CRUD, calendar UI, drag-and-drop scheduling. Mobile-first layouts pass the 'two-tap test' on every key action. Daily commits, weekly check-in with Jeremy.

Week 4

AI layer

Task classification and auto-assignment built on Claude. Availability rules layered in. Override flow for when the AI gets it wrong. Role-based access cleaned up.

Handoff

Transfer + walkthrough

All four accounts transferred to Jeremy's ownership. Documentation delivered. Walkthrough call. Project closed within the original $6,625 cap, full scope shipped, no change-order surprises.

§06

What it proved

Off-the-shelf isn't always cheaper

Two failed software trials had already cost Jeremy time and trust from the crew. A purpose-fit app — built once, owned forever — cost less than two years of multi-seat subscriptions and actually got used.

Budget caps make scope honest

A written cap before work starts is the single most underrated discipline in custom software. It forces the hard scope conversations up front, where they belong, and protects both sides from the slow-bleed of feature creep.

AI as plumbing, not theater

The AI in NextUp doesn't get a chat bubble or a marketing page. It does one job — classify and assign — in the background. The crew never thinks about it. That's the right altitude for AI in a tool people actually have to use.

Handoff is part of the product

Owning the GitHub repo, the database, the deployment, and the domain isn't a bonus deliverable — it's the difference between buying software and buying a vendor relationship. Jeremy bought software.

Generic tools not fitting how your business actually works?