Version 0.4.1 of the website just dropped! Read the release notes

Version 0.4.0

Release notes

It took me nearly 4 months, but at last, a new major version of the website is out! This is probably the largest update up until now, mainly because I got sidetracked a lot. Sorry about that.

The Blog Grows

Paige lining up a cinematic camera

The biggest thing in this big update is the long-awaited release of part 2 of the “gaze upon the stars” blog post! And when I say biggest, I really mean it, as it clocks in at a whopping 37 minutes of reading time. That equates to about 7,400 words (though I haven’t checked the exact word count). On top of that, part 1 has been revised and expanded a bit.

And if that’s not enough, blog posts now feature a built-in comment section! This is done by displaying GitHub discussions through giscus . As such, you will need a GitHub account to comment on them. Both “gaze upon the stars” blog posts should have an example comment from me in there, as pictured below:

The comment section of part 1

Don’t ask me why it defaults to this horrible font on Linux…

Visualizer Frenzy

The website's visualizers

The website’s custom audio visualizer has been updated quite a bit. The most important changes have been listed below. Not only that, you can now try out this visualizer with ANY audio file* by heading to the new visualizer playground page!
*: Assuming your browser supports said audio file.

Oscilloscope

Spectrum

Volume meter

This is a new addition to the visualizer! It gives you plenty of information about the audio volume, such as:

The volume meter and its parts.

Enhanced Media Players

Of course, the audio and video players that display those visualizers have been updated, too. For instance, the pop-up menu now contains a slider that lets you change the playback speed.

You can also use keyboard shortcuts to adjust said playback speed. Speaking of which, when you use one of these shortcuts, a little indicator will now pop up to let you know what you just did. This also applies to mouse and touch actions.

I know, I still need to add a help menu displaying the various shortcuts. You can reference a list of YouTube’s shortcuts for now, since they should be mostly the same. This website doesn’t use all of them, obviously.

Try out these changes here:

gaze-upon-the-stars.m4a
Alpha

© 2026 f78. Available under the CC BY-SA 4.0 licence.

0:00 / 0:00

The default volume has been increased to 100% for now. In an upcoming version, I’ll add a preference that lets you change this. I also fixed various bugs related to these players, such as media refusing to load after a page transition. I have no clue what caused this, it just seemingly started happening some time between the last version and this one.

What’s that version?

The website now features a list of versions and their changes, which can be accessed at any time by clicking the version number at the bottom of the left sidebar. But who am I kidding, you already knew that, because you’re browsing them right now. Or maybe you clicked that banner up top.

Anyway, these version pages are generated automatically based on Git tags and commit history. It also allows for custom release notes, which you’re currently reading!

The Little Things

There have been a lot more smaller changes. For instance, the table of contents has also been moved to its own dedicated sidebar on the right, and on large enough screens, you can now toggle these sidebars. Their state will be remembered as well!

Next up, style changes. One of these is that the various navigation bars have been given a new look in Immersive Mode, although said look is still subject to change. Horizontal rulers have also been stylized. And the last thing I want to mention, the immersive background has coloured stars now! Can you even tell?

Of course, there are many more of these changes that are not worth mentioning here, such as improved page load times. Check out the commit history below if you want to dive into the nitty-gritty.

Commits

View commit history

feat: 0.4.0

Final changes for the stable 0.4.0 release.

  • Update the blog posts to account for the release.
  • Ensure discussions created by giscus always link to the main website.
  • Make the spectrum analyser not draw as many points, significantly improving performance.
  • Fix the playback speed slider not changing the default media playback rate.
  • Add release notes for 0.4.0, and fix some of the version features.

Merge branch 'dev'

feat(version): add release notes and prerelease type support

  • Introduce support for custom release notes on version pages.
  • Display more information about each version's pre-release type.
  • Show annotated tag messages in the version list.
  • Fix pre-release navigation at the bottom of version pages when in the Basic preferences mode.
  • Also add high contrast support for <blockquote>, <Alert>, and the current version table.

feat(posts): revise both "gaze upon the stars" blog posts & related changes

  • Clean up the writing, add new sections and change the hero image of both blog post parts.
  • Change some related styling.
  • On the home page, use the TextEffects component that I added while writing the second blog post.
  • Update the convert script to allow removing the audio stream, and refactor it a bit.

feat(media): visualizer playground & media player additions

  • Allow dragging files onto the visualizer playground page to quickly load them.
  • Add support for changing the media playback speed.
  • Change the default media volume to 100%.
  • Tweak the styling and animations of the player controls and pop-ups.
  • And lots more minor fixes and changes to the audio and video players.

feat: add comments section support using giscus

fix: last modified time, version page and more

  • Convert file URLs to paths when getting the last modified date, to fix this feature in builds.
  • Fix showing pre-release versions not working in the Basic preferences mode.
  • Add a console message when the version collection is reloading, as it takes some time.
  • Remove the copyright header from .ncurc.js to match the other config files.

feat(posts): continue writing the upcoming blog post

Part 2 of the "gaze upon the stars" blog post should now be mostly finished.

  • Write the previously unfinished sections.
  • Clean up some of the existing writing.

style: clean up formatting in immersive background fragment shader

docs: update README

build: update convert script and add npm-check-updates as dev dependency

  • Add npm-check-updates as a dev dependency to create a type checked config file for it.
  • Fix an incomplete sentence in the convert script's help text.
  • Add a warning when converting an audio file using a lossy format.
  • Use the already present consola and ansis packages in the convert script.

feat(media): minor visualizer tweaks

  • Add all-time peak and average volume displays to the volume meter.
  • Add my Startup cover to the visualizer showcase page.
  • And lots more small changes that you probably will notice, but are not worth mentioning here.

feat(media): styling changes and fullscreen tweaks

  • Tweak the spacing between the media controls and caption.
  • Hide the scrollbar gutter when in fullscreen.
  • Remove the caption in the fullscreen overlay for now, as it does not look great on mobile.

fix(pages): whitespace issue on homepage and missing text for style commits

  • Fix a whitespace issue on the home page.
  • Add missing text for the style commit type and tweak some other type/scope texts.

fix(media): not loading after a page transition

feat: port Markdown plugins to Sätteri

  • Use an npm package I found in the Astro Discord server for reading time.
  • Port the last modified feature.
  • Restructure some code to allow for this.
  • Remove and change some dependencies.

feat(nav): slight navigation improvements

  • Hide the (Top) heading on non-blog markdown pages, as they have their own top heading.
  • Refactor some navigation code a bit.
  • Add some flavour text when hovering over the dragon in the dev build banner.

feat(media): visualizer expansions

  • Add a new audio meter visualizer.
  • Add automatic vertical zooming to the oscilloscope.
  • Introduce a visualizer testing/showcase page, accessible from the home page.
  • Allow analysing the left and right channels separately.
  • Clean up some related code.

fix: various styling issues with components

  • Fix incorrect layering with the slider and pop-up menu.
  • Correct margins for the pop-up menu icons and alert box title.

perf: move table of contents to separate component

Avoids loading its corresponding script and styles if the page doesn't have a table of contents.

fix: styling of banner, sidebar, footer and version table

feat: change style of navigation bars and some borders

feat(nav): move table of contents to dedicated sidebar and add toggles for them

Move table of contents to avoid making them too small when there are more sidebar items.

perf: don't import DurationFormat polyfill as ES module

This significantly improves page load times.

build: bump version to 0.4.0-alpha.6 and skip config files when checking copyright headers

feat(prefs): better advanced toggle and dependency fixes

  • Fix preferences with no dependencies erroneously getting hidden before they are loaded.
  • Handle missing preferences in dependency checks.
  • Change the advanced options toggle to a dropdown with multiple levels.
  • Add a console tool for resetting preferences (tools.resetPreferences).

style: tweak commitlint config

feat(version): several improvements to changelogs

  • Fix tags not displaying and linking properly if there are other refs.
  • Fix and split up the navigation at the bottom of individual changelog pages.
  • Add a preference for showing pre-release versions.
  • Change the version list layout a bit.
  • Adjust the type and scope explanations.
  • Support more conventional commit features, like footers (untested).

feat: add programmatically generated changelogs

Add changelogs to the website based on Git tags and commit history. Also some style clean-up.

fix(media): disable tap actions if overlays are hidden

Prevent tapping to play/pause when the video player controls are hidden, and move fullscreen code.

perf: defer loading some Preact components and switch to sass-embedded

feat(media): media player enhancements

Make various improvements to the audio visualizers, media player shortcuts and related styles.

feat: add version information & clean up npm scripts

Use git for checking the current branch, and add version information to the website.

refactor: migrate to astro v7

  • Correct spacing issues caused by the new default whitespace handling
  • Switch to the Satteri markdown processor (some plugins still need to be ported)

fix: Fix meta tags and add badge in dev builds

Fix meta tags erroneously pointing to the main website in development builds, and add a little DEV badge next to the site logo.

fix: minor changes/fixes & next blog post draft

Add an unfinished draft of part 2 of the "gaze upon the stars" blog post. Also change and fix some things that I felt were needed while writing, along with some other things.