HomeProjectsAI FilesBlog

© 2026 Matheus Pires. All rights reserved.

Back to projects
Maple

Maple

A mobile app for healthcare staff to manage their schedule, pick up open shifts, and track timecards and earnings across facilities.

React NativeExpoTypeScriptTamaguiReact Query

Maple: the shift, in the worker's pocket

Maple is a mobile app for healthcare staff who work by shift. It brings the three things that decide whether a shift goes smoothly — the schedule, the timecard, and the paycheck — into one app that opens straight to what happens today.

Schedule, two ways

The schedule is the home of the app, and it reads in two modes. List answers "what is next": upcoming shifts grouped by day, each showing the facility, the role, and the state it is in — in progress, signature required, missing timecard, time off. Calendar answers "how does my month look": a month grid with worked days marked, so picking up an extra shift or requesting time off is a decision made against the whole month rather than a single row.

Every item carries its facility. Staff who work across more than one site never have to guess which one a shift belongs to.

Timecards that surface their own problems

A missing or unsigned timecard is the most common reason a shift does not get paid on time. Maple treats those as first-class states in the schedule instead of hiding them in a separate screen: an unsigned timecard shows up as Signature required on the day it belongs to, and a shift in progress with no punch shows Missing timecard in red, in place.

Earnings tied back to the work

The earnings view pairs each pay period with the shifts that produced it — clock in, clock out, break, worked hours — plus paid time off, and what has not been paid yet. The number is never a total the worker has to take on faith; it is always traceable back to the days that made it.

Built with React Native

The app is built in React Native with Expo, styled with Tamagui, and talks to the backend through React Query with an offline-tolerant cache — hospital Wi-Fi is unreliable, and a schedule that only exists while connected is not a schedule.