Archive

All published posts

2518 posts latest post 2026-07-10 simple view
Publishing rhythm
Jun 2026 | 26 posts
Changelog Maker of web things, sticker merchant, viral toot-based business man, blogger, podcaster, and pizzaiolo. Human dad. rknight.me [1] Well done changelog with some really good inspirational nuggets. Many slash pages I want to check out and an 11ty contribution graph. References: [1]: https://rknight.me/log/
slash pages A guide to common pages you can add to your website slashpages.net [1] A nice list of slashpages you might want to consider including / aliasing / 301ing. These feel like nice things to setup and keep in the back pocket for obsidian style wiki link to easily. I get kinda bad at wiki-linking as much as I would like to, mostly because it does require some amount of work to make the page, and keep it up to date over time, then remember that you even have it. Some are serious, some very common, some quite useful. [2] References: [1]: https://slashpages.net/ [2]: https://dropper.waylonwalker.com/api/file/ba4edf27-03d4-49ff-ab4e-712e9ab8acda.webp

/colophon

Colophon [1] a page that describes how the site is made, with what tools, supporting what technologies Author # [2] [3] All posts on this site are written by Waylon Walker [4], the typical content has changed and evolved over time. I go back and make a few corrections, but for the most part things stay pretty much as they were published originally. see more in Waylon Walker [5] tech # [6] This site is a static site build with my own static site generator markata [7], Thoughts [8] or as Simon Willison calls it a link blog [9] posts are pulled in as a regular posts, all is hosted on cloudflare pages. - markata [7] - Thoughts [8] - cloudflare pages see more about these components in about this site [10] Analytics # [11] I do not track users, I respect the privacy of my readers and do not track their information. I do track analytics [12] on my own writing a post rate. Its more of an interesting history of the site. meta # [13] Some evergreen pages that are more about me ...
- Theo does a fantastic history of serverless here. Kubernetes shit # [1] Theo can’t have an infra video without shitting on k8s. Specifically people who have never touched k8s pushing fear of k8s to large audiences of people who have never touched k8s. If you are a webdev who solely lives in webdev space and never touches as much as a dockerfile listen to him. If you touch infra at all try it before you take his opinion at face value. [2] Serverless shines in high variance # [3] If you plan on having traffic spikes 10x your regular traffic for something like black friday, serverless might be right for your use case. stateless programming # [4] He argues that targeting a stateless deployment of serverless leads to better code. I’d like to see more examples here. Maybe most of the code bases I work on already do this. I’ve never targeted a serverless deployment, but I’ve targeted horizontally scaled deployments many times and they feel like they have the same targets. For instance if I spin up 8 pods for my application or uvicorn with 3 workers I have to target statelessness, all of the state must live in the database and cannot live in memory. Even if I target 1 instanc...
linkding A self-hosted bookmarking service that is designed to be minimal, fast and easy to set up. linkding · linkding.link [1] linkding looks like an interesting alternative to thoughts. Thoughts is focused on the note being a value add tweet length blog post that you share to the public. This seems more focused on fire and forget with some note taking and search ability. I should definitely level up the search and tag discovery in thoughts. References: [1]: https://linkding.link/
- cool video on expanding vim with cli. piping commands into vim # [1] [2] write a healthcheck # [3] [4] References: [1]: #piping-commands-into-vim [2]: https://dropper.waylonwalker.com/api/file/4283e98a-9b12-4f8a-9799-a097d5f3184d.webp [3]: #write-a-healthcheck [4]: https://dropper.waylonwalker.com/api/file/d90a8c88-4748-4dfe-8569-b51c023c825b.webp
- Lane from boot.dev madde this fantastic video about serving files on the internet. It has me wondering if I need to rethink a few of my things that I have built. I have a few things I am serving media from, but I have very aggressive cloudflare cache rules on them, so each file should only be uploaded about once per year. My problem going straight out of minio right now is how do i set headers for cache control on it. If I can’t set the cache control and everything is coming out of minio this does not solve my problems. --- I went back and played with presigned urls and you can in fact control and set response headers, this is definitely the way and I have been wrong.
curl with partial files Back in September 2023, we extended the curl command line tool with a new fairly advanced and flexible variable system. Using this, users can use files, environment variables and more in a powerful... daniel.haxx.se · daniel.haxx.se [1] This is a cool new feature coming to bash, I can’t think of a use case I have out of the gate, but it looks cool. I’m thinking this might be good to keep in the back pocket for something like CI where I don’t have a hightly tuned bashrc file, and I want a dynamic curl request based on some state that exists as a fille. References: [1]: https://daniel.haxx.se/blog/2024/12/30/curl-with-partial-files/
The beautiful sentence that is the web A metaphor for the building blocks of web development. cassidoo.co [1] Nicely worded Cassidy! Javascript can be too much, it can bog down low powered devices, we can ship so much that its untenable on poor connections. It can be argued that its a bad language and putting it on the server is a mistake, but it brings sites to life. It makes it possible to extend the static nature of html [2]/css with just a little special spice only your site needs. I’d add to the argument that a lot of js should go away over time. Over time libraries such as jquery have fallen out of use, not because they are bad, or have been replaced by new libraries, but because the browser has adopted most of the functionality that jquery brought. As a primarily python dev I’d really like to see htmx [3] die a very similar graceful death. There have been several iterations on this idea, and the crux of it is very similar, give the ability to use HTTP verbs right inside html with some instruction of when to apply them and what to apply them to. No js should not go away, it never will, we will always find new patterns that the browser should take, sites will always n...
Teleport to coop partner Hello, Is there a command where you can teleport to your coop partner? Or is it just this Follow button in chat? :) Hypixel Forums · hypixel.net [1] /p warp will warp your party to your current server in hypixel skyblock [2] References: [1]: https://hypixel.net/threads/teleport-to-coop-partner.2250505/ [2]: https://dropper.waylonwalker.com/api/file/a4f5be07-5f79-450c-a40d-1f48ac086e05.webp
External Link stackoverflow.com [1] Today I learned how to configure the baseurl for htmx [2] using the tag. This is pretty handy to be able to configure different baseurls. <base href="<scheme>://<netloc>/api/v1/"> <button hx-post="clicked" hx-trigger="click" hx-target="#parent-div" hx-swap="outerHTML"> Click Me! </button> References: [1]: https://stackoverflow.com/questions/69456875/how-to-configure-base-url-for-all-requests-using-htmx [2]: /htmx/
Addy Osmani (@addyosmani.bsky.social) Tip: Chrome DevTools can override the content of Fetch/XHR requests! Useful for mocking APIs without waiting on backend changes. Bluesky Social · bsky.app [1] WTF, you can just change a server response from devtools and update a vuejs app? Just tried with htmx [2], and my GET requests are not showing up in the sources tab. I’ll keep this in my back pocket for next time I’m supporting a vuejs app though. References: [1]: https://bsky.app/profile/addyosmani.bsky.social/post/3lei5jhkgdk2k [2]: /htmx/
Gary Vaynerchuk (@garyvee.com) 2025 : the year of action … who’s finally ready ? PS: text me for any follow up questions at 📱 1-212-931-5731 #2025 #todo #todolist #motivation #garyvee Bluesky Social · bsky.app [1] Gary Vee, is the goat. leaving this image as a reminder for myself [2] References: [1]: https://bsky.app/profile/garyvee.com/post/3leidcd6xjk2y [2]: https://dropper.waylonwalker.com/api/file/074edddb-8b46-4d94-9b55-d70a7bb74366.webp
The work on atuin [1] by atuinsh [2]. ✨ Magical shell history References: [1]: https://github.com/atuinsh/atuin [2]: https://github.com/atuinsh
Ellie Huxtable (@ellie.wtf) Atuin v18.4 is out now! Including atuin wrapped, your year in shell history 🐢 thanks @daveeddy.com for the suggestion! Bluesky Social · bsky.app [1] Atuin v18.4 is out with an atuin wrapped command. Here’s Ellie’s Wrapped. [2] This is a pretty sick command, I’ve only been using Atuin about as long as I’ve been on bazzite, so maybe 4 months, but here is my wrapped. [3] Comparing to Ellie, I’m surprised that I even have 126 package related commands, being on an immutable distro most of my packages come from the container, I don’t need to run packaging commands. My cd is also super low, I use tmux sessions to take me where I need to be most of the time, which is a project’s root directory, It’s pretty rare to see me outside of a project root directory. I’d venture to guess that nvim would be higher if it didn’t auto start on every tmux session as well. References: [1]: https://bsky.app/profile/ellie.wtf/post/3lecj36r5ps2x [2]: https://dropper.waylonwalker.com/api/file/246f2dc6-4e46-410c-9d25-fa6ccc85f8f2.webp [3]: https://dropper.waylonwalker.com/api/file/434e1290-cf81-4ae5-abaf-34927006f3b6.webp
- Red Hat has donated the whole open alternative to docker to the CNCF, the hosts weigh in with thier opinions all being pretty positive as they seem to be a legitimate donation and not dumping crap on open source. - podman - podman-desktop - buildah - compose-fs - podman - bootc - scopio Personally I’ve been running podman exclusively at home since switching to Bazzite in August. I’d like to use buildah in ci. I gave it a try, but was unable to swap out my use of kaniko for buildah, I will get there, but it was not quite as drop in as I wanted.
- Holy shit these AGI models are incredibly expensive to run, require lots of wild hardware that there is not enough to go around, and requires shit tons of power to run. Now more than ever is time to distinguish yourself with deep expertise, jack of all trades is being eaten by ai. People with deep expertise are getting a jack of all trades bump from ai, not o3, just the regular stuff.

setting up ucore-zfs

I just setup my oldest hardware on the newest hotest server distro ucore-zfs. This is a gateway FX6860 manufactured in 2010. Immutable is the future # [1] My current boot log shows that I first started daily driving bazzite back in August 2024. I’ve been hapily using it since my arch install was plaugued with a crippling display driver error, or something that would lock the display for minutes every 30s or so, it became unusable. I switched because this is what I put my son on and it was working great for him. waylon@razorcrest:~$ journalctl --list-boots IDX BOOT ID FIRST ENTRY LAST ENTRY -19 7e6e154d2609407da24fa12814eadbd7 Thu 2024-08-29 16:15:15 CDT Thu 2024-08-29 17:37:25 CDT Four months later and I am really loving the immutable distro experience. My base system gets fresh reliable updates, and I barely install anything directly on it, a handful of things are snaps or flatpaks from the discover store, but my main workflow is now in distrobox. It has been rock solid reliable...
3 min read
- Theo weighing in on the 2025 job market. It’s no 2018 out there right now, the ratio of jobs to engineers in the market has flipped big time. Theo as usual really focuses on community, being in a community, and being a good citizen. At the end of the video Theo weighs in on his experience hiring, and generally it starts with we need someone to do x does anyone know someone, then goes to a more formal internal post, then more formally asking internally does anyone know someone, then maybe to his community, and if he really still needs the person it might become an external post. These days there are so many good engineers on the market that very few good jobs actually get a posting for in his opinion.
kitze the 🐐 (@thekitze) on X holy fk I thought package.json was bad but TIL python stores dependencies in a .txt file 💀 X (formerly Twitter) · x.com [1] kitze hating on python packaging in new ways. Python packaging has a lot of quirks that can make it infuriating. Not once have I thought “you know what this needs, quotes and braces” [2] References: [1]: https://x.com/thekitze/status/1872267874842063223?t=zxq6-kA9atVuXJeWntxfWg&amp;s=09 [2]: https://dropper.waylonwalker.com/api/file/566ff44b-cace-474d-b1bc-62aaf42f419f.webp
- This tip of using tinkercad to do boolean operations on an stl of a solid gridfinity bin and an outline is absolute fire 🔥🔥🔥. This feels like a relatively simple operation, but to do it to a generated stl proves hard to do in most modeling software, at least harder than it needs to be. Somehow tinkercad got it right and made it a very basic operation to do. [1] It took me a minute to find the Merge button that Uncle Jessy mentioned, they call it a group in TinkerCAD. [2] References: [1]: https://dropper.waylonwalker.com/api/file/36826ac6-9e38-4955-b622-4de86900c8b7.webp [2]: https://dropper.waylonwalker.com/api/file/a22fc486-d627-4e37-8d58-e963919bb8a0.webp
- Great list of 4 tips for running fastapi applications. Keep routes small # [2] Fat routers with all of the logic built in makes them hard to test, hard to refactor, causes lots of duplication, and makes it hard to reuse the business logic code later in something like a cli application. Deploy Early # [3] I really like this advice! He reccommends deploying as early as you can get a healthcheck live in your application. I’ve found too many times developers build something that is really hard, or impossible to deploy, when if they had tried to deploy early they would have spotted some easy to fix issues. This is less important if you are building out of a template that your team commonly deploys from, but very important with new patterns. https://youtu.be/XlnmN4BfCxw?si=ks1wvmgDyoQLgrv2&t=1093 [4] References: [1]: /fastapi/ [2]: #keep-routes-small [3]: #deploy-early [4]: https://youtu.be/XlnmN4BfCxw?si=ks1wvmgDyoQLgrv2&amp;t=1093
Building Python tools with a one-shot prompt using uv run and Claude Projects I’ve written a lot about how I’ve been using Claude to build one-shot HTML+JavaScript applications via Claude Artifacts. I recently started using a similar pattern to create one-shot Python uti... Simon Willison’s Weblog · simonwillison.net [1] This is really interesting, the lazy uv scripts are really becoming quite appealing, especially for something like this to just pop out of an llm ready to run. The article features several examples of these one-shot prompt ideas that I suggest you give a try, and a prompt for creating them. References: [1]: https://simonwillison.net/2024/Dec/19/one-shot-python-tools/
Depot Status Latest service status for Depot Depot Status · status.depot.dev [1] Depot’s uptime seems to be great. I definitely hit some issues with it this afternoon 12/24/24 that were not reported. I wonder if my issues were with the fly integration. Maybe fly ran out of credits to depot or something. References: [1]: https://status.depot.dev/
Deploy to Fly using a Depot builder Using Fly.io's new Depot builder, we'll walk you through how to deploy a TypeScript service globally with speed. Depot · depot.dev [1] Here the integration to depot appears to be opt in using the --depot flag on fly deploy. This must have changed over time though because today it was giving me issues and I had to opt out using fly deploy --depot='false'. Looks like a great service and I just learned about them on their bad day. References: [1]: https://depot.dev/blog/how-to-build-with-depot-on-fly
Depot Exponentially faster builds for everyone. Depot · depot.dev [1] Just learned about depot today ironically because it seems to be down and fly is using them under the hood to do the container builds, seems like a really great service for fast builds accross your team. References: [1]: https://depot.dev/
- This was an eye opening video into agentic editing workflows. setting rules # [1] Dfferent ai tools use different rules files, windsurf uses .windsurfrules. [2] testing out rules # [3] Test out your rules file by having it say something at the beginning of the output to verify that the rules are being applied correctly. [4] First line # [5] He suggests to use this key rule for debugging purposes, otherwise you are guessing to what rules if any it is following. Every time you choose to apply a rule(s), explicitly state the rule(s) in the output. You can abbreviate the rule description to a single word or phrase. References: [1]: #setting-rules [2]: https://dropper.waylonwalker.com/api/file/f75bf439-919f-4c19-8695-176ca8a7d52d.webp [3]: #testing-out-rules [4]: https://dropper.waylonwalker.com/api/file/ebeed79c-435b-4aab-b3dc-c744b144c438.webp [5]: #first-line
Dedicated Servers | Intel Servers | AMD Servers - Dedicated Hosting reliablesite.net [1] Dax talked about this in a recent How about tomorrow podcast https://thoughts.waylonwalker.com/post/461. He is using it as his dev machine, he just ssh’s in and devs on it. Feels like quite an interesting workflow, their prices seem competitive, but as a cheap ass homelabber I see their prices and think I could grab a used optiplex for the cost of a month or two of these and probably wouldn’t know the difference. DAX mentions longer compile times so maybe he does notice. References: [1]: https://www.reliablesite.net/dedicated-servers/
- This is a pretty great episode talking shop with typecraft. They talk setups, cameras, content creation. I found them talking about their linux setups particularly interesting. Dax talked about his flow from building his own machines to using reliablesite.com. tmux default leader # [1] Dax hates on c-a, both typecraft and dax use c-s, which normally freezes a terminal, we can all agree that is useless. I use the default c-b, it seems fine for me. type crafts setup # [2] - Ubuntu - Ghosty - Tmux - Nvim - Ruby Selling coffee without a web front end # [3] Dax talks about terminal.shop and how they originally planned to have a web front end, but after they had so much success they stuck with it. now they are leaning harder into it and are building out integrations with a bunch of languages and an api, but no front end. References: [1]: #tmux-default-leader [2]: #type-crafts-setup [3]: #selling-coffee-without-a-web-front-end
PEP 723 – Inline script metadata | peps.python.org This PEP specifies a metadata format that can be embedded in single-file Python scripts to assist launchers, IDEs and other external tools which may need to interact with such scripts. Python Enhancement Proposals (PEPs) · peps.python.org [1] PEP 723 is what is inspiring all of these lazy self installing python scripts, Authored by the author of hatch and pyapp. This is a really cool thing that uv has picked up and made python packaging just a bit easier.. maybe… dependency resolution still sucks. References: [1]: https://peps.python.org/pep-0723/
Switching from virtualenvwrapper to direnv, Starship, and uv Earlier this week I considered whether I should finally switch away from virtualenvwrapper to using local .venv managed by direnv. I’ve never … treyhunner.com [1] I’ve kinda fallen out of using direnv now that a lot of my projects use hatch, I generally just hatch shell into them. I just need to make sure I go through all of them and make my installer uv. Now I’ve been thinking about making uv my only needed dependency to run a python project and leaning more to something like uv run --with . uvicorn myapp --reload References: [1]: https://treyhunner.com/2024/10/switching-from-virtualenvwrapper-to-direnv-starship-and-uv/
Lazy self-installing Python scripts with uv I frequently find myself writing my own short command-line scripts in Python that help me with day-to-day tasks. It’s so easy to throw together … treyhunner.com [1] I really like Trey’s steps to making an executable python script with uv his old process seems to be the same with a new shebang - Add an appropriate shebang line above the first line in the file (e.g. #!/usr/bin/env python3) - Aet an executable bit on the file (chmod a+x my_script.py) - Place the script in a directory that’s in my shell’s PATH variable (e.g. cp my_script.py ~/bin/my_script) And here is the new format the the shebang followed by the metadata comment block defined in PEP 723. #!/usr/bin/env -S uv run --script # /// script # requires-python = ">=3.12" # dependencies = [ # "ffmpeg-normalize", # ] # /// References: [1]: https://treyhunner.com/2024/12/lazy-self-installing-python-scripts-with-uv/
My approach to running a link blog I started running a basic link blog on this domain back in November 2003—publishing links (which I called “blogmarks”) with a title, URL, short snippet of commentary and a “via” … Simon Willison’s Weblog · simonwillison.net [1] I still cannot believe I thought I had such a unique idea with thoughts only to find out shortly thereafter that Simon beat me to the punch by about 20 years! Simon put a lot of work into this post [2] please check it out. Its not only filled with tons of little nuggets about blogging, it has just a ton of links to other posts I’m itching to read now. https://simonwillison.net/2024/Dec/22/link-blog/#thoughts.waylonwalker.com a linkblog proves that you read # [3] Simon mentions it in the post as well, but one thing about having a link blog does is that it proves that you actually read articles that you share. This is really more about proving to myself, and reminding myself that anyone else, it’s a good feeling. Trying to add soemthing extra # [4] - include names of people, and add tags for common people - something extra - the whole point is to bring something to the post without stealing thunder, but rather li...
How I use Obsidian Templater One of my favorite Obsidian plugins is Templater, which lets you create reusable templates in your notes vault! cassidoo.co [1] I really like this idea of keeping a set up contacts in a markdown repo, and being able to wikilink them to different tickets / meetings and what not. I’m imagining the graph you can build, it feels quite interesting. Even more relevant as we see things like teams rolling out retention limits to messages. Here is Cassidy’s format, I like it but I’m probably not going to track the birthday of most people I work with, thats just not the relationship I tend to have with work friends. It might be a midwest or non tech thing, but I am not even aware if any of my co-workers have social media, and I assume that if they did it would not include anything work related but more football and other sports. [2] References: [1]: https://cassidoo.co/post/obsidian-templater/ [2]: https://dropper.waylonwalker.com/api/file/32859bd6-1b9f-4d40-a87c-0b96a5a42084.webp
docker context (and an issue to question your sanity) | Nic Payne docker contexts are great, would recommend putting them in your prompt though (via starship or something else)... here's why I like to manage my containers pype.dev [1] Dang context can really cause you to pull your hair out. Context seems so freaking convenient, but I’ve avoided it and just ssh in for these reasons. Maybe I’ll come around eventually but for now ssh is my friend. References: [1]: https://pype.dev/docker-context-and-an-issue-to-question-your-sanity

thoughts 0.0.4

This is such an improvement to the backend of my website it warrants a blog post of celebration. For far too long I’ve been dealing with a tiny ass edit form on thoughts. I tend to not edit them, and try to get them right in one go. This is kinda the point of a thought, its a quick post meant to be the size of a tweet, but sometimes I’m leaving thoughts on a video or long post and want to make sure I have a good save point, but I just keep the thing in draft and hope I don’t loose if for far too long. Results # [1] Let’s see this change in action!! before # [2] This is the tiny ass form nested deeply in the flow of the feed. When I made it I naively just swapped out the post itself with the edit form, and swapped the post back in after edit. [3] thoughts is built with HTMX [4] btw so all html [5] is rendered in the backend and swapped by htmx client side. after # [6] Now the edit is a full page modal with a nice blurry backdrop effect to the rest of the content. This feels p...
I’m really excited about jnv [1], an amazing project by ynqa [2]. It’s worth exploring! Interactive JSON filter using jq References: [1]: https://github.com/ynqa/jnv [2]: https://github.com/ynqa
tui-network [1] by Zatfer17 [2] is a game-changer in its space. Excited to see how it evolves. No description available. References: [1]: https://github.com/Zatfer17/tui-network [2]: https://github.com/Zatfer17
I came across markitdown [1] from microsoft [2], and it’s packed with great features and ideas. Python tool for converting files and office documents to Markdown. References: [1]: https://github.com/microsoft/markitdown [2]: https://github.com/microsoft
gh-skyline [1] by github [2] is a game-changer in its space. Excited to see how it evolves. A GitHub CLI extension to generate a 3D model of your GitHub contribution history References: [1]: https://github.com/github/gh-skyline [2]: https://github.com/github
I’m really excited about studio [1], an amazing project by outerbase [2]. It’s worth exploring! A lightweight Database GUI in your browser. It supports connecting to Postgres, MySQL, and SQLite. References: [1]: https://github.com/outerbase/studio [2]: https://github.com/outerbase
If you’re into interesting projects, don’t miss out on blahg [1], created by cassidoo [2]. Cassidy’s blog template built with Astro and TinaCMS! References: [1]: https://github.com/cassidoo/blahg [2]: https://github.com/cassidoo
I got the ADHD, too This month I got my official diagnosis for Adult ADHD. It’s fun to share experiences with friends. While ADHD presents some new waters to navigate, it isn’t exactly news to me. Thanks to Dr. Ti... daverupert.com · daverupert.com [1] Cheers to the Unique brains dave. I can say I am 100% with Dave on all of these, except the clean environment thing, lucky Dave. If I have enough room to see what I am doing and walk around a mess, I probably wont even notice it. I’m so hyper focused on what is right in front of me that mess could be a huge pile of cash and i’d never see it. References: [1]: https://daverupert.com/2024/12/adhd/
How to make your RSS feed pretty Life is too short for ugly XML. cassidoo.co [1] I love me some styled rss, it’s how the OG [2] internet was made to be. You choose what you want to read and when. There is no middleman aggregator inflating the reach of things they want you to see or suffocating things against them. It’s just you and your internet friends. Cassidy’s Styled rss [3] # [4] Cassidy has a quite lovely and easy to read rss feed, with an open source style sheet, that is part of her open source blog template for astro blahg [5], love that name by the way! [6] Dave Rupert’s Feed [7] # [8] I first learned of styled rss feeds from shoptalkshow.com, specifically from Dave Rupert [9]. [10] Dave uses a pretty bog standard styled rss feed with pretty-feed-v3 [11]. This repo is probably the best place to start if you are looking to style your rss feed. https://github.com/genmon/aboutfeeds/blob/main/tools/pretty-feed-v3.xsl My RSS Feed [12] # [13] My feed comes from my static site generator markata [14], a plugins all the way down static site generator written in python, made for customizing, lacking just about any and all docs so you are on your own. [15] Refere...

Today i got hit by this accessibility issue on my site. Low contrast links are not distiniquishable. I had not seen this error title before it was new to me, maybe I have bad memory or maybe it’s new to me.

screenshot-2024-12-18T02-25-53-014Z.png

I ended up dropping the background color of the site down a notch as I didn’t really care for the semi-dark brown anyways. I’m liking the near black bg-zinc-950 much better now.

screenshot-2024-12-18T02-45-53-807Z.png

Now I got that 100 A11y score in lighthouse.

screenshot-2024-12-18T03-02-18-934Z.png