cat << EOF > Looking back at linkblog.io
I recently announced the end of linkblog.io. I go into a bit of detail in this short indie hackers discussion thread. I wanted to do a quick retrospective to have something to refer to in future.
I’ve been running a linkblog for close to 10 years. In a lot of ways all the links I’ve posted chronicle my web development journey, but also just life in general. I found it a very useful tool and still do to this day. Somewhere along the way I decided to build a linkblogging SaaS product.
These were the high level goals of the system that emerged over time:
- Robust implemenation that does what it was designed to do and does it well
- Have a minimalist user interface, emphasis on text content
- Easily scalable to handle growth
- Deployable to standard VPS hosting
- Fault tolerant and able to have zero downtime deploys
- Resilient so that any server could be easily rebuilt from scratch using backups where necessary
From a technical standpoint I achieved all of these goals.
I wrote about Robust NodeJS Architectures earlier in the month, and this describes very closely what the linkblog.io infrastructure looked like.
Some other application level features and capabilities that are worth mentioning:
- MongoDB sessions support
- Redis sessions support
- Rate limiting using Redis
- JWT API authentication
- API Caching using Redis
- Backend job scheduling using Agenda
- Backend message queues using MongoDB
- Custom domains
- SCA compliant billing system (Stripe + webhooks)
- Production and staging environments
Implemented using bash scripts:
- Repeatable server provisioning system
- Application build and deploy system
- Backup and restore of certificates and databases
- Log file backup and cleanup
- Certificate renewal
Most of these features were added as a necessity in response to real world events that happened during development.
Though the UI is quite minimalist and mostly text based, there was quite a lot going on underneath. The system could have been quite easily and safely extended.
Finally here are some screenshots of the UI:
Landing Page - Header
Landing Page - Description
Landing Page - Features
Landing Page Latest News
User Linkblog Page
User Post Message Page
User Archives Page
User Search Page
User Edit Mode Page
FAQ Page
User Billing Page - Fresh Load
User Billing Page - Add or Update Card Extended
User Profile Page
User RSS Feed
That was linkblog.io!
EOF