Site currently under development
Marca

Marca

saasVisit Site

Marca is built for the person who closes payroll on Friday afternoon, not the person who buys software. The first customer's card-based punch clock was dying, and every pay period meant opening a drawer of stiff paper cards, some smudged, one missing a stamp because the mechanical clock had jammed again, and retyping them into a payroll portal while hoping the math held. Marca replaces that ritual. Employees punch on a wall-mounted kiosk with large touch targets and a bilingual interface (English and Spanish, set per employee). Administrators see hours accumulate in real time, fix mistakes through corrections that leave the original record alone, and close a pay period in minutes with an export file the payroll provider accepts on the first try. The product runs as a cloud subscription for small businesses or installs on a customer's own hardware for organizations that need their employee data to stay inside the building. Either way the daily experience is identical: punch, review, correct, close, export.

The Challenge

Card-based punch clocks were aging out, and the manual workflow downstream was the real cost. Each Friday meant transcribing dozens of paper cards into a payroll site, where a transposed digit became a wrong paycheck and a frustrated employee. The deeper problem was structural: there was no canonical record of who worked when, so disputes turned into archaeology and the file the bookkeeper uploaded each week could not be reconstructed from any single source. The buyer's real problem was not "we need a clock," it was that payroll had no defensible paper trail. The product had to feel obvious to a non-technical front-desk admin while staying audit-grade underneath, and it had to work both as a hosted service and as a self-contained appliance for customers who keep their employee data on-site for compliance or preference.

Our Solution

The architectural commitment is that hours worked are a derived value computed from an append-only ledger of punches, not a number a manager types into a grid. Punches are append-only at the database grant level, so corrections create a visible second record instead of overwriting the first. Employee rates are time-versioned with overlap-preventing exclusion constraints, which means a raise on the fifteenth produces correct math on both sides of the change without manual splits, and a payroll run computed for March uses the rates that were active in March. The period-close pipeline pairs punches, deducts lunch, handles the midnight boundary, applies rounding rules, calculates overtime, and writes the export file as a derived result rather than a hand-edited spreadsheet. Export adapters for Gusto, ADP, and Paycor are written as plain functions, so adding a new payroll provider does not touch the database. The same Docker image runs as a cloud SaaS or as an on-premises install, switched by an environment variable and a signed license file, with no parallel code paths to maintain.

Results

Replaces a failing card-punch workflow with a kiosk and admin console designed around the Friday close, not the Monday demo.
Period close produces a payroll export (Gusto, ADP, Paycor) that imports cleanly, removing the retype step that caused most paycheck errors.
Append-only punches plus time-versioned rates give administrators a defensible audit trail when an employee questions a paycheck, with money stored as integer cents and timestamps stored in UTC end to end.
On-premises customers get the same product as cloud customers, with their employee data staying on their own hardware, a signed perpetual license, and a one-command nightly backup.
Bilingual kiosk (English and Spanish, per employee) lowers the friction that previously sent employees to the front desk to ask how to punch in.

Tech Stack

Next.js 16 (App Routerstandalone)TypeScript (strict)PostgreSQL 16Drizzle ORMTanStack QueryZustandTailwind CSSshadcn/uinext-pwa (offline kiosk queue)next-intl (EN/ES)Jose (RS256 license JWTs)TOTP MFA (RFC 6238)BcryptjsStripe (cloud billing)Google OAuthAWS S3 SDK with Cloudflare R2 and MinIOResend and NodemailerDocker Compose with Caddy auto-TLSLoki and GrafanaVitest and PlaywrightHusky pre-push gate

Want Similar Results?

Let's discuss how we can build something great for your business.