Skip to content

Proposal: alternative "better" versions of the speed test and stability pages #863

Description

@HyakoV3

Description

I would like to propose two new pages, index-better.html and stability-better.html: alternative versions of the classic
speed test and of the stability test, with the same features and a different look. They are new files, so the existing
pages (classic, modern, stability) are not touched and nothing changes for anyone who does not open them. The code is in
frontend/better/, with a small change to the Dockerfiles and to entrypoint.sh to ship the two pages.

What they have:

  • The same tests as today: the speed test with the server selection and the number of connections, and the stability test
    with the server discovery, the target list (local server, Google, Cloudflare, Apple), the alert threshold, the CSV
    download and the rating
  • A round button in the top right corner that opens a panel with every option: light, dark or auto mode, 12 brand colors,
    rounding of buttons and boxes, footer style, font set (system, Inter, Sora, Manrope), text size, high contrast and language
  • Three chart styles on the stability page (polished, bands and uPlot, which is only loaded when chosen)
  • A test history that stays in the browser, with the link and the image of each result
  • Localization in English, Portuguese, Spanish and Swedish, using the same catalog format as Add Swedish interface localization #860 (flat JSON with dotted
    keys, data-i18n, data-i18n-attr, the English text kept in the page as the fallback). The Swedish text is the one from Add Swedish interface localization #860
  • A layout that works on small screens, and canvases (meters and chart) that follow the theme, the text size and high contrast

Everything is saved in the browser, and some options can also be set with URL parameters (?theme=, ?brand=, ?lang=,
?font=, ?chart=, ?footer=).

Why it should be implemented

  • People who host their own LibreSpeed (home labs, ISPs, companies) often want a page that fits their site: a brand
    color, dark mode, their own language and bigger text for accessibility. Today that means editing the HTML by hand
  • The options (text size, high contrast, themes, localization) make the speed test easier to use for people who need them
  • It is opt-in and additive. The classic and modern pages stay as they are, so there is no risk of changing what
    people already use, and the new pages can be removed by deleting the files
  • The code follows the style of the repository (Prettier, ESLint, Playwright tests) and has no new dependencies, only
    two vendored files that are loaded when needed (the fonts, under SIL OFL, and uPlot, under MIT)

Optional: implementation suggestions

I already have this working on a fork, with 23 new Playwright tests; the whole existing suite (57 tests with Docker)
passes and npm run lint shows no new warnings. It is about 5.8 thousand lines in 46 files, but only about 2 thousand are
code (the rest is CSS, the catalogs, the fonts and uPlot).

Because it is a big change I would like to know first what you prefer before opening a pull request:

  1. Do you want this in the repository at all, or would you rather keep it as a separate project?
  2. If yes, as one pull request, or split (for example the core pages first, then the theme panel and fonts, then the languages)?
  3. How do you want the localization to coexist with Add Swedish interface localization #860? The catalogs of the new pages are in frontend/better/locales,
    so they do not conflict with frontend/locales, and they can be merged later

I also have a few smaller improvements for the classic pages that I can send as separate pull requests if you are
interested: a better privacy dialog, text size and high contrast options, an embedded mode, and a test history.

Optional: screenshots

Updated(2026-10-07)

Image Image Image Image

Activity

  1. HyakoV3 commented on Oct 6, 2026

    @HyakoV3
    ContributorAuthor

    More screenshots. Updated(2026-10-07)

    Image Image Image Image
  2. added theissue type on Oct 23, 2026
  3. sstidl commented on Oct 23, 2026

    @sstidl
    Collaborator

    @HyakoV3 i really like how the new designs look. thank you for contributing to the project!

    As you said yourself, it's a big change.

    You know, diffent strokes for different folks, so a theming feature where you can have our own taste of design would be nice.

    the hosters of speedtest frontends would need their own branded version running but maybe dont want the users to adapt the design.

    this makes me think more of an custumization tool for hosts and a static style to bake into the container or frontend dir. this would be one extra feature to create and test on a seperate branch.

    die localisation idea is new. it was not demanded for a long time. i think this is because there are not so many words on the frontend side 😉
    this should be kept seperate from the theming feature. i didnt have time to fully understand #860 but it seems a lot of code for the purpose.

    what does everone think about it?

  4. HyakoV3 commented on Oct 23, 2026

    @HyakoV3
    ContributorAuthor

    @sstidl thank you so much for the kind words and for taking the time to look at this, it really means a lot! 😊

    Totally agree on both points:

    • Theming: it makes sense that people hosting their own instance want their branding and not have users switch the look. A host-side customization (a static style baked into the container/frontend dir) is a much better fit than a user-facing switch. I'm happy to do that as its own feature on a separate branch.
    • Localization: fair enough, I'll keep it fully separate from theming. And I understand the concern about Add Swedish interface localization #860 being a lot of code for the purpose, I'm happy to look at making it smaller and simpler.

    In the meantime, in case it helps you and everyone else get a feel for the designs, I have three live demo instances running the "better" pages. Feel free to poke around, run a test, and tell me what you like or what feels off:

    Any feedback is very welcome, and I'll wait to hear what the others think before moving on. Thanks again! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions