How I use the just command runner to create a simple, unified interface for running, testing, linting, and formatting all my projects, regardless of the tech stack.
I maintain a handful of Python packages. Here’s how I automate creating new releases, both on PyPI and GitHub.
A dive into why Django's DATETIME_FORMAT setting seems to do nothing, and how to actually force the 24-hour clock in the admin, even when your locale says otherwise.
Let’s solve the challenge of serving media files for your Coolified Django site.
How I moved my Django projects from a manual server setup to Coolify for easier, zero-downtime deployments.
I'm a big fan of the django-tailwind-cli package, but I ran into problems deploying it to production. Here’s how to make sure you cache-bust tailwind.css.
A robust, two-part solution for showing dates and times in your visitor’s local timezone, handling the tricky first-visit problem.
Ditch the complex SPA. Learn how to build modern, server-rendered Django apps using Alpine AJAX and the power of hypermedia.
Webservers get hit by hundreds of thousands of requests to random (non-existing) PHP files. Previously I dealt with this on the server level, now I’m doing it directly within CloudFlare.
So, like me you’ve decided to switch from Poetry to uv, and now you’re wondering how to actually migrate your pyproject.toml file? You’ve come to the right place!
Solving problems by putting writable reactive stores in Svelte’s context.
I wanted to use a different MEDIA_URL for one of our FileField instances. It was very easy to do!
The best feature of Heroku is the ability to just push a branch, and it gets deployed. How do we replicate a workflow like that on our own server?
Paypal’s documentation only shows a JavaScript example. How do you validate the webhooks in Python though?
Django 5.1 adds related field lookup to the model admin’s list_display, but with an annoying quirk. Let’s fix that!
Extending Django’s autocomplete widget with a new action which copies the linked user’s email address to the clipboard.
Webservers get hit by hundreds of thousands of requests to random (non-existing) PHP files. What can we do about this?
How do you delete baskets belonging to anonymous users when their sessions expire? It wasn't quite as simple as I thought.
Let's add custom actions to Django's admin site - but to the change form, not the list view.
I recently had to set up a brand new server for a website running on SvelteKit and its API running on Django. I am a software developer and setting up servers and hosting isn't something I normally do, so I followed a bunch of different tutorials. In this article I want to combine all these tutorials, mostly for future me, but hopefully you'll find it useful as well.
After adding subscriptions in iOS via Apple’s Storekit, I have now also added subscriptions to the web client of Critical Notes, using Stripe (even though they have some serious drawbacks at the moment). Since it was a bit of a puzzle to get it...
I've recently added subscriptions to my Critical Notes iOS app, using Apple's StoreKit. Here is how I hooked it all up to Firestore including server-side receipt validation.
In an app I’m currently building, the client wants an Airplay button in the navigation bar, with a nice background like so: After trying some things, the solution seems to be to loop over the subviews. It feels a bit hacky, but works perfectly:...
For a project I needed to create a Django model from a list of fields that were defined somewhere else. It took me hours to get this to work, so to save you the time, here is the solution: fields = ['field_a', 'field_b', 'field_c'] # the base model...