Miniblog is a minimal blogging platform, written in object-oriented PHP, aimed primarily at developers. It is an ongoing exercise in environmentally-responsible software development: my aim is to create a blogging platform that provides only the features that are really needed, only those that bring real value.
To my mind, "minimal" means "only what's needed" or "enough". "Enough", though, depends upon the person or the people. In the context of Miniblog development, "enough" will vary according to my mood. Therefore, I think it's necessary to have something a little more concrete on hand, to help keep things on track. I think there are several, more objective requirements that can be held in mind and balanced:
- The software should help its owner maintain focus on the task in hand; in this case, the task is publishing articles.
- The website should be helpful to the end user, which means it should be easy to use and be easily consumed by search engines.
- The software should use only the resources it absolutely needs to—every computation costs electricity.
Help the Author Maintain Focus
I want to be focussed in a way that actually helps push me in the direction I need to go
I don't like to be pestered by my tools or to have to trudge through swathes of superfluous features to get to what I want. I don't want excuses to avoid doing what I should be getting on with: I want to be focussed in a way that actually helps push me in the direction I need to go.
I wanted a blogging platform because I wanted to be assisted in publishing articles on a website. In Miniblog, an article is a single file written—largely—in Markdown; you write your Markdown file and then pop it in a folder. Pretty good so far. I really like Markdown because it makes formatting text at least as easy as a WYSIWYG editor. Personally, I find there's something beautifully simple about writing in a stripped-down, plain-text editor—the same environment in which I code, in fact. But that also helps focus me on the task in hand. Now, when considering alterations, I will ask the question: "does this make writing articles any easier, really?".
Help the End User
I think Miniblog's job, therefore, should be to put the content front and centre, and it should do little to distract the user from it
It is possible to tune-out all the adverts and other party lights you see on many websites, but the experience is more pleasant when you don't have to. In the same way that an author might want help in writing articles, most end users will want to easily find what they need and then easily consume that information. Right? I think Miniblog's job, therefore, should be to put the content front and centre, and it should do little to distract the user from it. The website needn't be spartan, but I think features should aim to genuinely enhance the user's experience.
Use Resources Wisely
The easiest, and probably most effective, way to save energy is to stop doing stuff you don't need to
If a feature—either new or existing—doesn't meet either of the two preceding requirements then it's wasteful. So, if it doesn't bring real value then it doesn't belong: if it's only "cool" or "on trend" then it's superfluous. The easiest, and probably most effective, way to save energy is to stop doing stuff you don't need to. In general, I think technology should be considered only part of the equation. Often, the best and easiest-to-implement solutions are the most basic, and sometimes they involve only small changes in our behaviour. I have often been asked to implement new features to deal with problems that would be better solved by changing procedure in the human domain. In those cases, adding code takes time—costs money—and increases complexity, which can then, for example, be the cause of performance issues further down the line.