Source repository for franklyflawless.org and hosting.franklyflawless.org.
  • HTML 68.9%
  • Python 31.1%
Find a file
2026-08-18 00:00:45 +00:00
.data Reset all entry statuses to pending (Firefox release cycle) 2026-07-21 00:00:47 +00:00
.forgejo/workflows Reset all entry statuses to pending (Firefox release cycle) 2026-08-18 00:00:45 +00:00
.scripts refactor(ci): make release calendar self-contained and eliminate cross-repo interactions 2026-07-08 16:36:28 +02:00
hosting Reset all entry statuses to pending (Firefox release cycle) 2026-05-19 00:00:58 +00:00
root Underline card-url on hover, logo copyright READMEs, update docs 2026-04-19 08:52:22 +02:00
themes April 2025 update (2 of 2) 2026-05-02 05:00:46 +02:00
.gitmodules Use relative submodule URL for CI compatibility 2026-04-15 06:44:29 +02:00
LICENSE Initial commit 2026-04-15 04:53:30 +02:00
README.md refactor(ci): make release calendar self-contained and eliminate cross-repo interactions 2026-07-08 16:36:28 +02:00

Website

Source repository for franklyflawless.org and hosting.franklyflawless.org.

Built with Hugo using the Directory theme.

Structure

Website/
├── .forgejo/workflows/   # CI/CD pipeline
├── .scripts/             # Repository-local automation scripts
│   ├── sync-calendar.py      # Fetch ICS release calendar from upstream
│   ├── regenerate-cron.py    # Rewrite deploy.yml schedule from cache
│   └── reset-status.py       # Reset hosting entry statuses to pending
├── .data/                # Cached data
│   └── release-calendar.json # Firefox release date cache (ICS-derived)
├── hosting/              # hosting.franklyflawless.org
│   ├── hugo.toml
│   ├── archetypes/
│   ├── content/          # Service entries (one .md per provider)
│   ├── layouts/          # Site-specific template overrides
│   └── static/img/       # Provider logos (see img/README.md)
├── root/                 # franklyflawless.org
│   ├── hugo.toml
│   ├── layouts/
│   └── static/img/       # Service logos (see img/README.md)
├── themes/directory/     # Git submodule → hugo-directory
├── LICENSE
└── README.md

Setup

git clone --recurse-submodules https://forgejo.franklyflawless.org/FranklyFlawless/Website.git
cd Website

Release calendar

The repository maintains its own cached copy of the Firefox release calendar (.data/release-calendar.json) derived from the authoritative ICS feed:

webcal://whattrainisitnow.com/calendar/future/releases/

On each scheduled release day the CI workflow:

  1. Fetches the live ICS feed.
  2. Merges newly announced future releases into the local cache.
  3. Regenerates the cron schedule in .forgejo/workflows/deploy.yml.
  4. Resets all hosting/content/*.md entry statuses to pending.
  5. Commits the updated cache and workflow.
  6. Rebuilds and deploys both sites.

No cross-repository interactions are required.

Adding a hosting entry

cd hosting
hugo new content/provider-name.md

Edit hosting/content/provider-name.md with the service details. Download the provider logo to hosting/static/img/provider-name.svg.

Overridable values

The following values are specific to this deployment and should be changed if forking:

File Value Purpose
hosting/hugo.toml baseURL Hosting directory domain
root/hugo.toml baseURL Root domain
hosting/layouts/index.html https://franklyflawless.org Home navigation link
hosting/layouts/_default/single.html https://franklyflawless.org Home navigation link
hosting/layouts/_default/single.html forgejo.franklyflawless.org/FranklyFlawless/Website Git commit URL prefix
root/layouts/index.html Service URLs and thumbnails Root domain entry list

The theme also contains a hard-coded Forgejo commit URL prefix in layouts/partials/card.html. See the theme README for details.

Provider and service logos in hosting/static/img/ and root/static/img/ are property of their respective owners and are not covered by this repository's CC0-1.0 license. See the README.md file in each img/ directory for details.

Building locally

# Root site
cd root && hugo --themesDir ../themes

# Hosting directory
cd hosting && hugo --themesDir ../themes

License

CC0-1.0 (excluding provider/service logos — see above)