Owning It · Matthias Ott
Owning your content and platform means true independence on the web. Why it matters more than ever for creators.
Matthias Ott – Web Design Engineer · matthiasott.com [1]
I can say I had the same kind of feelings when I first saw something called “Own Your Web” being run in Buttondown. I totally get it. It takes time and effort to build your own stuff, email sending is hard, not done right ends you in the spam folder. There is something about the name though that I think needs to set an example and self host [2] as much as it possibly can.
The changelog has covered this several times, do they need to go to the crazy lengths they do to run their site, no probably not, but it keeps them in the loop. They are using the tech they talk about in a very real and production critical way to run the show.
Cant wait to see more from ownyourweb.site
Note
This post is a thought [3]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://matthiasott.com/notes/owning-it
[2]: /self-host/
[3]: /thoughts/
Posts tagged: dev
All posts with the tag "dev"
291 posts
latest post 2026-05-09
Publishing rhythm
Realign
I just popped out a realign of the ol’ personal website. I only say realign as I didn’t rethink every single detail of the thing. I’d say probably 40% of the original HTML and CSS…
Chris Coyier · chriscoyier.net [1]
Chris Coyier had a small re-align on his site, some good nuggets in here.
I like the idea of having a photo of myself prominently on the site, so you know who you’re dealing with here.
I really like this after thinking about it and I think I am going to make sure I get my face back on my posts. I do have my 8bit style pixel art image of me that I use on social media, but no real picture.
I feel like a lot of people redesign their entire website when it’s time to update to the latest list of social networks and I’m no different. Once you touch it you gotta keep going.
I can totally relate to this, once you open the thing, you get the build tools greased up, and your confidence high that re-deploying isn’t going to mess something up, I tend to start digging in to other things.
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://chriscoyier.net/2025/01/03/realign/
[2]: /t...
About Harry Roberts – CSS Wizardry
csswizardry.com [1]
I’ve only recently learned what colophon means, and I really like to read through site that use it. If you don’t know its about how the site is built. I’ve always liked peeking under the hood of things to understand how they work, it’s what turned me towards an engineering degree.
I love how he mentions that he chose the name when he was 17 and he is stuck with it. I particularly like the name, it has something special to it. Hats off to you for doing something that has lasted so long for you. I fully understand though, I have projects that I made a year ago that I think why did I name it that. At the same time when I try to think of a name I end up with the I don’t have anything good and I’d rather build the thing so fuck it, its going to be what it is.
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://csswizardry.com/about/#section:colophon
[2]: /thoughts/
Own Your Web
Own Your Web is a newsletter by Matthias Ott about designing, building, creating, and publishing for and on the Web. Every other week, I send out an exclusive email full of actionable insights, bes...
buttondown.com [1]
I’m a sucker for good own your own shit on the web blogs, and Matthias Ott has a top notch one here. The archive has been a great read so far, I’ve discovered things like slashpages.net.
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://buttondown.com/ownyourweb
[2]: /thoughts/
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]
Note
This post is a thought [3]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://slashpages.net/
[2]: https://dropper.waylonwalker.com/api/file/ba4edf27-03d4-49ff-ab4e-712e9ab8acda.webp
[3]: /thoughts/
/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...
-
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.
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/
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...
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>
Note
This post is a thought [3]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://stackoverflow.com/questions/69456875/how-to-configure-base-url-for-all-requests-using-htmx
[2]: /htmx/
[3]: /thoughts/
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.
Note
This post is a thought [3]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://bsky.app/profile/addyosmani.bsky.social/post/3lei5jhkgdk2k
[2]: /htmx/
[3]: /thoughts/
-
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]
Note
This post is a thought [5]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: /fastapi/
[2]: #keep-routes-small
[3]: #deploy-early
[4]: https://youtu.be/XlnmN4BfCxw?si=ks1wvmgDyoQLgrv2&t=1093
[5]: /thoughts/
-
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.
Note
This post is a thought [6]. It’s a short note that I make
about someone else’s content online #thoughts
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
[6]: /thoughts/
-
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.
Note
This post is a thought [4]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: #tmux-default-leader
[2]: #type-crafts-setup
[3]: #selling-coffee-without-a-web-front-end
[4]: /thoughts/
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...
-
Reminder to tune in later, can’t watch now, but saw a link on Dave’s blog.
[1]
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://dropper.waylonwalker.com/api/file/ea6d4a9f-9abe-4853-9b5b-97335130d221.webp
[2]: /thoughts/
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.
[1]
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.
[2]
Now I got that 100 A11y score in lighthouse.
[3]
References:
[1]: https://dropper.waylonwalker.com/api/file/24b4e31f-60db-47b8-b67c-07c4d4b6fb71.webp
[2]: https://dropper.waylonwalker.com/api/file/8b4f2087-3f24-4212-ad00-74f294aff114.webp
[3]: https://dropper.waylonwalker.com/api/file/17497676-3730-4875-9e10-c6d121ba537a.webp
Add a healthcheck to your FastAPI app | Nic Payne
I'm building a few FastAPI apps to throw in docker and run on my homelab... I wanted to add healthchecks and here's a simple way to do it Make sure to
pype.dev [1]
Nice example of adding a healthcheck to fastapi [2], and integrating it with docker. Don’t forget to include curl in the install, nice touch.
Note
This post is a thought [3]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://pype.dev/add-a-healthcheck-to-your-fastapi-app
[2]: /fastapi/
[3]: /thoughts/
Hurl - Run and Test HTTP Requests
Hurl, run and test HTTP requests with plain text and curl. Hurl can run fast automated integration tests.
hurl.dev [1]
Hurl was mentioned by @gerhard [2] on the latest changelog and Friends [3]. Looks like a feature rich easy to use testing tool that is tested via what looks like a config file.
Hurl is a command line tool that runs HTTP requests defined in a simple plain text format.
It can chain requests, capture values and evaluate queries on headers and body response. Hurl is very versatile: it can be used for both fetching data and testing HTTP sessions.
Hurl makes it easy to work with HTML [4] content, REST / SOAP / GraphQL APIs, or any other XML / JSON based APIs.
Note
This post is a thought [5]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://hurl.dev/
[2]: https://gerhard.io/
[3]: https://www.youtube.com/watch?v=mvC7497CJJs&t=3001s
[4]: /html/
[5]: /thoughts/
External Link
X (formerly Twitter) · x.com [1]
These css anchors are crazy that you can do this with html [2] and not a bunch of js, probably requiring a library or framework.
[3]
Note
This post is a thought [4]. It’s a short note that I make
about someone else’s content online #thoughts
References:
[1]: https://x.com/wesbos/status/1856724739336859713
[2]: /html/
[3]: https://x.com/i/status/1856724739336859713
[4]: /thoughts/