The site, its tooling and design are still all works-in-progress, but the goals will remain the same unless something major changes.
This site exists so I can host my code in a way that’s publically available with minimal requirements. I have a personal server on my home network that hosts this site (and most of the rest of my stuff), and the design goals of this code largely come from that requirement.
Some non-goals: I don’t need or want social features. This is not someplace for me to try to coordinate with people, this is a public repository and nothing more. If I want the social features I’ll use github or an equivalent.
Second, I don’t want dependence on any particular scm. I use git for almost all
of my personal projects at the moment, but I have no desire to be stuck using
it for everything I want to host. The site doesn’t need scm-dependent
functionality, and if I want it, it should be an optional extension, not a
requirement. I need this so people can see and download my stuff, and if they
want the history they can git clone
.
First constraint is to make this static. This comes both from a principled perspective and from a very real constraint of the hardware. The hardware is easier to explain: I’m running this on a fit-PC3, which is a fairly resource-constrained piece of hardware. It’s no raspberry pi, but it’s also fairly low-power for everything I ask it to do. As such, the load anything adds needs to be minimal, especially in runtime. Anything with a runtime cost is pretty much a no-go right off the bat.
The principled reason is a bit more involved to explain. It honestly just bothers me that most everything “web” wastes so much energy doing things most people will never care about. I spent some time before starting this looking around at self-hosting of code, and almost everything out there was either trying to be github or coupled too tightly to things I did not want.
As such, the goals with the tooling for this site are to be zero runtime, loosely coupled, and easily extended and themed. More information on the tooling will be available once I split it out from the site itself.
The UI design is based largely off of github’s look-and-feel. After looking around, it’s the UI I like best for browsing the code. A large part of that may just be comfort level, but it’s still what I went with. That said, the UI all comes in with some templates and css, so change is pretty trivial.
As a final note, I very pointedly not a UI designer nor a web developer, so the front-end html and css may be suboptimal or downright janky and I just wouldn’t know. The frontend is best-effort from a guy who has learned it ad-hoc and as-needed, so caveat lector.