Back

My own product · software for car workshops

GridServis

A Windows program that runs a whole car workshop — jobs, customers, parts stock, labour pricing, documents and stats. Around the program I built the website, Stripe checkout and the licensing that issues the keys.

GridServis
Role
Product, design, build and sales
Year
2026
Status
Own product

GridServis is my own product. The idea, the design, the program, the website and the sales are all mine — from the first screen to the invoice the workshop prints.

It runs on a PC in the workshop and the data stays there, not in someone else's cloud. Anyone can download the demo for free; a subscription unlocks the full version.

Who it's for

Mainly for small and mid-sized car workshops that still track jobs in a notebook, in Excel or in their head. Typically a shop with one to five mechanics that wants order in its jobs and paperwork without hand-adding numbers — not an expensive cloud system built for dealer chains.

Ownership & availability

I am the owner and the only author. The program is publicly available — anyone can download it, try it and use it; the source code is not published.

Problem

A small workshop keeps its jobs on paper. When the customer comes back half a year later, nobody knows exactly what was done to the car or for how much. At the end of the month revenue is added up by hand, stock doesn't match and every invoice is written from scratch. The big workshop systems are expensive, cloud-locked and full of features a two-mechanic shop will never touch.

What I built

  • The Windows program itself — seven screens that cover a normal day in the workshop
  • Job sheet, invoice and key tag printed straight from the job
  • The gridservis.app website — features, pricing, install guide, FAQ and the legal pages
  • Stripe checkout: yearly and monthly subscriptions, renewals and cancellation
  • Licence keys, binding them to one computer and moving a licence to another machine
  • The installer released only after a verified order, plus the emails carrying the key
  • A free demo so anyone can try the program before paying anything

What it does

  • Jobs

    A list filtered by state — received, in progress, waiting for parts, done, handed over. Search covers the name, the brand, the plate and the job number, numbering runs itself as Z2026-0001, and the whole list exports to CSV for the accountant.

  • Job detail

    Four tabs: Details, Labour & price, Photos and Vehicle history. The car with its VIN, mileage, engine, fuel and gearbox, a booked date exported to the calendar, and tags such as warranty claim or waiting for a part.

  • Labour & price

    A task comes from the price list with its standard hours, and the labour cost follows the workshop's hourly rate. Parts are issued straight from stock, so the count stays right without retyping. Totals for labour, parts and the whole job sit at the bottom.

  • Customers

    Cards with the phone number, the cars, the job count, total spend and the last visit. Regulars are flagged automatically, and open or unpaid jobs are called out.

  • Stock

    Parts with a catalogue number, quantity, unit and shelf location. Buy price, sell price and per-unit margin, the value of the whole stock, and a filter for items running low.

  • Labour price list

    Tasks grouped into categories such as brakes, engine, suspension, air conditioning, tyres and diagnostics, each with its standard hours. Change the hourly rate and the entire price list recalculates.

  • Stats

    Revenue and job counts by month, the split between labour and parts, jobs by state, the unpaid total, the most frequent car brands and the most valuable customers.

  • Documents & settings

    Job sheet and invoice as PDFs with the labour and parts breakdown, plus a key tag. The workshop name, address, hourly rate, IBAN, payment terms, VAT and number prefixes are set once and printed on everything.

Screens

How it's built

  • A site with no build step

    gridservis.app is static HTML, CSS and vanilla JS. One Python script generates it from a single source of copy, so the price on the pricing page, in the structured data for Google and in the footer can never drift apart.

  • Stripe checkout

    An order is a plain form posting to a serverless function, so it works with JavaScript off. The webhook is idempotent — when Stripe replays the same event, a second licence is not issued.

  • Licences bound to a machine

    After payment the server generates a MECH-XXXX-XXXX-XXXX key, stores it in Postgres on Neon and emails it out. A licence covers one computer; moving it to another machine has its own flow so a key can't just be copied around.

  • Split database privileges

    The site reads the database through a role that only sees licences, payments and traffic. It cannot reach workshop data even if someone got hold of the environment variables.

  • Download gated behind the order

    A serverless function releases the installer once the order checks out. The version number is pulled from the latest GitHub release, so it is never typed by hand and is correct the moment a release goes up.

  • Nothing from third-party domains

    No external fonts, no analytics, no embeds — the site carries its own assets and counts traffic with its own function. Less consent nagging and a faster page.

Stack

  • Windows
  • Stripe
  • Neon Postgres
  • Vercel Functions
  • Vanilla JS
  • Python

Status

A finished product on sale at gridservis.app. Anyone can download the demo; a yearly or monthly subscription unlocks the full version. I keep developing it around what the workshops using it ask for.

SK