I keep forgetting about the double gutter problem with nested containers. When
you put padding on a parent and the child also has padding, you get twice the
spacing you wanted.
The Problem # [1]
.container {
padding: 2rem;
}
.child {
padding: 2rem;
}
Now your content is 4rem from the edge. Not what I meant at all.
The Fix # [2]
Either remove padding from the parent or use box-sizing: border-box and plan
for it. I usually just drop the parent padding when I realize what I have done.
References:
[1]: #the-problem
[2]: #the-fix
Posts tagged: dev
All posts with the tag "dev"
291 posts
latest post 2026-05-09
Publishing rhythm
External Link
X (formerly Twitter) Ā· x.com [1]
I tried this flow [of running an opencode server on tailscale] on day one of getting opencode, I wanted to prompt from my phone while were were running lights at the theater. It kinda worked, but the ui was really bad on phone, hard to use and the experience overallāit felt buggy. Happy to see they are making improvements and it might now be ready for some real use.
https://dropper.waylonwalker.com/file/9065fcb2-5e40-479c-967e-498bc9bb6a4f.mp4
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: https://x.com/thdxr/status/2017691649384620057
[2]: /thoughts/
What Your Coding Tool Says About You
- open code - libre free as in beer and speech
- Copilot - corporate 9-5er
- Cursor - You sip on Philz coffee with your macbook
- Claude Code - Agentic Workflows or Bust
- Jetbrains - I didnāt know you wrote java
- Vim/neovim - definite neck beard
- VsCode - What else is there?
feat: add llms.txt endpoint for LLM-optimized documentation by quantizor Ā· Pull Request #2388 Ā· tailwindlabs/tailwindcss.com
Add /llms.txt endpoint that serves a concatenated, text-only version of all Tailwind CSS documentation pages optimized for Large Language Model consumption.
Extract text from MDX files, removing Jā¦
GitHub Ā· github.com [1]
Damn this one is getting some reach, Iāve seen it from Simon Willison [2] and Justin Searls [3] and t3.gg [4]. I feel for Adam, He has built a fantastic product that the world is running with, something we all needed. Something that everyone laughs at turns their nose up āppft I donāt need thatā the first time they see it, but once they try people get it, and a lot of them like it and keep it. But its something that no one really wants to pay for, no matter how big of products get built on it. As we see more and more features coming to css, its not stopping, the work will always be there. I really hope to see something happen to tailwind to keep it afloat. massive growth and revenue down 80% does not help.
Note
This post is a thought [5]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: http...
Yesterday I wrote about a way to do light mode screen recording [1] to
convert to light mode from dark mode with ffmpeg. I was wondering if it could
be done entirely on the front end for web applications. Turns out you can.
Iām sure there are limited wikis and site builders that donāt allow adding
style like this, but it works if you can.
<video
src="https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800"
controls
style="filter: invert(1) hue-rotate(180deg) contrast(1.2) saturate(1.1);"
>
</video>
0 deg hue rotate
90 deg hue rotate
180 deg hue rotate
270 deg hue rotate
References:
[1]: /light-mode-screen-recording/
Convert a video from dark mode to light mode with FFmpeg!
Here
cassidoo.co [1]
Converting video from dark mode to light mode after the fact is a pretty great idea, Iām surprised at how well it does. Its definitely not perfect, but looks really good.
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: https://cassidoo.co/post/ffmpeg-dark-light/
[2]: /thoughts/
I saw this tip from
Cassidoo [1]
and had to try it out for myself. I kicked on a
screen recording right from where my terminal
was, converted it, and it actually looks pretty
good.
ffmpeg \
-i screenrecording-2026-01-01_10-10-49.mp4 \
-vf "negate,hue=h=180,eq=contrast=1.2:saturation=1.1" \
screenrecording-2026-01-01_10-10-49-light.mp4
Your browser does not support the video tag. [2]
Dark Mode
Your browser does not support the video tag. [3]
Light Mode
There are a few unsettling things about it, but
overall I feel like it was a success.
References:
[1]: https://cassidoo.co/post/ffmpeg-dark-light/
[2]: https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4
[3]: https://dropper.waylonwalker.com/file/de4e3378-6df2-45b1-84d5-0cc773ceb3c5.mp4
-
Yeah thereās some basics, you know things you might expect like using standard error and standard out correctly. One thing Iāll say on that because I think this is commonly misunderstood, standard error is not for errors, itās for any information that isnāt part of the normal output. So you know often times thatās warnings and errors, but it might just be progress information. You know anytime that you just need to have something go to the user thatās what itās there for." (6:15 - 6:42)
Iāve definitely done this sin in my own tooling before, and it does make things harder to use. I think I still take err/out at face value. I really like the translation Jeff gave here, one is for normal output, i.e. what the user asked for and the other is extra information. So if I wanted to list something and pipe it into something else, stdout only captures the list, thats it. if you have a bunch of information about config warnings, showing environment, are you sure questions, none of that is captured.
Note
This post is a thought [1]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: /thoughts/
āYou should never build a CMSā | Sanity
Lee Robinson migrated cursor.com off Sanity. He made good points. Here's what he missed.
Sanity.io Ā· sanity.io [1]
Such a good breakdown of the leerob article, that is hitting everywhere right now. Feels like sanity was just a bit late to getting things right and it would have just worked for them how leerob was trying to use it, but MCP sucked so he jumped.
Reading their loose descriptions of a CMS, its an interesting realization to realize Iām rolling my own cms. I kinda feel like theres a few inspiration features to take from here, but I have no regrets. As a developer I like being able to build my own tools, I like being able to search and edit from nvim, and not have to write GROQ queries, and transforms. There were some really good points here that as I get more and more content on my personal site, I do kinda feel it. Iām surprised there is not more tooling that does some of these things for piles of markdown.
pinning this to re-read later, feels like a lot of good tidbits here.
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: https://www.sanity.io/...
-
It really feels like M$ is coming down hard on GH lately to make some unfavorable decisions for users. Maybe there is good reason for all of these changes from a business perspective, I canāt judge that. But right now there are some really great alternatives out there. Iām so grateful for what forgejo and gittea offer, and at the same time seeing the community get split up from GH is sad.
Note
This post is a thought [1]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: /thoughts/
Iāve been using this one for awhile now, I have a post type that I only edit
from my phone, but I have all the post numbered. I set up a template in
obsidian for using templater, the template goes right in the static site repo,
I point templater to the templates directory and this has been working pretty
seamlessly for awhile.
---
date: <% tp.date.now("YYYY-MM-DD HH:mm:ss") %>
templateKey: myposttype
published: true
tags:
- myposttype
<%*
const folder = "pages/myposttype";
// get all files in the vault, keep only those inside the folder
const files = app.vault.getFiles().filter(f => f.path.startsWith(folder + "/"));
// extract numeric suffixes from filenames like myposttype-123.md
const nums = files.map(f => {
const m = f.basename.match(/^myposttype-(\d+)$/);
return m ? parseInt(m[1], 10) : null;
}).filter(n => n !== null);
// next number (start at 1 if none exist)
const next = (nums.length ? Math.max(...nums) : 0) + 1;
// include the .md extension when moving
const newPath = `${folder}/myposttype-${next}`;
await tp.file.move(newPath);
%>
---
I found snow-fall component from
zachleat [1], and its beautiful⦠to
me. I like the way it looks, its simple and whimsical.
Install # [2]
There is an npm package @zachleat/snow-fall if thatās your thing. I like
vendoring in small things like this.
curl -o static/snow-fall.js https://raw.githubusercontent.com/zachleat/snow-fall/refs/heads/main/snow-fall.js
I generally save it in my justfile so that I remember how I got it and how to
updateā¦. yaya I could use npm, but I donāt for no build sites.
get-snowfall:
curl -o static/snow-fall.js https://raw.githubusercontent.com/zachleat/snow-fall/refs/heads/main/snow-fall.js
Usage # [3]
Now add the component to your page.
<!-- This belongs somewhere inside <head> -->
<script type="module" src="snow-fall.js"></script> <!-- Adjust the src to your path -->
<!-- This belongs somewhere inside <body> -->
<!-- Anything before will be below the snow. -->
<snow-fall></snow-fall>
<!-- Anything after will show above the snow. -->
References:
[1]: https://www.zachleat.com/web/snow-fall/
[2]: #install
[3]: #usage
snow-fall Web Componentāzachleat.com
A post by Zach Leatherman (zachleat)
Zach Leatherman Ā· zachleat.com [1]
This is a very fun way to add some whimsy to your site, added it to mine immediately when I saw it. This is what digital gardens are for, Fun, entertainment, and self-exxpression.
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: https://www.zachleat.com/web/snow-fall/
[2]: /thoughts/
2025-11-27 Notes | Nic Payne
yesterday: [[2025-11-26-notes]] Big Changes Got my workspaces script in working order It's not quite configurable yet This will allow an easy way to setup
pype.dev [1]
Nic is also building out a similar workspaces script. This feels like such a great thing to have ai work on fully customized tools for your personal workflow. Also Nice shout out!
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: https://pype.dev/2025-11-27-notes/
[2]: /thoughts/
FastAPI [1].">Starlette has a head request that works right along side your get requests.
This morning I fiddled around with custom routes for GET and HEAD, but had
to manually set some things about the file, and was still missing e-tag in
the end. Turns out as a developer you can just [2] add a head route to
your get routes and starlette will strip the content for you, while
preserving all of those good headers that fastapi FileResponse created
automatically for you.
from fastapi import APIRouter
from fastapi.response import FileResponse
from fastapi import Request
from pathlib import Path
router = APIRouter()
@router.get("/file/{filename}")
@router.head("/file/{filename}")
async def get_file(filename: str, request: Request,):
headers = {
"Cache-Control": "no-cache, no-store, must-revalidate",
}
from pathlib import Path
filename = Path(f"data/{filename}")
if not filename.exists():
raise HTTPException(status_code=404, detail="File not found")
return FileResponse(filename, headers=headers)
Here is an example of the response with curl.
⯠curl -I -L "http://localhost:8100/api/file/e5523925-1565-454c-bab3-c70c4deabc83.webp?width=250"
HTTP/1.1 200 OK
date: Wed, 22 Oct 202...
-
This is super cool, thanks to Brodie for reading me this content as I do household chores. lowtech magazine [1] is a website ran completely on solar power with only enough battery backup to cover most days. Adding enough to cover all days would increase its carbon footprint and negate the carbon offset of the solar panels it runs on.
Itās fascinating to see a web server running completely off grid in a close power system. These interesting websites are fascinating keep em coming Brodie.
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: https://solar.lowtechmagazine.com/
[2]: /thoughts/
Litewind
Litewind is Tailwind without the build step
litewindcss.com [1]
This is a sick no-build version of tailwind. I have a couple of projects that the build step of tailwind is cumbersome on, mostly because they are for non-js devs. Some are for backend python devs, some are for folks that mostly want markdown with some styles. This is a perfect no-build tailwind alternative.
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: https://litewindcss.com/
[2]: /thoughts/
Running Software on Software Youāve Never Run
Writing about the big beautiful mess that is making things for the world wide web.
blog.jim-nielsen.com [1]
Running software applications in production today is crazy. One point release opens up for supply chain attacks. Whatās crazier is not running your production applications without a lock file, potentially running dependencies youāve never ran before for the first time in prod.
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: https://blog.jim-nielsen.com/2025/run-software-on-software-youve-never-run/
[2]: /thoughts/
Why Make a Website in 2025
Inspired by
Jim [1] and
Dave [2]
Itās Fun # [3]
If itās not something that you enjoy, you might as well move on there are far
better ways to spend your time in 2025. Only the weirdos read this shit
anymore, the masses have long moved on to curated social media feeds, and on to
chatting with llms. I enjoy spending some time in the digital garden every
once in awhile tweaking templates, creating markata [4] plugins to do
interesting things. I enjoy expressing my thoughts, or at least shouting them
into the ether.
Iāll be the first to admit that I often go to an llm for first pass at many
things that I could look up in a guide or š² the docs.
I enjoy reading others # [5]
This year I have made extra effort to add more and more people into my
[[reader]]. I enjoy reading content from people I chose to follow and can
remove whenever I want. I enjoy reading actual human thoughts and not ai
generated content all day.
I even will create Thoughts [6] based on these posts that I find inter...