When I decided to write more about everything I encountered in my daily work, I began to design the website again. I’ve redesigned it several times to make it more comfortable for readers. For example, I introduced the TailwindCSS typography plugin to make post-typography more specialized (hopefully). I chose fonts carefully to make reading content easier. I added customized MDX components for better presenting the important takeaways.
The dynamic blogs, a concept I came up with to differentiate them from my regular blogs, has no difference in rendering from the regular ones. So I’m not implementing a new user interface. My current blog setups are good enough for text and images.
But I do want to make a change to my blog system, which is the publishing pipeline. For several years, I’ve been writing and publishing blogs in the following steps:
- Write a draft in markdown editors or Google Docs.
- Composing the draft with MDX components to emphasize some important notes, like the “Callout” effect or the “Dialog” effect. I need to add extra components in some posts, such as the keyboard button style I used in a recent post.
- Add the post to my blog’s git repository and start a development build to see if there are any faults in the page.
- Try building with Server-Side-Rendering. SSR should greatly improve the speed of loading. This is the step where bugs in third-party NPM modules show up. Try to fix the bug.
- If everything is okay, commit the change and push it to GitHub. The CI/CD will automatically rebuild my entire website and distribute it to CDN worldwide.
Do you see the problem? The workflow is too complex. It takes days to go from writing the first line to the final publication. This kept pushing me away from writing a new article because I subconsciously felt it was a willpower-sapping thing to do. ☹️
Sometimes I only want to open an editor and input some words. That is the spirit of blogging!
My blog system goes through many updates, most designed for the reading experience. But this time, I want to redesign the publishing pipeline, that is, the writing experience. I want to massively cut off the cost of publishing a new post. In fact, there won’t be any “publishing” work: My real-time input will be automatically synced to the blog system.
That may sound crazy. The readers don’t want to see an unfinished post. But the dynamic blogs have a new spirit: exchange ideas. I don’t think an idea can be finished. It can always be proved, improved, or disproved.
Imagine an article is a bulletin board. On this bulletin board, we post ideas that we currently have, ideas that have been proven wrong, and ideas that are worth exploring in the future. That’s why the posts are dynamic. I am constantly updating the content, moving toward better solutions, more comprehensive answers, and better theories.
Of course, if a dynamic post reaches a certain stage that I feel good enough, I will compile all the content and publish a normal blog post based on it.