From 5ef473ceaa84772c4848e4d0b0795e54024fba1c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Norman=20K=C3=B6hring?=
Date: Mon, 27 Jan 2025 20:05:25 +0100
Subject: [PATCH] add ideas, contact, about pages, update links
---
build.zig | 1 +
content/about.smd | 37 ++++++
content/bookmarks.json | 2 +-
content/bookmarks.smd | 54 ++++++++
content/contact.smd | 22 ++++
content/ideas.smd | 26 ++++
content/index.smd | 4 +-
content/stack.smd | 4 +
layouts/homepage.shtml | 6 +-
layouts/templates/base.shtml | 1 +
static/pixelfed.svg | 3 +
zig-out/about/index.html | 116 ++++++++++++++++++
.../index.html | 1 +
.../blog/2017-04-09-the-magic-0xc2/index.html | 1 +
.../index.html | 1 +
.../index.html | 1 +
.../index.html | 1 +
.../blog/2019-05-03-freddy-vs-json/index.html | 1 +
.../index.html | 1 +
zig-out/blog/index.html | 1 +
zig-out/bookmarks/index.html | 3 +-
zig-out/contact/index.html | 116 ++++++++++++++++++
zig-out/cv/index.html | 1 +
zig-out/ideas/index.html | 116 ++++++++++++++++++
zig-out/index.html | 15 +--
zig-out/now/index.html | 1 +
zig-out/pixelfed.svg | 3 +
zig-out/projects/index.html | 1 +
zig-out/setup/index.html | 1 +
zig-out/stack/index.html | 3 +-
zig-out/til/2021-08-31/index.html | 1 +
zig-out/til/2021-09-03/index.html | 1 +
zig-out/til/2021-09-04/index.html | 1 +
zig-out/til/2021-09-05/index.html | 1 +
zig-out/til/2022-02-22/index.html | 1 +
zig-out/til/2022-03-22/index.html | 1 +
zig-out/til/2022-03-28/index.html | 1 +
zig-out/til/2022-04-25/index.html | 1 +
zig-out/til/2022-06-15/index.html | 1 +
zig-out/til/2024-05-11/index.html | 1 +
zig-out/til/2024-05-12/index.html | 1 +
zig-out/til/2024-05-13/index.html | 1 +
zig-out/til/2024-09-06/index.html | 1 +
zig-out/til/index.html | 1 +
zig-out/webring.gif | Bin 1515 -> 0 bytes
45 files changed, 543 insertions(+), 15 deletions(-)
create mode 100644 content/about.smd
create mode 100644 content/contact.smd
create mode 100644 content/ideas.smd
create mode 100644 static/pixelfed.svg
create mode 100644 zig-out/about/index.html
create mode 100644 zig-out/contact/index.html
create mode 100644 zig-out/ideas/index.html
create mode 100644 zig-out/pixelfed.svg
delete mode 100644 zig-out/webring.gif
diff --git a/build.zig b/build.zig
index 0d856c6..d772af3 100644
--- a/build.zig
+++ b/build.zig
@@ -23,6 +23,7 @@ pub fn build(b: *std.Build) !void {
"reddit.svg",
"threads.svg",
"twitter.svg",
+ "pixelfed.svg",
},
.debug = false,
});
diff --git a/content/about.smd b/content/about.smd
new file mode 100644
index 0000000..0d33c7e
--- /dev/null
+++ b/content/about.smd
@@ -0,0 +1,37 @@
+---
+{
+.title = "About",
+.date = @date("2025-01-27T00:00:00"),
+.author = "koehr",
+.draft = false,
+.layout = "page.shtml",
+.description = "Who am I? What did I do?",
+.tags = [],
+}
+---
+I am a programmer, open-source enthusiast and hacker based in Berlin, Germany.
+
+I call myself a code artist, because programming can and should be seen as a creative process; therefore code is art. I love to craft pieces of art with code, that are beautiful and elegant in their simplicity, readability and architecture.
+
+Looking for expert advice and development services for a short- to mid-term project? I offer guidance on software architecture decisions, coding solutions and performance optimizations tailored to your needs. Let's work together to solve your challenges. [Get in touch](/contact)!
+
+# experience
+
+> Thirteen years of professional experience in a couple of tweets... er, toots?
+
+Pretty early in my life I realized that I work best on my own terms. That does not mean that I prefer to work alone. Working with clients, team mates, designers and managers is a crucial part of any development process.
+
+Some time in the year 2009 I decided to not only live up to my way of working but also share my experience even more. I decided to become a freelancing programmer and consultant. Since then many different places benefited from my work. Start-Ups in their first months as well as well known companies like HERE and Deutsche Telekom Labs.
+
+Together with entrepreneurs, UI/UX experts and engineers of many fields I created novel and beautiful applications that still influence the live of thousands of people.
+
+Please see my CV for a more detailed list.
+
+# coaching
+
+> Whenever possible, I try to help others to learn
+
+I’m the organizer of Vuejs // Berlin, a monthly meetup group around Vue and web technologies in general.
+
+Many people want to learn and grow. Whenever I can I try to help those people by sharing my experience and knowledge. I already voluntarily coached at Code Curious, Frauenloop and Jugend Hackt. I also helped children with their first steps into the world of programming at the Berlin CoderDojo.
+
diff --git a/content/bookmarks.json b/content/bookmarks.json
index dbba7ff..6853f36 100644
--- a/content/bookmarks.json
+++ b/content/bookmarks.json
@@ -1 +1 @@
-{"count":10,"next":null,"previous":null,"results":[{"id":213,"url":"https://www.scientificamerican.com/article/do-insects-feel-joy-and-pain/","title":"Do Insects Feel Joy and Pain?","description":"Insects have surprisingly rich inner lives—a revelation that has wide-ranging ethical implications","notes":"Insects appear to experience both pleasure and pain. In other words, it now looks like at least some species of insects—and maybe all of them—are sentient.","website_title":"","website_description":"","web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["science","ethics","insects"],"date_added":"2024-07-21T11:16:15.701685Z","date_modified":"2024-07-21T11:19:25.778691Z"},{"id":211,"url":"https://www.brightball.com/articles/story-points-are-pointless-measure-queues","title":"","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["agile","management","scrum"],"date_added":"2024-07-17T08:02:07.010251Z","date_modified":"2024-07-17T08:02:07.010259Z"},{"id":210,"url":"https://ktema.org/articles/the-overengineered-resume/","title":"","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":true,"shared":true,"tag_names":["dev","goodexample","cv","resume"],"date_added":"2024-07-15T12:38:46.453529Z","date_modified":"2024-07-15T12:38:46.453537Z"},{"id":209,"url":"https://cohere.com/blog/llm-parameters-best-outputs-language-ai","title":"LLM Parameters Demystified: Getting The Best Outputs from Language AI","description":"When using Language AI to generate content, there are many options to control the outputs. Let's take a look at them in this post.","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["LLM"],"date_added":"2024-06-16T11:12:40Z","date_modified":"2024-06-16T11:12:40Z"},{"id":204,"url":"https://itch.io/queue/c/1304214/scifi-trpg-tools?game_id=1415404","title":"Vintage Star System generator","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["generator","TTRPG","SciFi","mothership","StarSystem","vintage"],"date_added":"2023-06-21T07:38:12Z","date_modified":"2023-06-21T07:38:12Z"},{"id":195,"url":"https://math.stackexchange.com/questions/49034/is-infinity-an-odd-or-even-number","title":"parity - Is infinity an odd or even number? - Mathematics Stack Exchange","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["math","infinity"],"date_added":"2023-05-02T14:54:57Z","date_modified":"2023-05-02T14:54:57Z"},{"id":192,"url":"https://www.piskelapp.com/","title":"Piskel - Free online sprite editor","description":"Piskel, free online sprite editor. A simple web-based tool for Spriting and Pixel art. Create pixel art, game sprites and animated GIFs. Free and open-source.","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["graphics","editor","pixelart"],"date_added":"2023-04-20T15:26:52Z","date_modified":"2023-04-20T15:26:52Z"},{"id":191,"url":"https://github.com/MichaelMure/git-bug","title":"GitHub - MichaelMure/git-bug: Distributed, offline-first bug tracker embedded in git, with bridges","description":"Distributed, offline-first bug tracker embedded in git, with bridges - GitHub - MichaelMure/git-bug: Distributed, offline-first bug tracker embedded in git, with bridges","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["dev","git"],"date_added":"2023-04-20T15:00:57Z","date_modified":"2023-04-20T15:00:57Z"},{"id":182,"url":"https://conversiontools.io/","title":"Conversion Tools - Online File Converter for JSON, XML, Excel, PDF, and other formats","description":"Convert documents, PDF, images, and other files online between different formats. Secured service. User account. Conversion options. REST API and libraries.","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["webapp","file","free","conversion"],"date_added":"2022-05-12T10:02:00Z","date_modified":"2022-05-12T10:02:00Z"},{"id":180,"url":"https://rarebooksleuth.com/collections/science-fiction","title":"Science Fiction & Fantasy\n– The Rare Book Sleuth","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["books","SciFi","antique"],"date_added":"2022-04-14T22:12:43Z","date_modified":"2022-04-14T22:12:43Z"}]}
\ No newline at end of file
+{"count":28,"next":null,"previous":null,"results":[{"id":243,"url":"https://aboutideasnow.com/?q=kagi","title":"About Ideas Now | Search 1000s of personal sites","description":"Find people to collaborate with by searching through the /about, /ideas and /now pages of 1000s of personal sites","notes":"","website_title":"About Ideas Now | Search 1000s of personal sites","website_description":"Find people to collaborate with by searching through the /about, /ideas and /now pages of 1000s of personal sites","web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["personal","web","search","smallweb"],"date_added":"2025-01-27T17:51:46.429097Z","date_modified":"2025-01-27T17:51:46.429106Z"},{"id":242,"url":"https://huggingface.co/spaces/webml-community/kokoro-web","title":"Kokoro Text-to-Speech - a Hugging Face Space by webml-community","description":"High-quality speech synthesis powered by Kokoro TTS","notes":"","website_title":"Kokoro Text-to-Speech - a Hugging Face Space by webml-community","website_description":"High-quality speech synthesis powered by Kokoro TTS","web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["tts","LLM","Kokoro"],"date_added":"2025-01-22T13:22:08.667876Z","date_modified":"2025-01-22T13:22:08.667885Z"},{"id":239,"url":"https://help.kagi.com/kagi/ai/llm-benchmark.html","title":"Kagi LLM Benchmarking Project | Kagi's Docs","description":"","notes":"","website_title":"Kagi LLM Benchmarking Project | Kagi's Docs","website_description":"Kagi Search Help","web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["benchmark","ai","LLM"],"date_added":"2024-12-01T15:32:38.485680Z","date_modified":"2024-12-01T15:32:38.485684Z"},{"id":236,"url":"https://www.voidzero.dev/","title":"VoidZero | Next Generation Tooling for the Web","description":"We are building the next generation of JavaScript tooling","notes":"","website_title":"VoidZero | Next Generation Tooling for the Web","website_description":"We are building the next generation of JavaScript tooling","web_archive_snapshot_url":"","is_archived":false,"unread":true,"shared":true,"tag_names":["webdev","javascript","typescript"],"date_added":"2024-11-21T10:00:12.243569Z","date_modified":"2024-11-21T10:00:12.243578Z"},{"id":235,"url":"https://electrobun.dev/","title":"Electrobun","description":"Aiming for a complete solution-in-a-box for cross-platform desktop apps in typescript","notes":"","website_title":"Hello from Electrobun | Electrobun","website_description":"Description will go into a meta tag in ","web_archive_snapshot_url":"","is_archived":false,"unread":true,"shared":true,"tag_names":["webdev","javascript","typescript"],"date_added":"2024-11-21T09:58:13.641560Z","date_modified":"2024-11-21T09:58:13.641565Z"},{"id":234,"url":"https://thematrix1999.github.io/","title":"The Matrix","description":"Infinite-Horizon World generation with Real-Time interaction, paper and playable demo","notes":"","website_title":"The Matrix","website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":true,"shared":true,"tag_names":["game","generator","ai","LLM","gamedev"],"date_added":"2024-11-21T09:56:28.544543Z","date_modified":"2024-11-21T09:56:43.371573Z"},{"id":233,"url":"https://darkvisitors.com/","title":"Dark Visitors - Track and Control Artificial Agents Crawling Your Website","description":"Analyze, protect, and optimize your content for the hidden ecosystem of AI assistants, scrapers, and other bots swarming across the internet","notes":"","website_title":"Dark Visitors - Track and Control Artificial Agents Crawling Your Website","website_description":"Analyze, protect, and optimize your content for the hidden ecosystem of AI assistants, scrapers, and other bots swarming across the internet","web_archive_snapshot_url":"","is_archived":false,"unread":true,"shared":true,"tag_names":["web","list","ai","LLM","robotstxt","trackers"],"date_added":"2024-10-27T19:56:14.879842Z","date_modified":"2024-10-27T19:56:14.879851Z"},{"id":232,"url":"https://bunk.lol/","title":"bunk.lol","description":"Collection of privacy-focused services","notes":"","website_title":"bunk.lol","website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["alternative","list","privacy"],"date_added":"2024-10-27T18:52:53.186442Z","date_modified":"2024-10-27T18:52:53.186444Z"},{"id":231,"url":"https://gist.github.com/Avaq/1f0636ec5c8d6aed2e45","title":"Common combinators in JavaScript · GitHub","description":"Common combinators in JavaScript. GitHub Gist: instantly share code, notes, and snippets.","notes":"","website_title":"Common combinators in JavaScript · GitHub","website_description":"Common combinators in JavaScript. GitHub Gist: instantly share code, notes, and snippets.","web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["webdev","javascript","functional"],"date_added":"2024-10-20T14:03:43.160993Z","date_modified":"2024-10-20T14:03:43.161004Z"},{"id":230,"url":"https://merri.cx/qrazybox/","title":"","description":"","notes":"","website_title":"QRazyBox - QR Code Analysis and Recovery Toolkit","website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["manipulation","qrcode","toolbox"],"date_added":"2024-10-01T09:57:13.878400Z","date_modified":"2024-10-01T09:57:13.878404Z"},{"id":229,"url":"https://sound-effects.bbcrewind.co.uk/","title":"","description":"","notes":"","website_title":"BBC Rewind - Sound Effects","website_description":"BBC Sound Effects","web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["effect","sound","TTRPG","gamedev"],"date_added":"2024-09-25T13:29:52.469485Z","date_modified":"2024-09-25T13:29:52.469493Z"},{"id":228,"url":"https://wedistribute.org/","title":"","description":"","notes":"","website_title":"Home - We Distribute","website_description":"We Distribute is a non-profit news organization dedicated to covering the development and evolution of the Social Web, and the people who take part in it.","web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["activitypub","decentralized","web","distributed"],"date_added":"2024-09-24T22:12:35.887299Z","date_modified":"2024-09-24T22:12:35.887301Z"},{"id":227,"url":"https://morizbuesing.com/blog/greppability-code-metric/","title":"","description":"","notes":"","website_title":"Greppability is an underrated code metric","website_description":"Keeping your codebase searchable will make your maintenance life easier in the long run","web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["dev","code"],"date_added":"2024-09-24T12:33:38.057443Z","date_modified":"2024-09-24T12:33:38.057451Z"},{"id":226,"url":"https://www.transparenttextures.com/","title":"","description":"","notes":"","website_title":"Transparent Textures","website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["webdev","image","graphics"],"date_added":"2024-09-11T22:38:14.986152Z","date_modified":"2024-09-11T22:38:14.986158Z"},{"id":219,"url":"https://unraid.net/","title":"","description":"","notes":"","website_title":"Unraid | Unleash Your Hardware","website_description":"Unraid is an operating system that brings enterprise-class features for personal and small business applications. Configure your computer systems to maximize performance and capacity using any combination of OS, storage devices, and hardware.","web_archive_snapshot_url":"","is_archived":false,"unread":true,"shared":true,"tag_names":["selfhosting","hosting"],"date_added":"2024-08-11T21:01:27.304196Z","date_modified":"2024-08-11T21:01:27.304201Z"},{"id":216,"url":"http://aleclownes.com/2017/02/01/crt-display.html","title":"Using CSS to create a CRT","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["webdev","CSS","crt"],"date_added":"2024-07-22T19:17:40.033600Z","date_modified":"2024-07-22T19:17:40.033611Z"},{"id":215,"url":"https://github.com/robertkleffner/mariohtml5/blob/master/code/character.js","title":"character.js on github:robertkleffner/mariohtml5","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["dev","game","opensource","gamedev"],"date_added":"2024-07-22T19:16:35.416381Z","date_modified":"2024-07-22T19:16:35.416390Z"},{"id":214,"url":"https://www.reddit.com/r/gamedev/comments/qsxmb/the_best_jump_algorithm_for_2d_scrolling_games/","title":"r/gamedev: The Best Jump Algorithm For 2D Scrolling Games?","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["dev","gamedev","reddit"],"date_added":"2024-07-22T19:15:05.098974Z","date_modified":"2024-07-22T19:15:05.098982Z"},{"id":213,"url":"https://www.scientificamerican.com/article/do-insects-feel-joy-and-pain/","title":"Do Insects Feel Joy and Pain?","description":"Insects have surprisingly rich inner lives—a revelation that has wide-ranging ethical implications","notes":"Insects appear to experience both pleasure and pain. In other words, it now looks like at least some species of insects—and maybe all of them—are sentient.","website_title":"","website_description":"","web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["science","ethics","insects"],"date_added":"2024-07-21T11:16:15.701685Z","date_modified":"2024-07-21T11:19:25.778691Z"},{"id":211,"url":"https://www.brightball.com/articles/story-points-are-pointless-measure-queues","title":"","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["agile","management","scrum"],"date_added":"2024-07-17T08:02:07.010251Z","date_modified":"2024-07-17T08:02:07.010259Z"},{"id":210,"url":"https://ktema.org/articles/the-overengineered-resume/","title":"","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":true,"shared":true,"tag_names":["dev","goodexample","cv","resume"],"date_added":"2024-07-15T12:38:46.453529Z","date_modified":"2024-07-15T12:38:46.453537Z"},{"id":209,"url":"https://cohere.com/blog/llm-parameters-best-outputs-language-ai","title":"LLM Parameters Demystified: Getting The Best Outputs from Language AI","description":"When using Language AI to generate content, there are many options to control the outputs. Let's take a look at them in this post.","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["LLM"],"date_added":"2024-06-16T11:12:40Z","date_modified":"2024-06-16T11:12:40Z"},{"id":204,"url":"https://itch.io/queue/c/1304214/scifi-trpg-tools?game_id=1415404","title":"Vintage Star System generator","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["generator","TTRPG","SciFi","mothership","StarSystem","vintage"],"date_added":"2023-06-21T07:38:12Z","date_modified":"2023-06-21T07:38:12Z"},{"id":195,"url":"https://math.stackexchange.com/questions/49034/is-infinity-an-odd-or-even-number","title":"parity - Is infinity an odd or even number? - Mathematics Stack Exchange","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["math","infinity"],"date_added":"2023-05-02T14:54:57Z","date_modified":"2023-05-02T14:54:57Z"},{"id":192,"url":"https://www.piskelapp.com/","title":"Piskel - Free online sprite editor","description":"Piskel, free online sprite editor. A simple web-based tool for Spriting and Pixel art. Create pixel art, game sprites and animated GIFs. Free and open-source.","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["graphics","editor","pixelart"],"date_added":"2023-04-20T15:26:52Z","date_modified":"2023-04-20T15:26:52Z"},{"id":191,"url":"https://github.com/MichaelMure/git-bug","title":"GitHub - MichaelMure/git-bug: Distributed, offline-first bug tracker embedded in git, with bridges","description":"Distributed, offline-first bug tracker embedded in git, with bridges - GitHub - MichaelMure/git-bug: Distributed, offline-first bug tracker embedded in git, with bridges","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["dev","git"],"date_added":"2023-04-20T15:00:57Z","date_modified":"2023-04-20T15:00:57Z"},{"id":182,"url":"https://conversiontools.io/","title":"Conversion Tools - Online File Converter for JSON, XML, Excel, PDF, and other formats","description":"Convert documents, PDF, images, and other files online between different formats. Secured service. User account. Conversion options. REST API and libraries.","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["webapp","file","free","conversion"],"date_added":"2022-05-12T10:02:00Z","date_modified":"2022-05-12T10:02:00Z"},{"id":180,"url":"https://rarebooksleuth.com/collections/science-fiction","title":"Science Fiction & Fantasy\n– The Rare Book Sleuth","description":"","notes":"","website_title":null,"website_description":null,"web_archive_snapshot_url":"","is_archived":false,"unread":false,"shared":true,"tag_names":["books","SciFi","antique"],"date_added":"2022-04-14T22:12:43Z","date_modified":"2022-04-14T22:12:43Z"}]}
diff --git a/content/bookmarks.smd b/content/bookmarks.smd
index 99f2627..1624751 100644
--- a/content/bookmarks.smd
+++ b/content/bookmarks.smd
@@ -16,6 +16,60 @@ This page is intended to be generated as part of the build step in the future, b
---
+* [About Ideas Now | Search 1000s of personal sites](https://aboutideasnow.com/?q=kagi) - Find people to collaborate with by searching through the /about, /ideas and /now pages of 1000s of personal sites
+ [#personal](https://url.koehr.ing/bookmarks/shared?q=%23personal) [#web](https://url.koehr.ing/bookmarks/shared?q=%23web) [#search](https://url.koehr.ing/bookmarks/shared?q=%23search) [#smallweb](https://url.koehr.ing/bookmarks/shared?q=%23smallweb)
+
+* [Kokoro Text-to-Speech - a Hugging Face Space by webml-community](https://huggingface.co/spaces/webml-community/kokoro-web) - High-quality speech synthesis powered by Kokoro TTS
+ [#tts](https://url.koehr.ing/bookmarks/shared?q=%23tts) [#LLM](https://url.koehr.ing/bookmarks/shared?q=%23LLM) [#Kokoro](https://url.koehr.ing/bookmarks/shared?q=%23Kokoro)
+
+* [Kagi LLM Benchmarking Project | Kagi's Docs](https://help.kagi.com/kagi/ai/llm-benchmark.html)
+ [#benchmark](https://url.koehr.ing/bookmarks/shared?q=%23benchmark) [#ai](https://url.koehr.ing/bookmarks/shared?q=%23ai) [#LLM](https://url.koehr.ing/bookmarks/shared?q=%23LLM)
+
+* [VoidZero | Next Generation Tooling for the Web](https://www.voidzero.dev/) - We are building the next generation of JavaScript tooling
+ [#webdev](https://url.koehr.ing/bookmarks/shared?q=%23webdev) [#javascript](https://url.koehr.ing/bookmarks/shared?q=%23javascript) [#typescript](https://url.koehr.ing/bookmarks/shared?q=%23typescript)
+
+* [Electrobun](https://electrobun.dev/) - Aiming for a complete solution-in-a-box for cross-platform desktop apps in typescript
+ [#webdev](https://url.koehr.ing/bookmarks/shared?q=%23webdev) [#javascript](https://url.koehr.ing/bookmarks/shared?q=%23javascript) [#typescript](https://url.koehr.ing/bookmarks/shared?q=%23typescript)
+
+* [The Matrix](https://thematrix1999.github.io/) - Infinite-Horizon World generation with Real-Time interaction, paper and playable demo
+ [#game](https://url.koehr.ing/bookmarks/shared?q=%23game) [#generator](https://url.koehr.ing/bookmarks/shared?q=%23generator) [#ai](https://url.koehr.ing/bookmarks/shared?q=%23ai) [#LLM](https://url.koehr.ing/bookmarks/shared?q=%23LLM) [#gamedev](https://url.koehr.ing/bookmarks/shared?q=%23gamedev)
+
+* [Dark Visitors - Track and Control Artificial Agents Crawling Your Website](https://darkvisitors.com/) - Analyze, protect, and optimize your content for the hidden ecosystem of AI assistants, scrapers, and other bots swarming across the internet
+ [#web](https://url.koehr.ing/bookmarks/shared?q=%23web) [#list](https://url.koehr.ing/bookmarks/shared?q=%23list) [#ai](https://url.koehr.ing/bookmarks/shared?q=%23ai) [#LLM](https://url.koehr.ing/bookmarks/shared?q=%23LLM) [#robotstxt](https://url.koehr.ing/bookmarks/shared?q=%23robotstxt) [#trackers](https://url.koehr.ing/bookmarks/shared?q=%23trackers)
+
+* [bunk.lol](https://bunk.lol/) - Collection of privacy-focused services
+ [#alternative](https://url.koehr.ing/bookmarks/shared?q=%23alternative) [#list](https://url.koehr.ing/bookmarks/shared?q=%23list) [#privacy](https://url.koehr.ing/bookmarks/shared?q=%23privacy)
+
+* [Common combinators in JavaScript · GitHub](https://gist.github.com/Avaq/1f0636ec5c8d6aed2e45) - Common combinators in JavaScript. GitHub Gist: instantly share code, notes, and snippets.
+ [#webdev](https://url.koehr.ing/bookmarks/shared?q=%23webdev) [#javascript](https://url.koehr.ing/bookmarks/shared?q=%23javascript) [#functional](https://url.koehr.ing/bookmarks/shared?q=%23functional)
+
+* [https://merri.cx/qrazybox/](https://merri.cx/qrazybox/)
+ [#manipulation](https://url.koehr.ing/bookmarks/shared?q=%23manipulation) [#qrcode](https://url.koehr.ing/bookmarks/shared?q=%23qrcode) [#toolbox](https://url.koehr.ing/bookmarks/shared?q=%23toolbox)
+
+* [https://sound-effects.bbcrewind.co.uk/](https://sound-effects.bbcrewind.co.uk/)
+ [#effect](https://url.koehr.ing/bookmarks/shared?q=%23effect) [#sound](https://url.koehr.ing/bookmarks/shared?q=%23sound) [#TTRPG](https://url.koehr.ing/bookmarks/shared?q=%23TTRPG) [#gamedev](https://url.koehr.ing/bookmarks/shared?q=%23gamedev)
+
+* [https://wedistribute.org/](https://wedistribute.org/)
+ [#activitypub](https://url.koehr.ing/bookmarks/shared?q=%23activitypub) [#decentralized](https://url.koehr.ing/bookmarks/shared?q=%23decentralized) [#web](https://url.koehr.ing/bookmarks/shared?q=%23web) [#distributed](https://url.koehr.ing/bookmarks/shared?q=%23distributed)
+
+* [https://morizbuesing.com/blog/greppability-code-metric/](https://morizbuesing.com/blog/greppability-code-metric/)
+ [#dev](https://url.koehr.ing/bookmarks/shared?q=%23dev) [#code](https://url.koehr.ing/bookmarks/shared?q=%23code)
+
+* [https://www.transparenttextures.com/](https://www.transparenttextures.com/)
+ [#webdev](https://url.koehr.ing/bookmarks/shared?q=%23webdev) [#image](https://url.koehr.ing/bookmarks/shared?q=%23image) [#graphics](https://url.koehr.ing/bookmarks/shared?q=%23graphics)
+
+* [https://unraid.net/](https://unraid.net/)
+ [#selfhosting](https://url.koehr.ing/bookmarks/shared?q=%23selfhosting) [#hosting](https://url.koehr.ing/bookmarks/shared?q=%23hosting)
+
+* [Using CSS to create a CRT](http://aleclownes.com/2017/02/01/crt-display.html)
+ [#webdev](https://url.koehr.ing/bookmarks/shared?q=%23webdev) [#CSS](https://url.koehr.ing/bookmarks/shared?q=%23CSS) [#crt](https://url.koehr.ing/bookmarks/shared?q=%23crt)
+
+* [character.js on github:robertkleffner/mariohtml5](https://github.com/robertkleffner/mariohtml5/blob/master/code/character.js)
+ [#dev](https://url.koehr.ing/bookmarks/shared?q=%23dev) [#game](https://url.koehr.ing/bookmarks/shared?q=%23game) [#opensource](https://url.koehr.ing/bookmarks/shared?q=%23opensource) [#gamedev](https://url.koehr.ing/bookmarks/shared?q=%23gamedev)
+
+* [r/gamedev: The Best Jump Algorithm For 2D Scrolling Games?](https://www.reddit.com/r/gamedev/comments/qsxmb/the_best_jump_algorithm_for_2d_scrolling_games/)
+ [#dev](https://url.koehr.ing/bookmarks/shared?q=%23dev) [#gamedev](https://url.koehr.ing/bookmarks/shared?q=%23gamedev) [#reddit](https://url.koehr.ing/bookmarks/shared?q=%23reddit)
+
* [Do Insects Feel Joy and Pain?](https://www.scientificamerican.com/article/do-insects-feel-joy-and-pain/) - Insects have surprisingly rich inner lives—a revelation that has wide-ranging ethical implications
[#science](https://url.koehr.ing/bookmarks/shared?q=%23science) [#ethics](https://url.koehr.ing/bookmarks/shared?q=%23ethics) [#insects](https://url.koehr.ing/bookmarks/shared?q=%23insects)
diff --git a/content/contact.smd b/content/contact.smd
new file mode 100644
index 0000000..e3e761b
--- /dev/null
+++ b/content/contact.smd
@@ -0,0 +1,22 @@
+---
+{
+.title = "Contact",
+.date = @date("2025-01-27T00:00:00"),
+.author = "koehr",
+.draft = false,
+.layout = "page.shtml",
+.description = "I have accounts all over the interwebs. Find me...",
+.tags = [],
+}
+---
+
+* Classic Mail: n-at-koehr.ing (please use common sense to fix the address)
+* Fediverse (Mastodon): [@koehr@mstdn.io](https://mstdn.io/@Koehr)
+* Sourcecode (Github): [@nkoehring](https://github.com/nkoehring)
+* Sourcecode (Selfhosted): [git.koehr.ing](https://git.koehr.ing)
+* Professional (LinkedIn): [@normankoehring](https://www.linkedin.com/in/normankoehring/)
+* Snapshots (Pixelfed): [@koehr@pixelfed.de](https://pixelfed.de/@koehr)
+* Snapshots (Instagram): [@coffee_n_code](https://instagram.com/coffee_n_code)
+* Discussion (Reddit): [/u/koehr](https://reddit.com/user/koehr)
+* Discussion (Threads): [@coffee_n_code](https://reddit.com/user/koehr)
+
diff --git a/content/ideas.smd b/content/ideas.smd
new file mode 100644
index 0000000..0f97abb
--- /dev/null
+++ b/content/ideas.smd
@@ -0,0 +1,26 @@
+---
+{
+.title = "Ideas",
+.date = @date("2025-01-27T00:00:00"),
+.author = "koehr",
+.draft = false,
+.layout = "page.shtml",
+.description = "Ideas, concepts, planned projects.",
+.tags = [],
+}
+---
+
+My brain is really good in producing new ideas and sometimes obsessing over them for a short while. Usually though, the ideas will never come to fruition, so this page documents at least some of them for later. If you look through this list and one of the ideas stands out to you, please push my motivation by telling me about it. Even more so if you want to collaborate!
+
+# Create/Build/Implement a/an...
+
+* Fetching bookmarks from [Linkding](https://linkding.link) via API key on every build of this page
+* Events page for Vuejs events, similar to events.vuejs.org, but with a focus on discoverability
+* Integrations for (imho) essential services into [Vimb](https://fanglingsu.github.io/vimb/). This would be mainly bookmarks via Linkding, passwords via Bitwarden and tab/history sync (via FFSync).
+* Fediverse enabled Event hub, like [Mobilizon](https://joinmobilizon.org/), but with an UI similar to [Luma](https://lu.ma).
+
+# Try out...
+
+* [Kagi Websearch](https://kagi.com) - but I don't like that they are yet another Silicon Valley startup
+* [Bridgy Fed](https://fed.brid.gy) to bridge all my social media together
+
diff --git a/content/index.smd b/content/index.smd
index 0b7991e..160b065 100644
--- a/content/index.smd
+++ b/content/index.smd
@@ -1,6 +1,6 @@
---
{
-.title = "Welcome",
+.title = "About",
.date = @date("2024-06-16T00:00:00"),
.author = "koehr",
.draft = false,
@@ -11,7 +11,7 @@
---
# experience
-> Thirteen years of professional experience in a couple of tweets
+> Thirteen years of professional experience in a couple of tweets... er, toots?
Pretty early in my life I realized that I work best on my own terms. That does not mean that I prefer to work alone. Working with clients, team mates, designers and managers is a crucial part of any development process.
diff --git a/content/stack.smd b/content/stack.smd
index 47df50a..9864dcf 100644
--- a/content/stack.smd
+++ b/content/stack.smd
@@ -62,6 +62,10 @@ I used Floorp for a few weeks and I liked it a lot. The out-of-the-box support f
After trying Floorp, I switched to Zen Browser. Very positive is that it supports vertical tabs and tab groups out-of-the-box as well. Additionally it allows "zen mode" (hence the name, I guess), which hides bars and only shows them when hovering the respective corner of the window. This is really neat, although it needs a bit of familiarization to not see anything happen when opening a link in a new tab, for example. For now, Zen Browser is still alpha, but seems very usable. I had no issues yet.
+### Vimb
+
+I also use [Vimb](https://fanglingsu.github.io/vimb/) and I'd love to use it more, but the lack of integrations into Bitwarden (password management) and Linkding (bookmarks) make it inconvient for many things. I also miss the ability to sync my browsing history and the currently open tabs with the browser on my phone.
+
## Other Tools: LogSeq, Poe, Bitwarden, Git, gh-cli...
diff --git a/layouts/homepage.shtml b/layouts/homepage.shtml
index c222c5f..af47881 100644
--- a/layouts/homepage.shtml
+++ b/layouts/homepage.shtml
@@ -21,7 +21,7 @@
and architecture.
- Looking for expert advice and development services for a short-term project? I offer guidance on software
+ Looking for expert advice and development services for a short to mid-term project? I offer guidance on software
architecture decisions, coding solutions and performance optimizations tailored to your needs. Let's work
together to solve your challenges.
Get in touch!
@@ -56,11 +56,11 @@
@Koehr\@mstdn.io
git.koehr.ing
Norman Köhring
+
@koehr@pixelfed.de
coffee_n_code
-
coffee_n_code
+
@coffee_n_code
/u/koehr
nkoehring
-
koehr_in