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
Summary
Section titled “Summary”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.
What Changed
Section titled “What Changed”Rename
Section titled “Rename”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”
New Route Structure
Section titled “New Route Structure”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"RRSP Gross-Up Calculator
Section titled “RRSP Gross-Up Calculator”- 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 ✓
Test Results
Section titled “Test Results”| Check | Result |
|---|---|
pnpm check (svelte-check) | 0 errors, 0 warnings |
pnpm build | ✅ All 6 pages compiled |
/ dashboard | HTTP 200 |
/gross-up | HTTP 200 |
/demo | HTTP 200 |
/int-only | HTTP 200 |
/term-loan | HTTP 200 |
How to Run
Section titled “How to Run”cd apps/sd-apppnpm dev# Open: http://localhost:5173Commit
Section titled “Commit”Not yet committed — pending user request.
Next Steps
Section titled “Next Steps”- Implement Interest Only calculator (
/int-only) - Implement Term Loan calculator (
/term-loan) - Consider deployment to Cloudflare Pages