Tarnfield

Websites, web apps, desktop and mobile apps for small businesses and early-stage founders.

Ferrez Guiding: home Demo Roasters: coffee list Demo Barbers: home Polisher: paste a draft Kirkgate: services KeyNest: health check Tally: owner money page Business dashboard: insights Demo Roasters: plain-English search Ferrez Guiding: routes Polisher: before and after Demo Barbers: the owner's diary Kirkgate: pricing Business dashboard: home Tally: member app KeyNest: a project's keys Demo Roasters: gift sets Polisher: price

Tarnfield builds websites, web apps, desktop apps and mobile apps for small businesses and early-stage founders. We agree what it has to do first, show you a working preview early, and test it before anything goes live. Our work includes a Cape Town guide's booking site, a gym app demo, a business dashboard, a barber's booking demo, a plumber's website demo, an online coffee shop, an AI writing tool and a Windows app for API keys.

Projects we've worked on

Ferrez Guiding

Client site

A custom website for Ferrez Guiding, a Cape Town hiking guide on Table Mountain and Lion's Head. Visitors compare six routes, check sunrise and sunset times, then build a ready-made WhatsApp booking message in a few taps. It is designed for phones, works without JavaScript, and lets the owner update reviews by editing one plain text file, with no tools.

The result

A finished client site. Visitors choose a route, check the light for their date and send a booking by WhatsApp in a few taps.

Read the full case study

The problem

Visitors to Cape Town need to pick the right guided hike and book it from their phone, without forms or accounts.

The numbers

The site's full checks passed on 2 November 2026: generated pages match the facts file, the reviews file is valid, unit tests pass, and 282 browser tests passed with 38 skipped because they did not apply.

Our approach

Plain HTML, CSS and JavaScript, with no framework. Six routes with photos, grades, times and prices, a side-by-side table, a sunrise and sunset planner, and light and dark modes.

What we would improve

Some of the client's wording is still being confirmed with him.

Client site for a Cape Town hiking guide, shown with his agreement. Name, logo and photos belong to Ferrez Guiding.

Ferrez Guiding home page: guided hikes on Table Mountain and Lion's Head
Ferrez Guiding routes, each with a photo, grade, time and price

Demo Roasters

Demo shop

A made-up UK coffee shop with 40 products, plain-English search, a basket, card checkout in Stripe test mode, customer accounts and an admin dashboard.

The result

Customers can search in their own words, such as "fruity coffee for filter". In a fixed test, 16 of 20 searches passed and none broke a price limit or a decaf request. Google's Lighthouse test gave it a top accessibility score and a good speed score on a phone. No real customers: it is a demo.

Read the full case study

The problem

Show every working part of a small online shop in one demo that costs nothing to run and is safe to leave online.

The numbers

Search passed 16 of 20 queries on a fixed test, with no price or decaf rule broken; the target was 18. Lighthouse on mobile, median of 5 runs on 26 October 2026: performance 91 to 98, accessibility 100. 224 unit, 54 integration and 136 end-to-end tests pass.

Our approach

Search first picks out hard rules, such as a price limit or decaf, then a small free language model on the server matches meaning, blended with keyword search. No paid AI, so no cost per search. Stock is held while a checkout is open, so two people cannot buy the last bag. Live payments are refused in code.

What we would improve

Fix the four missed searches and re-test on new queries. Let the admin add products, not only edit them. Confirm payments with a Stripe webhook.

Demo shop. Nothing is sold.

Demo Roasters search results for a plain-English query
Demo Roasters gift sets page showing a grid of gift boxes

Demo Barbers

Demo app

A made-up UK barber shop where customers book a service, a barber and a time, pay a 20% deposit by card in Stripe test mode, and cancel or move with a private link. The owner has a diary for the day and week.

The result

A booking paid and cancelled on the live site was refunded in full by Stripe. Two people can never book the same time: the database refuses it. Google's Lighthouse test gave every page tested a top accessibility score on a phone. No real customers: it is a demo.

Read the full case study

The problem

Show a small service business how online booking with a deposit cuts no-shows, in a demo that costs nothing to run and is safe to leave online.

The numbers

Lighthouse on mobile, median of 5 runs on the live site on 3 November 2026: accessibility 100 on all three pages tested, performance 89 to 96. 25 unit, 56 integration and 255 end-to-end tests pass, plus 6 real Stripe sandbox checkouts.

Our approach

The time is held for 10 minutes while the customer pays, and every payment is checked with Stripe again before the booking is confirmed. No customer accounts: a signed private link does the job. It sends no emails, so nobody can use it to mail a stranger. Live payments are refused in code.

What we would improve

Email the link and a reminder the day before, for a real shop. Let the owner change hours, services and prices from the diary. Bring the home page's phone speed score from 89 to 90 or more.

Demo app. Test payments only. The shop, barbers and bookings are made up.

Demo Barbers home page with a Book a chair button beside a photo of a barber at work
Demo Barbers diary showing a day of made-up bookings for two barbers

Kirkgate Heating & Plumbing

Demo site

A made-up Aberdeen plumbing and heating firm with an enquiry form, a £25 call-out deposit in test money, and an AI chatbot that only answers from approved facts. If someone mentions gas or fire, ordinary code shows official safety advice and real emergency numbers before any AI runs.

The result

Customers can send an enquiry, pay a test deposit or ask a question at any hour, and a gas question gets the real emergency number straight away. No real customers: it is a demo.

Read the full case study

The problem

A local firm loses work when people cannot get an answer quickly, and a chatbot must never make up a price or get in the way in an emergency.

The numbers

The chatbot scored 23 of 25 on a fixed test on the final code; both failures were correct refusals caught by a banned phrase. Lighthouse on mobile, median of 5 runs on 3 November 2026: home page performance 98, accessibility 100. SEO scored 66 only because the demo asks search engines not to list it. 167 unit, 22 integration and 121 browser tests passed.

Our approach

Safety checks in ordinary code run before the AI. The chatbot's spending is capped at under £0.10 a day, reserved in the database before each reply. Bookings are only confirmed by a signed message from Stripe. Enquiries and bookings are deleted after 7 days.

What we would improve

Check it on real phones and screen readers, have someone with gas safety training read the emergency wording, and run it with a real firm before saying it brings in more enquiries.

Demo site for a fictional firm. Nothing is sold, and no real money moves.

Kirkgate emergency plumbing page, with gas safety advice and the real National Gas Emergency number at the top
Kirkgate's Book a call-out page, where a £25 deposit is paid in Stripe test money

Polisher

Demo app

Paste three to five samples of your own writing, then an AI draft, and get the draft back in your voice. Demo accounts are deleted after 24 hours.

The result

Every rewrite is checked, and any number, link or quotation that changed gets flagged. The AI bill cannot run away: a hard daily budget of about 10p covers all visitors. A review of the code, not a live attack test, found no confirmed vulnerability, and its four leads were fixed.

Read the full case study

The problem

AI drafts sound like AI. Make them sound like the person sending them, without changing the facts.

The numbers

1,600 unit, 73 integration and 200 end-to-end tests pass (29 October 2026). A source-only security review found no confirmed vulnerability, and its four leads were fixed. Lighthouse on mobile, 18 October 2026, before the demo changes: performance 94, accessibility 100.

Our approach

Rewrites come from a fast AI language model. A rule-based clean-up then strips AI habits such as long dashes, stock phrases and hidden characters, and enforces British or American spelling. A meaning check flags any number, link or quotation that changed. A hard daily budget of about 10p caps AI cost for all visitors.

What we would improve

Re-run the blind quality comparison with several judges, not one.

Demo app. Test payments only.

Polisher with a sample AI email pasted into the draft box
Polisher home page

KeyNest

Desktop app

A free Windows app that keeps API keys, tokens and secrets in an encrypted vault on your own PC, with no account and no cloud copy. It also finds keys left in plain text, including in the folders AI coding tools use.

The result

A downloadable preview. Found keys are sorted by who could actually reach them: web page code and files Git sends online come first, keys only on this PC next, and sample keys from tutorials are folded away. A security review of its code, not an independent one, found no confirmed weakness, and the two possible problems it raised were fixed.

Read the full case study

The problem

People who build with AI coding tools collect keys fast, and copies end up in .env files, notes and chat history. Give them one safe place for keys, and show them where loose copies are.

The numbers

176 automated core tests pass, and window tests that drive the real app pass on the production build (1 to 3 November 2026). A source-only security review, quick profile, found no confirmed vulnerability (3 November 2026).

Our approach

A desktop app with a Rust core and a React interface. The master password unlocks the vault with Argon2id, the vault is an encrypted SQLCipher database, and each secret is sealed again on its own. Scans only read files and store where a key was found, never the key.

What we would improve

An independent security review and code signing before inviting strangers to rely on it.

Early preview. Free Windows download, not yet code-signed. Every key, project and file shown is made up.

KeyNest Health page sorting found keys by who could reach them
KeyNest library with a Stripe key open

Tally

Demo app

An interactive demo of a gym membership and loyalty app. Members book classes, check in with a wallet card, keep weekly streaks and climb plate-colour ranks within their weight class. Owners get a full-screen dashboard showing money, attendance and members drifting away.

The result

A finished, clickable demo with a phone app for members and a dashboard for the owner. It is not a working product: nothing is saved or sent.

Read the full case study

The problem

Show gym owners what a members' app and an owner's dashboard could do for them, before anything real is built.

The numbers

All 6 member screens and all 9 owner screens opened at laptop and phone sizes with no page errors.

Our approach

One self-contained web page in HTML, CSS and plain JavaScript, with no server or database.

What we would improve

The dates in the demo are fixed, so they will need updating as they age.

Demo app. The gym, its members and every figure are made up.

Tally owner dashboard: check-ins, members, class fill, revenue and members drifting away
Tally member app on a phone: rank, check-in and weekly streak

Business dashboard

Private tool

A private dashboard for running a small website design business. It tracks leads, jobs and clients, builds quotes from a price list, issues invoices and records payments. Insights show the pipeline, profit and what needs attention today. Passkey sign-in keeps it secure, and it works on phone and laptop.

The result

In daily use by Josh. Quotes warn when a price is too low, and "Needs you" shows what is overdue.

Read the full case study

The problem

Run a small website business from first lead to final invoice in one place.

The numbers

Its full test suite passed on 2 November 2026: 47 unit tests, 3 PC app tests and 106 browser tests. The market price ranges on the quotes page are the only researched figures shown, from October 2026.

Our approach

Plain JavaScript on Cloudflare Workers, with a Cloudflare D1 (SQLite) database. Sign-in uses passkeys.

What we would improve

Tidy the job page checklist, which wraps into a narrow column, and put a finished calendar accessibility fix live.

Private tool in daily use. Every client, job and figure shown is made up.

Business dashboard home: figures, what needs attention and jobs by stage, with made-up data
Business dashboard insights: sales pipeline, money forecast and profit per job, with made-up data

What we can build for you

How a project runs

  1. First, you tell us what it must do.

    We send a short written plan: the pages or screens, what each one does, and the dates. Agreed before we start. If you already have a site or app, we look at what works before changing anything.

  2. Then you see it working, early.

    A private preview link from the first week. Ask for changes there and check them again.

  3. Last, we test it and put it live.

    Checked on phones and desktops, in light and dark mode, with a keyboard alone, and for speed. Card payments, if you need them, are tested in Stripe test mode before any real money moves.

Tested before it goes live

Figures from each project's own test runs.

  • 310

    automated tests passKirkgate, 3 November 2026

  • 282

    browser tests passedFerrez Guiding, 2 November 2026

  • 255

    end-to-end tests passDemo Barbers, 3 November 2026

  • 200

    end-to-end tests passPolisher, 29 October 2026

  • 176

    automated core tests passKeyNest, 3 November 2026

  • 136

    end-to-end tests passDemo Roasters

  • 106

    browser tests passedBusiness dashboard, 2 November 2026

  • 100

    Lighthouse accessibility scoreDemo Roasters, Polisher and Demo Barbers

The team

Two co-founders, one in Aberdeen and one in Port Elizabeth.

Tell us what to do.

We send back a short written plan: the pages or screens, what each one does, and the dates.

We reply within one working day. Every project starts with a free written quote, so you know the cost before any work begins.