Skip to content

chore: web audit - #36

Merged
bakirgdev merged 7 commits into
mainfrom
chore/web-audit
Oct 20, 2026
Merged

bakirgdev merged 7 commits into
mainfrom
chore/web-audit

Conversation

@bakirgdev

Copy link
Copy Markdown
Owner

What and why

Audit of web/ (landing and docs site) and everything tied to it: content checked against the app source, structure, copy, design rules, performance, accessibility, crawler files, CI and the scripts that feed the sites.

AI assistance: substantial

Docs site

  • Restructured from 21 to 17 task-based pages: Getting started, Send and receive, Customize (one Settings page in the app's own order), Help (new Uninstall and data page), Reference. Feature matrix cut, glossary folded into the FAQ. @docusaurus/plugin-client-redirects covers every old URL.
  • About a dozen wrong UI labels fixed, plus missing facts: Apple silicon only, one install channel per Mac, receiver-before-sender failure, offline error, trust badge names the configured route, getcroc.com third-party scripts, Mac Keychain items outlive the app.
  • Sidebar groups are plain headings (no anchor without an href), screenshots are WebP and ship once, no version dropdown, footer gains Release notes, Privacy and Support.
  • Node 26.12.0, pnpm 12.14.0, react 19.3.1, everything else already latest. All four pnpm overrides are still needed.

Landing

  • Headline "Send files with a code phrase" everywhere (title, OG, docs tagline, README, llms.txt, social card), with an iPhone, iPad and Mac pill and an iPhone shot.
  • Release status is true: the Mac disk image is live, App Store versions are coming. VoiceOver claim removed until the audit runs.
  • CSP meta on every page, theme script moved to theme-init.js, GitHub star fetch and scroll-spy dropped (the nav no longer marks the current section).
  • One WebP hero image per theme, about 25 KB instead of about 200 KB. "How it was made" and Inspirations moved to the docs Contribute page.
  • llms.txt follows llmstxt.org and lists every docs page; sitemap has lastmod.

Design and app

  • New --color-accent-solid / Color.accentSolid: filled prominent buttons in light mode go from 3.41:1 to 4.94:1. The app's filled buttons change with it. colors.md rule 3 rewritten; the destructive button stays at 3.55:1 (no darker system red).
  • Favicons and manifest icons are the app icon (realfavicongenerator.net from an ictool render), source in assets/favicons/.

Screenshots

  • Fixtures fixed (three-word codes, real code hints, default link server, one-day link) and every set recaptured, App Store sets included. --copy-web rebuilds the WebP web copies.

CI

  • New site build job in ci.yml, part of ci pass, so a broken docs link blocks the merge. github-pages.yml now only deploys on push to main. The design filter covers the new web files.

After merge: upload assets/github-social-preview.png in Settings > Social preview.

Verification

  • scripts/assemble-site.sh (Node 26.12.0): exit 0, no broken links or anchors.
  • Link crawl of the assembled site: 0 broken internal links, anchors or assets; every llms.txt and sitemap URL resolves; all 10 old docs URLs redirect to a 200 page; external links 200.
  • axe-core, every page, light and dark plus a theme pin opposite the OS: 0 violations.
  • Lighthouse, before and after: landing mobile perf 84 to 100 (LCP 4.4 s to 1.7 s); docs mobile perf 69-86 to 96-99; a11y 100 everywhere; /docs/guide/settings/ 100 for a11y, best practices and SEO after the sidebar and logo fixes. Not re-run on every page after the last fixes.
  • Playwright: no console errors or CSP violations, theme toggle persists, only the active theme's hero image downloads, no horizontal overflow at 400 and 1440 px.
  • pnpm exec tsc, scripts/format-swift.sh --lint, shellcheck -x, actionlint (only the known runner-label warnings): pass.
  • macOS and iOS Simulator Debug builds succeed. No transfer code changed, so no transfer harness applies.
  • Not verified: docs 404 page meta description (needs a swizzle, listed in known-issues.md).

Docs

  • User-visible change: lines under ## [Unreleased] in CHANGELOG.md
  • Internals changed: the docs that describe them updated
  • Defect fixed or accepted: docs/known-issues.md updated
  • scripts/verify-docs.sh passes

UI changes

  • Tokens, SF Symbols and the system font only
  • Both themes checked
  • scripts/verify-design.sh passes
  • Screenshots recaptured (scripts/capture-screenshots.sh)

New --color-accent-solid alias (green-700 light, green-400 dark) for filled
prominent buttons, mirrored as Color.accentSolid. Pressed moves to green-800.
Docs links on fill surfaces use the on-tint text alias. verify-design.sh now
lints app.js, theme-init.js, r/receive.js, prismTheme.ts and the manifest.
Three-word codes, valid code hints, the default link server and a one-day link.
--copy-web rebuilds the WebP web copies with cwebp.
17 task-based pages with redirects from the old URLs, a new Uninstall and data
page, labels checked against the app, WebP screenshots shipped once. Node 26,
latest packages, leaner Docusaurus config.
Headline 'Send files with a code phrase', accurate release status, CSP on every
page, external theme script, one WebP hero image per theme, spec-shaped
llms.txt. Drops the GitHub star fetch and scroll-spy.
@bakirgdev
bakirgdev merged commit 2114d14 into main Oct 20, 2026
15 checks passed
@bakirgdev
bakirgdev deleted the chore/web-audit branch October 20, 2026 01:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant