Blog
Search and filter posts. Open any card to read the full write-up.
CSV Client Import for Real Shops: Mapping Vagaro, Booksy, and Square Without Tears
2026-07-29
One internal row shape, many competitor mappers — how I built Bizee’s CSV import for Vagaro, Booksy, and Square exports.
See moreClient Portal That Feels Like an App: PWA, Bottom Nav, and Two Manifests
2026-07-22
Two manifests, bottom nav, storefront-first portal — how I made Bizee’s client surface feel like an app, not a shrunk website.
See moreMulti-Role Auth in Next.js: Owner, Client, and a Toggle That Doesn’t Lie
2026-07-15
Owner and client on one account — how I separate RBAC from view mode on Bizee, and redirect when the toggle flips.
See moreHow We Fixed Approver Delegations When User IDs and Employee IDs Got Mixed Up
2026-07-12
A postmortem from PRANI OPS: seed data used user UUIDs, FKs expected employees, and “acting for” leave approvals quietly stopped working.
See moreHow ScrapeKey Scores and Ranks Affiliate Matches for a Keyword
2026-07-08
How I rank affiliate programs for a keyword in ScrapeKey — weighted scores, a relevance floor, and an honest monetization score (0–100).
See moreFrom SQLite on the Laptop to Neon Postgres in Production (Without Losing Your Prisma Mind)
2026-07-01
SQLite locally, Postgres in CI, Neon on Vercel — how I keep Bizee’s Prisma setup honest across environments.
See moreShipping Free SEO Tools Without Melting Your API (ScrapeKey’s Approach)
2026-06-24
How I ship ScrapeKey’s free SEO tools as a growth funnel — login-gated rate limits, shared scoring vocabulary, and SSRF-safe URL fetch.
See moreHow to Make HR “Actions” Update the Employee Record (Not Just Forms)
2026-06-18
Templates, approve, and Process due — how I wired PRANI OPS so a Promotion actually updates title, department, and pay on the effective date (not just a status flip).
See moreMaking Playwright E2E Stop Flaking: API Login and Route Stubbing for Next.js Apps
2026-06-17
How I got Bizee’s Playwright suite to 76/76 — API login + cookies, stub heavy routes, assert settled UI instead of sleeps.
See moreHow ScrapeKey Enforces Free, Pro, and Agency Limits in a FastAPI Backend
2026-06-10
How I keep ScrapeKey’s Free, Pro, and Agency tiers honest — one plan resolver, hard API gates, and pricing copy that matches what the backend actually enforces.
See moreStripe Subscription Checkout in Production: Auth, Price IDs, and Webhooks That Actually Work
2026-06-03
How I ship Stripe Checkout in production on Bizee — auth on the route handler, Price ID allowlists, and webhooks as the source of truth.
See moreHow to Host a Private Java/Angular Demo Recruiters Can Open in One Click
2026-05-14
Keep the repo private, still give recruiters a URL — how I ship PRANI OPS (Spring Boot + Angular + Postgres on Railway) with seeded demo accounts.
See moreBuilding Floai Studio
2025-09-26
How the Floai Studio stack came together for me — Next.js, WebSockets, and AI integration that stays practical.
See moreMobile-First Debugging That Sticks
2025-08-12
Layouts that look fine in DevTools can still fail on real phones — here's the checklist I use now.
See more
