I decided to start blogging two years ago. At that time I chose to use an existing blog framework. There are several on the market like , , , etc. I decided to go with Blogger at that time and I am quite satisfied. Especially Blogger and Wordpress are very good and I really recommend them since they both are easy to use with many functionalities and plugins. Another really really good thing is Blogger indexes very high at . I am actually not sure if that is only due to good , a good search engine or the fact that Google acquired Blogger some time ago and gives it some extra points when scoring the site for searches or if it just is a combo. More about that at some other time.
With Wohill we decided to do everything on our own! Sure, a framework like Blogger can provide many things but not everything. And there are a lot of things you would like to have your way when thinking about it. As we own the code and data all the way from backend to frontend (ok not quite true since it's located on a web hotel but almost...) we can do whatever we want to do, we can fulfill all of our wet web dreams!

There are almost no limitations which certainly is freedom and that is the reason to build and maintain your own blog software (besides the fun of it).
A blog is a mix of design, user-experience, functionality and good SEO-thinking. I focus mainly on functionality and SEO. This blog is built on , (and ), and (querying a -database). That's what you need to create a blog that can do most of the things you can think of. And lot's of that is thank's to the great capabilities of PHP. If the functionality is not already in the default library, someone else might have written some useful classes for you to use or you can just do it yourself.
A typical blog consists of a few typical elements when looking at it from a visitor's point of view:- A blog roll
- Links section
- Recent entries
- An archive of all earlier blog posts
-Categories
- RSS-feed
- About/presentation/profile
- An area for the content, the blog post
- Comment functionality
Some blogs have more functionality like:- Recent comments
- Widgets
- Client scripts
- Visitor stats
- Bookmarking
- Permalinks
- Search function
- More...
In my opinion a blog should at least contain the first list. So how do we build this?
We could do everything static, which means using only HTML, CSS and some JavaScript. But that is boring, ugly and so inefficient and has a very unpleasant 90's feeling about it. So the obvious choice is a dynamic solution where we choose to keep the design in one place and the data in another place. For this blog, the design is created using HTML and CSS and the data is stored in a mySQL-database to which data is added, updated and removed using PHP and SQL. The data is presented into the design using PHP and JavaScript.
But since we don't want to be blogging using an SQL-client or directly in the database we also need an administration interface - which the blogger(s) can use to create new posts and also to manage other things like categories, wallpapers etc. So we need an administration interface and a presentation interface that both communicates with the database to insert, update and remove data. This communication consists of a middle layer that is the core functionality of the blog.
To summarize we need to build the blog in different blocks:- Frontend
- An interface for the visitors (what you see)
- An administration interface (for the bloggers)
- Support functionality for validation, checks, notifications etc.(JavaScript or PHP)- Middleware, which works as the communication layer between the presentation and the data. This functionality either functions as servlets or as client functionality to get the data for example.
- Backend (the database that holds all the data, there are no stored procedures in this solution).
Each of these blocks can be divided in more detail but this is an abstract explanation however. Changes that we make to the site either becomes visible to visitors and in this case we modify the frontend. Sometimes we modify the middleware to for example get better performance or SEO etc. And sometimes the backend or database has to be modified as a consequence of changing the frontend or middleware. As you might understand we have full control everywhere (except of possible downtimes on the server).
This is what I do on Wohill and my blogging will be concentrated to these functionalities, new features, aspects, problems, solutions and so on regarding all of these areas when developing this blog, which hopefully will be interesting and come to use to other people. If not, one thing I have learned is that it will certainly come to use to the one that wrote it - working as a notebook or diary.
Please feel free to drop any questions, correct me or add suggestions.