Who uses it, and what it had to fit
Who it's for
- Admins
- Owners and admins: the Admin dashboard, settings and approvals.
- Team leads
- The Team dashboard, and leave approvals for their team.
- Employees
- Track time in the desktop app, check in and out, and request leave.
- HR
- Attendance, rosters, documents and e-signature. HR approves rosters.
What it had to fit
- New product
- No earlier version to start from: every screen was designed from the first wireframe.
- Three tools in one
- Time tracking, HR and e-signature had to feel like one product, not three bolted together.
- Small team
- Two designers, two engineers. I set the UX and guided the other designer's work.
- Privacy
- Teams on NDA client work couldn't expose their screens, so monitoring needed a blur mode.
- Time
- V1 had to reach beta in about three months.
From time tracking to a full HR product
I mapped the information architecture for V1 first, then grew it for V2. The structure stayed the same; HR areas were added beside the time tracking ones.
- DashboardMy, Team, Admin
- Clients
- Projects
- Tasks
- Users
- Teams
- ReportsActivity summary, hours tracked, working hours, web and app usage
- SettingsProfile, company, plans and subscription, payments, roles and permissions, rated web and apps
- Help and support
- Calendar
- AttendanceAttendance, shift, roster
- LeaveStatus, applications, public holidays
- Departments
- Organogram
- DocumentsTemplates, document requests, e-signature and reminders
- Announcements
- ReportsAttendance, leave, employee activity, documents
- SettingsLeave, notifications, organogram, documents, workflow
Approvals, rosters, privacy and attendance
The problem behind each one, the decision, why, and what it cost.
Approval flows each company configures itself
- Problem
- Every company approves leave and rosters differently. With several approvers, a request can sit in a queue with no one sure whose turn it is.
- Decision
- A workflow builder in settings. Each company adds its own approval steps (for example department, division, then HR), sets the status for approval, rejection and pending, and chooses who acts at each step: the employee's own unit, a higher level, another department, or a named person.
- Why
- One fixed approval path would fit almost no company. Making the steps configurable let the same product serve teams of every shape, and showing each approver's status means no request disappears.
- Trade-off
- More to set up before the first approval runs.
Roster conflicts caught when the roster is created
- Problem
- If shift overlaps only show up after a roster is submitted, HR has to send it back and start again.
- Decision
- Check for conflicts while the roster is being built, and show the existing and the changed shift side by side.
- Why
- A bad roster never reaches approval, so HR approves rosters instead of fixing them.
- Trade-off
- The roster screen has to check every change as it happens.
Monitoring with privacy built in
- Problem
- Managers want proof of work, but teams on NDA client work can't expose their screens.
- Decision
- Screenshots with a blur mode.
- Why
- Teams under NDA could adopt KpiClock at all.
- Trade-off
- Less visual detail for managers.
Attendance that follows the time tracker
- Feedback
- After launch, the client saw people start the time tracker but forget to check in, so attendance showed them absent while they were working.
- Change
- Starting the time tracker now checks the person in. One action starts the workday instead of two.
- Why it mattered
- Attendance follows actual work, with a single record of time.
The tool teams open every hour
V1 replaced Hubstaff. Time tracking shipped complete first, because it is the tool teams open every hour.
Attendance, rosters and documents in the same product
V2 replaced BambooHR and DocuSign, inside the same navigation and design as time tracking.
What the screens are built from
- Base
- Built on Ant Design 5, themed for KpiClock with its green primary colour.
- Components
- A components overview covering general, layout, navigation, data entry, data display and feedback components, plus local variables.
- Consistency
- Time tracking and the HR modules use the same components, so V2 looks and works like V1.
From review rounds to after launch
- Research
- Before the first wireframes, I collected reference flows for onboarding (Notion), project detail (Bonsai) and sidebar navigation, then mapped 12 user flows in FigJam: sign-up and sign-in, onboarding, inviting a user, clients and projects, tasks, teams, users, roles, reports, settings, the user profile and the company profile.
- Reviews
- The V1 design went through a product review (26 August 2025) and a CEO review (29 August 2025); the revised design was ready 8 days after the first review (3 September 2025).
- Beta
- During beta, the client's own company and two partner companies ran their daily operations on it.
- After launch
- The client saw people start the time tracker but forget to check in, so attendance showed them absent while they were working. Starting the time tracker now marks attendance automatically.
Results
Companies
Users
Tools replaced
Desktop platforms
V1 reached beta in about three months; V2 added HR and e-signature after it.
The design in numbers
Screens designed (web V1, V2 HR modules, desktop)
User flows mapped
Product areas in V1, added in V2
From first review to revised design
Action to start the workday, instead of 2
Counted from the Figma files and the information architecture.
Design one scheduling foundation from day one
I'd design the calendar, workflow and roster as one shared scheduling foundation from the start. Shifts, leave, holidays and rosters all depend on the same time rules, and designing them as separate modules meant reconciling them later.