First Post with Astro
After a year without blogging, let me continue to write weekly some infrastructure & architecture idea. My new blog technology using Astro. It’s more powerful & also cheaper / almost zero$ btw :‘)
Let me explain how I build this blog and how to maintain it.
Before it, we need System Design Interview as usual
Q: What's feature do you need for your blog?
Me: I need blog with bilingual language (English & Bahasa Indonesia), search, tagging, and also SEO friendly.
Q: What's the traffic you can provide?
Me: Maybe 10-100k traffic monthly.
Q: How much do you want to spend in your blog?
Me: I want cheapest under 20usd monthly.
Q: Do you have feature for running continous?
Me: Nope, no feature needed for automate / scheduling.
Q: How often are you to maintain this site?
Me: Maybe when I need to post new article only, don't want to confuse with infrastructure issue.
From this interview, we have some knowledge about features what I need to have & build. I need a blog system with 100k traffic, cost under 20usd, don’t have cron, and hassle-free about infrastructure. So, my purpose using static blog and better using serverless architecture.
What’s we need to do now?
- Framework / Programming tools
- Platform what we want to use
- Feature Priority
Framework
After searching and compare, I’ve 3 candidate frameworks (based on my opinion & experience).
| Framework Name | Nuxt3 | Qwik | Astro |
|---|---|---|---|
| Support Markdown | ✓ | ✓ | ✓ |
| Experience Before | ✓ | ✗ | ✗ |
| Performance | III | I | II |
| Configuration | II | III | I |
| Learning Curve | I | III | II |
| Hype in Early 2023 | III | I | II |
*My background is Backend Engineer and don’t have experience of ReactJS.
Choose Astro as the framework, just because I want to try it :)
Platform
For platform, I need simple manage, reliable, and the lowest cost.
| Platform | AWS Lambda | Vercel | DigitalOcean |
|---|---|---|---|
| Deployment | III | I | II |
| Maintain | III | I | II |
| Experience Before | ✓ | ✓ | ✗ |
| Performance | I | III | II |
| Pricing | II | I | III |
Why AWS Lambda is faster than others? They have a Singapore region & I lived in Southeast Asia.
Why is Vercel cheaper than others? For now, they’re free & backup with Cloudflare for caching.
Feature Priority
We’ve some features what’s needed. The next step is reorder priority.
| Feature | Urgent | Important |
|---|---|---|
| List Post | ✓ | ✓ |
| Blog Post | ✓ | ✓ |
| Bilingual | ✓ | |
| Search | ✓ | |
| Tagging | ✓ | |
| Like Count | ||
| Newest Post | ✓ | |
| Share Button | ✓ | |
| About Me | ✓ | |
| Social Menu | ✓ | |
| Comment | ||
| Subscribe Email |
From above, we can set better priority based on urgent & important point,
- List Post & Blog Post
- Social Menu
- Bilingual
- Share Button
- Newest Post
- About Me
- Search
- Tagging
- Like Count
- Subscribe Email
- Comment
That’s it, what I do right now. Next post I’ll update about detailed infrastructure first. Stay tuned guys!