✦ Architecture proposal · prepared for rex

Every Rex Company.
Every Spoke.
One Hub.

A Supabase substrate that unifies the Rex Tech Ventures portfolio under one architecture.

Drafted by Scott Molluso · for Peter Rex + Rex Tech Ventures
Glossary Substrate

A foundational, unifying layer that abstracts storage, compute, and management — decoupling data from any specific application. Disparate products read and write the same data within a single, cohesive framework. Improves scalability, enables modular data management, and lets AI reason across the whole portfolio instead of one product at a time.

The state today

Ten portfolio companies. Ten stacks. Ten data silos.

Rex Tech Ventures has built ten exceptional products. Each ships independently, owns its own database, owns its own auth, has its own (or no) AI integration. The cost compounds.

Integration tax

Cross-product features cost 4–8 weeks of API work each. The portfolio's network effect stays theoretical.

Data drift

The same vendor lives in IDCore + BillRoute + GetDone. The same resident lives in TenantPort + ProofUp. Reconciliation is manual and constant.

AI ceiling

Claude can't reason across portfolio data because there's no shared substrate to point it at. Each product trains its own narrow model.

Today

Ten products, no shared substrate.

JobCall
AI for property mgmt
own DB · own auth
CredBuild
Rent → credit reporting
own DB · own auth
ProofUp
Fraud + income verify
own DB · own auth
PayUp
Vendor + owner pay
own DB · own auth
GetDone
Maintenance OS
own DB · own auth
BillRoute
AI invoice automation
own DB · own auth
InsurePro
B2B insurance
own DB · own auth
OwnProp
Tokenized real estate
own DB · own auth
IDCore
Vendor compliance
own DB · own auth
TenantPort
Resident portal
own DB · own auth
Proposed

One Supabase hub. One spoke per portfolio surface.

Supabase Hub users · ledger · events · AI

Each spoke owns its UX and domain logic, but reads + writes through the shared Supabase substrate. New cross-product features become joins, not integrations.

One Postgres, many views

Identity, accounts, vendors, residents, journal entries, events — all in one schema. Each product reads/writes its own scope via RLS-enforced role-bound views.

AI as default substrate

Claude (and any model) sits over the unified data. AP-with-AI in BillRoute, fraud detection in ProofUp, copilot queries across the portfolio — same prompt-cached schema.

Public API on every spoke

Each portfolio product exposes its capability as a documented REST endpoint. Cross-product features become method calls, not 8-week integrations.

AI that reasons across all 10 portfolio companies + the real estate side. Cross-product features ship as joins, not 8-week integrations. Single auth, single GL, single source of truth.

Spoke contracts

What each portfolio company contributes to the hub.

Every portfolio product becomes a typed contract — read inputs from the hub, write events back. No one product owns the data; the hub does.

Spoke Domain Contributes to the hub
JobCallAI assistant for property managementOperator chat + voice transcripts → events + tasks
CredBuildRent-to-credit reportingOn-time payment events → tradeline writes
ProofUpAI fraud detection + income verificationApplicant docs → fraud signals + risk scores
PayUpVendor / owner / PM paymentsPayment events → GL postings + reconciliation
GetDoneMaintenance operating systemWork orders + vendor dispatch → activity feed
BillRouteAI invoice automationOCR + GL coding → AP queue
InsureProConfigurable B2B insurancePolicy lifecycle → COI + compliance ledger
OwnPropTokenized real estate marketplaceOwnership stakes → cap table + distributions
IDCoreAI vendor complianceVendor identity + insurance + W-9 → trust scores
TenantPortResident portalResident sessions → payments + work orders + comms
UnitBoard proofAI-native multifamily ERPOperator workflows → leases, work orders, GL postings
AcquisitionBoard nextDeal pipeline + underwriting + IC workflowSourcing → DD → close → handoff to UnitBoard on the same hub
Schema example

Two schemas. One database. Foreign keys do the wiring.

What the hub-and-spoke pattern looks like at the table level. The hub holds identity (users + their shared profile — display name, avatar, phone, locale), the ledger, the event log, and the AI action history. UnitBoard’s domain tables — properties, units, leases, residents, work orders — reference the hub via foreign key. Each spoke also keeps its own product-specific user profile (e.g. operator_profiles) so a single hub identity can have different defaults, roles, and preferences in each product they touch. RLS policies decide who reads what. Postgres enforces referential integrity in one transaction.

Hub schema supabase_hub
organizations
iduuid · pk
nametext
typeenum
users
iduuid · pk
org_id→ organizations
emailtext
roleenum
user_profiles
iduuid · pk
user_id→ users · 1:1
display_nametext
avatar_urltext
phonetext
localetext
timezonetext
accounts
iduuid · pk
org_id→ organizations
codetext
typeasset · liability · …
journal_entries
iduuid · pk
org_id→ organizations
posted_attimestamptz
source_kindtext
source_iduuid
events
iduuid · pk
org_id→ organizations
actor_id→ users
kindtext
payloadjsonb
ai_actions
iduuid · pk
org_id→ organizations
prompttext
tools_calledtext[]
UnitBoard spoke unitboard
operator_profiles
iduuid · pk
user_id⇢ hub.users
default_property_id→ properties
operator_roleleasing · maintenance · accounting · admin
preferencesjsonb
properties
iduuid · pk
org_id⇢ hub.organizations
nametext
addresstext
units
iduuid · pk
property_id→ properties
unit_numbertext
market_rentnumeric
residents
iduuid · pk
org_id⇢ hub.organizations
full_nametext
emailtext
leases
iduuid · pk
unit_id→ units
primary_resident_id→ residents
monthly_rentnumeric
statusenum
vendors
iduuid · pk
org_id⇢ hub.organizations
default_account_id⇢ hub.accounts
nametext
work_orders
iduuid · pk
property_id→ properties
vendor_id→ vendors
scheduled_starttimestamptz
statusenum
payments
iduuid · pk
lease_id→ leases
resident_id→ residents
journal_entry_id⇢ hub.journal_entries
amountnumeric
Cross-schema FK

The dashed-arrow rows () point at hub tables. vendors.default_account_id joins to hub.accounts; every payments row writes a hub.journal_entries row in the same transaction. The ledger is never out of sync.

RLS as the gate

Each spoke gets a Postgres role. UnitBoard’s role can read every table in its schema and only the hub rows scoped to its org_id. A vendor logging in via TenantPort can’t see a journal entry. Security is structural, not bolt-on.

AI reads both

Bo’s tool registry includes typed read access to UnitBoard and the hub. Ask it for portfolio NOI and it joins hub.journal_entries against hub.accounts filtered to the operator’s org_id — one query, one source of truth.

Roadmap

Three phases. Ship in months, not years.

01
UnitBoard ships standalone
Shipped

Working multifamily ERP on Supabase. Operator + resident + owner portals + public API + AI layer + integrations directory. Built solo in 2 days. Proves the pattern.

02
Migrate 3 high-overlap spokes onto the hub
Phase 2

TenantPort + IDCore + JobCall first — they share identity (residents) and vendor primitives. Each becomes a role-bound surface on the unified Supabase. Cross-product features ship in days. ~12 weeks.

03
Full ecosystem on the hub
Phase 3

All 10 spokes on shared substrate. Single auth (one identity per person, regardless of which spoke they entered through). Single AI surface that reasons across the whole portfolio. Single GL for cross-portfolio reporting. ~6 months total.

Honest scope

What this requires.

Some products will be rewritten. Older portfolio products with bespoke schemas may need a migration to the shared model. AI accelerates this — schema translation, codebase port, and test generation are exactly the workflows Claude is now strongest at.

Some products only need an API spoke. Newer products that already use Supabase or Postgres can publish events to the hub via a thin contract layer. No rewrite needed.

The hub itself is small. The shared schema is identity, accounts, vendors, residents/customers, journal entries, events, and a typed action log. The complexity lives in the spokes.

RLS does the gating. Each spoke gets its own role and policy set. A vendor in IDCore can't see resident data; a resident in TenantPort can't see GL entries. Security is structural, not bolt-on.

About the builder

Ten products. Six months. One thesis.

“You wanted an MVP in 90 days. I shipped the demo in 6.”

Demo is live and clickable today. Full MVP still in build.

Scott Molluso — AI Product Builder & Database Architect, based in Austin. 3x co-founder. $4M+ ARR shipped. 20 years in PropTech. Full-stack: frontend design through database architecture, design systems through RLS policies. Founder experience on top — pricing, GTM, hiring, the whole loop, not just the IDE. Built internal operating platforms for two prior asset / property management companies before this round of solo product work.

The last six months: 35 repositories shipped solo across leasing, brokerage, residency, capital markets, and the workflows in between. The methodology is AI-augmented and ruthlessly iterative — ship in days, watch what real users do, refine, compound the patterns. RexOS isn’t the first attempt; it’s the architectural thesis the other ten products kept pointing at.

Operator first
20+ years in PropTech.

Real estate sales, brokerage operations, transaction management — built software for operators because I was one.

Outcome shipped
$4M+ ARR.

Across prior products. Not pitches, not pilots — recurring revenue from real customers, generated by software I built.

3x co-founder
Equity in the outcome.

Built and run companies before. Knows the difference between shipping fast and shipping debt that compounds.

AI-native
Claude as a teammate.

Modern stack, RLS-gated Postgres, type-safe end-to-end. Every workflow ships with AI in the seam, not bolted on later.

By the numbers · last 6 months
35
Repositories shipped
10+
Products live in production
6 days
UnitBoard MVP, empty repo to live
20+
Years in PropTech
$4M+
ARR shipped · prior products
Prior internal systems · built for real PM & AM operators

RipOS · Riparian Management

2024 – 2025
Head of Product

Built the custom internal operating platform managing 3,300+ residential assets across Baltimore, Cleveland, Detroit, and Pittsburgh. Adopted by 80+ employees as the daily operating system across leasing, maintenance, and operations.

  • WeWeb + Xano stack, end-to-end design through schema
  • Field-facing mobile app for renovation specialists — inspections, project status, work orders in real time
  • ElevenLabs AI voice agents for outbound resident calls — replaced an 8-person VA team

EPOC Real Estate

2022 – 2023
Director of Technology & Business Operations

Rebuilt the company’s entire technology stack — WeWeb frontend + Xano backend — in 3.5 months, replacing all legacy systems.

  • Cut average underwriting time by 55% (45 min → 20 min) via process automation
  • Doubled home-buying production within 5 months
  • Replaced fragmented tooling with one unified platform
The methodology is the product

Velocity meets thesis. Solo‑built, architected for a team to grow into.

Most ERPs are built by 30-person teams over 30 quarters. UnitBoard was built by one engineer over six days because the toolchain finally caught up — Claude in the loop, Postgres + RLS as the substrate, every workflow shipped end-to-end before moving on. The codebase isn’t a prototype; it’s production-grade with type safety, tests, audit trails, and a real GL. The next 90 days don’t require rewriting any of it — the architecture absorbs depth without collapsing back into rework.

RexOS isn’t another bet in the portfolio. It’s the consolidation — six months of pattern-recognition across PropTech, applied to one shared hub, with an AI substrate that compounds with every new spoke.

Receipts: GitHub → LinkedIn → UnitBoard live → Email Scott →
The Domain

Why UnitBoard.

Three reasons we picked the name — and why the .com is on hold.

01 · Literal

Every unit. On one board.

The product surfaces every unit in a portfolio on one board. That’s exactly what an operator opens it for — to see every door, every lease, every dollar in one place. The name describes the page.

02 · Convention

Fits the Rex naming pattern.

Short, schema-shaped, the noun that names the substrate the product sits on. Same shape as every other RexOS spoke — when the suite is full, the naming reads as a system, not a grab-bag.

03 · In reserve

unitboard.com · $3,900.

Listed on the secondary market right now. Held in reserve for when the .com upgrade is worth the spend — once the product crosses the threshold where the four-figure swap pays for itself in trust signal alone.

UnitBoard is the proof.

One database, three role-bound views, AI in every workflow, public API on every plan. Built solo in 6 days. The pattern works at multifamily scale today — the same shape extends to the whole Rex portfolio.