# Kaan C. Barmore-Genc > Kaan's personal technical blog. Posts cover software engineering, Rust, web development, Claude Code, self-hosting, and assorted developer tooling. Each post is also reachable as a standalone page at the URL below; this file is a flat, plain-text index of every post so an agent can enumerate the whole archive in a single request instead of walking paginated HTML. ## Posts - [Compacting old Claude Code sessions without re-ingesting them](https://bgenc.com/2026.05.31.compacting-old-claude-code-sessions-without-re-ingesting/): If you resume a Claude Code session from yesterday and then compact it, you pay to re-ingest the whole history with a cold cache. I wrote a tiny skill that reads the session file locally and only feeds the agent a summary. - [Claude Design is just Claude Code with a UI](https://bgenc.com/2026.04.25.claude-design-is-just-claude-code-with-a-ui/): I've been trying out Claude Design and I like it, but as far as I can tell it's just Claude Code writing jsx and css with a Figma-like wrapper around it. I'm not sure I'd pay extra for that. - [Discord webhooks let my remote Claude Code agent send me images](https://bgenc.com/2026.04.21.discord-webhooks-let-my-remote-claude-code-agent-send-me/): I like running Claude Code in remote mode and controlling it from my phone, but the app can't show images. A tiny script that pings a Discord webhook filled that gap. - ["Jump to matching first letter of the word" in neovim](https://bgenc.com/2025.02.15.nvim-hop-go-to-first-letter-word/): hop.nvim lets you jump to the first letter of a word, but highlights all words. I put together some code to only highlight words starting with a particular letter. - [I built an API for random names and numbers because why not?](https://bgenc.com/2024.10.06.i-built-an-api-for-random-names/): So I needed random names for a script, and instead of using a sensible solution, I decided to build an entire API. Join me as I fumble through Go, preact, and Kamal, then end up with a functional free public API. - [Adding single click dev environment links to your open source project for easy contributions](https://bgenc.com/2024.05.27.adding-single-click-dev-environment-links-to-your-open-sourc/): See how you can streamline contributions and onboarding by leveraging DevContainers and cloud dev environments - a one-click setup that lets new folks dive right in! - [Using Shadow DOM to isolate injected browser extension components](https://bgenc.com/2024.05.18.using-shadow-dom-to-isolate-injected-browser-extension-compo/): I spent a weekend building a browser extension with React and TailwindCSS, but injected components can be a lot of trouble. This post explores how Shadow DOM saves the day (and your CSS sanity). - [Making Customizable Components in Svelte](https://bgenc.com/2024.05.12.svelte-customizable-components/): Making customizable components in Svelte can be hard, but check out this post on how to use Svelte with TailwindCSS to make them possible at no performance penalty. - [What I'm enjoying using for mobile app development](https://bgenc.com/2024.01.01.mobile-dev-what-i-enjoy-using/): Love fresh sourdough bread but hate remembering to feed your starter? This post details my journey of building a mobile app (with open-source tools) to manage sourdough starter feeding schedules and take the guesswork out of perfect sourdough. - [Building a Well Organized Rust CLI Tool](https://bgenc.com/2023.12.09.building-well-organized-rust-CLI-tool/): Unleash developer zen with a Rust CLI organization trick! This post uses Clap and a custom trait to create a file system mirrored command structure, making your code a breeze to navigate and maintain. - [Amazon SES Production Access Approval](https://bgenc.com/2023.10.02.amazon-SES-production-access-approval/): Is your Amazon SES approval getting declined? My odyssey through email services & how to finally get the green light (with code!) - [Next.js error about native node modules using bindings](https://bgenc.com/2023.08.13.nextjs-bindings-cannot-read-property-indexof-undefined-getFileName/): Struggling to use a native node module with bindings in your Next.js app? I dive into a weird Webpack/Terser issue and a clever Next.js-specific solution to get it working smoothly. - [Getting theme colors in JavaScript using React with DaisyUI and TailwindCSS](https://bgenc.com/2023.08.10.react-daisyui-tailwindcss-theme-colors-in-js/): This post shows you how to use JavaScript to read CSS variables and create dynamic UIs, using SWR for seamless light & dark mode switching! - [CSS only placeholder for contenteditable elements](https://bgenc.com/2023.07.02.css-only-contenteditable-placeholder/): Here is how to make a text area that resizes automatically and has placeholder text, with no JavaScript with this clever CSS trick! - [Fully Headless Setup for Raspberry Pi](https://bgenc.com/2023.04.27.raspberry-pi-headless-setup/): Don't feel like hooking up a monitor and keyboard to your Raspberry Pi? I'll show you how to set up your Raspberry Pi for headless SSH access using just a few commands. - [Self Hosted Backups with Minio, Kopia, and Tailscale](https://bgenc.com/2023.04.25.self-hosted-backups-with-minio-kopia-tailscale/): Ditch complex SSH setups and leverage Minio's S3 compatibility with Tailscale for secure, encrypted backups. - [Setting up my blog as an Onion service (Tor hidden service)](https://bgenc.com/2023.03.05.set-up-my-blog-as-onion-service/): See how you can use Tor and Docker to create your own hidden onion service, perfect for tech enthusiasts and privacy advocates. - [Making the Slow Explicit: Dynamodb vs SQL](https://bgenc.com/2023.02.26.making-the-slow-explicit-dynamodb-sql/): Bad SQL habits are to blame for slow databases, not NoSQL magic. Here's my thoughts on how DynamoDB forces better code for scalability. - [Enforcing a "Do Not Merge" label with Github Actions](https://bgenc.com/2023.02.18.github-actions-do-not-merge-label/): Stop accidental code deployments with a clever GitHub Actions trick using labels to prevent merging pull requests until they're truly ready. - [Why I use Dev containers for most of my projects](https://bgenc.com/2023.02.10.why-use-devcontainer/): Let's explore how to use DevContainers to create a one-click development environment with all the tools and services you need. - [Get inferred type for a generic parameter in TypeScript](https://bgenc.com/2023.01.28.typescript-get-inferred-type/): Dive into using TypeScript to extract inferred types, inspired by Zod's schema inference magic. - [Hosting websites without a static IP with Gandi LiveDNS](https://bgenc.com/2022.12.29.hosting-websites-without-static-IP-Gandi/): Want to ditch expensive dynamic DNS and keep your home server online? I built a tool to use Gandi's free LiveDNS with lightning-fast updates – under 250ms! - [Solving "XML Parsing Error: no root element found" in Firefox](https://bgenc.com/2022.12.17.firefox-xml-parsing-error-no-root-element/): A short piece about a weird XML parsing error I had to deal with, including some Rust code. - [Automating My Blog With Gitea and Woodpecker](https://bgenc.com/2022.11.19.automating-my-blog-with-gitea-and-woodpecker/): I automated my personal projects with a surprisingly simple CI/CD tool called Woodpecker. Discover how to build and deploy code from your Gitea with just Docker containers! - [Solving React Redux Triggering Too Many Re-Renders](https://bgenc.com/2022.09.18.solving-react-redux-triggering-too-many-re-renders/): Stop Redux from tanking your web app's performance. Follow along as I diagnose and solve a React performance issue. - [My Experience Applying & Interviewing for Software Engineering Positions](https://bgenc.com/2022.07.10.my-experience-applying-interviewing-software-engineering/) - [My New Backup Setup with Kopia](https://bgenc.com/2022.05.29.my-new-backup-kopia/) - [React Navigation on web, getting browser history to work with links](https://bgenc.com/2022.05.09.react-navigation-web-browser-history-with-link/) - [Using a path as a parameter in React Navigation](https://bgenc.com/2022.05.01.react-navigation-path-as-parameter/) - [actix-web Url Dispatch and Middleware](https://bgenc.com/2022.04.24.actix-web-url-dispatch-and-middleware/) - [JavaScript error "Super Expression must either be null or a function"](https://bgenc.com/2022.04.18.javascript-typeerror-super-expression/) - [Adding an HTML-only interface for Bulgur Cloud](https://bgenc.com/2022.04.17.building-a-website-in-rust-with-no-javascript/) - [Handling Errors in Rust](https://bgenc.com/2022.04.13.handling-errors-in-rust/) - [Optimizing My Hugo Website](https://bgenc.com/2022.04.10.optimizing-my-hugo-website/) - [Managing my recipes with Dendron](https://bgenc.com/managing-my-recipes-with-dendron/) - [Black Crown Initiate](https://bgenc.com/black-crown-initiate/) - [An introduction to Bulgur Cloud - simple self hosted cloud storage](https://bgenc.com/bulgur-cloud-intro/) - [Do kids not know computers now?](https://bgenc.com/do-kids-know-computers-today/) - [My response to Aurynn Shaw's "Contempt Culture" post](https://bgenc.com/my-response-to-contempt-culture/) - [Solving `app_data` or `ReqData` missing in requests for actix-web](https://bgenc.com/actix-web-import-issue/) - [Mass batch processing on the CLI](https://bgenc.com/mass-batch-processing-on-the-CLI/) - [Running graphical user services with systemd](https://bgenc.com/running-graphical-user-services-with-systemd/) - [State of Rust GUIs](https://bgenc.com/state-of-rust-GUIs/) - [A little type system trick in Rust](https://bgenc.com/rust-typesystem-tricks/) - [Getting Deus Ex GOTY Edition running on Linux](https://bgenc.com/getting-deus-ex-running-on-linux/) - [My local data storage setup](https://bgenc.com/raid/) - [Emacs as an operating system](https://bgenc.com/emacs-as-an-os/) - [Emacs and extensibility](https://bgenc.com/customizing-emacs/) - [Motion Interpolation, 24 FPS to 60 FPS with mpv, VapourSynth and MVTools](https://bgenc.com/mpv/) - [Taking Backups with Duplicity](https://bgenc.com/duplicity/) - [Writing a Program in Bash](https://bgenc.com/bash/) - [Switching to pass](https://bgenc.com/pass/)