As just about every developer out there, I want to build my own blogging engine. Not just for the learning experience but also for my personal use and because the vision I have of this blog does not match any open source systems available out there right now. I decided that it will become an Open Source project hosted on Github or wherever (part by part) so that everyone can follow along, learn, and use the engine. Let’s take the first few steps so that we can define what it will do, what technology will be used, and what we want from it.
Let’s define a stack. I currently work with C# but I’m a huge proponent of PHP (since I’ve used it so much) and I want to get more into framework-style coding as well as OOP. I have the knowledge but I have little experience with true MVC. I decided to build my own. I decided to go with the usual PHP stack as far as back-end goes:
As far as front-end goes, I don’t want to get too fancy. I do use Knockout right now but it’s not my best tool. Here’s for the front-end:
- LESS or SASS based on a ground-up built framework (not my usual Tseczka-flavored CSS)
- possibly another library to help me out with whatever else
These are pretty standard tools, very “beginner” to be honest but they will do. By the end of this series, you’ll know (and I’ll know) how to do some really cool stuff.
What’s it going to be? I call this project BookBlog, it’s basically a blogging engine geared toward writers of all kinds, be it bloggers that require a simple interface and output, novel writers that want to create an online edition (or simply write from wherever), poetry writers, non-fiction programmer writers (with proper syntax highlight ), and so on. It’s going to be simple, clean, and beautiful.
So, why not just use WordPress with a minimalist theme? It’s not the same. WordPress is a CMS platform by now, a full-pledged framework that allows fast development of beautiful robust sites. I don’t want that. I want a few small files tweaked to perfection with less overhead, with less complication, and with less features. Whatever features I want, I want them built-in, not via extraneous plugins, hacks and so on.
Let’s summarize the main components to this “application”. We’ll need to know what exactly will be involved so we can prepare for it ahead. The vision WILL change but there are some main components I don’t want to give up:
- Back-End interface for settings such as: chapter setup, permalinks, adding static pages beyond the main “story” so to speak
- Front-End interface with on-page editing. No more going back to an editor. You land on a page, and you can add custom CSS, all the SEO information, rearrange the page (add after page 55, before 45 etc.), and so on.
- Export capability to doc, epub, and pdf similar to how smashwords does it
Doesn’t sound too hard, right? Well, I guess it’s not. The biggest challenge will be implementing the logic behind the pages. I’m hoping to have general settings such as “novel” where text will reflow from section to section (not very SEO-friendly) thus you can only move individual “sections” and not pages, this will set a precedent for permalinks as well (chapter/section/pagenumber instead of just pagenumber that would mess up the entire book). Another setting “poetry” will allow page-by-page sorting, same for blogging.