diff --git a/app/mortgage/page.tsx b/app/mortgage/page.tsx
new file mode 100644
index 0000000..0669f0d
--- /dev/null
+++ b/app/mortgage/page.tsx
@@ -0,0 +1,10 @@
+import MortgageSimulator from '@/components/mortgage/MortgageSimulator'
+
+export const metadata = {
+ title: '(you)rMortgage — Distributed Mortgage Simulator',
+ description: 'Simulate distributed mortgages: 100+ community lenders instead of 1 bank. Visualize flows, compare costs, explore the secondary market.',
+}
+
+export default function MortgagePage() {
+ return
+ Interest that stays in the community instead of flowing to a distant institution. + {summary.interestSaved > 0 && ( + <> Plus {fmt(summary.interestSaved)} saved through distributed rates.> + )} +
+{tranche.lender.walletAddress.slice(0, 10)}...
+Tranche fully repaid — not tradeable
+ ) : ( + <> + + {tranche.listedForSale && ( ++ See what you could earn lending into the rMortgage +
++ {(() => { + const best = scenarios.reduce((a, b) => + b.reinvested.effectiveYield > a.reinvested.effectiveYield ? b : a + ) + const liquidBest = scenarios.reduce((a, b) => + b.liquid.effectiveYield > a.liquid.effectiveYield ? b : a + ) + return ( + <> + Reinvesting returns in a {best.tierLabel} tranche yields{' '} + {best.reinvested.effectiveYield.toFixed(2)}%/yr vs{' '} + {liquidBest.liquid.effectiveYield.toFixed(2)}%/yr with monthly liquidity. + {best.reinvested.totalInterest > liquidBest.liquid.totalInterest && ( + <> That's {fmt(best.reinvested.totalInterest - liquidBest.liquid.totalInterest)} more over the term.> + )} + > + ) + })()} +
++ {currentState.tranches.length} lenders × {new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', maximumFractionDigits: 0 }).format(config.trancheSize)} tranches +
+