Static Astro website for the selected client direction.
The theme is intentionally frozen to the current locked choice:
- Palette:
Terracotta Calm - Font:
Nunito
Production does not include runtime palette/font switching.
All previous chooser/lab work is preserved on:
archive/theme-lab-choices
Use that branch only if you intentionally want to revisit palette/font exploration.
- Astro 5 static output
- React integration for shadcn components
- Tailwind CSS v4
- shadcn-ui
- pnpm
- Node.js 20+
- Corepack (recommended)
corepack pnpm installcorepack pnpm devFor a clean rerun that clears Astro/Vite caches before starting dev:
corepack pnpm dev:cleanManual cache cleanup only:
corepack pnpm clean:dev-cacheCache targets: .astro, node_modules/.astro, node_modules/.vite.
corepack pnpm check
corepack pnpm build
corepack pnpm perf:budgetnpm --prefix .codex-pipeline install
npm --prefix .codex-pipeline run setup:browsers
$env:BASE_URL="https://coding-tree-io.github.io/ateleia.gr/"
npm --prefix .codex-pipeline run verify:allFor local dev verification, point BASE_URL to your local URL (for example http://localhost:4321/ateleia.gr/).
corepack pnpm svg:noun:normalizeThis command now runs a full pipeline for the tracked Noun SVG assets:
- Inkscape CLI plain-SVG export pass (when available)
- Attribution text stripping from embedded SVG source text
- SVGO optimization into
src/assets/noun/normalized/ svger-cliconversion validation pass (output is temporary and removed)
Notes:
- GraphicsMagick is probed and reported, but not required for successful normalization.
- Public attribution remains on
/creditsandATTRIBUTIONS.md.
The homepage is static-first. Only two interactive islands are hydrated:
MobileNavigationMenu.tsxviaclient:media="(max-width: 767px)"ResourcesFilters.tsxviaclient:visible
Detailed conventions are documented in ISLANDS_POLICY.md.
A Lighthouse-backed mobile budget is enforced locally and in CI:
- config:
performance-budget.json - command:
corepack pnpm perf:budget - script:
scripts/check-lighthouse-budget.mjs
astro.config.mjs is configured for GitHub project pages deployment:
site: "https://coding-tree-io.github.io"base: "/ateleia.gr/"output: "static"
Deployment workflow on main publishes the homepage artifact from dist to:
https://coding-tree-io.github.io/ateleia.gr/
src/config/site-branding.ts: frozen Terracotta Calm + Nunito brand/typography configurationsrc/content/therapy-practice-website-content.ts: structured Greek copy/placeholders for homepagesrc/components/sections/SiteHeader.astro: static header shell with mobile menu island boundarysrc/components/sections/MobileNavigationMenu.tsx: mobile-only shadcn Sheet islandsrc/components/sections/ResourcesSection.astro: static resources section shellsrc/components/sections/ResourcesFilters.tsx: resources filtering/search islandsrc/pages/index.astro: production entry pageperformance-budget.json: mobile performance budget thresholdsscripts/check-lighthouse-budget.mjs: budget enforcement script.codex-pipeline/README.md: sidecar verification details and visual baseline workflow