greywolve
Hey guys,
I do web programming in my day job in Clojure (a LISP that runs on the JVM). I also have a little background in low level programming, mostly from messing around with microcontrollers, and a course in C at university. Web programming has a bad reputation, and for good reason - it's generally an inefficient, overly complex mess.
I was wondering how you approach web development for the Handmade site. Part of my interest in the Handmade community is how to take these ideas and apply them to web development / business applications; essentially how to do a better job, despite the horribleness.
So my questions are:
1) What is the site written in on the backend? What database are you using?
2) Do you need / want help? I'm happy to fix bugs, and add features, when I have time.
Hi Oliver,
The site's built in Python using a tiny bit from Django, backed by PostgreSQL. It's not a Django site in the sense that most Django sites are. Anyway, long story. After we hit v1, I'll probably end up writing a long form blog post series about the site backend to finish what I started with the discussion on how the 'unread markers' work.
Next year Miblo will take over maintenance from me, adding some more features we have planned post-v1. At that point I'll start on the rewrite to C and turn it into a codebase we can comfortably build on for the next two decades. That'll be built from the ground up with a certain technology in mind that'll help improve security further, but which also has a beneficial side effect on speed as a side effect. That's normally an either/or consideration, but we're doing a complete rethink of the way sites are built and coming at this from a rather unusual angle.
It's not the kind of 'new' that's the same as what came before with new window dressing as is generally the case in this field, but something built from the ground up with security in mind as the first pillar, making it hard for the programmer to introduce a problem by accident. Such measures would normally slow things down, but by leaning into it, we can do things more efficiently as well. I'm being purposefully vague about this until we have a working prototype of this technology, but the general idea behind it works out on paper.
Once work on v2 is underway I might very well start a new blog series on the underpinnings of the C version, because we will end up opening that source (under MIT or BSD) once it's feature complete. In case anyone questions whether it's a good idea to write a website in C, I'd ask them to consider what their safe language of choice is implemented in. ;-)
In any event, as to your other question, adding more people at this point would slow us down. We have a whole lot of volunteers to help out should we need it. I'll happily add your name to the list.
Best regards,
Jeroen