Over the past couple of days, I've been reworking some code with a view to packaging the (b)log-In system such that it could be downloaded and used by others — not as simple as it sounds considering how it has developed organically with tweaks and fixes being thrown in all over the place.
The first step was to create a setup file that prompts for required details: your name, base URL and email address through to MySQL database name, accounts (one for reading only and one to write) and the desired table prefix. Once these details are submitted the config file is automatically generated and database tables created. I'm looking at how I can streamline this further and require the absolute minimum prerequisites.
Because the system is specifically tailored to my own wants and needs I've been further automating things (including the creation of additional constants in the config file) so that it can be used almost immediately after set up with minimal user intervention. Certain things like populating the About page will have to be done manually but I could provide a way to do this via the setup process.
One thing I've deliberately tried to avoid is an admin area but, perhaps, it's unavoidable that specific things will require some form of interface — changing your avatar or email address, populating and changing that 'about' text, etc. Going that route would likely require my redesigning the options table in the database.
Then comes the "fun" bit: cleaning up the code. As I've adjusted layouts sections of the code have become littered with inline CSS which I really want/need to centralise and there are likely reusable elements that can be called rather than being located in multiple places. I've already created a footer file rather than have the same code at the end of every public-facing page. I would also need to extricate the journal and muse-letter elements or maybe even create variants with different options.
Whether anyone else would actually want to use this system is another matter, the way it behaves is very specific to my needs and may not appeal to others. It's a different take on how a blog should look and operate that has evolved over a number of years, first on WordPress and now as this standalone system.
In any event, the experience of building this has been invaluable. I will likely build out a basic admin page for a few core details — just for my own benefit — and see how things progress. No matter what happens, I'm incredibly proud of what I've achieved so far and want this to remain my platform of choice for the foreseeable future. It will only get better and better.