// case study

Kuya Sharpens

A booking, job tracking, and shop management system for a mobile whetstone sharpening business, built to the same standard as software at large companies.

I built this for my own knife sharpening business.

  • Next.js
  • TypeScript
  • Postgres
  • Railway
  • Square
visit the live site →

// result

Under 3 weeks

from first commit to live in production

39

merged pull requests

65

automated test files

Nightly

database backups

As of November 2026.

// the business

The challenge

Kuya Sharpens is a mobile whetstone sharpening service. Knives get picked up, sharpened by hand, and brought back.

A sharpening job has more moving parts than an appointment. Someone has to know whose knives are in the shop, when each Pickup and Return happens, what was done to each knife, and how much life is left in each stone. A generic booking tool can schedule the visit, but it doesn't know what a knife is.

// decisions

What I decided

Model the real work

Each knife is its own record with a service history. Each job logs the steps, stone progressions, and time spent, so customers get a report of what was done.

Keep a person in charge of the schedule

Customers request a time, and the shop accepts it, suggests another, or declines. The software does the bookkeeping while the owner makes the call.

Measure what the business runs on

An insights dashboard shows time spent, stone usage, and compound usage, so pricing and purchasing can rest on recorded data.

Make every change safe

Each change runs through automated tests and gets its own preview environment. Database changes must succeed before a deploy goes out, and backups run every night.

// insights dashboard

See where the time and money go

Every logged job feeds a dashboard for the owner. It turns the work into plain answers, then calls out what's worth a look.

  • Time per knife type and per step
  • Materials cost per knife
  • Stone and compound usage
  • Wear forecast for every stone
  • A weekly trend: is the work getting faster?
The Kuya Sharpens insights dashboard with totals, callouts, and time per knife type
The insights dashboard, shown with sample data

// tradeoffs considered

What I gave up, and why

Support multiple businesses from day one

the cost

More work up front, since every feature has to be scoped to a business.

why it was worth it

The app can be resold to other sharpeners on their own domains without a rewrite.

Web app first, native app later

the cost

No App Store presence for now.

why it was worth it

One codebase got the business running sooner.

Save booking drafts on the server

the cost

A little more backend work than saving them in the browser.

why it was worth it

Drafts will carry over to the native app instead of being stranded in one browser.

Take payment in person after the work

the cost

Less automation at checkout.

why it was worth it

The final price is confirmed at Pickup, and customers pay at Return once they have their knives back.

// shipped

What's running today

  • Customer booking with shop approval
  • Knife records with service history
  • Work log with per-step timers
  • Customer service reports
  • Stone and compound tracking
  • Insights dashboard
  • Storefront with Square checkout
  • Branded customer emails
  • Nightly backups with a guarded restore
  • A preview environment for every change
The Kuya Sharpens home page
The public site at kuya.sharpens.studio
The Kuya Sharpens services page with an example service log
Services, with an example of the log customers receive

// what's next

  • A dedicated admin app for running the shop on the go
  • Offering the platform to other sharpeners

// next step

Tell me where the business is stuck.

Book a call and we'll find out whether custom software is the right fix. If it isn't, I'll tell you.