Homelab
GithubI have a handful of Raspberry Pi's set up as a homelab with Jellyfin, Pihole and a web interface for file storage.
Some services like Immich have since been moved to a Hetzner VPS.
I have a handful of Raspberry Pi's set up as a homelab with Jellyfin, Pihole and a web interface for file storage.
Some services like Immich have since been moved to a Hetzner VPS.
While I've previously been able to rely on the free tiers of different SaaS Platforms, I wanted to own the infrastructure for Pokécompanion and deal with all of its associated challenges along the way.
Moving all of my existing setup into Terraform (later ditched for OpenTofu) was a fair bit of effort and I didn't want to over-engineer a proper secret storing mechanism so it's a shame I can't share my setup. However, I wanted to create a module for a Pocketbase instance on EC2 which I did rewrite and publish in the open.
This has been by far the best investment of my time. I later moved my homelab Ansible playbooks into this repo as well after my Raspberry Pi SD Cards got corrupted, saving me hours in later reconstructing my setup.
The last time I updated this section, this has now grown to managing 12 Projects via a private Github repo.
Deterministic, "random" image generator using jdenticon. Will use the route i.e. avatar.helbling.uk/test123
as the seed.
Originally created as a Microservice to support Pokécompanion. Deployed to a single Cloudflare worker.
This site, built with NextJS, MDX and Tailwind deployed to Cloudflare.
Quick POC using ffmpeg WASM to compare its performance against my "toMP4" macOS quick action.
Should not seriously be used as its performance is terrible, but it runs entirely client-side.
Built with SvelteKit and deployed to Cloudflare
My passion project, which is now on its third iteration using Svelte. While plenty of front-ends to the world of Pokémon already exist, none of them solve my needs quite right. On mobile, the site needs to feel light-weight and easily digestable. Additional features of the site should seek to be non-intrusive.
At its core, it is just a PokeAPI frontend. But a number of microservices have sprawled from it. Lots of sites also let their data become out of date which is incredibly infuriating - and one day that will be me, so an auto-update functionality was also quite important.
Product and project aside, it's also been a massive learning opportunity to apply new tech to a real product, such as:
I like to listen to TTS reddit videos before going to bed.
My subscriptions tab gets flooded in the evenings, so Youtube does not have a nice way to just surface these videos to me. Despite "reddit" being a daily search for me, Youtube will try recommend other content to me, causing frustration.
To avoid this daily hide-and-seek before going to sleep, I've put this page together to just show the latest videos uploaded by a handful of channels and deeplink into the Youtube app.
Search API calls to youtube are quite expensive, so I cache the API responses quite aggressively.
Built with Svelte, deployed to Cloudflare.
Inspired by LeafItGreen on etsy I wanted to practice making my own version and print stickers on a Cricut.
The original and .svg files are available for download here.
socialpreview.helbling.uk
GithubTool to check
<meta>
social media preview tags on different websites to avoid manually inspecting the<head>
.Created as a debugging tool for Pokécompanion.
Simple Cloudflare worker.