Skip to content

Monorepo: Restructure sd-demo → sd-app with Dashboard + Gross-Up Calculator

Section titled “Monorepo: Restructure sd-demo → sd-app with Dashboard + Gross-Up Calculator”

Date: 2026-03-07 Status: ✅ Complete


Renamed apps/sd-demo to apps/sd-app and evolved it from a single-page debt calculator into a multi-route mini-app hub. Added a dashboard home screen, implemented the RRSP Gross-Up calculator, moved the existing debt demo to its own route, and stubbed two future calculators.


  • git mv apps/sd-demo apps/sd-app
  • Package name: @smart-debt/sd-demo@smart-debt/sd-app
  • Manifest: “Smart Debt Demo” / “SD Demo” → “Smart Debt” / “SD App”
apps/sd-app/src/routes/
+layout.svelte ← added nav header (SD App brand + 4 links)
+page.svelte ← dashboard: 4 cards (2 live, 2 coming soon)
demo/+page.svelte ← moved debt payoff calculator here (no logic changes)
gross-up/+page.svelte ← NEW: RRSP Gross-Up Calculator
int-only/+page.svelte ← stub: "Coming soon"
term-loan/+page.svelte ← stub: "Coming soon"
  • Inputs: After-tax amount ($), Marginal tax rate (%)
  • Formula: grossedUp = afterTax / (1 - taxRate / 100)
  • Outputs: Grossed-up RRSP contribution, tax refund amount, plain-language explanation
  • Verified: $1,000 at 50% → $2,000 contribution, $1,000 refund ✓

CheckResult
pnpm check (svelte-check)0 errors, 0 warnings
pnpm build✅ All 6 pages compiled
/ dashboardHTTP 200
/gross-upHTTP 200
/demoHTTP 200
/int-onlyHTTP 200
/term-loanHTTP 200
Terminal window
cd apps/sd-app
pnpm dev
# Open: http://localhost:5173

Not yet committed — pending user request.

  • Implement Interest Only calculator (/int-only)
  • Implement Term Loan calculator (/term-loan)
  • Consider deployment to Cloudflare Pages