Selected work
Built for real businesses, running today
Every one of these started as somebody's manual process — a spreadsheet, a stack of paper, an hour lost every week. Each was scoped, built and shipped by us, and each is in use. We keep our clients' names between us; the problems are described exactly as they were.
Integration
Getting data out of a system with no export
- Python
- FastAPI
- Playwright
- React
The friction
A platform you are required to work with holds your data and offers no usable export. Someone copies it out by hand, row by row, every month.
A tool that signs in on your behalf — two-factor login included — pulls the full lists, and writes a formatted Hebrew spreadsheet with the rows that need attention already flagged. Packaged as a desktop app for Windows, so nobody has to touch a terminal.
Automation
Data capture over WhatsApp, not a form
- Python
- WhatsApp API
- Google Sheets
- Cloud Run
The friction
Data from the field never gets entered. A form is one more app to open, so people write it on paper — or not at all.
A bot that reads a plain message, logs it to a spreadsheet, and answers immediately with the updated position. Undo, scheduled summaries and month-to-month rollover included. Runs in the cloud and scales to zero, so a quiet month costs nothing.
Web app · Payments
Registration, payment and the door
- Next.js
- Supabase
- Stripe
- Multi-tenant
The friction
Sign-ups arrive by phone and live in a spreadsheet. Money is collected by hand, and nobody knows the real headcount until people walk in.
A short multi-step form with priced ticket types, online payment, and an organiser dashboard for lists, check-in and exports. Built multi-tenant — every organisation gets its own space — in three languages with full RTL.
Web app · Automation
A case tracker that does the chasing
- React
- FastAPI
- PostgreSQL
- SMS + Email
The friction
Cases that run for months, each with its own dates and missing documents. The follow-up lives in one person's head, and the day they are out, it stops.
Client and case management with a rules engine behind it: SMS and email fire on an event or on a schedule — a permit about to lapse, a status change, a document still missing. Your client hears from you on time without anyone having to remember.
Web app · Data
Balances everyone can see, and settle
- Next.js
- Prisma
- PostgreSQL
The friction
Who owes what sits in one spreadsheet on one laptop. Collection means awkward phone calls, and the number is never quite current.
Members, charges and payments in a single ledger that recalculates the balance on every entry. Each person gets a private link showing exactly what they owe, with payment on the same screen.
Internal tool
One recurring calculation, done properly
- React
- Node
- Vite
- TypeScript
The friction
A monthly reckoning run on a calculator and retyped into WhatsApp — meter readings, a utility split, offsets for what was already paid. It takes an hour and it is wrong often enough to matter.
A small tool that takes the readings, does the split, applies the offsets and produces the summary message ready to send. Works from the laptop and from a phone on the same network. Not every problem needs a platform.