Repository navigation
v1.1.0
[1.1.0] - 2026-10-16
A visual release. Every page gets an animated pixel-dither background that
follows the pointer, the home page is reworked around a stack list, the pinned
GitHub repositories and the real contribution graph, the music player floats
over every page, and page titles decode on load. Two production bugs hidden
behind fallbacks are fixed on the way: GitHub activity was random data, and the
contact form most likely never emailed anything, both because their secrets
were read from a runtime config frozen empty at build time. Dependabot starts
with this release, since it only reads its config from main.
Added
- An animated pixel-dither background, interactive with the pointer
(#51). Two scrolling noise
layers, thresholded through a 4×4 Bayer matrix into a few alpha levels of the
primary orange, drawn at cell resolution and upscaled with
image-rendering: pixelated. On every page, a fixed band over the top 85% of
the viewport fades out downwards, and the pointer leaves a trail that lights
up and pushes the noise. The trail is squishy: it follows the pointer on a
spring, so it lags, overshoots and wobbles before settling, and its brush
stretches along the motion. The pattern is random on each load. The footer and
the blog banners (article header and list thumbnails, on top of their image)
carry the same field, animated but not interactive. Canvas 2D, no dependency:
the noise is generated in a Web Worker, the colour follows the theme toggle,
the animation pauses off screen and in hidden tabs, a single frozen frame is
drawn underprefers-reduced-motion, and touch input leaves no trail. The
densest level stays at 18% alpha: in dark, text that met the 4.5:1 contrast
still does over it; in light, small grey labels drop to about 4.0:1 under
the densest cells, a trade-off kept for a visible field. - A floating "Listening to" player
(#54). The music player
leaves the home page's About section for a button in the bottom-right corner
of every page, which opens it floating at the bottom, centred and as wide as the content
(Escape closes it). Mounted outside
the layouts, so the music keeps playing from the home page to the blog; the
playlist is only fetched on first open. - Decoding page titles
(#53). On load, the main title of
every page (home, blog, articles) resolves left to right out of random glyphs,
in up to 2.4 s, without shifting the layout; the server sends the plain
text, screen readers get the real name, andprefers-reduced-motionkeeps
it still. - Weekly dependency updates with Dependabot
(#56). Bun packages, GitHub
Actions and theoven/bunbase image, as PRs againstdev, with minor and
patch bumps grouped per ecosystem. The PR checks used to fail such PRs by
construction (branch name, no linked issue); they now let PRs opened by
Dependabot through, the title check still applies. Dependabot reads its
config frommain, so it starts once this version is released.
Changed
-
The home page, reworked
(#53). The skills tabs
give way to a stack list (a column of categories, then each one's tools with
their icon, linking to its official site). The contact links (GitHub,
Twitter, LinkedIn) move into the hero as icon-only ghost buttons, next to
"Book a call", in place of the "View on GitHub" and "Read the blog" buttons; the Contact section goes.
The "Open to opportunities" badge turns green, the avatar loses its stripes,
border and hover zoom, and the About text loses its em dashes. Featured projects are
now the repositories pinned on GitHub, as compact cards (logo or language
icon, stars, forks, a language bar along the bottom edge). GitHub activity
opens on a "Recent" tab, the rolling last 12 months as on the GitHub
profile, and its month labels no longer overlap. Loading skeletons now have
the shape of what they stand for, one per section. -
A cleaner page frame
(#51). Outside the 80rem
column, a muted 24px grid and a border along the column, continuing the
header's, fade out downwards; the column itself carries no grid. Drawn once
by the layout instead of side zones repeated in every page (diagonal stripes
on the home page, a full-height grid on the blog). The full-height borders
around the column, the separators between sections and the corner triangles
are gone; corners stay sharp. The dark background goes from
#1a1a1ato#121212, and the footer gets an opaque background, with the
blur over its content column.
Fixed
- GitHub activity showed made-up numbers in production
(#53). The token was read
from a runtime config frozen at build time, empty in the Docker image, so the
API fell back to random data on every request. The server now reads
GITHUB_TOKENat request time, and returns an error instead of random data
when it cannot reach GitHub. - Contact form messages were most likely never emailed
(#53). Same cause with the
Resend key: without it, the form only logged the message and reported
success. The key is now read at request time too.