Danny's Diesel and Repair
Danny's Diesel and Repair · 2026
ASE-certified diesel shop in Mooreland, Oklahoma — fleet maintenance, diagnostics, and engine repair, with a call-first mobile layout.
- Problem
- An ASE-certified diesel shop in Mooreland, Oklahoma needed more than a brochure — the owner also needed a simple way to track clients, jobs, and payments without buying another software subscription.
- Solution
- I built a conversion-first Vite + React site with a call-first mobile layout, plus a Supabase-backed admin portal where the owner manages clients, a four-stage job pipeline, and payments with one-tap Google review requests.
- Result
- The public site and admin portal are both live, with all shop data isolated behind Supabase row-level security and an admin allowlist.
The brief
A diesel shop's customers are usually standing next to a truck that won't run. The public site had to get them to a phone number fast — a call-first mobile layout, not a scrolling brochure. But the bigger opportunity was on the back end: the owner was tracking clients, jobs, and payments by hand, and shop-management software is another monthly bill. So the site ships with its own.
What was built
Nine public pages: home, services, about, and contact, plus five dedicated service pages — fleet maintenance, diagnostics, engine repair, auto repair, and roadside. Every page funnels toward calling the shop.
The admin portal lives at /admin, linked as "Owner login" in the footer. Clients hold contact info and notes per customer. Jobs track what needs to get done per client through a four-stage pipeline — To do, In progress, Waiting on parts, Done — with quotes and due dates. Payments are recorded against clients and jobs, and after recording one, a prompt offers a one-tap text or email of the Google review link to that customer, stamping a review_requested_at timestamp so the owner can see who's already been asked. Reviews get requested at the exact moment a customer just paid and is happy.
Under the hood
Vite, React 19, TypeScript, Tailwind CSS 4, and React Router 7. Auth is Supabase email/password, restricted to an admin allowlist table — row-level security denies everyone else, so a random signup gets nothing. All four tables carry a ddr_ prefix and are fully isolated by RLS, designed to move to a dedicated Supabase project with no code changes: re-run the migration, recreate the admin user, point the environment variables. Configuration is strictly env-driven — the Supabase client throws at startup if credentials are missing rather than falling back to anything hardcoded, and a top-level error boundary catches it. The build runs a full TypeScript check before bundling.
Where it stands
Live at diesel.quengadesigns.dev — public site and admin portal both in production, with the owner tracking real clients, jobs, and payments through it.