Most flat-fee MLS sites you find online are WordPress templates with a Stripe button glued onto a contact form. DIY Realty is something different — a custom-built, multi-tenant SaaS platform with broker management, role-based dashboards, programmatic state pages, and Stripe checkout flowing through Supabase. Here is exactly how we architected it, what runs under the hood, and what it would take to build something similar for your brokerage.
DIY Realty is a flat-fee MLS listing platform that lets sellers list on the MLS for a one-time fee instead of paying the traditional 3% listing commission. The big idea is simple — the execution is not. To deliver MLS access nationally, you need licensed brokers in every state, compliance workflows tuned to each state board, syndication to Zillow / Realtor.com / Redfin, and a payment system that handles flat fees up front plus optional 1% closing commissions.
We built DIY Realty to solve all of that in one platform. Sellers pick their state, choose a package, pay through Stripe, and get matched to a licensed broker in that state who handles MLS submission and compliance. Brokers get a dedicated dashboard to manage their assigned clients. Admins get a master view across all states, all brokers, and all listings.
The whole platform now covers 45+ U.S. states with state-specific pricing, broker assignments, and compliance copy — built from a single Astro and React codebase with state-by-state programmatic SEO routes that auto-generate landing pages for every state and every major city we operate in.
The flat-fee MLS market is dominated by two kinds of platforms: regional one-broker shops that only operate in one or two states, and national lead-aggregator sites that collect leads from sellers and resell them to whichever broker bids highest. Neither one delivers a clean, consistent, vertically-integrated seller experience.
Sellers who are trying to save tens of thousands in commission deserve more than a generic intake form and a 48-hour wait to find out which random broker they got assigned. They need a polished marketplace, instant matching, transparent pricing, and a place to track their listing progress. Brokers need a focused tool to manage their assigned clients without juggling spreadsheets and email threads. And the operator behind the platform needs admin views, reporting, and broker payout flows.
We architected DIY Realty as a true three-sided SaaS marketplace: buyers / sellers pay through Stripe and get matched, brokers log in to their dashboard to manage assigned listings, and admins oversee the whole network — brokers, listings, applications, pricing, and reports.
We picked a stack that gets us static-first SEO performance for every public page, full SPA interactivity for dashboards, real auth and database, real payments, and zero vendor lock-in. The client owns the code outright.
Why Astro + React together? Astro renders the public pages (home, state directories, city pages, pricing, blog) as static HTML at build time — tiny payloads, instant load, perfect for SEO. The dashboards (admin, broker, client) hydrate as a React SPA via React Router. You get the SEO of a static site and the UX of a full app from a single repo.
Supabase handles all three pieces of the backend: Postgres database (states, brokers, listings, packages, payments, applications), auth (email + magic-link sign-in, with role claims for admin / broker / client routing), and row-level security (brokers can only read their assigned listings, clients can only read their own). It replaces what would otherwise be a Node API, an auth service, and a database server into one managed product.
Sellers pay the listing fee via Stripe Checkout. The 1% closing-commission package uses Stripe to authorize and capture later. Broker payouts run through Stripe Connect with the brokerage as the platform account — each licensed broker has a connected sub-account, and revenue is split automatically per state.
// State-by-state programmatic landing pages
// src/pages/flat-fee-mls/[state].astro
export async function getStaticPaths() {
return US_STATES.map(state => ({
params: { state: state.slug },
props: {
stateName: state.name,
packages: getDefaultPackagesForState(state.slug, state.name),
cities: getCitiesForState(state.slug),
},
}));
}
Every state gets its own static route at /flat-fee-mls/[state], with state-specific MLS associations, pricing packages, broker info, and city sub-pages. With 45+ states and an average of 8–12 city pages each, the build outputs roughly 500–600 static landing pages — all SEO-indexed, all sub-1-second load.
Custom SVG-based clickable U.S. map (43KB USMap.tsx) where sellers click their state to drop into the state-specific landing page with localized pricing and broker info.
One-page checkout with package selection, address autocomplete, photo uploads, MLS remarks, and Stripe payment in a single linear flow. Confirmation email triggers broker assignment.
Three layered routing trees — admin, broker, and client — each with its own scoped views, permissions, and data isolation enforced at the database layer through Supabase RLS.
Public partner-application flow that licensed brokers fill out to join the network. Admin review queue, license verification, Stripe Connect onboarding, and automated welcome sequence.
Each state ships with default $249 Flat Fee MLS + $399 1% Full Service + Buyer Rebate packages, but admins can override per-state pricing in real time without redeploying.
Embedded chatbot (17KB AIChatbot.tsx) that answers common questions about flat-fee MLS, walks sellers through state requirements, and hands off to a broker when needed.
Live commission-savings calculator on every state page — sellers plug in their home price and see the dollar amount they keep vs. paying a 3% listing agent.
Live carousel of recently sold properties with addresses, sale prices, and "you saved $X" callouts pulled from broker submissions — powerful social proof on every state page.
A national real-estate SaaS lives or dies on local search rankings. A flat-fee MLS company in California competes for "flat fee MLS california" against hundreds of other listing services — and a single homepage will never win that race. We needed a programmatic SEO system that could spin up high-quality, locally-relevant landing pages for every state and every major city automatically.
The data layer drives it. We maintain three data files: states.ts (all 50 + DC), cities.ts (74KB — populated cities with metro context), and mls-associations.ts (the actual MLS organization name and link for each state — FMLS, GAMLS, Bright MLS, NWMLS, Stellar MLS, etc.). At build time, Astro reads these and emits one optimized landing page per state and per top city.
state_packages table at buildThe math: 45 states × ~10 city pages each = roughly 500 highly-localized landing pages, each targeting a unique long-tail search cluster. A single template would never index well; programmatically generated pages with real local data rank for thousands of long-tail queries combined.
Brokerages we talk to often start by asking: “Can’t we just buy a flat-fee MLS plugin for WordPress?” The honest answer is sometimes yes — if you only operate in one state, only have one broker, never plan to onboard partners, and don’t care about ranking on Google nationally. For everyone else, a custom platform pays for itself in the first 12 months.
Add a new state by inserting one row in the database. Pricing, broker, and landing page generate automatically. No code changes, no redeploys.
Per-state broker payouts via Stripe Connect. Platform takes its cut on every transaction automatically — no Excel reconciliation, no manual ACH transfers.
Each state’s broker compliance copy is data-driven — no hardcoded text. State changes its rules? Update one record, every state page updates automatically.
Modern stack with full data ownership and exportable Postgres makes the business attractive to acquirers and investors. WordPress plugin platforms have negligible enterprise value.
We didn’t build DIY Realty as a one-off. The architecture — programmatic state pages, multi-role dashboards, Stripe Connect payouts, broker application pipeline — is reusable for any multi-state real-estate marketplace. If any of these match what you’re trying to launch, the foundation is already battle-tested:
If you’re building anything in this category and you’ve outgrown WordPress + Zapier, the architecture we used for DIY Realty is what you actually need. Want to skip a year of dead-ends? Talk to us — we’ve already paid the tuition on the hard parts.
If you’re launching or scaling a real-estate SaaS — flat-fee MLS, iBuyer, FSBO marketplace, or anything multi-broker — we’ve built the architecture and we know where the landmines are. Call or text (320) 360-8285, or DM HUNT on Instagram, to start a build.