The losslesscut.app website moves into website/ (previously its own repo, deployed to S3/CloudFront) and is built with Astro + Starlight, deployed with Cloudflare Workers Builds (production from master, a preview URL per branch and pull request). See website/README.md.
- docs/*.md become pages under /docs. They stay plain markdown for GitHub: a content loader generates the front matter, remark plugins rewrite links, and the build fails on links to missing pages or headings.
- The app's links go through https://losslesscut.app/go/<name> redirects (src/common/websiteUrls.ts), so targets can move without an app update. The build checks that each target page and #anchor exists. This covers the help pages, discussions, bug reports, feature requests, thanks, Discord, the privacy policy, licenses.txt and the update check (/go/latest-release, a fetch replacing @octokit/core).
- licenses.txt is generated and attached to each GitHub release by the release workflow.
- New privacy policy at /privacy-policy.
- The homepage is a React component rendered to static HTML, with a header, Download/Documentation buttons and social icons. Its images and icons are served from the site (camera metadata stripped), without Google Fonts.
- Official links are in src/common/links.ts (app) and website/src/links.ts (website).
- The error report dialog's Discord link opened GitHub.
- Docs: fix broken links. Release notes: list each changelog line once.
Changelog: Help links open the documentation on losslesscut.app
Changelog: The Discord link in the error report dialog now opens Discord instead of GitHub
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AntZvg7M7on4kAETvpYqzp
Co-authored-by: Mikael Finstad <finstaden@gmail.com>