my personal opinion and habit :
1) Login and Register. (Activation)
Every register user status set to 'Pending',
System send activation link with ?id=system generated serial number
After user click activation link, update status to 'OK'
2) Storing of user account information and blog articles
Prefer use database to store info.
No encrypt because you may need to search articles.
3) Formatting of blog articles
Markdown. If possible, use standard markdown, easier for future extension / upgrade.
4) Generating blog page programmatically
5) Generating table of content programmatically
6) Design of user's personalized homepage
You may draft your design, how you want to make it work before coding.
I have had good progress in web programming