The problem
A remodeling and restoration company in the Houston, TX area needed to win new jobs online and keep tight control of each project's finances — without stitching together separate tools. We built one cohesive Next.js application that serves two distinct audiences from a single codebase, cleanly separated with route groups so the public site has no app chrome and the internal tool sits behind authentication.
Public marketing site
A polished single-page landing site with hero, services, about and why-choose-us sections, an image slideshow with embedded brand videos, and a customer-reviews carousel sourced from the company's Thumbtack profile with an aggregate rating. A free-estimate lead form validates input, guards against spam, and delivers leads by email. Copy, services and media are driven by a centralized content model so the business can edit in one place.
Project Tracker (internal app)
A secure internal tool with email/password authentication and role-based access for Admin, Agent and User. It tracks the full project lifecycle — work orders, vendors, customer supervisors, expenses, income and a status workflow — with automated profit calculations, reporting and an audit trail of changes. Every route is protected behind its own authenticated layout.
Discoverability & reach
SEO handled end to end: rich metadata, Open Graph and Twitter cards, canonical URLs, an XML sitemap and robots.txt. Structured data uses a JSON-LD GeneralContractor schema with ratings, services, hours and contact details for rich results, and an llms.txt endpoint summarizes the business for AI assistants.
What we delivered
- Full-stack build in one Next.js app with route groups for public vs. authenticated areas
- Lead-capture marketing site with validation, spam guard and email delivery
- Internal Project Tracker: RBAC (Admin/Agent/User), project lifecycle and audit trail
- Automated profit calculations and reporting
- SEO, structured data (JSON-LD) and llms.txt
Tech stack
- Next.js 15 (App Router)
- React 19
- TypeScript
- Tailwind CSS
- PostgreSQL via Prisma
- NextAuth (credentials)
- Resend
- Vitest + fast-check
- Railway + managed Postgres
- Cloudflare DNS
Results
Results pending [CONTENT PENDING]
More of our work
Explore other case studies.

Logistics, freight & customs
Waku Logistics — Cargo Tracking Platform (Web + Android)
A full-stack web app plus an Android companion that tracks merchandise in real time through the full import/customs lifecycle, emailing clients automatically at every stage.
View case study: Waku Logistics — Cargo Tracking Platform (Web + Android)
Branding, logo design & rebranding
Branding & Visual Identity
Logo, visual identity and rebranding work delivered with our network of top-tier design and marketing partners — across logistics, automotive, construction, nutrition and more.
View case study: Branding & Visual Identity
Have a project like this in mind?
We build the right solution at any complexity — tell us the problem you're trying to solve.

