I Built a Freelancer Business OS — And Now I'm Opening It to Beta

I started building Pii.link for myself. One login, one place for clients, projects, time, and expenses. It's been running in production since late 2025 and I use it for my own client work every day.
It's live. It's working. And I'm opening up 5 free beta spots.
What Pii.link actually is
Pii.link is a lightweight freelancer business OS — a single web app that covers the admin overhead that comes with running a solo or small-shop operation. Clients, projects, time tracking, and expenses, all in one place with your data isolated to your own account.
I built it on Firebase and Next.js because I wanted it to be fast, reliable, and something I could maintain without running a server. It's been running in production since late 2025 and I use it for my own client work every day.
What's working right now
All of this is live at pii.link:
- Time tracking with a floating timer — A persistent timer widget that stays visible as you navigate the app. Start it, switch pages, come back. It doesn't reset. It also syncs across devices in real time via Firestore, so if you start the timer on your laptop and check your phone, the timer is running there too. Pause, resume, and save — the full history of segments is preserved.
- Clients and projects — Full create/edit/archive for both. Projects are tied to clients, with billing type (hourly, retainer, fixed) and per-client hourly rates.
- Timesheets — Manual time entry, a weekly report view, and analytics. Every entry is linked to a project and client so you always know what you billed and to whom.
- Expenses — Log and categorize expenses against clients and projects. The connection between the expense and the project stays there, ready for invoicing when that gets built.
- Multi-tenant isolation — Each account gets a fully isolated data space. Your data lives under your own Firestore path. I can't read it without going into the Firebase console manually. No analytics, no tracking, no ads.
What's rough (honest version)
It's a beta. Here's what isn't finished yet:
- No invoicing — The data model is built for it, and all your time entries are linked to projects, but there's no invoice creation UI or PDF export yet. That's Phase 2.
- No individual segment editing — You can edit a time entry's description, project, and client, but the individual timer segments (if you paused and resumed multiple times) can't be edited one-by-one in the form yet. The data is there; the UI isn't.
- No pagination — All lists load everything at once. For a solo freelancer with a few hundred records this is fine. It won't hold up at serious scale.
- No mobile app — The web app works on mobile browsers but there's no native app. I started a React Native prototype and shelved it.
- Manual deploys — No CI/CD yet. I build and deploy locally. It works, just not automated.
I'd rather be upfront about this than have you find out after signing up.
The tech (for the developers reading this)
- Frontend: Next.js 15, Pages Router, static export to Firebase Hosting
- Backend: Firebase — Firestore for data, Auth for login, Cloud Storage for files
- UI: Material UI v7
- Time tracking sync: Firestore
activeTimers/{userId}document, subscribed viaonSnapshot— no polling, no websocket setup - Multi-tenancy:
tenantId = userId; all data lives undertenants/{userId}/...; Firestore rules enforce isolation at the database level
No servers, no containers, no devops overhead. The whole thing runs on Firebase's serverless infrastructure and is deployed as a static site.
Try it — 5 free spots
Beta is open and accounts provision instantly. No waitlist, no approval queue.
Sign up at pii.link/auth/register
There are 5 free spots in this first cohort (8-user hard cap while I get feedback). If you're a freelancer who wants to consolidate their tools, or a developer who wants to poke at the stack, I'd genuinely love the feedback.
Reach out on LinkedIn or open an issue on GitHub. I'll respond.
Built by JKJR Digital Development — building tools for the way I actually work, then sharing them.