I've been doing WebDev with PowerShell for a while now. I find it a lot of fun. I'm somewhat obsessed with making things easy in PowerShell and trying to make development fun.
Cloudflare Tunnel changed local integration testing for me because it gave local services stable HTTPS names that behave like the real app boundary.
Webhooks feel hard locally because you are debugging two machines, a public URL, raw request bytes, signatures, retries, and your own handler at the same time.
A practical debugging model for browser security features that look like broken code: CORS, SameSite cookies, mixed content, CSP, iframe permissions, and isolation headers.
CORS errors usually mean the browser is enforcing the API contract your server declared. Fix the contract instead of turning the check off.
Browsers enforce useful security rules, but your backend still has to authenticate, authorize, validate, rate limit, and reject direct API calls.
It's Friday. Let's have some Fun! Let's write fun servers in PowerShell. About a week ago, I released Fun. It's a fun functional server in PowerShell.
How to publish a Google OKF knowledge bundle using 11ty and Nunjucks templates, with full content, discovery signposting and bot tracking via Cloudflare and Google Sheets.
Walkthrough of the techniques used in a fully functional Todo app built using only HTML and CSS
Mirroring a static Hugo blog onto ATProto with standard.site and Sequoia, plus the GitHub Actions wiring that republishes the records on every push without any manual steps.
I wrote a whole post about two-way standard.site verification. One of the two directions had been returning a 404 in production the entire time.
How I handle static SEO meta tags, canonical URLs, Open Graph tags, and prerendered HTML for Vite and Vue SPAs without adding SSR.
My practical Kamal vs Coolify comparison for solo SaaS apps: when I prefer one-command deploys, when a dashboard helps, and why I use Kamal with Hetzner.
I've loved Markdown since the day it was a Daring Fireball post. It's a simple rich text format that gets the job done, and it's used everywhere. Markdown is supported out of the box on PowerShell 6+, using the ConvertFrom-Markdown command.
Replit and browser app builders are fine for sketches. If the app matters, I want source code, a normal repo, terminal agents, and boring deployment.
The surveillance-capitalism business model that defines the Internet today is only going to get more imposing. The vast majority of our online requests today are serviced and logged by centralized infrastructure - even more centralized than what we probably expect. While our collective hivemind takes rightful pride in the successful pushes that have improved this...
My SaaS hosting cost comparison for Hetzner, Vercel, and Render: real numbers from running production apps on Hetzner VPS servers with Kamal and PostgreSQL.
Tabellen i «Generelle krav til domenenavnet - hva kan det søkes om?» er litt underlig formatert når den er satt i to liksom-kolonner. Jeg kunne tenkt meg at den ble formatert mer på følgende vis: Bokstav Navn på bokstav Unicode áa med akutt aksent 0x00E1 àa med gravis-aksent 0x00E0 äa med omlyd 0x00E4 čc med...
A reference page for making stuff using Bluesky's public API.
A summary of interesting projects in the ATmosphere. Things online built on the AT Protocol, and other information surrounding it.
Someone on Reddit asked about deploying a custom vibe-coded app for work, installed on a local server. They could not code their way through problems,
No passwords. No separate registration form. No "confirm your email" step after sign up. The user enters an email address, gets a link, clicks it, and
Why I self-host my SaaS apps on Hetzner with Kamal: lower hosting costs, more control, local PostgreSQL performance, and simpler deployment in 2026.
How I use Terraform with Kamal 2 to provision a Hetzner server, configure DNS, and deploy small SaaS apps without paying for a separate PaaS per project.
An in-browser chat widget running Google's Gemma 4 E2B via WebGPU, primed with all the content from this site so you can ask it questions about me.
Push-to-deploy has been a solved problem for a while. I used Heroku years ago and Render for the past 2 years — both handle deployment well. But I
Publishing the OxCaml Labs year-one review, POSSE and AI content disclosure for the web, adopting the geo-embeddings Zarr convention for TESSERA, action PROPL at PLDI, the death of the grant application, and NASA's new swathe lidar mission.
At the beginning of February, I wrote about my recent adventures in the ATmosphere. At the time of writing, I was working on adding standard.site support to this website. In the meanwhile, I've finished it and my blog should be fully compliant with the specification.
A 4-input, 3-hidden, 2-output mini perceptron that solves diagonal XOR---with an interactive 3D digital twin to play with.
Every post on this blog now has a persistent AT-URI via the standard.site spec---more durable than bare URLs, less overhead than DOIs.
Do people actually follow old URLs to your site? Set up UTM tracking on your 301 redirects to find out. Here's how I did it with Fathom and GA4.
How to sort out the order of shortcut keystrokes in Fathom Analytics to suit haow you want them to work
Since FOSDEM, I've gone down the rabbit hole of the world of the AT Protocol - or the ATmosphere, as some would say. I've learned about a lot of cool projects, tried some of them, and made my website also a bit more atmospheric. As such, I decided it was worth sharing!
Yahoo launched an AI search tool that does something different: inline links that flow with the text like actual hyperlinks. It feels like what search would look like if it was built around AI from the start, but still cared about sending you places.
When building frontend apps, getting the UI into different states is tricky because local APIs are fast and rarely fail. You want to see what happens
Recently, I came across two things I would call "Easter Eggs" in Google. The first happened while I was researching Cordyceps to add some facts to my review of Last of Us. I noticed that Google lets you "infect" the search results with the mushroom from the show. https://www.youtube.com/watch?v=SejPgNqyTI A few days later, I googled "six seven". I guess this is what parents do these days when they try to understand their kids slang. While keying it into the search field, I tried to remember the most strange jargon we used 30 years ago. I couldn't find much other than "cool", which has been in my bubble like forever, at least compared to how quickly these things seem to change nowadays. Then the Google results appeared and started to shake like this in front of my eyes. Again, I was surprised and smiled. Why do I love this? In the software industry, we call these things Easter Eggs), and I have always been attracted to them. In fact, 20 years ago, I created an Easter Egg myself, and…