A network of fast, free, privacy-friendly real estate investor calculators, anchored on the original BRRRR (Buy · Rehab · Rent · Refinance · Repeat) calculator. Estimate deals instantly in the browser — no signup, no spreadsheet.
The five tools cross-link to each other so a single visit can flow from rehab budgeting → deal analysis → financing, which drives pageviews for ad revenue and leaves room for course/affiliate promotion.
| Tool | Path | What it does |
|---|---|---|
| Hub | / |
Landing page linking all tools + course promo + ad slots |
| BRRRR Calculator | /brrrr/ |
Cash left in deal, cash flow, cash-on-cash after refinance |
| Rental Cash Flow | /rental/ |
Monthly cash flow, NOI, cap rate, cash-on-cash |
| Fix & Flip | /flip/ |
70% rule max offer, all-in costs, net profit, ROI, annualized ROI |
| Mortgage & Refi | /mortgage/ |
Payment, total interest, extra-payment payoff, refi break-even |
| Rehab Cost Estimator | /rehab/ |
Room-by-room budget, contingency buffer, cost per sq ft |
Editorial-technical look inspired by readme.com: deep-navy "doc-tab" hero cards with a blueprint grid, electric-blue accent, Clash Display (headings) + Satoshi (body) + Geist Mono (eyebrows/code), and full light/dark themes.
build_site.py # shared template helpers (head, header, hero, field, ads, footer…)
build_pages.py # page generators — run to (re)build all 6 HTML files
vercel.json # Vercel hosting config
netlify.toml # Netlify hosting config
public/ # ← the actual website (host this folder)
index.html # hub homepage (generated)
assets/
site.css # shared design system (Clash Display + Satoshi + Geist Mono, light/dark)
site.js # shared runtime: REI helpers, theme toggle, mobile nav, analytics
brrrr/ index.html + brrr.js
rental/ index.html + rental.js
flip/ index.html + flip.js
mortgage/index.html + mortgage.js
rehab/ index.html + rehab.js
robots.txt
All internal links are relative, so the site works from any host or sub-path. Shared
chrome (nav, footer, cross-links) is generated from a single source of truth in
build_site.py / build_pages.py.
Edit templates, not output. The
public/**/index.htmlfiles are generated. Editbuild_pages.py/build_site.pyand rebuild.site.cssand the*.jsmath files are hand-written — edit those directly. Full details in DEVELOPMENT.md.
python3 build_pages.py # build the HTML from the Python templates
cd public && python3 -m http.server 8000
# open http://localhost:8000No dependencies — the generators use only the Python standard library.
| Doc | Covers |
|---|---|
| DEVELOPMENT.md | Complete build & maintenance reference — architecture, conventions, recipes, QA, troubleshooting. Read this to maintain the project solo. |
| DEPLOY_VERCEL.md | Step-by-step Vercel deployment (Git integration + CLI), custom domains. |
| ANALYTICS_AND_ADS.md | Plausible / GA4 traffic analytics + Google AdSense setup + affiliate/FTC compliance. |
| PUBLISHING_GUIDE.md | The broader monetization plan (ad revenue, affiliate lending/refi, Pro features). |
Static site — host the public/ folder on Vercel (vercel.json preconfigured;
see DEPLOY_VERCEL.md), Netlify (netlify.toml preconfigured), Cloudflare Pages,
or GitHub Pages. Always run python3 build_pages.py and commit the regenerated public/
before deploying.
- Ad slots — placeholder containers ready for AdSense/Ezoic/direct sponsors: leaderboard (hub), 300×250 rectangle (each calculator sidebar), and in-content inline banners. Placeholders auto-hide once real ad code is dropped in. See ANALYTICS_AND_ADS.md.
- Resources box on every calculator with
rel="sponsored noopener"affiliate links + FTC disclaimers. - Course promo slot on the hub, wired with click tracking.
- Cross-tool links throughout to maximize pageviews.
Each page ships with a Plausible tag and is GA4-ready via
REI.track() and data-analytics-event attributes. Swap the placeholder data-domain
(rei-toolkit.example.com) in build_site.py for your real domain before launch.
Estimates only — not financial, legal, or tax advice. Verify all figures with your lender, accountant, and contractor.
MIT