Skip to content
All work

Solo product · 2026

OneFeeOKR logo

OneFeeOKR

OKR software with one flat fee per company and unlimited users.

Role
Product, design and full-stack engineering (solo)
Timeline
2026
Type
Independent product
onefeeokr.netlify.app
OneFeeOKR company dashboard with progress, check-in rate and at-risk list
Postgres tables
23Postgres tables
RLS policies
39RLS policies
integrations
9integrations
OKR templates
37OKR templates

Overview

The problem

Teams rarely quit OKRs because the method fails. They quit because nobody updates the numbers, and per-seat pricing makes rolling OKRs out to a whole company expensive.

OneFeeOKR charges one flat fee per company with unlimited users and keeps goals alive by bringing the weekly check-in to people's inbox, so nobody has to remember to open another tool.

What I built

Highlights

Multi-tenant by design

23 Postgres tables isolated with 39 row-level-security policies. Five workspace roles (Owner, Admin, Member, Viewer, Coach), plus a platform superadmin whose every action lands in an audit log.

Billing enforced in the database

Paddle subscription webhooks drive plan state. Expired-trial, unpaid or cancelled workspaces turn read-only through SQL guard functions, Starter's three-team cap is a trigger, and data always stays exportable.

Check-ins that run themselves

Hourly scheduled jobs send reminders, nudges and a Monday summary through Resend. Owners update a key result from a one-click email link without logging in.

The OKR engine

Cycles that carry unfinished work forward, four key-result types, progress roll-up, suggested status with manual override, @mention comments, an activity log and 37 templates.

Real-time workspace

A single Zustand store with optimistic updates, kept in sync through Supabase Realtime, so dashboards, the alignment tree and the zoomable map stay live for every user.

Integrations and API

Slack, Teams, Google Sheets, HubSpot, Pipedrive, Jira and Linear update key results hourly. Signed outbound webhooks for Zapier and Make, a bearer-key REST API, and tokens encrypted with AES-256-GCM.

Coach console

One view across every client workspace with health scores, a template library that pushes to any client, private notes, branded PDF reports and one-click handover.

Reports and data portability

CSV and Excel import; CSV, Excel and JSON export; printable quarterly and weekly PDF reports; end-of-cycle scoring with retrospectives.

A live demo that is the real app

Visitors get a populated workspace in one click. The server signs them into a seeded demo account with a one-time magic-link token, and restrictive RLS policies keep it read-only.

Engineering

Decisions that shaped it

  • Authorization and plan limits live in Postgres (RLS, guard functions, triggers), not only in API code, so the web app, REST API and cron jobs all obey the same rules.
  • Typed end to end: a Drizzle schema pulled from the live database, Zod at every boundary and TypeScript on both server and client.
  • Background work stays simple and observable: hourly Netlify scheduled functions for check-ins and integration syncs, plus a health endpoint.
  • The public demo runs on production infrastructure and is made safe by database-level read-only policies instead of a mocked copy that can drift.

Screens

A closer look

Responsive

Built for every screen

The whole workspace collapses to a single column with a mobile navigation, so people can check in and review progress from a phone.

OneFeeOKR dashboard on a phone

Open to new roles · Remote or relocation

Have a role or a product that needs shipping?

I'm looking for a full-time full-stack or frontend role, remote or with relocation. Email is the fastest way to reach me; I reply within a day.