Skip to content

[!todo] finish specs, …

  • Create related sites with similar branding and styling
    • TalbotStevens.com (ts.com)
    • SmartDebtCoach.com (sdc.com)
    • SmartDebtWealth.com (sdw.com)
  • sdc.com
  • sdc.com/myths
  • sdc.com/books
  • sdc.com/insights (/blog)
  • sdc.com/academy (/courses)
  • sdc.com/coaching (/training, /speaking, /consulting)
  • sdc.com/community (or community.sdc.com)
  • sdc.com needs /country/language separate content
    • terminology, products, and tax rules are different in each country
    • multilingual content is either mandated or a good business decision
  • want same capacity for ts.com
  • allows Single Source of Truth for structure and styling to be shared with several sites
  • initial design iterations and testing done in Template sandbox site

[!details]+ Monorepo Folder Structure

monorepo/
├── pnpm-workspace.yaml
├── package.json # root package.json for scripts & shared dev deps
├── tsconfig.json # base TS config for all packages
├── packages/
│ ├── components/ # shared Astro/Svelte/React components
│ │ ├── SmartDebt.svelte # inline "Smart Debt", for use in .svelte pages
│ │ ├── SmartDebt.jsx # inline "Smart Debt", for use in .mdx pages
│ │ ├── Header.astro
│ │ ├── Footer.astro
│ │ └── index.ts
│ │
│ ├── design-tokens/ # shared CSS variables, typography, spacing
│ │ ├── tokens.css
│ │ └── index.ts
│ │
│ └── utils/ # shared utilities (formatters, hooks)
│ └── index.ts
├── sites/
│ ├── Template/ # design sandbox
│ │ ├── astro.config.mjs
│ │ ├── package.json
│ │ └── src/
│ │ ├── components/
│ │ ├── layouts/
│ │ ├── pages/
│ │ │ └── index.astro
│ │ ├── content/
│ │ │ └── us/en/ # default example content
│ │ │ └── blog/
│ │ │ └── hello-world.mdx
│ │ └── styles/
│ │ └── global.css
│ │
│ ├── sdc.com/ # SmartDebtCoach.com site
│ │ ├── astro.config.mjs
│ │ ├── package.json
│ │ └── src/
│ │ ├── components/ # site-specific components (rare)
│ │ ├── layouts/
│ │ ├── pages/
│ │ │ ├── index.astro
│ │ │ ├── myths/
│ │ │ │ └── index.astro
│ │ │ ├── books/
│ │ │ │ └── index.astro
│ │ │ ├── insights/
│ │ │ │ └── index.astro
│ │ │ ├── academy/
│ │ │ │ └── index.astro
│ │ │ ├── coaching/
│ │ │ │ ├── training.astro
│ │ │ │ ├── speaking.astro
│ │ │ │ └── consulting.astro
│ │ │ └── community/
│ │ │ └── index.astro
│ │ ├── content/ # structured content
│ │ │ ├── us/en/
│ │ │ │ ├── blog/
│ │ │ │ │ └── first-post.mdx
│ │ │ │ └── pages/
│ │ │ │ └── mission.mdx
│ │ │ ├── ca/fr/
│ │ │ │ ├── blog/
│ │ │ │ └── pages/
│ │ │ └── ... (other locales)
│ │ └── styles/
│ │ └── global.css
│ │
│ ├── ts.com/ # TalbotStevens.com (structure similar to sdc.com)
│ └── sdw.com/ # SmartDebtWealth.com (structure similar to sdc.com)
└── .github/ # optional shared CI/CD