@@ -6,10 +6,11 @@ Marketing site for Sovren Software at `sovren.software`.
66
77## Stack
88
9- - ** Framework** : Vite + Svelte 5
10- - ** Router** : svelte-spa-router (hash-based — required for GitHub Pages static hosting)
11- - ** Font** : Geist Mono Variable (self-hosted, ` public/fonts/GeistMono-Variable.woff2 ` )
9+ - ** Framework** : SvelteKit + ` @sveltejs/adapter-static ` (prerendered static site)
10+ - ** Font** : Geist Mono Variable (self-hosted, ` static/fonts/GeistMono-Variable.woff2 ` )
1211- ** Deploy** : GitHub Actions → ` sovren-software.github.io ` , CNAME ` sovren.software `
12+ - ** CDN** : Cloudflare proxy in front of GitHub Pages (enables crawler access, hides Fastly)
13+ - ** Search** : Bing Webmaster Tools verified, sitemap submitted
1314
1415## Design System
1516
@@ -27,18 +28,41 @@ White `#ffffff` contrast sections are used for overview/CTA blocks within produc
2728
2829## Routing
2930
30- | Hash route | Page |
31+ SvelteKit file-based routing. All routes prerendered via ` +layout.js ` (` export const prerender = true ` ).
32+
33+ | URL | File |
34+ | ---| ---|
35+ | ` / ` | ` src/routes/+page.svelte ` |
36+ | ` /augmentum ` | ` src/routes/augmentum/+page.svelte ` |
37+ | ` /visage ` | ` src/routes/visage/+page.svelte ` |
38+ | ` /mrhaven ` | ` src/routes/mrhaven/+page.svelte ` |
39+ | ` /ecosystem ` | ` src/routes/ecosystem/+page.svelte ` |
40+ | ` * ` | ` src/routes/+error.svelte ` |
41+
42+ Active nav state: ` import { page } from '$app/stores' ` → ` $page.url.pathname.startsWith(path) ` in ` src/lib/Nav.svelte ` .
43+
44+ Page transitions: ` {#key $page.url.pathname} ` with ` in:fade ` /` out:fade ` in ` src/routes/+layout.svelte ` .
45+
46+ ## Static Assets
47+
48+ All static files live in ` static/ ` (NOT ` public/ ` — SvelteKit convention). Copied verbatim to ` dist/ ` at build time.
49+
50+ | File | Purpose |
3151| ---| ---|
32- | ` #/ ` | Home |
33- | ` #/augmentum ` | Augmentum.svelte |
34- | ` #/visage ` | Visage.svelte |
35- | ` #/mrhaven ` | MrHaven.svelte |
36- | ` #/ecosystem ` | Ecosystem.svelte |
37- | ` * ` | NotFound.svelte |
52+ | ` static/CNAME ` | GitHub Pages custom domain — do not delete |
53+ | ` static/robots.txt ` | Crawler access — allows all, points to sitemap |
54+ | ` static/sitemap.xml ` | All 5 routes with clean URLs |
55+ | ` static/llms.txt ` | AI crawler context (ChatGPT, Perplexity, Claude) |
56+ | ` static/BingSiteAuth.xml ` | Bing Webmaster Tools verification |
57+ | ` static/fonts/GeistMono-Variable.woff2 ` | Self-hosted font |
3858
39- Active nav state: ` import { location } from 'svelte-spa-router' ` → ` $location.startsWith(path) ` in Nav.svelte.
59+ ## SEO / AI Discoverability
4060
41- Page transitions: ` {#key routeKey}<div in:fade={{ duration: 150, delay: 50 }} out:fade={{ duration: 100 }}><Router {routes}/></div>{/key} ` in App.svelte.
61+ - ` src/app.html ` — global JSON-LD (Organization + WebSite schemas)
62+ - Each ` +page.svelte ` — ` <svelte:head> ` with unique title, description, og: title , og: description , og: url
63+ - ` static/llms.txt ` — full product descriptions for AI crawlers
64+ - Cloudflare proxy — prevents GitHub/Fastly from blocking ChatGPT Browse proxy IPs
65+ - Bing Webmaster Tools — verified, sitemap submitted
4266
4367## Copy Philosophy
4468
@@ -87,9 +111,9 @@ npm run build # verify build passes before pushing
87111git push # GitHub Actions auto-deploys from main branch
88112```
89113
90- CNAME file at ` public /CNAME` contains ` sovren.software ` — Vite copies it to ` dist/ ` at build time . Do not delete it.
114+ CNAME file at ` static /CNAME` contains ` sovren.software ` . Do not delete it.
91115
92- GitHub Pages custom domain is set via API ( ` gh api repos/sovren-software/sovren-software.github.io/pages ` ). DNS is 4 A records (185.199.108-111.153) + www CNAME at Namecheap .
116+ DNS: 4 A records (185.199.108-111.153) + www CNAME → ` sovren-software.github.io ` . All proxied through Cloudflare .
93117
94118## Known Limitations
95119
0 commit comments