The previous version of this blog was getting increasingly hard to maintain. Because of this it was getting outdated very fast, to the point where I did not dare to deploy any new changes.
So, instead of fixing the problem, I decided to build a new blog from scratch.
Goals
This new version would be better than ever.
It should be:
So how were these goals accomplished? I’ll give a brief outline, but will give more details in upcoming articles.
Easy to maintain
Cutting back on the number of dependencies is the main strategy in making this project easier to maintain. Fewer dependencies means fewer updates, fewer breaking changes and thus less work.
Decoupling from Laravel Framework has been another strategy. By using a layered architecture it is now more clear what code is “application code” and what is “framework code”. When the next big update of Laravel comes around, it should be way easier to update the now isolated pieces of framework-related code.
Fast
This blog is fast because of 2 reasons:
- It is small in size. The homepage and all its assets currently total just under 17kB. This is as 94% reduction compared to the previous 312 kB.
- All HTML output is cached. When the content of an article is updated, or a comment is posted, this cache is automatically invalidated.
Privacy friendly
No more tracking. No more Google Tag Manager, Google Analytics or Google Fonts.
If I don’t want to be tracked while browsing, then I should not do the same to visitors of my own websites.
Funny enough this helps in maintainability, reduces asset size and made it possible to use a stricter Content Security Policy.
Continue reading
- Check out the source code on Github.