I’m blogging this because I find myself looking it up repeatedly. Every time I start a project, I eventually hit a point where I use the REPL quite a bit. Usually I want to use it from PyCharm’s python console. And I usually find myself manually typing 5 or 6 commands at the start of each session that
django-extensions would give me for free.
In part 1
and part 2
, we got the basic project workflow set up. Now it’s time to add some basic models and views.
In part 1
, I set up the project, a sensible
, tailwind, and live reloading along with some run targets for PyCharm. Now it’s time to finish up the housekeeping.
I wanted to try out some “modern” front-end development for a while, and I did. FastAPI is great. So is Svelte. But even though I found creating APIs that way to be a breeze, building a whole site that way felt much slower and heavier than using traditional server rendering. So I decided to give django a fair shake for a while, and I’m glad I did. Here’s how I currently like to get a site started with django, using Tailwind CSS for responsive layouts and styling, and mixing in alpine.js and HTMX to make the site feel reactive. I’m glad I gave the backend/frontend split an honest try, but this fits the way I think about sites better.
I feel like restarting the blog. Let’s see how long it sticks this time. My goal is at least 100 posts in the next 12 months.
About every two or three months I need to write a regular expression that’s complex enough I don’t get it correct on my first try. Then I search for this site
, and wish I’d just started writing my expression there. I hope that writing it down and posting it here will help me remember that next time.
For trying out new things, sometimes I want to make them accessible from the internet. I’ve got a small reverse proxy VPS on one of the cloud hosts
. This is how I currently set them up on a VM in my basement and expose them via that proxy. Writing out all the steps from install to accessibility makes this seem like a lot of work, but it isn’t hard and goes quickly.
My toy stock toolkit application is “feature complete” for now. I’m very happy with both the quality of the tooling and the ease of using it. Svelte combines well with Tailwind and lets me get things done on the front end more easily than I imagined. This post summarizes what I made along with what I’ve learned.
Part of the appeal of Smelte was Tailwind CSS integration. After going back and trying Smelte some more, I concluded that it’d be easier to use Tailwind directly, at the cost of giving up some very convenient widtgetry. The Smelte widgets aren’t comprehensive enough to use them all alone, and their customization of Tailwind makes it too hard to integrate things that rely on the vanilla utility classes. So here’s how I’m integrating.
I took a detour to try out the Smelte/Tailwind CSS UI gadgetry. I found lots to like about it, but it’s not the right thing for me right now.