The one idea
Most apps in this trade are a client list with animals attached. Sell the horse, change farrier, stop paying — the history dies. This one is built the other way round.
What that means for you
Every note you write goes onto the horse's timeline, and stays there. If that horse is sold to a yard three counties over, your work goes with it — sealed, dated, and provably yours.
Entries can't be edited or deleted afterwards. That's not us being awkward. It's the entire reason your notes are worth something in a dispute, at a sale, or to the next professional through the gate.
What it means for everyone else
Owners contribute too. What the owner noticed on Tuesday is often the most useful thing you read before you arrive. They log it; you see it.
Your clients never need an account. Ever. They get a text and a link, same as Square. Nobody is asked to sign up to pay you.
See it for yourself
Each entry is sealed with a fingerprint of everything that came before it. Change one letter of old history and every fingerprint after it stops matching — which is exactly how you can prove nothing was quietly rewritten. Type a note and add it, then try to tamper with the first one.
Press me · live, running in your browser
Those fingerprints are real SHA-256 hashes, computed here, now, on this page. The app does exactly this on the server for every entry on every horse. Anyone who can see the horse can re-run the check.
Your day, end to end
The menu isn't a feature list — it's the order the day actually happens in. Tap through it, or press play and let it walk itself.
Everything else lives under More — and promotes itself
Open something from More once and it moves permanently into the main menu. Nothing is ever hidden again, and nothing is ever taken away. If you use an "advanced" tool every single day, it shouldn't be buried because we guessed wrong about you.
Horses
Adding them, recording them, warning about them, assessing them, and what happens at the end.
01 Adding a horse
Where: Horses → + Add a horse
Only the name is required. Everything else can wait — and an empty box beats a guess every time. An empty box says "we don't know yet". A guess says something false, permanently, in a record that outlives you.
- Age without spinning a calendar. Type an age in years or a foaling year. No date picker to scroll back to 2007.
- At a barn? Pick it and the location fills itself in. You're added to that horse's care team as you go.
- Registration number has its own box next to Breed, and becomes searchable.
02 The horse's record, top to bottom
- Safety warnings — a red strip, if there are any. Deliberately above everything else, so you learn a horse kicks before you read anything else.
- The profile — photo, breed, sex, age, colour, height, weight, bio.
- The timeline — everything that ever happened, newest first: notes, assessments, invoices, health entries, ownership changes.
- Add a record — what you did, what you noticed, what you advised.
03 Fixing something you got wrong
The timeline is permanent. The horse's details are not.
Open the horse → Edit on the profile
Change the name, breed, sex, foaling year, discipline, colour, height, weight, bio, or which barn it's at. If you filled things in early and were guessing, you are not stuck with it. A typo is not part of a horse's identity.
Leave the foaling year blank to keep whatever date is already stored.
04 Photos, and the thing they'd otherwise give away
Where: the horse's profile → Add photo
Photos are shrunk and re-saved on your phone before they upload, which strips the hidden data cameras attach — including where the photo was taken.
05 Safety warnings
Where: the horse's record → under the red strip → Add a warning
Kicks · bites · strikes · rears · hard to catch · needs sedation · no cross-ties · ear shy · head shy · hind limb sensitive · escapes · or your own words.
- Anyone on the care team can raise one. No permission needed — the person who most needs to warn others is usually the person who just got kicked.
- The owner sees them too. A warning hidden from whoever is about to handle the horse has failed at its only job.
- Warnings are cleared, not deleted. "Used to be difficult, improved" is a different fact from "nobody ever warned about this horse", and the next person may want to know which one they've got.
06 Assessments
Where: Assess → pick a horse → the chart your role unlocks
Tap a point to mark it X. Keep tapping to grade up — X → XX → XXX → XXXX — and it wraps back to X, so you can never wipe a point by over-tapping. Flag restriction, add a note on any point.
Press me · tap a point, keep tapping
Saving creates a dated snapshot that cannot be changed, sealed onto the horse's record. Assess the same horse in eight weeks and the two link together, so progress is comparable rather than remembered.
Held back on purpose The drawn diagrams are switched off while the anatomy is redrawn properly. The assessment itself works fully — points are listed by name. We would rather ship it nameless-but-correct than pretty-but-wrong.
07 Health
Where: Health, or from any horse's record
Log an illness and move it ongoing → monitoring → resolved. Record vaccinations, worming and dental work with their next-due dates. Needs attention gathers anything overdue or coming up.
Not in here Diagnosis or treatment advice. That's a licensing question in every state, not a feature question. The app records what happened; it never tells you what's wrong or what to give.
08 Identity, QR tags, and what a stranger sees
Where: Identity to look up · the horse's record to print a tag
Every horse has a permanent ID that never changes, even when sold. Identity finds a horse by any identifier — microchip, brand, passport, registration number, or one of our tags. Type it, or scan it with the camera.
Print a QR tag for a stable door or a passport. Scanning it opens that horse.
Press me · what happens when a stranger scans the tag
09 When a horse dies
From the horse's record, mark it deceased. You'll be asked to type the horse's name to confirm, because it isn't reversible from your side.
The horse leaves your everyday list for a separate In memoriam tab, which only appears if you have one.
The record stays, complete and readable. The identity freezes so nothing further can be attached to it.
People & places
Clients, barns, invite links, the care team, and who can see what.
10 Clients — and the one job worth doing today
Where: Clients
A client is the person you invoice — often the owner, not always. Each holds contact details and, the part that matters, their horses.
Attaching horses to clients is the keystone. It's what makes per-client history, invoicing several horses at once, and moving horses between barns possible at all.
11 Barns — and Move, never Create
Where: Barns
A barn is a yard you visit. Set its address once and every horse there inherits it. Barns are also your route stops.
Moving horses you already have: open the barn → Move horses you already have into… → tick as many as you like. The horse moves across with its whole record. Nothing is copied; no second record is made.
The other button — Create a horse that isn't on the app yet — is only for horses genuinely not in the app. If a horse already exists, always use Move. That's the one place it's easy to end up with the same horse twice.
12 Invite links — for clients who'll never have an account
Where: Clients → New invite link
Lets someone fill in their own details, with no account and no sign-up. Give it a label so you remember who it was for — they never see it. Send it however you like: text, email, WhatsApp.
- Copy it straight away. We can only show it once, for the same reason a password is only shown once: we don't keep the link, only a fingerprint of it. Lose one and you just make another.
- Each link works once, then stops. It can't be forwarded round a yard and reused. Links expire on their own — a week by default, thirty days at most — and you can cancel one any time before it's used.
- Nothing lands in your books by itself. What they send arrives as something waiting for you. Accepting creates the client; declining keeps it out. The worst a stranger with a link can do is waste a moment of your time.
- Horses come in as names only. We don't create a permanent horse identity from a form filled in by someone we can't verify. Their horses are listed for you; you add each properly once you've accepted.
Change links: every confirmed visit has one. Send it and that client can ask to move the booking — a different day, a different horse — without ringing you at 6am.
13 The care team
On a horse's record, the care team is everyone professionally involved with it.
Add someone with their exact email and their account links immediately. If they haven't joined yet, the link completes by itself when they do. The owner is told either way.
Care-team membership is what lets someone contribute to that horse's record. Leaving, or being removed, ends that immediately — an ex-practitioner cannot write another word.
14 Who sees what
Every note you write has an audience, chosen by you:
- Everyone — including the owner. The normal choice.
- Other professionals only — the owner cannot see it. For handling and safety detail the next professional needs, which wouldn't help anyone reaching the owner this way.
- Only me — nobody else at all.
15 Owners
An owner with an account gets their own page — My horses. They see confirmed visits for their horses, keep a private to-do list, and log life events themselves: a diet change, an injury, a change in behaviour, a first ride.
- Their list is private to them. You can add something to it — and they're told you did — but you can't read it, so you won't see whether it's been ticked off. If it matters, ask.
- Anything they log is shared with you. That's the whole point.
- They never see the barn's other business. One stop can hold four owners' horses; the owner gets a purpose-built view of their own, never the appointment itself, which carries other clients' names and your notes.
For any of this to work, the horse needs an owner recorded against it.
The working day
Booking it, changing it, driving it.
16 Scheduling visits
Where: Scheduling — agenda or month, your choice
A visit is one stop covering many horses, because that's how a barn call actually works. Pick the client and their horses come up first. Choose the planned work and the app blocks out the right time: three trims on three horses is an hour, not twenty minutes.
If it overlaps something you get a warning, never a block. You know your day better than we do.
Pencilled in vs confirmed — the safety catch
Tick Pencil it in while planning ahead. It shows in lighter type and, critically, nothing can ever be sent to a client about it. Plan six months out with no risk of anyone being texted about a date you never agreed.
Press me · try to text a client about a pencilled-in visit
Rebook copies a whole visit — client, place, horses, notes, services — leaving only the date blank. It opens the form rather than booking silently, so you can change the work first, and it comes back pencilled in.
17 Changing a visit
Where: Edit on any visit, pencilled in or confirmed
Add a horse that's come on board. Add work when the day turns out to be more than a trim. Change the time or the notes.
Editing never changes whether a visit is confirmed, so it can't accidentally cause anything to be sent. If you've already invoiced from that visit you'll be told — what you billed doesn't change, but the two records will no longer describe the same work, and you should know that rather than find out later.
18 Routes
Where: Routes
A route is a round you drive — "Cumming", "Ball Ground" — saved by name with its stops in the order you drive them. Reorder with the ↑↓ buttons. Buttons rather than drag-and-drop on purpose: you're usually holding the phone one-handed.
Give it a cycle — every 5 weeks, usually Fridays — and the app says when it's next due, counted from the last round you actually finished. Coming round at the top lists anything due within a week.
Yours alone Route data isn't readable by our staff. A run is a record of when you're alone at isolated rural properties. That's personal-safety information before it's business information, and it's walled off accordingly.
19 Driving a route
Open the route and press Begin. At each stop: Arrived, then Leaving when you're done. Pause for lunch, Resume after. That's the whole job.
From those four taps the app works out time at each stop, driving time between stops, and what the whole round takes — which is what makes your earnings-per-hour figure real instead of a guess.
What an honest number looks like
| Hollowbrook Farm | 1h 05m |
| Sable Ridge | 48m |
| Kerrow Lane — you forgot to tap Leaving | not recorded |
| Round total | 1h 53m + 1 stop unknown |
A stop you forgot to mark reads "not recorded" — never "0 minutes". A blank is honest; a zero is a lie that quietly ruins every number built on top of it. And because we store the times you tapped rather than a running counter, a mis-tap stays fixable.
Money
Prices, stock, invoices, getting paid, and what it all actually earns you.
20 Your price list — start here, nothing else works first
Where: Invoicing → Your price list
Nothing about money works until this has something in it, because invoices are built from this list.
Two ready-made lists — farrier and bodywork — are there to pull in. They arrive with suggested times and no prices, because we don't know what you charge, and a made-up number on a real invoice is far worse than a blank one.
Every item has an Edit button. Set three things, change any of them whenever you like:
- What you charge — one price, or a price per horse size.
- What it costs you — optional, never shown to a client, and the thing that makes profit reporting real rather than just income.
- How long it takes — used to block out your day. Leave it blank for anything you'd rather not time; blank means "don't block time for this", and you won't be nagged about it.
No price yet shows in gold against anything unpriced, and the app refuses to put an unpriced item on an invoice. Otherwise it would quietly bill it at nothing.
21 Inventory
Where: Inventory
Everything you carry: shoes, pads, tips, glue, casting, supplements. For each, record what it costs you and what you charge. Both changeable later.
Stock comes down automatically when you send an invoice that includes it. You can also record Received and Used by hand. Every movement is kept, so the history is always there — nothing is ever overwritten.
Set a warn-below level and you'll be told before you run out, not after.
22 Making an invoice, and billing what you actually used
Where: Invoicing → New invoice
Pick the client, add lines from your price list, pick the horse each line is for. Then it moves through three states, in order, enforced by the database rather than by you remembering:
Draft → change anything. Sent → lines freeze, stock comes off, every horse's record gets an entry. Paid → recorded, and noted on each horse's record.
Shoes, casting and pads
Some jobs can't carry one price. A half set isn't a full set, and a pad or a wedge changes it again. So: bill the work as a line, then hang what you actually used underneath it.
Press me · build a line, then look at it as your client does
Your client sees one line with a total, and can open it for the detail if they want. What they never see is what any of it cost you.
Your payment details — Venmo, CashApp or Zelle — appear on the invoice from your profile. The app never touches the money itself. It tells the client where to send it, and stays out of the way.
23 Getting paid
Where: Insights → Waiting to be paid
Everything sent and not yet paid, longest wait first, aged from the day you sent it. Drafts are never in that list — chasing someone for money you haven't actually billed them for is worse than not chasing.
You also get one quiet note in your bell each week if anything is outstanding: how many, how much, and how long the longest has waited. Nothing at all in a week where everyone has paid.
Text the invoice and Text a reminder open your own phone's messages with the wording ready. You press send. It comes from your number and costs nothing.
24 Insights — what the round is really worth
Where: Insights
Your business, worked out privately in your browser. Nothing is sent anywhere. Best clients, most valuable services, top horses, earnings by month, most-visited barns, stock to reorder.
What each round is worth — for every route you've finished a run on: time on site, driving time, what you billed, your margin, and the per-hour figure. That last one is what you billed divided by the time the round really took, with breaks taken out.
Two honest limits, stated on the page itself:
- Unfinished runs are left out. A round you abandoned isn't evidence of what it earns.
- A round only counts invoices raised from one of its visits. Invoice separately and we won't guess which round it belonged to — guessing would be wrong the moment you bill a week late, and wrong without telling you. The page says how many invoices sit outside the totals.
Anything we don't know says so, rather than showing a zero.
Odds & ends
Notifications
The bell at the top. Gentle, in-app only — nothing emails or texts you. Someone adding to a horse you look after, a prompt about a horse's status, a client filling in an invite link, and your weekly note about money owed.
Texting clients
Today the app writes the message and you send it. Tap Text ETA on a visit or Text the invoice on a sent invoice, and your phone's messaging app opens with the wording ready. It comes from your number and nothing sends without you.
Your profile
Your name, your professional roles, your payment handles. Roles matter — they decide which assessment charts you get. If you do hoof work but don't call yourself a farrier, tick Hoof care pro: identical hoof chart.
Put it on your home screen
iPhone: open greyhorse.tech in Safari → Share → Add to Home Screen. Android: Chrome → three dots → Install app. It then behaves like a normal app, full screen, no address bar. It updates itself; if anything looks odd after an update, close it fully and reopen.
If something looks wrong
Tell us. It's a bug, not you. That's a standing commitment and it's meant literally. If a screen doesn't behave the way this tutorial describes, the tutorial isn't wrong about what it should do — something is broken, and we want to hear about it straight away.
Two things that look like faults and aren't: a report showing nothing (most reports need real data behind them — empty means "nothing yet"), and "not recorded" instead of a number (on purpose; if you didn't mark a stop, we won't invent a time for it).
Ten rules it never breaks
Not preferences. Not settings. These are enforced in the database, which means no future update, no rushed afternoon and no mistake of ours can quietly undo them.
One more, about us rather than the app: no metered or keyed third-party services anywhere in the product. Maps, geocoding and location lookup are all free-tier or self-hosted by construction. Your bill can't be surprised by a busy month.
What was asked for, and what's standing
Ten months, five Phase One packages, all deployed. Below is every requirement area against what's actually live — including the things that are finished but sitting empty, and the things we deliberately held back. Filter it however you like.
Working now Built — waiting on your data Held, or waiting on a decision
The honest headline
The thing holding the app back is data, not code. Several features are complete, deployed and empty — not because they don't work, but because they depend on things only you can supply: your prices, which horses belong to which client, who owns each horse, and one route actually driven end to end.
That's why there's a standing census that tells "built" from "working" by looking at real usage, and it gets run before anyone claims anything is complete. Thirty minutes of setup switches most of the gold rows to green.
Left out on purpose
Every one of these was considered, and each is a decision rather than a gap. If any should change, that's a conversation — not a bug report.
Diagnosis or treatment advice
State veterinary practice acts make this a licensing question, not a feature question.
Holding your money
Payment handles only. The platform never sits between you and being paid.
Background location tracking
Auto-pause-on-arrival was declined for exactly this reason.
Anonymous writes to real records
Invite submissions are proposals you review, never entries that land by themselves.
Guessed numbers
No invented prices, no inferred invoice-to-visit links, no assumed durations.
Accounts for your clients
A hard product rule, from you: "Square sends reminders to 100% of my clients. They are not required to be part of the application."
Two things we learned the hard way
Both are now part of how the work is reviewed. They're in here because they explain why some of the rows above are gold rather than green — and why that's a good sign, not a bad one.
Built isn't the same as reachable
A feature can be finished, tested, passing every check — and completely unusable. Invoicing was "done" for weeks while the price list was empty, which meant it was done in the same sense a car with no fuel is done. That's why there's now a live-usage census: it looks at what's actually being used, not what's been built.
Capability isn't the same as control
Worse, and only found this month: working code with no button reaching it. The logic was correct, the data was right, and there was simply no way for a human to trigger it.
Three separate complaints from you turned out to be one defect of this kind. A fourth was caught in review the next day. So every repository method is now checked against whether any screen actually calls it — a reachability audit — because no schema check, no migration probe and no data census can see this class of fault. Only a human pressing buttons, or an audit that thinks like one, ever will.
Your first 30 minutes
In order. Each one switches something on that's currently sitting there built and empty. Tick as you go — this list is just for you, on this page.
0 of 6 done
Then do nothing different for five weeks
Book the way you already book. Drive the round pressing Begin, Arrived, Leaving. Invoice from the visit rather than from scratch. At the end of one full cycle, open Insights → What each round is worth — and for the first time you'll be looking at what your rounds actually earn per hour, computed from what happened rather than what anyone assumed.
Tutorial One of a series. Next: a short screen-recorded walkthrough of the first thirty minutes, and Tutorial Two on invoicing and margin once there's a cycle of real data to look at.