Skip to main content
[BurgeonLab]

Tech Enthusiast's Logbook

Writing about Hugo, web dev, open source & IndieWeb experiments

=+++=+++++++++++++=====+==================~+**+&@B*@%~#-+*~=~-*~+#-=##M&&M@8$$$@@%M$B&8%#B+&8B$M-*@*
=+++++++++++++++++++============~=======~~-~=+W$@%#W&=M:=+~=*~=#~=*~#*MW8#%&%%%8%&*@&M&W*W=MW&*~:=*#
=+++++=+++++++++=+=+============~=======-"^^^^:WB8&#W=M:~=-+==M*~-+=#W8W8W%&8W8W8#*%WMW&*W~*+*~~,+~=
========++++++++================~======~^`:~=~,^M8B*B+&--+=8+*W*+~MW&@8%$&$B@B@&BW+@8@@$W@+%MMM#-*+,
=======~~~==========~~~~~~~----~~~~~~~~^^~====~^"8%+8*&~:+~&*+W===M#8B&%@M%&B%B&$W*@8@@$W$+%M%M#=%B~
====~~~~~~=============~~~~----~~~~~~~:`-=-:~::"`*8&~+W~,+-M~#W~+=#~MM&BBMBBBB%8BWMB8@@@WB#%M8W#*&8M
=====~~~~~===========~=~~~~---~-~~~~~~""=++==:-:`:+*~:+~,+,~:=~:~:::~~~~~~=====~=~~==++=====~===~~~~
~=====~=~~===~=~~=~====~~~~-~---~~~~~~^:==~=-:~,`,===,++~+,~-=~:~:~-~++==~====~~===~~+++=+==~===~~==
~============~~~~=~+=========~~=~~~==~^`:=~~:,:^`"=+=,#M~+,--=~-~:=-=+===~====~~=~~~~===~=~~~~~~--~~
~=====~===========~====~~~~~~~~~~~~==-^`^-==~,"``,**+,%#-=,=-:,*=-8M%%&M#+M*#MW&W~-M#-::::::::::,,::
~~~~~~-~~~~~~~~~~--~~--~--~~~~~~~--~~,^``^,,^````^~~--+~:--~---~~~=~-:,,-MMMWWMMW=~*~**#~#+M=~#*-:+~
~~~-::,::----:::,,,::,:,,:-::-==+~-=~:,```""^````^:-::::,,::,,::,:::,,"":MMMMMMWW+~+-#W&+W#&*=&#~-W*
~~~::,,,::---:,,,,,:,,,,,::::-++*+*---::^``"`````^:,:,,,,,,,,,,,,::,,"^",~====++*+~+~#M8+#*W+~W#~-M*
~~-:,,",:::::,,,,,,:,",,,::,,-++*#-::++--:`^^`````:,:,,,"",,,,,,,,,,"^^""""",,,"~*=+=%8&*MM&~*&M+=%%
---::::::,:,,,,",,:~==:,,,,,,-==*#::-+=+++:^,`````::::-,"","""",,,""^``^^^^"",,,-+=*=%88#W&&+MWM+=&M
,,,::-~~-~:,,"""":::-*%,,,,,,:~+#=::=+~=*++-,`^```~~:-~:"""",",,""""^``````^"",,:=+#+$@@&B@BMB$@WW@%
,"",:,:--::""""""-~"":=:""""",:~#--:++~+*+=-,`:^``-:::~-"""",,,,,"""^``````^^",":=*#+$$$M&$@W@$@&W@@
*:=*-,,,:-:,"",:-~%-,,-,""""",,-*:::++=++*+-`^-``"-:-:~-,""",,,,,""^```````^^","-++**$$$=M$$M@@$&W$$
M*M8%8W*+*:~~=~++-=*-,-=~=~~~~~+*:--*++~+*=,`~~,`:~----:::::::::,,,",-^^^^^^"""",==~~#*+:-++:~~==*&&
+#==+W8W+,:~==-=*--:,"~+++==++=+~::~+*=-++:^"+=~,-~===~==========~-,:~::--::::-::*8*-#*+:-=~=~=:=++~
,-*+~*W#+::-~~~+~---:,=+=+====++-::+*=:-=:`^-==~~-~===~~~---::,,,,:,--^:-~-::-~-:-=::==~,:~~~~-~+**=
,^**~+=*+W~---~+~:=~~,=========*:-:*+-:-,`^~-+=~-,::,,,,,,,::,,,,::-,"",:-:::---:-*-:*W+,:~~~*+==~~~
^:",,",=+*==~~=+-:*+-"+==~~~~~=*:-:++--"`^:=-+~-~:,--:::::::::~====~:,""",,,,,::,-W~=M~+:~M#*-,++===
,^^^"^,=+~=+++++-:==:"*+++++++==::~+=,^`,+++=:~=-~:++++++++++====*=+~~~~~==~-:--~~=====-:-***~:MMMMM
",:~~~~*+~====+=-:::,"*======-*~-:++^"^:+*=*+--~:",*+***++++++++++*++===####=~~==++++==-~~~~~~:++===
MMM#****+~==~~==-::,,,#====+=,#--,~,`^~=+++++-=~--"********************+**##*+==+++++==-====~=:=+===
@@@@@B@W+W%%88M=*""""~M+++++:"*:::+~"=++***==-=:-=,+++++*******************+++++++++++=~++====:=====
@BBB%%8M=*M#**+=***#M8%%%B%-",#:-:=~-+++*=**~~-~=+-~+++++++++++++++++++++++++++****++==-~~~~~=:+++++
M##MMWWM=W%%B@M=%%%%%%%BB8=,^"*--:~~~****++*~--:~=,8B%8%8&8&&WWWWM&WWM###*#**++++++++==-=~~~-=:++===
@B@@@@BM=W88&&M#8%88%%B8%W"``^=~,,:~~*++++=--:--==-&MWWWW8%8%%B%88%%8WMWWW%BB%%%88888W=+M*+*+=:++***
@B%888%M~&%%%%%%8888%&&@$B,^^^*=::,+-==+=~==~:-~++:M%8%8&8%88%%8%%%&&WWWMW&8888&8&WW&W~*WM=+#=:*####
$@@B%8%*~W888&&&&8%&&B@@@M^^``~*-::+-==+~=~-~:~,~+=-&B%888%BBBB%B@%%8%8&WWW&&88&W&&&&M~+###**=:*****
$@B%8WM**MMWWWWW&#W8%BBB%B,`^^"#=,-=+,,,""^^^``:=++~-+&B$@BBB88M88888&&M8%WMM&8W&WM##+:~*+***=:*****
B@@B%888&WWWWWWM*W%BBB8B8WM:^^^:+:::~:`````````~*+#*"`^:*%%%888888&888MW%%##*###~~****+++****~:*****
&&&&&&WWWWW&&M*#8%&8%8BBM%B#&+,^`""^,^````````^:~~=~`````^~&B8BB%8%8%%&%8BMW#++WB8==+***++++*~,+****
&WMWMMMMMW&W**M%&8%%%B8&88W*W88,=````````````^^"```````````^,*%&8W&&WM+,:=+&WW#+MB@W-:+****+=-:~=++*
MMMMWMMW&M*M8B888BW%%&8%8W%&&%8-W:,::-^````^``````````````````"WB#*&=-:*W#*M*~-+*WW&8#:-++**+===++**
WWWWW88#**&8&&8B&8%&&88&%%%BB%B~88~~--"````=8M~,^-:^```````````^M&*%B8+=:~++*~#M*+M%%%&*:-=+++++++++
WWW88M**M%%%8%%8@%&%%BW8%W88&88:M%::-:"````*&&8&8-,,~,^`````````~B*#B%MM+-:%%,#%%*M##W&%%*,-++++++++
&%%M##W8%8&8%8BB8%B%8%8W88W&WWW:M&:^"^^````:=+*++-:,+***~,"^^"^^*%=~8&88%#,&M,=W&M##MM*+#&8+,-++++++
%WMMW%%8%%%88B%888&WMWMMMMMMMW&,W&=```````^#WMMM=~=MM##*##MMMWWWMW#MM8%M%#,="*%&&&88#*&*+#*#+-,~*++*
WW&%B%%B8B8@%8&W&W&MMM&WWMMMMWW*MMM```````^&&8%W&&&WW&&8=``^^^"M&WWW=M8M-,~*W&&%WW8%8&MWWM###M#:-+**
8%B%B%&MWWWWW####MMM*M&##M##MW&W8WM^``````^*&WM&&&88%%&*``````*%@@@&+~:,~MBB%8BBB8&8W88MMMM+M***=-++
B%8&8%WWW##**++***+*++~-,"^^^",:+WM^``````^~8%8&W%B%888^`````,&%WB8W*=&M#BB%%&%%B%8&M&8&WMW8#*MM*#==
WW&WM*#W*#####M+*M*~-"^"",:--,,"^"~^``````-:WM&MWWMW8W~`````"&W8W&MM*=#=#8B%&8W88888%M&8WW*MM##W#+MW
MMM*#M***#*#M#***+-"^"-+####WMM#~,"^``````#-#8WW&%&W%8^````^&B@&+#&%WM~~+=~-~:+##%%88&WW&&&W*&&#*#**
####++*#**M#=+:^:,^"-+M**MMW#*MMM+-,``````*==W88&8%BW-`````+8%8=:#%W*M-:,`""""""^^,+&%%W&%%8&M*&&M&M
*#M*~+****++*:^,`^"~#M#*M#M#WMW&WW+:``````M#+&%&8&WW-`````,W8&=-WM*="~+^~=WW&B&M++:"^:#W%88B%%%M*M#*
##+=****#*==#:,^",+###***W###**#W+=,`````^8&=M%W#&&&M`````W%M~~M**,^,+#~&&%8BB%%8B8M=,`:W&W&8&&MM*MW
#+***#**M#**=#-`"=MM+##*MMWMM*#M*M#,`````^=M+=8W&8WB,````-&*~+#*+^"-#8#+M8W%%&&8%%&M&&~"^=8WW&&8&W#M
##M#***+*+==*#^^:MM#MW#*#MWM#MW##*#``````":##~W&MMM-`````*+~MW*+^,#&88W*+MW&&&88&W8W&&&*,`-W&WW&&&MW
*******+**+*#=`"+W#=+#*M#*W#+##M*M~```````-~&+#&WW*````^~~-&&=+^,+88W&8#+WWB8%M&&%8#%B%%W,`-WWW#M&&&
***+*+**+###M+`"*MM**+M#*+*M*#*+M#,`````,`":==+*#&-```"=~^":~+""+&M+&88&+*M&8B8B&8WW&8&W&+"`+MM#W&&&
##***++++***=~`,##*###**M#::~~=#MM^````^M"^:~"~MW*```:=:^``,,`^-#W88&&&&#+&MW8#MM&%888W8*W*^^W88#**M
**+~~+*++*##M=`:##***#~=+~~~^^,~+=`````,W:`,,^,+WM`^~=,````--^"#B88M&&W8W#+*WW8&W&%8&8&88%8-`=8&WWWW
=**+##M##M+**=`,++#M#*+##~-~-::++~`````:*:`^`^^":=*~=*W""-::#`,88&8%8%B%BMM*&W&%%8%B%B%%W&#*^^WWMMWW
-+++=**++*++#=`,##MM*#*##~,`^,~M*~`````:+-^``~+~=,:,"~=#W%W:=`-8W&&MWMWW&W#M*MWWMWWMW&8&%&*W"`*WW88W
=+*+=*####*#**^"=*##***+#:,^,~+*+-`````,::`^"*+~~,",#WWW&%&:+^-WMWMW&WMW&WW#+:~M&%&WW&&WMMMM:`~MM&&M
=~+*###=+**##*:^-**#M#M*~,,^,WWW&*`````~W,`",,,=:,:"M&#&8WW,~`-W&&W8%&&88WM+~:-W&WMW888WMMW&-`-WMMWM
++*#*++~=+****#^:+#*#MMM*-,,-W#M&*`````-+^^":^,^*&*"=#&M*#&-~`:88&W88WMM**M#****&#WM#**#MM#M-`-MM###
+**#*##***#*=++-"~##**M*=~^+W##&W*`````~:^"^:~-=*#:"*##*#MW=-`,M%%WMMMWWMW&#&&8BWW&8%%%%8&WM:`=WMW*#
****+=~*+###*##+",=*+++**=~~~-~=#+^````"^^+~:,^":,"*88&&MWW+-,"~M&M*#WMMMMWM&WM8%&8&&#WWWMMW"`*W%&W&
#*###*#=#MM#+=+++":+=#+*##MM&&&#M~`````^`*###-"",:+MWW%WW%8&W+`-&&WWMWWW88WWW#**#*+MWW88%%%#^"M#+W&&
+=~++=+**+~#M#####,,=*#*W*####MMM"``````+8&8W&W##W###**MWW&8&M:^~W888WWMWMWW&WW8&%8WWWWW88&,`*&&WM+*
##+==*==++*+++*#*+*~^-MM#*#*WW**M=~^```"&&888&8M&8&&%8WWW&WM8&#"~~M#MW&W&&8%8&8&WM&MWM&&MW+^,8&8%%%B
*+-*MM*+**###+~=++*#~,^-*WW##**=M#-````^+MMW##MM&#**MWM#*&&&W%8#"~#&&MWMM##*M#W&&WW8%BB%%*^"M8&MMWMW
+++==****~=*#*++##*+==~,`^,:-~~:^^^```^^"~MW8&W&&M*+###MMMM*=+MW#":+*MWMWWMWW&##W&W#*=*M~^"M&8B&&B%*
~~~+#~~++****++=:-~~-::--~-,,,"""--^^^^^^",:M&W&W&WM#W&WM#W##MMMMW-^==+++*+**#+#W&&&W&#:`"##=*W&W#&W
++++*+--,-~~~~~~+====~~==*###=-~~-"^`^^^^^^^":-+MMWWM+=+++*+*##+*~*-,"=*MM#*~~~~##W#+:^^~+#&#*W&MWW&
##MM##***#**+*****#MM+*#MM#MMW#**+"^^^^^^^^^^^"-*##+#W&WW8&&W&8&&MWMW=,^,-+###M+=~:"`"=*M*#*++**#*##
+~~==+=++==~+=~=++++*#++****++*+*+,"^^^^^^^^^=MW&M*#MMMW8WW88&MWW8%%%%8#-,^^`^^^``^-~M8%&88WM*#M&WWW
#*==~++=+=+++*#*+##*++*=+*M*++#M*:,,,,,,:~=~~==++=+#&M*=#8&WWWM8&&&W*+=#MM&M=#W#~-:~#M#MWM=*MMMW88%&
==+++++++=~~=+*#M#*++=++*+*MMM*+=~,,,,,,:-=+==-*+++*=M&&&M#**M#WWM#*##&8&M*#W8888W8&MW&WW8%88*#+MMW&
ASCII art of Naty on her vintage Puch road bike

Welcome to my personal website. I’m Naty, a tech dabbler, third-culture kid, serial hobbyist, and lifelong learner.

BurgeonLab is a blog where I document my mostly geeky interests and other enlightenments. This is my passion project and a work in progress; so expect to see changes.

I am keen on data privacy, self-hosting, technical writing, specialty coffee, street photography, fountain pens, Formula 1, and more.

My other pseudonyms are @eclecticpassions and @aperture2iris.

Thank you for checking out my corner of the Internet, hope you find something interesting!

Embracing IndieWeb

Learn how and why I'm part of the small web

Ever since I learnt about content ownership, enshittification, and the IndieWeb in 2025; I’m gradually integrating small web principles and IndieWeb features into my site.

For instance, I can receive webmentions if your site supports sending them; otherwise, feel free to send me a webmention manually! Public webmention display isn’t supported yet, only I’ll be notified if you mention something from my site.

A common feature in small web communities are webrings—a collection of sites linked serially around a common theme. You can find what webrings I’m part of in the expandable list in the footer and explore other sites with the navigational links. I also collect web badges (aka 88x31 buttons) which are down there too. And while you’re at it, feel free to sign my guestbook!

In the last week of 2025, BurgeonLab gained full Micropub support through Indiekit; a self⁠-⁠hosted Node.js server! Explore content tagged with: #indieweb, #indiekit.

If you want to learn more about the IndieWeb community, here are some resources:

Noticeboard

Show notices

Currently doing the #100DaysToOffload blogging challenge (2026):

Counter: 63/100 Remaining: 182d
63%
Newest: Jul-10Start: Jan-11

March 1, 2026: I’m in the process of a big overhaul of my Hugo theme’s CSS. There may be some breakage in the meantime, apologies!

I’m collecting feedback to make the blog better in 2026. As a reader, your opinion matters to me. Could you take my 1–2 minute anonymous questionnaire? Thank you!

Notes Stream

View my latest notes. I use microblogs for sharing shorter content; like quick status updates or notes on a topic that probably won’t become a full blog article. Click on the permalink icon to view the full note.

Writers and bloggers, does this happen to you?

You sit down to write a weeknote or some journal entry, but suddenly, one of the topics becomes really ...

As an Indiekit supporter and user, I’m really appreciative of Paul for maintaining this open source project. After a short hiatus, he’s ...

June has flown by it seems, and that means Junited-2026 has come to an end. This initiative by Robert has got me reading a lot more blogs this month ...

Yesterday, my Indiekit docker failed to start on my Pi. I also couldn’t run npm audit fix despite reviewing and accepting npm approve-scripts ...

Last Thursday, David (an IndieWeb regular) couldn’t make it due to an emergency. Luckily James, another regular, caught me before I went to bed ...

View more notes »

Latest Weeknotes

Here are my latest weeknotes. They're a type of post that I publish weekly and sometimes covers less technical topics.

View more weeknotes »

Latest Blogs

Besides blog posts, you can explore these other sections: pages, weeknotes, notes (microblogs), likes and photos. Use the Explore dropdown menu at the top or direct links to common pages in the footer to discover the site.

How to Prevent Hugo From Publishing Draft Posts Accidentally

See how I added a pre-build step using a Bash script in my Hugo deployment workflow to check for the draft status of Markdown content. By using stricter linting rules than Hugo’s default draft behaviour, it can catch and prevent drafts from being accidentally published.

Offline LanguageTool: Free Open Source Grammarly Alternative

As a long-time user of LanguageTool’s offline server on macOS, I thought I’d share how I set it up. It’s a great way to get a pretty accurate grammar and spell checking / proofreading software without relying on online services. I’ll go through how to configure this open source tool, get extra optional improvements like n-gram data processing, and script shortcuts.
View more posts »

Top 10

Most popular pages in the last 30 days based on unique visits. (Privacy-focused analytics, no cookies, last updated on 2026-07-01.)

Enjoying BurgeonLab? If my content made a difference, a small contribution would mean a lot. Your support spurs me on to keep creating!
Give a tip » Help with hosting »

Enter keyword (use "quotes" to find exact term):