feat: ISO download page, landing page refresh, Mark M as the Furtka logo everywhere #21

Closed
daniel wants to merge 0 commits from feat/website-download into main
Owner

Two commits: an ISO download page with a reworked landing page, and the new logo everywhere.

Download page + landing page

  • /download/ and /de/download/:
    • Big download button, file name, size and date.
    • Requirements, and 5 install steps (Etcher / Rufus in DD mode / dd, boot menu, Secure Boot, proksi.local:5000, wizard, pull the stick).
    • Checksum with verify commands, when the release has one.
    • Alpha notice and a link to all releases.
  • Release data comes from the Forgejo API at build time (partials/release.html): the newest release that has an .iso. If the lookup fails, it falls back to params.version. The getresource cache is off, so a build never pins an old release.
  • Homepage:
    • The version chip follows the latest release.
    • "Download ISO" as the primary button, "Source code" as a secondary one.
    • Numbered "How it works" cards, and a download band before the closing text.
  • Release pipeline: publish-release.sh now also uploads furtka-<ver>.iso.sha256, and release.yml rebuilds the site after publishing (continue-on-error).

Logo: Mark M

The vote closed at M 29 · R 13 (42 votes).

  • Generator: website/tools/brand-assets.py builds every brand file from the logo-assets.py geometry:
    • Favicons for the website, installer and box UI.
    • Touch icon, and a 1200×630 share card.
    • 640×480 syslinux splash.
    • docs/brand/: mark, lockups, and console art.
  • Website: header, favicon, and the default og:image. /logo/ shows the final result without voting (no poll.js), and the homepage link now reads "meet our new logo".
  • Installer: header and tab icon.
  • Box UI: the logo is drawn via CSS mask on every page and on the login, in brand red rather than the UI's green.
  • Console: logo art in /etc/issue, both on the installed box and on the live ISO.
  • ISO: the Furtka splash replaces the Arch splash in the BIOS boot menu.

Checked

  • Hugo 0.160 (Alpine, same as CI) builds cleanly.
  • Screenshots of the homepage, download page (EN/DE/mobile), logo page, box UI and installer looked right.
  • 410 tests pass; ruff check and ruff format --check are green.

Not done yet / needs you

  • Poll backend: voting is closed on the page only; pollsvc still accepts votes. The privacy notice promises that votes.db gets deleted when the poll closes, so on the VM: sudo ~/furtka-ops/poll/setup-poll.sh --reset (or remove the service), then drop the "Logo poll" section from the privacy pages.
  • Privacy page: the download is served from forgejo.sourcegate.online. Please check whether the privacy page needs to mention that.
  • Boot splash and console art will only show up in the next ISO build; I haven't booted them yet.
  • CHANGELOG: this PR and #20 both add entries under [Unreleased], so whichever merges second needs a trivial conflict fix.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Wq1hzUp4ZmCKHDuLKCnu73

Two commits: an ISO download page with a reworked landing page, and the new logo everywhere. ## Download page + landing page - **`/download/` and `/de/download/`:** - Big download button, file name, size and date. - Requirements, and 5 install steps (Etcher / Rufus in DD mode / `dd`, boot menu, Secure Boot, `proksi.local:5000`, wizard, pull the stick). - Checksum with verify commands, when the release has one. - Alpha notice and a link to all releases. - **Release data comes from the Forgejo API at build time** (`partials/release.html`): the newest release that has an `.iso`. If the lookup fails, it falls back to `params.version`. The getresource cache is off, so a build never pins an old release. - **Homepage:** - The version chip follows the latest release. - "Download ISO" as the primary button, "Source code" as a secondary one. - Numbered "How it works" cards, and a download band before the closing text. - **Release pipeline:** `publish-release.sh` now also uploads `furtka-<ver>.iso.sha256`, and `release.yml` rebuilds the site after publishing (`continue-on-error`). ## Logo: Mark M The vote closed at **M 29 · R 13** (42 votes). - **Generator:** `website/tools/brand-assets.py` builds every brand file from the `logo-assets.py` geometry: - Favicons for the website, installer and box UI. - Touch icon, and a 1200×630 share card. - 640×480 syslinux splash. - `docs/brand/`: mark, lockups, and console art. - **Website:** header, favicon, and the default `og:image`. `/logo/` shows the final result without voting (no `poll.js`), and the homepage link now reads "meet our new logo". - **Installer:** header and tab icon. - **Box UI:** the logo is drawn via CSS mask on every page and on the login, in brand red rather than the UI's green. - **Console:** logo art in `/etc/issue`, both on the installed box and on the live ISO. - **ISO:** the Furtka splash replaces the Arch splash in the BIOS boot menu. ## Checked - Hugo 0.160 (Alpine, same as CI) builds cleanly. - Screenshots of the homepage, download page (EN/DE/mobile), logo page, box UI and installer looked right. - 410 tests pass; `ruff check` and `ruff format --check` are green. ## Not done yet / needs you - **Poll backend:** voting is closed on the page only; `pollsvc` still accepts votes. The privacy notice promises that `votes.db` gets deleted when the poll closes, so on the VM: `sudo ~/furtka-ops/poll/setup-poll.sh --reset` (or remove the service), then drop the "Logo poll" section from the privacy pages. - **Privacy page:** the download is served from `forgejo.sourcegate.online`. Please check whether the privacy page needs to mention that. - **Boot splash and console art** will only show up in the next ISO build; I haven't booted them yet. - **CHANGELOG:** this PR and #20 both add entries under `[Unreleased]`, so whichever merges second needs a trivial conflict fix. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Wq1hzUp4ZmCKHDuLKCnu73
daniel added 2 commits 2026-09-28 15:09:13 +02:00
- /download/ and /de/download/: big download button, file name, size and
  release date, requirements (64-bit PC, UEFI or BIOS, >=16 GB disk that
  gets erased, USB stick, network cable with internet, second device),
  five install steps (Etcher / Rufus DD mode / dd, boot menu, Secure Boot
  off, proksi.local:5000, wizard, pull stick), checksum + verify commands
  when the release has one, alpha notice, link to all releases
- the release data comes from the Forgejo API at build time
  (partials/release.html): newest release with an .iso asset, falling back
  to params.version if the lookup fails; getresource cache disabled so a
  build never pins an old release
- homepage: status chip follows the latest release, 'Download ISO' primary
  CTA + 'Source code' ghost CTA, numbered how-it-works cards, download band
  before the closer
- releases now upload furtka-<ver>.iso.sha256, and release.yml rebuilds the
  site after publishing so the download page follows each release

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wq1hzUp4ZmCKHDuLKCnu73
feat(brand): Mark M is the Furtka logo — website, installer, box UI, console, boot splash
All checks were successful
CI / lint (pull_request) Successful in 30s
CI / validate-json (pull_request) Successful in 24s
CI / markdown-links (pull_request) Successful in 16s
CI / test (pull_request) Successful in 1m47s
CI / lint (push) Successful in 28s
CI / test (push) Successful in 1m56s
CI / validate-json (push) Successful in 24s
CI / markdown-links (push) Successful in 21s
Deploy site / deploy (push) Successful in 5s
Build ISO / build-iso (push) Successful in 20m27s
91aa33b891
The logo vote on furtka.org closed with M 29 · R 13 (42 votes).

- website/tools/brand-assets.py generates every brand file from the
  logo-assets.py geometry: favicons (small-size tier, accent with a
  dark-mode variant) for website / webinstaller / on-box UI, 180 px
  apple-touch-icon, 1200x630 default share card, 640x480 syslinux splash,
  and docs/brand/ (mark, small mark, lockups, 20-column console art)
- website: header mark, favicon, touch icon, default og:image; /logo/ now
  shows the final result (static counts, winner highlighted, no voting
  UI or poll.js); homepage link reads 'meet our new logo'
- webinstaller: M in the header + tab icon
- on-box UI: .brand mark via CSS mask in brand red (not the UI's green),
  favicon on every page, brand line on the login page
- console: M art above the text of /etc/issue on the installed box
  (furtka-welcome) and the live ISO (furtka-update-issue)
- ISO: build.sh swaps releng's Arch splash for the Furtka one
- README shows the lockup

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wq1hzUp4ZmCKHDuLKCnu73
daniel closed this pull request 2026-10-23 17:02:09 +02:00
All checks were successful
CI / lint (pull_request) Successful in 30s
Required
Details
CI / validate-json (pull_request) Successful in 24s
Required
Details
CI / markdown-links (pull_request) Successful in 16s
CI / test (pull_request) Successful in 1m47s
Required
Details
CI / lint (push) Successful in 28s
Required
Details
CI / test (push) Successful in 1m56s
Required
Details
CI / validate-json (push) Successful in 24s
Required
Details
CI / markdown-links (push) Successful in 21s
Deploy site / deploy (push) Successful in 5s
Build ISO / build-iso (push) Successful in 20m27s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: daniel/furtka#21
No description provided.