Commit Graph

21 Commits

Author SHA1 Message Date
8c965f76d2 fix(a11y): broken support/signin links + WCAG AA contrast in light mode
All checks were successful
Build and deploy / deploy (push) Successful in 29s
Caught by Lighthouse on prod:

1. CRITICAL: support-link.mdx and signing-in.mdx used the MDX expression
   `{URLS.x}` inside Markdown-link parens, which MDX doesn't evaluate —
   the resulting href was URL-encoded '%7BURLS.whmcsTicket%7D' on every
   page with a Support partial. Replaced with HTML anchors so the
   expression evaluates.
2. Light-mode --sl-color-text-accent was the brand teal (#00d4aa) on a
   cream background = 1.73:1 contrast. Introduced --anhh-accent-on-light
   (#047857) at ~6:1 for inline accent text/links. Brand graphics keep
   the original teal.
3. Bumped light-mode --anhh-text-secondary and --anhh-text-muted to
   #334155 / #475569 so muted UI text clears AA.
4. Hub brand link aria-label now includes 'Knowledge Base' so the
   accessible name covers the visible text.
v1.0
2026-05-17 21:04:10 -07:00
6a0a461c26 docs(site-builder): add 5-article Site Builder section (Beta)
All checks were successful
Build and deploy / deploy (push) Successful in 23s
Adds /whp/site-builder/ with overview, getting-started, blocks-and-pages,
styling, and publishing. Wired as a 'Site Builder' sidebar group with a
Beta badge.

- Captured real screenshots via the demo account through a redaction
  step (server names, domain, demo-user all swapped for placeholders)
- New beta-callout partial shared across all 5 articles
- capture-site-builder.ts is local-only (uses tools/screenshots/.env
  for demo creds, never runs in CI)
2026-05-17 18:40:47 -07:00
ebbb75d7f5 ci: bump runner Node to 22 (Astro 6 requires >=22.12)
All checks were successful
Build and deploy / deploy (push) Successful in 38s
2026-05-17 18:21:36 -07:00
7f81240d22 ci: Gitea Actions build + lftp SFTP deploy
Some checks failed
Build and deploy / deploy (push) Failing after 13s
Triggers on push to main and manual workflow_dispatch. Builds with
Node 20, runs astro check, builds the static site, then mirrors
./dist via SFTP using the SFTP_* secrets configured on the repo.

Password-based SFTP for now (matches the credentials we have). Swap to
key-based by adding SFTP_KEY as a secret and tweaking the lftp call
when the production site user is created.
2026-05-17 18:06:41 -07:00
fef98357c7 docs(admin): add WHP super-admin section (5 draft articles)
Adds /whp/admin/ with: overview, server-settings, coraza-waf,
site-monitoring, user-management. Articles are product-neutral
(no VDS in titles or required framing) since super admin may be
offered as a separate service later. They're marked Draft via:

- 'Draft' sidebar badge on the group + each article
- A draft callout partial at the top of every page noting WIP

The super-admin-callout partial (renamed from vds-only-callout)
mentions VDS as today's most common way to get super admin without
locking the docs to that single product.
2026-05-17 18:04:01 -07:00
5d829c44ba docs(explainer): switch analogy to apartment vs townhome in a gated community
The apartment-vs-townhome framing maps more cleanly onto containers:
- An apartment shares walls, plumbing, air — neighbour noise/smells leak in.
  That's the experience on shared hosting.
- A townhome in a gated community keeps the shared upside (security, gates,
  community centre = the server/host) but isolates each unit. That's the
  containerized story.
2026-05-17 17:44:43 -07:00
2cd10bc56d feat(nav): rename Hosting link to 'Get a Plan'
More CTA-flavoured; differentiates from the WHP product mentioned
inside the docs.
2026-05-17 17:24:41 -07:00
ccfe8bb649 feat(nav): top-bar Hosting + Client Portal links
Adds external links to anhonesthost.com (Hosting) and
secure.anhonesthost.com (Client Portal) in both the Starlight header
(via the SiteTitle override) and the custom hub page header. Hidden
on narrow viewports so the search box, hamburger, and theme toggle
keep room.
2026-05-17 17:17:57 -07:00
c602b8f8f3 docs: verify against real WHP + capture real screenshots
Discovery against the demo account on whp01 surfaced several inaccuracies:

- Cache is Valkey (Redis wire-compatible), not Redis or Memcached.
  No Memcached is offered as a separate service.
- Site Monitoring is the sidebar label (not 'AI Monitor').
- 'Add a domain' has no Primary/Add-on distinction.
- Sites form: 'Container Type' (not 'Site type'), Number of Containers
  (1-10 for horizontal scaling), CPU per Container (default 0.25),
  Memory per Container (default 256MB), SSL inline on the same form.
- Backups: default retention 5 days / 10 backups; on-demand + scheduled;
  S3 backup targets are visible and configurable.
- Email: per-domain settings live behind 'Setup Instructions' on the
  Email page; mail server hostname is on the Dashboard (per-server,
  e.g. mail01.cloud-hosting.io), not per-domain.

Also reworked the screenshot pipeline:
- New shots.config.ts targets the real index.php?page=... URLs
- Added redactSensitive() step that runs before each screenshot to swap
  server names, IPs, mail hostnames, and demo-user-isms with neutral
  placeholders. This keeps docs portable across the fleet.
- Hides .brand-full and .navbar-text (top-bar server identifier and
  Welcome greeting).
- Captured 9 real WHP screenshots; removed stale placeholders.
2026-05-17 17:00:13 -07:00
53bc37fd0d docs: fix mail server + drop SSH tunneling
- Remove smtp.anhonesthost.com row from service-hostnames partial — we
  don't operate a single shared SMTP gateway; mail server hostnames are
  per-domain and listed on the WHP Dashboard
- Drop SSH tunneling section from service-hostnames reference (not a
  supported access path)
- Point email-client setup at the Dashboard for the per-domain host
  rather than assuming a 'mail.<yourdomain>' pattern
2026-05-17 16:38:36 -07:00
af94b72777 feat(brand): use real AnHonestHost wordmark + chevron logo
- Pulled the real inline SVG from anhonesthost.com (chevrons + wordmark
  with 'Host' in teal #00d4aa)
- Override Starlight's SiteTitle component so the SVG is inlined rather
  than loaded as <img>, letting currentColor follow the active theme
- Hub page header uses the same wordmark
- 'Knowledge Base' label sits to the right of the brand mark, hidden on
  narrow viewports
2026-05-17 16:36:46 -07:00
16e14019b7 fix(a11y): active sidebar item contrast (WCAG AA)
Starlight's default uses --sl-color-text-accent (our teal #00d4aa) as
the active-item background, which gives ~3:1 contrast vs the dark
inverted text — under WCAG AA (4.5:1). Override with primary blue
+ white text for ~9:1.

Note: customCss loads before Starlight's component CSS, so the rule
needs (0,2,1) specificity to win against Starlight's scoped (0,2,0).
2026-05-17 10:46:45 -07:00
e3b113cc2f feat(screenshots): Playwright capture pipeline (local-only, viewport-only) 2026-05-17 10:36:32 -07:00
748fcfeb6f docs(whp): add reference + 5 add-on articles, env.d.ts for font CSS imports 2026-05-17 10:34:43 -07:00
231aa583a0 docs(whp): add how-to articles (domain, site, email, backups) + placeholder screenshots
Placeholders are 1440x900 'Screenshot pending' PNGs that will be
overwritten by real captures via 'npm run screenshots' once a demo
user is provisioned.
2026-05-17 10:32:23 -07:00
e782234f65 docs(whp): add welcome + containerized hosting explainer 2026-05-17 10:29:57 -07:00
8c23b835d6 feat(content): add reusable partials and how-to template 2026-05-17 10:28:52 -07:00
84e1318b33 feat(hub): landing page with product cards (hides empty products) 2026-05-17 10:27:50 -07:00
d4970ef408 feat(brand): wire anhh-* tokens, fonts, ~/ vite alias, WHP sidebar 2026-05-17 10:26:59 -07:00
351f1e1431 docs: add README, CONTRIBUTING, LICENSE (CC BY 4.0) 2026-05-17 10:25:30 -07:00
d552e6ca57 chore: scaffold Astro Starlight project
- Astro 6.3 + Starlight 0.39
- TypeScript strict
- Sitemap integration
- Inter + JetBrains Mono variable fonts
- Custom .gitignore (no AI artifacts; no .env)
- .editorconfig
2026-05-17 10:24:47 -07:00