GTHome
All projects

Full-Stack Developer (Solo) · 2025–Present

Private

Spine — Property & Business SaaS

Multi-tenant property and business management SaaS — 5 Next.js apps (mall, farm, biz, super-dashboard, tenant portal) in a Turborepo monorepo with AI chat, PDF reporting, and tenant-isolated data.

Next.jsTypeScriptSupabaseTurborepoMistral

Private

Spine — Property & Business SaaS

Next.jsTypeScriptSupabase

Problem

Property and business operators (malls, farms, and multi-location businesses) need tenant-isolated dashboards, reporting, and AI assistance without standing up separate infrastructure per client.

Approach

Built a multi-tenant SaaS as 5 Next.js apps (mall, farm, biz, super-dashboard, and tenant portal) in a Turborepo monorepo, with Supabase row-level security isolating each tenant's data.

Tech highlights

Turborepo + npm workspaces across 5 Next.js 14 apps; Supabase RLS for tenant isolation; Deno Edge Functions and pg_cron for scheduled automation (invoicing, rent reminders, penalties, lease expiry); a Mistral tool-calling assistant over live mall data with role-scoped tools, user confirmation and server-side re-authorisation for write actions, and AI_ACTION audit logging; payments recorded through an atomic, idempotent Postgres RPC; @react-pdf/renderer for report generation; Apache Superset for analytics dashboards.

Results

Running across multiple internal apps in active development — full write-up and demo coming soon.

Challenges

Enforcing strict tenant isolation across 5 apps sharing one Supabase instance — getting row-level security policies right so no query could ever leak data between tenants — while keeping shared Turborepo packages, types, and Supabase migrations in sync so a change in one app didn't silently break the others.

Command palette

Search pages, projects, and quick actions