Copying code from code blocks, without having to manually select it all first, is very handy convenience feature. But despite having published a ton of code snippets on this website, adding copy functionality wasn’t a top priority so far. A bit sad, considering that it can be done in less than an hour, using only 61 lines of vanilla JavaScript...
I saw a couple of posts about a “blog questions challenge” pop up in my feed reader this week (written by Leilukin, Hedy, or Luke, for example) and decided to participate. It’s a collection of interesting questions, and I enjoyed reading what other people had to say so far. Below you’ll find my answers. Why Did You Start Blogging in the First...
Wow, it’s been a quarter of a century since Y2K. We all know that time flies, but it still feels surreal sometimes. Saying that 2024 was a rather uneventful year would probably be too much, but at least at work, it was a lot of “business as usual”. The small company I’m with grew a little larger, we’re about 30 people now. My responsibilities...
Omnivore was shut down in late 2024 See: One of my favorite read-later apps is shutting down This article can be considered lasrgely obsolete, but the approach might apply to other services/tools. – It’s been a productive year so far - I’ve managed to add a couple of cool new things to this website, which is something I’d been planning to do for...
It’s that time of the year again: here’s my extended “frozen /uses page” for late 2024. Whenever multiple applications are listed, p marks private use, w marks software that I (have to) use at work. Changes compared to the previous year are highlighted using colored text. Mail Client: Proton Mail (p), Outlook PWA (w) Calendar: Proton Calendar...
Others wrote about their share of the “Millennial nostalgia”, and I enjoyed reading about their memories very much: My Millennial Memories Millennial Energy The following is a list of some of the things I remember from growing up in the 1990s and early 2000s in Central Europe. Lifestyle Trading cards NBA Basketball in elementary school Pokémon...
There weren’t quite as many changes in Q2 2024 as there were in Q1, but I managed to do lots of cool things nevertheless. Part of the website #evolution series. Just a short remark before we get started: this post will try to add context to changes, updates and enhancements. An uncommented chronology of changes can always be found in the...
Growing up with computers and the internet, my idea of a tool became equivalent to software at a rather early age. Actual tools, in terms of hammers, power tools or screwdrivers, certainly existed in our household and were also interesting enough for me to learn how to use them at some point. However, none of that came quite close to how it felt...
Collections and lists are a wonderful thing, and filters simply make them better. On this website, the first use case for a filterable collection was my whisky collection, and I’ve also added a filter to my /albums page in the meantime. Both lists are filterable by different criteria, but use the same code for it. So, let’s have a look at how one...
A couple of months ago, I started working on a project with the desired outcome of building a large and complex application including a 3rd party workflow engine. A wild mixture of a planned microservice and orchestration (-driven) architecture was written into the requirements documents supplied by the customer, making the whole thing sound a...
A chronological list of my favorite albums from 2000 to 2009 with reasons why I like them. Part of the #albums series. Altar of Perversion - From Dead Temples Release: 2001 An epic, monumental black metal album that’s equally fierce and atmospheric. I first got this album on...
Sometimes, all it takes to question our own choices is just a headline. Most recently, that headline was: “Netlify just sent me a $104K bill for a simple static site”. Someone posted this as a question to Reddit about 2 weeks ago (Feb. 27th, source), and I rather quickly realized that I’d used Netlify for almost every personal project, demo and...
External links are everywhere, and I’m using tons of them on this rather small website. They’re often used as sources of quoted text and for references scattered across articles, but I’m also maintaining lists of bookmarks, projects and even random things I find on the internet. All of these external links have one thing in common: you leave this...
A chronological list of my favorite albums from 1990 to 1999 with reasons why I like them. Part of the #albums series. Blasphemy - Fallen Angel of Doom.... Release: 1990 A monument of sonic destruction at the intersection of black and death metal. Also, one of the foundations...
The alpha release of Eleventy v3 became available in December '23. It took me a little while, but I finally upgraded this website to v3.0.0-alpha.10 today. This is what I had to do: Updated package.json and switched to ESM using "type": "module". The old .eleventy.js config file became eleventy.config.js and all require() statements were turned...
A chronological list of my favorite albums from 1980 to 1989 with reasons why I like them. Also, the opening post of my new #albums series. Black Sabbath - Heaven and Hell Release: 1980 Black Sabbath’s first album with Ronnie James Dio as their singer. The A-side is nothing...
This is a note based on a recent email conversation I had with Luke Harris in response to his recent article Thinking about what’s next from April 2024. I transitioned to full stack / backend development (and workflow automation) a couple of years ago, after having done mostly web design / frontend work for about 10 years prior to that. I had...
I started using Notion in 2018 when it was very new. I was very convenient and fast, which made using it a rather pleasant experience. Over time, I built small personal wiki in there, drafted articles with it and used lists of to-dos and tables to track lots of different things. At some point last year, both the web application, and the 2 mobile...
Just this morning, I had a brief online conversation that made me realize something: I’m using Fauna for two live web applications and I didn’t even think about database backups for a second. All my data has been just fine for the past few years, but today’s realization of having no backups whatsoever wasn’t something that I felt comfortable...
My website has a bookmark directory now. This is something that I wanted to do since finishing “Halt and Catch Fire” in late November '23, but I was working on my personal wiki at that time. You’re welcome to have a look at the new bookmarks page right now, but you could also stay here a little longer and read some more about it first. A brief...
2024 has been a very productive year so far. I’d planned to write more, and I feel like that’s going quite well at the moment. I’ve also managed to launch a new side project in February, and shipped a ton of updates and enhancements for this website. Some of these updates were announced in previous blog posts, others evolved into longer deep dive...
I recently started working on a new side project, BUKMARK.CLUB, which I introduced in the previous article published here on this website. The MVP launched with a couple of open feature requests, and one of them was adding a guestbook, which I already implemented in the meantime. So, this article is going to guide you through the process of...
I recently wrote about adding bookmarks to my website. While planning and doing that, a slightly larger idea came to my mind: building a directory of websites that provide a curated collection of bookmarks and/or links to other websites. As far as I know, there’s no such directory. A quick question I posted on Mastodon didn’t surface one either:...
A couple of months ago, I started working on a re-build of my wife’s website. This wasn’t the first time I did that, but it’s been the most successful attempt so far, considering that we’re almost done with it. I knew that I was going to stick with Astro, which I’d already used for a previous attempt in late 2022, but I decided to use Contentful...
This website used to have tags in the past. They were gone for about 3 years, but they’re back now! I didn’t think too much about to decision to remove them when I switched from Hugo to Eleventy back in the spring of 2021, I guess I thought they don’t really add much value to the site and I was also following a very minimalist mindset. My website...
This website supports dark mode now 🌙. Adding styles for dark mode has been on my list for a while and I’m glad I finally found enough time and motivation to take care of it. I’m only using a CSS media query (@media (prefers-color-scheme: dark) {}) at the moment, so the theme switches based on the user’s browser/OS settings. I might offer a...
As another year comes to an end, writing this post feels like something I was actually looking forward to. I recently changed jobs and went back to an SMB after almost 2 years at a large enterprise. The first 9 months of 2023 were quite a downward spiral: good people left and their replacements came with huge delays and were lacking in many...
A long time ago, I decided to use vue-quill for recept0r, my personal recipes app. Not long after that, the missing tag was noticed, which led to a feature request Feature: add tag to editor that I ended up ignoring for almost 2 years. I’m not quite sure what it was exactly that got me thinking about it again back in September, but I ended up...
I saw a couple of similar posts from people’s websites in my RSS reader recently, so here’s my extended “frozen /uses page” for late 2023. Whenever multiple applications are listed, p marks private use, w marks software that I (have to) use at work. Mail Client: Proton Mail (p), Outlook PWA (w) Calendar: Proton Calendar (p), Outlook PWA (w)...
Earlier this week, I ported my “simple landing page” template to Astro. I initially published it for Hugo in July 2020, followed by an 11ty version in March 2021. Working with Astro was quite pleasant; I’d used it before (late summer/autumn 2022), but I had to consult the documentation for some things that changed in the meantime and also for a...
I recently published a template/starter intended to showcase how I’m using Preact for SPAs in buildless environments. Making use of it for this article’s demo application should serve as a nice follow up 😎 So, let’s assume the following premise: You’ve got to show personal activity data to the end users of a mountain resort (= guests that stay...
The opening paragraph of the last article published on this site already gave it away: I’m going to be writing about Preact a little more. In fact, the purpose of this article is really “just” an announcement: I’ve published a template/starter intended to showcase how I’m using Preact for SPAs in buildless environments. It’s probably going to...
“Static” Comments…? Working for friends and family is always quite a bit of an extra challenge, as “no” generally doesn’t count. That’s probably how I ended up looking for what I’ll call “‘static’ comments” for now. Sounds weird at first, but refers to comments (= dynamically added feedback/discussion) within the context and technical limitations...
“Building something with Preact…” is probably going to sound like an unusual topic if you look at my other articles, but let me explain: I consider it a very powerful yet lightweight tool for building stateful/interactive experiences when going buildless (together with developit’s htm). I mostly use it for stuff I do at work (forms, data display,...
Having a sitemap might not be an immediate priority when working on a small side project. Even more so, if it’s an SPA with dynamic routes that display content from a database - there’s no SSR at all and no builds/deployments to hook into. Thinking about the somewhat similar scenario of SSGs and user submitted content (i.e. comments), my first...
2nd entry in this series that I’ve decided to call “About the Past Year” from now on. 2022 wasn’t an easy year: we lost a family member to ALS (about 18 months after the diagnosis) and had to cope with loss, an international move and a lot of other things that needed taking care of given this new situation. It’s been getting easier lately, but...
The feature request that got me looking into the use case mentioned in the title popped up as a “convenience feature” when re-writing my family recipes app last year. I didn’t tackle it immediately within the re-write’s initial scope (i.e. migrating the app from Vue2 to Vue3 + TypeScript), but got it done a couple of months later nevertheless....
Coincidences sometimes happen, and last night was one such occasion. I was casually checking my inbox and read Michael Thiessen’s newsletter, one of my favorites when it comes to Vue. This particular issue dealt with Vue’s “most important feature”, computed properties - a statement that I tend to agree with and also one that made me write better...
Despite living with a global pandemic (i.e. “the new normal”), the past year was a rather successful one for me. I started 2021 with a new (= my current) job as a developer in the Salesforce universe and quickly found my bearings within my team. It’s an interesting position that’s pushed me into a somewhat unexpected full stack direction, meaning...
Serverless functions are great - they provide instant superpowers to front end focused developers and they’re also quite addictive once you’ve gotten into using them. There’s also a ton of tutorials, proof of concept articles etc. that make it really easy to get started. Many of these resources, including some of my own, are sometimes missing the...
It’s been about 6 months since I built and launched WATCH3R, an open source movie journal that’s using Fauna as its database. I kept (and I am keeping it) small, so the amount of users and the overall database size is rather manageable. However, the user base is slowly growing and I’ve become interested in observing the corresponding growth of...
I used Vite to build aitrack.work about 2 months ago and it left me with a really solid experience. Since then, launching any Vue CLI dev server felt painfully slow; this feeling kept getting worse over time, leading to the idea of switching a bigger project over to Vite in order to get some comparable before/after data. Considering that I...
Why? This site is live since 2018 and there’s now been 3 major versions of it. So, I’m going to start this off with the same one word question that also started one of last year’s post: “why?” Last week I noticed another one of Hugo’s more or less monthly releases and I soon started wondering whether it’d finally be time to update this site. For...
When Vue 3 was released in September, I started brainstorming for something new and useful I could build with it - in my opinion, real life use cases are often the best approach for getting acquainted with shiny new toys. Around the same time, me and my wife accidentally re-watched a movie we’d already seen 2 or 3 years ago. Based on its title...
Nothing fancy, just a small announcement for an app I recently built - WATCH3R is a free service that provides basic information about movies and TV shows. It allows you to create a dedicated watchlist and journal to collect your thoughts after watching something. Both lists are capable of search and sorting, making sure you don’t lose track of...
Introduction I had already heard of client-serverless architectures and read a bunch of articles about the subject when I came up with the idea of creating a personal use recipes app earlier this year - I hadn’t done anything like that before though. What I had in mind at this point was a minimal web application that would serve me and my wife...
My Vue app needed user uploaded images; storing Base64 encoded images inside FaunaDB was my first idea, but that proved both slow and resource heavy (which is probably why Fauna’s docs advise against doing that…). Taking into consideration that a recipe app’s images will hardly ever change, an image CDN seemed more appropriate. I had already...
This article was written a long time ago. It applies to Vue 2 which has reached its end of life (EOL) on December 31st, 2023. This article is based on first-hand experience of getting started with Vue.js. Prerequisites You should have gone through your Vue app’s setup procedure before setting up Tailwind CSS for the project. Make sure your new...
This article is about Vue.js, but it is not going to be a Vue.js tutorial. There’s enough good ones out there and I don’t think I’ll be able to compete with them. Instead, this is going to be a summary of my personal lessons learned when picking up Vue.js and starting to build something useful with it. Now, what might be something useful? No...
Hugo + Tailwind So far, I’ve used the combination of Hugo and Tailwind CSS for more than 5 different projects. It’s an extremely versatile zero dependency toolkit that “just works” without the added bulk of unnecessary pre-made components, jQuery and many lines of (mostly) unused code. In doing so, I’ve started using local template project...
Context When adding a search function to your Hugo site, one thing that’s required is a JSON index of the respective site’s content. If your site is also making use of Page Resources, there can be issues when creating this index. This short article is meant to document a possible workaround for such cases. This is/was an issue in Hugo 0.58; I...
Why? A one word question seems like a good way to start off this article. But before we go into further details, maybe a word or two to shed some light on what’s actually happened here. If you’ve been here before (much appreciated!), you’ll notice that the site looks somehow different. You may also have noticed that it loads much faster,...
Store Locator There’s probably a lot of good tutorials on building a store locator out there, but I couldn’t find one matching my client’s requirements 100%. For context: they’re running a static site built by Hugo that uses forestry as a CMS. Not exactly rocket science, but they’re normal business users (if such a thing exists). That means that...
Tailwind CSS According to their docs, “Tailwind is a utility-first CSS framework for rapidly building custom user interfaces.” Being used to Bootstrap and/or other component based frameworks, this is quite a different approach. Using Tailwind, basically everything you know from these frameworks is possible, but the way to get there is a little...
Judging by the silence here, I must have been busy… The christmas holiday brought along Rockstar’s Red Dead Redemption 2, some well deserved relaxation and good company of family and friends. I took on a project for a friend some weeks before that though, she needed a portfolio website. The site’s done from a technical perspective, currently...
Filter Requirements I spent quite some time working on a friend’s portfolio website recently. She wanted to get rid of some sort of hosted service, moving to her own website. Showcasing her work was clearly the focus of the site, so it also needed to provide some decent filtering of the portfolio items. The site itself was supposed to be built...
When this site was put together initially, it was basically a prototype for some kind of blog/portfolio kind of thing. Now, about 6 months later, there’s been a slight redesign - the first of many I’m afraid… Anyway, this post will probably just serve me as a personal tracker of what’s changed, so here we go: Behind the Scenes Reduced Bootstrap 4...
Using CSS Variables CSS variables make working with stylesheets easier, no doubt about that. Defining a color, a breakpoint or even a font-family globally, makes changes easier and almost completely eliminates the copy/paste and the find/replace cycle when it comes to updates in your CSS. Now, having to support Internet Explorer 11 and below with...
Data in Hugo Hugo comes with the possibility of storing structured content in a data file where it can be pulled from by the template placing it on the site. I’ve seen this used for things like pricing tables for example. There’s quite a bunch of use cases for random content on a website though, from customer references on a company website to...
I’ve had a lot of websites over the years, ranging from more or less official business endeavors like a small record label to more private things like a website for my wedding a while ago. I’ve never had a website just for me though, so this is something new. Also, I’ve never been involved much with giving back to the crowd - meaning all the...