A collection of essays, notes, and tutorials from my digital garden. RSS Feed
How to Turn Any List Into Google My Maps
Learn how AI can assist in turning unstructured lists into functional Google My Maps files.
From MDX to Interactive Sandboxes with remark-sandpack
Learn how remark-sandpack transforms simple code blocks in MDX into interactive Sandpack...
Modern CSS with SvelteKit & PostCSS
Discover how to use postcss-preset-env with SvelteKit to write cutting-edge CSS today while...
What is a Digital Garden?
What even is a Digital Garden? For me it's a collection of free form, interconnected & evolving...
Replacing ls with eza
How to use eza, the modern maintained alternative for ls. It's a fork of exa with better features,...
tsdown: Excluding Files From the Build
Learn how to exclude test files and unwanted files from your tsdown build output using negative...
How I Use Home Assistant on Unraid
A collection of notes and thoughts for running Home Assistant on Unraid. Learn about installation...
My Unraid Settings
An overview of the Unraid settings I chose while setting up my first server. Learn about disk...
How to Send Notifications From Duplicati to Discord
Learn how to send notifications for your Duplicati backups to Discord through webhooks. Set up a...
Fuzzy Search for Your Git Repository
Use the power of fzf-git to fuzzy search files, branches, tags, commits, and more inside your Git...
How to Write Unit Tests for Valibot
Learn how to use Valibot's parse and safeParse functions to unit test your Valibot schemas with...
Essential Unraid Apps
Apps that I will always install when setting up a new Unraid server. From backup tools to...
My First Unraid Server
My journey from a Synology NAS to building my first Unraid server, detailing my initial hardware...
How to Use MDX Shortcodes in Astro
Make MDX components automatically available in MDX files without importing them each time. Pass...
How to Test CLI Output in Jest & Vitest
Guide on how to assert the logs and exitCode of your CLI program when using Jest & Vitest. Create...
How to Use Vale With MDX
Learn how you can configure Vale to lint your MDX files. Install Vale as an npm package and...
tsup: Excluding Files From the Build
A short explainer on how you can exclude test files and other unwanted files from your tsup build...
Receiving Build Notifications via Discord Webhooks
Learn how to receive build notifications (e.g. from Netlify) to Discord through webhooks. Most...
Only want to build out the most popular pages as static pages? No problem, you can use your analytics tool to control the usage of Deferred Static Generation in Gatsby.
Creating a Spacer Component
How to create a Spacer component in plain React, Chakra UI, and vanilla-extract to manage spacing...
5 Reasons Why You Should Hire Me
From maintaining Gatsby to mastering technical writing, here are 5 compelling reasons why you...
How to Add Plausible Analytics to Gatsby
Learn how to add Plausible Analytics to your Gatsby site. Also read how to add TypeScript types for...
Publishing a Rust CLI on npm
Learn how you can publish your CLI written in Rust on npm through napi-rs. Make your Rust tools...
Effortless Web Scraping With Cloudflare Workers
Do you need up-to-date information from a website that doesn't have an API? You can use a web...
Adding Line Numbers and Code Highlighting to MDX
Explore how to add line numbers and specific line highlighting to your existing code blocks in MDX....
Using Duplicati for Your Backups
Duplicati is a free and open-source backup software that enables you to securely and regularly...
How to Turn TypeScript Enums Into String Literal Types
Do you need to turn TypeScript enums into string literal types, e.g. for public facing types? Then...
How to Write Theme-Aware Styles With vanilla-extract
Learn how to use a utility function to author conditional tokens in vanilla-extract. You can use...
Learn how to build a Tailwind UI component from scratch by writing performant and type-safe CSS with vanilla-extract. The component will support multiple variants and themes.
Generating READMEs From Gatsby's pluginOptionsSchema
Tired of manually writing and updating READMEs for Gatsby plugins? You can automatically generate...
My Favourite Hiking Apps
An overview of my favourite hiking apps for the Alps. Learn about Bergfex for trip planning,...
Chakra UI has a powerful theming system that includes component styles. Learn how to create a custom made container component that supports light/dark mode, variants, sizes, and color schemes.
Learn how to use Svelte, TypeScript, and Rollup to create a lean & fast Figma Plugin. You'll access the Unsplash API to fetch a random image.
Testing Gatsby's Head API With Vitest & Playwright
Learn how to use Gatsby's Head API with Vitest & Playwright the right way. You'll have unit tested...
Cleaning Up Stale Branches
Showcase of the handy CLI tool called git-removed-branches. It automatically detects and removes...
Replacing ls with exa
ls is a file-listing command that ships with Unix and Linux. exa is an improved file lister with...
The Theme UI plugin for Figma allows for a workflow where Theme UI is the starting point both for design & development.
Using Package Exports to Define Multiple Entrypoints
Ever run into the error 'Module parse failed' while working on an ESM package? Learn how to use the...
Smooth Shadows for Images Using Their Dominant Color
Neumorphism and other current websites really like super smooth shadows for its elements. Learn how...
A collection of short, but useful quick tips shared by me and the community about Gatsby. From GraphQL over local development to deployment.
A guide on how to set up a multi-package repository with TypeScript support, linting with ESLint and end-to-end testing with Cypress. Great stack to build front-end packages or Gatsby themes.
Running Cypress Tests With GitHub Actions in Parallel
Explanation on how you can run multiple Cypress tests in parallel using GitHub actions. You'll use...
Generating QR Codes From Any String in Gatsby
QR codes were dead, right? But with Covid they are everywhere again. Learn how to generate QR codes...
Python: Comprehensions
Comprehensions are probably the feature I currently love most about Python coming from JavaScript....
Python: Data Types
A short showcase of Python's data types and interesting differences I discovered coming from...
Some basic, but important principles that will help you create more enjoyable projects during and after the editing.
An explanation of how to go from a design in Figma to a finished website powered by React. Using Theme UI allows you to use the same design tokens both in Figma and your front-end.
Creating Your Own Status Dashboard With Gatsby
You probably know the status dashboards that bigger companies have, right? Well, you can build your...
Adding a Draft Feature to Gatsby
Learn how to use Gatsby's schema customization feature to add default values to your GraphQL...
Adding Support for Multiple Authors in Gatsby
Ever wanted to display multiple authors to a blog post in Gatsby? Learn how to link author data...
Filter Future Posts on a Gatsby Blog
Learn how to add a 'TODAY' variable to your Gatsby GraphQL schema so that you can filter out any...
Gatsby is an incredible platform to gain an understanding and expertise in React and GraphQL. Start small and scale your expertise and understanding with Gatsby.
Language Tabs for Markdown & MDX Code Blocks
Learn how to add code language indicators to your code blocks in Markdown & MDX. This both works...
Specimens for Gatsby Powered Design Systems
Use specialized React components to build out your design system. Choose from a variety of helpers...