Many developers turn their noses up at PHP, but I have a soft spot for it. For me, it's the most approachable programming language by far. It feels intuitive in a way no other languages do, and it makes it possible to cobble together a working application with just a handful of lines of code. So whenever I can't find a tool for a specific job, I try to build one myself.
The latest project of mine is a case in point. I was looking for a simple application for keeping a photographic diary, and I was sure that I'd be able to find an open-source tool for that. I searched high and low, but I came back empty-handed. Sure, there are plenty of static website generators, but I'd prefer something that doesn't require me to perform the write-generate-upload dance every time I want to post a quick update. And I need something that I can use not only to maintain a simple diary, but also store notes, manage tasks, and draft articles -- all this without getting bogged down by configuring templates, defining categories, and tweaking settings. And because I want most of my content to be private, I should be able to protect access to it with a password.
Since I couldn't find anything that fits my needs, I decided to build my own thing. I named the resulting jumble of PHP code micro.sth and made it public on GitLab. A fair warning, micro.sth is basic, and it's still rough around the edges. It can handle JPEG image files only, there is no search functionality, no permalinks, no sharing, and no RSS support. The application's simplicity is actually by design. I don't need all the distracting embellishments.
micro.sth does have some redeeming qualities, though. The entire content is stored in plain text files. The application supports Markdown and offers basic password protection. When you upload a photo, micro.sth automatically resizes it and conveniently generates a Markdown code ready to be inserted into the text. If you want to display random quotes, add them to the random.md file. Put the file into the micro.sth directory, and the app will display a random line from the file at the top of the main page. micro.sth also supports Gravatar, so you can use your cheery face in the header.
But micro.sth's raison d'être is the support for pages. You can create as many pages as you need and use them in any way you like. For example, you can have separate pages for individual long-form articles. If you plan to use micro.sth for microblogging, you can create a page for that, too. You can also set up a page for random notes, tasks, and pretty much anything else. If you choose to protect access to your micro.sth instance with a password, you can still make certain pages public by publishing them.
As micro.sth is not overloaded with features, there is no learning curve. There are only several self-explanatory buttons to master. Being a regular PHP application, micro.sth happily runs on any web server or host, as long as it supports PHP. The only requirement is the PHP-GD library, but it's installed by default on most web hosts.
A word of caution. While micro.sth provides a basic password protection mechanism, it's indeed basic. It may deter a casual passer-by, but it won't keep determined hackers away.
micro.sth doesn't force you into a specific usage scenario or content type. It simply provides you with an unlimited number of pages, which you can use in any way you like. To give you an example, here is how I use micro.sth.
And in case you wonder, this very page is served to you by micro.sth.