If you want to be a writer, you must do two things above all others: read a lot and write a lot.
Hi, I’m Toan. I’ve rebuilt this blog five times and written three posts — so I’m starting with the first half: reading a lot.
Drag the drafts around. Tap a book to see what I’m reading.
Bookshelf
Read a lot, write a lot. Starting with the first one.
Reading habit · day —
- Reading
Plato và Con Thú Mỏ Vịt Bước Vào Quán Bar
Philosophy, explained through jokes.
- Reading
Frontend Unicorn
- Finished
Cryptocurrency Investing
- Up next
Sapiens
A brief history of humankind.
- Up next
Remote
Office not required.
- Up next
How to Live on 24 Hours a Day
A 1908 guide to making time for what matters.
Changelog · straight from git log
Four years of shipping everything except posts.
- build
v1 — Astro starter
The blog is born. Ships with giscus, so readers can comment on posts that don’t exist yet.
d1297a3init commit - build
v2 — Astro + Notion
Writing will be so much easier in Notion. That was the plan.
758aeabfeat: integrate w Notion - chore
Adds Tailwind
The empty pages are now beautifully styled.
7ff5607feat: support tailwind - chore
Upgrades Astro
Zero posts to migrate. Smoothest migration in history.
e147d1bfeat: upgrade astro version - build
v3 — switches to Astro
It was already Astro.
1ac83f3chore: change to astro - build
v4 — Next.js + Notion
v3 lived for 27 minutes.
0b0cb20change tech stack - post
Post #1 — How to use AbortController
It happened. An actual post.
- post
Post #2 — Closure
Two posts in one month. Unstoppable.
- chore
Comment system #2
Swaps giscus for utterances. Two posts, two comment systems.
90217ebfeat: comment with utteranc - post
Post #3 — New Journey, New …Me
Same afternoon: “chore: remove sponsor”. Then, silence.
- build
v5 — Next.js 16 + Three.js + a physics engine
Asked an AI to build it. Posts are now 3D, can be thrown around. Still 3 of them.
feat: posts are now 3D
By the numbers
- versions of this blog
- 5
- posts published
- 3
- posts per rebuild
- 0.6
- comment systems installed
- 2