top of page

 VETS 

Built by someone who's run a clinic.
Every decision has a reason.
Every screen has a job.

5 years running a clinic. Every broken tool became a design decision.

Solo project · Sole designer · Research · Interaction Design · React prototype

Screenshot 2026-04-09 at 19.01.42.png

Jump to

The System We Used Was Broken

I didn't design VETS from a brief. I designed it from frustration.
I managed a veterinary clinic with tools that made simple tasks complicated - and I kept a mental list of everything I'd fix if I could.

תיק לקוח ראפיד עם הערות_4x.png

No visual hierarchy.
No focus. No clarity

The legacy system displayed everything at the same weight.
Urgent alerts sat next to routine labels. Staff had to read every line to find what mattered - and in a busy clinic, that means things get missed.

7 clicks to record a vaccine.
4 screens to look up a patient.

The actions staff performed dozens of times a day had the most friction. No shortcut, no smart default, no memory of what you just did. Every task started from zero.

One popup.
One OK. Gone.

Critical alerts appeared in a separate tab. Press OK and they vanished. If you missed it, there was no way back. In a surgery room, a missed alert is not a UX problem.
It is a safety problem.

The terminal opened. The invoice disappeared.

The moment the receptionist moved to payment, the itemized bill was gone. The client had questions, she had to navigate back 3 screens - with the queue waiting. For multi-pet clients with insurance, it was worse: receipts got mixed across animals.

BASED ON PERSONAL EXPERIENCE

5 years as clinic manager + vet assistant, using RapidVet daily

Click burden is the #1 complaint

Alert fatigue is real

Context switching kills productivity

So I designed the system I wished had existed when I was running the clinic.

COMPETITIVE ANALYSIS

What the market already had.
And what it was missing.

Before starting the project, I mapped the three most widely used systems in Israeli and European vet clinics. The goal was not to copy, it was to understand what problems were still unsolved.

EasyVet

The leading system in the Israeli market. Covers the basics - but built around administration, not clinical workflow.

VetDesk

Mid-market European system. Strong on medical records, weak on the reception-side experience.

ezyVet

Cloud-based, international. The most modern of the three: designed for large multi-location practices, not small clinics.

These were not edge cases. Every system had most of these problems. That's where VETS began.

USER PERSONAS

Who I designed for

Three roles. Three workflows. One connected system.

Lora

Clinic Operations Manager

The person who keeps the clinic running - scheduling, billing, suppliers, and client relations, all at once.

GOAL

End every shift with a clean queue and zero open billing issues.

Lora_2x.png

Alon

Veterinary Assistant

Always in the treatment room - one hand on the patient, one eye on the screen.
 

GOAL

Get clinical info instantly without pulling focus from the patient.

Alon_2x.png

Dr. Jonathan

Lead Veterinarian

Focused on the animal in front of him - the system needs to disappear.
 

GOAL

The system disappears. The animal stays visible.

Dr._2x.png

USABILITY TESTING

Real people. Real feedback.

6 participants · 5 tasks · October–November 2025

Participants

PARTICIPANT 1

Receptionist

Domain expert

TESTED

Check-in flow, payment, scheduling

PARTICIPANT 2

External Tester

Fresh perspective

TESTED

End-to-end navigation, general usability

PARTICIPANT 3

Clinic Manager

Domain expert

TESTED

Billing overview, navigation, overall clarity

Task Completion

Task 01

Check in a client

✓ Done

Task 02

Open a patient file

✓ Done

Task 03

Record a vaccine

✓ Done

Task 04

Process a payment

✓ Done

Task 05

Book a follow-up

✓ Done

Key Findings

What participants said

WHAT I ACTUALLY BUILT AND WHY

Five features.
Five problems from the clinic floor.

Every feature on this list exists because I watched the old system fail.

Screenshot 2026-04-28 at 15.09_edited.jpg

Problem

Clinics run on a whiteboard.

Clinics run on a whiteboard. Numbers get lost. No one knows if the vet saw the message.

Solution

Internal Team Messaging

Real-time messaging with read receipts, file attachments, and notifications - every vet and receptionist, one system.

Problem

Insurance needs receipts per animal.

Three pets, one combined charge list - untangling at month-end, every month.

Solution

Split Payment by Pet

Payments tied to the correct pet and visit. Clean receipts. No manual splitting.

Screenshot 2026-04-29 at 14.54.44.png

Problem

Terminal opened. Invoice disappeared.

Client had questions. Back 3 screens. Queue waiting. Every day.

Solution

Invoice to WhatsApp Before Payment

One tap sends the invoice to WhatsApp or email before checkout begins.

Problem

Booking is the most frequent task.

Finding free slots meant opening each vet's column one by one.

Solution

Schedule Load Indicator.

Relative load count per vet. One scan replaces four clicks.

Pre op
Artboard 3_3x_edited.png
Artboard 3_3x_edited.png
Artboard 3_3x_edited.png
Artboard 3_3x_edited.png
Artboard 3_3x_edited.png
פרוצדורה  1.png
פרוצדורה  2.png
Screenshot 2026-04-28 at 15.35.31_2x.png

Problem

You had no idea what was happening in the next room.

In the middle of a procedure, you had no idea what was happening in the next room. No one did. Verbal updates only - and half of them got missed.

Solution

Procedures Board

Six clinical stages, live status, one-click transitions. The whole team knows where every patient is, without leaving their screen.

WORKFLOW COMPARISON

See how it works in practice

The features don't work in isolation. Here's a real scenario: a receptionist needs to pass a file and a message to the vet during a busy morning, showing how VETS handles it from start to finish, compared to the previous system.

THE PROCESS

From Chaos to Logical Design

1

Legacy (Rapid Vet)

Random colors. No legend. No hierarchy.

  • Mapped every screen staff touched daily: found 3-5 switches per task

  • Identified that color was used decoratively, not semantically

  • Defined the core problem: no hierarchy, no urgency signal, no role clarity

לוז ראפיד_4x.png
Home page.png

2

Initial Concept

Logic before the look.

  • Structured client search around how staff actually look up patients (name, owner, pet, phone)

  • Replaced the whiteboard with Doctor Messages.

  • First attempt at semantic color: red for surgery urgency, amber for everything else

Screenshot 2026-04-05 at 20.51.44.png

3

Advanced Prototype

Every decision documented.

  • Role-based sidebar collapsed navigation from 20+ actions to 5 focused items

  • Live status on the schedule replaced verbal room-to-room updates

  • Inline alerts replaced popups: zero interruption to clinical flow

BEYOND SINGLE SCREENS

A Synchronized Ecosystem

Each feature feeds the next. Nothing lives in isolation. This is what the five features look like working together.

● Hover the orange dots to explore features

Built in React. Fully interactive. Try it.

The Design Language

Every token has a job. Nothing is arbitrary.

Three typefaces. Six colors. One rule: if you can't explain why it's there, it doesn't belong.

COLOR

Semantic, not decorative.

Navy

#0D1F35

Sidebar, structure

Blue

#2563A8

Interactive, primary action

Amber

#D97706

In progress, attention

Green

#16A34A

Recovered, complete

Red

#DC2626

Urgent, error

Off-white

#F4F6F9

Surface, background

Every color maps to a clinical state - not a brand preference.

Green = recovered. Amber = in progress. Red = urgent. Staff don't read the label. They read the color.

All color combinations in the interface meet WCAG 2.1 AA contrast requirements. Status is never communicated by color alone: every indicator pairs color with a label or icon.

TYPOGRAPHY

Three typefaces. Three jobs. No overlap.

Snoopy

Sora - Patient names & section headers

Names need to feel like people, not database entries. Sora has warmth without being decorative.

Visits · Billing · Records

14px regular

Outfit - UI labels & body copy

Neutral and readable at clinical density. Stays legible at 12px - the minimum the system uses.

985141009078234

13px monospaced

DM Mono - IDs, numbers, doses

Monospaced digits don't shift layout as values update live. In a medical context, a misread dose is not a UX problem - it's a patient safety issue.

Font choice in a clinical system is a functional decision, not an aesthetic one. Every typeface above was chosen because it makes the right information easier to process under pressure.

SPACING

Every value is a deliberate step.

Base gap

8px

inline items

Form rows

12px

between fields

Card padding

16px

standard cards

Section header

20px

left/right padding

WHAT THIS CHANGES

Numbers don't lie.

Every metric below maps to a feature above. Design decisions with measurable consequences.

7 → 2

Clicks to record a vaccine

Task analysis: vaccine recording workflow

0

Room-to-room interruptions

Live dashboard + messaging replace all verbal coordination between rooms

-40%

Receptionist navigation time

Workflow benchmark vs. RapidVet baseline: scheduling + billing tasks

HOW I WORK

The AI wrote code. I made decisions.

Every decision in this project is documented. The AI moved fast - I moved right.

Screenshot 2026-04-24 at 15.39.17.png

Button = current card state. Not destination.

Screenshot 2026-04-24 at 15.39.35.png

Two tabs, two jobs. No overlap.

Screenshot 2026-04-24 at 15.40.06.png

Workflow nuance Claude couldn't know. She ran the clinic.

Screenshot 2026-04-24 at 15.40.30.png

Clinical mental model: each pet is a unit. Not a flat list.

Screenshot 2026-04-24 at 15.40.40.png

Screenshots before diagnosis. Every time.

UX DECISION

Alert placement: inline, not popup.

Popups demand attention at the worst possible moment: mid-exam, mid-procedure. Inline indicators let staff notice alerts on their own time without breaking focus. Same information. Zero interruption.

UX DECISION

No financial status in the Visits tab.

Clinical and financial data have separate mental models. A vet reviewing visit history shouldn't see billing status - that's a receptionist's job. Two tabs, two jobs, no overlap.

REFLECTION

If I had another sprint...

VETS is a prototype, not a shipped product.
If I had another sprint, I'd run a second usability test, this time on the hi-fi- with participants I didn't reach in the first round: a practicing veterinarian, and someone less comfortable with technology.
The first round validated the reception workflow.
A vet's workflow and a low-tech user's first impression are the two gaps I'd close next.
 

I'd also revisit the research phase. Every participant in the test was already familiar with clinic software. That made onboarding frictionless, but it also means I haven't stress-tested the system against someone encountering it cold.
 

The AI wrote code faster than I could alone. What I learned is that speed means nothing without direction, Claude didn't know that a missed alert in a surgery room is a safety issue, not a UX preference. Every meaningful decision required me to bring the domain knowledge, push back, and re-explain the context.
I also discovered that AI is a surprisingly sharp critic, asking it to challenge my own decisions surfaced problems I'd stopped seeing. That back-and-forth is what turned a functional prototype into a considered one.

bottom of page