The repos in this article suffered from bit rot and the exact setup no longer works. I still use this approach to publish this blog though.
I took a stab at blogging and daily writing many times, but it never stuck with me. Part of it was not committing seriously enough, and part of it was the tooling.
When I made my last attempt, I used Gatsby for the blog, but publishing a new article involved too many steps—creating a new markdown file, committing it, and pushing it to a git repository. Way too much work and not practical enough from mobile, despite buying all the cool apps to enable that.
Principles
With this latest iteration that you are reading this article on, I am using a different approach.
It follows one core principle: writing and publishing articles should be fast and frictionless.
It's a hard requirement. Writing must be reduced to its essence and not feel like work. Otherwise, I just won't write.
Besides all that, I want a minimal, practical design that reflects my personality and style. I mean design both visually and technologically.
I want it to be easy to extend this site with more content types, for this to gradually become my corner of the Internet.
Brian's and Steph's sites continue to be a massive inspiration in this regard.
Implementation
So how did I structure things? Well, I started with the tool I wanted to use to write and made a bunch of choices around that.
I want to write on my iPad Pro with iA Writer. It's the closest thing to a modern typewriter you can find, especially when paired with an external keyboard. I just freaking love it.
The site is a Next.js app, styled with Tailwind CSS and deployed to Vercel. This stack allowed me to respect all my principles outlined above with the nice benefit that it's free to host and that, being a static site, it can handle massive amounts of traffic without a sweat.
When I want to write a new post, I create a new markdown file in iA Writer and just write. When done, I move the finished article to a Dropbox folder with the iOS Files app and publish it by pressing a button (an iOS shortcut that calls a Vercel deploy hook that deploys the site).
I also set up a Zap that runs daily and triggers a deploy of the blog if I forget to do that.
In the NextJS app, I download that whole Dropbox folder with all the articles as a build step and use it to produce the site pages.
It's fast. Deploy takes less than a minute, and I expect it will scale as I add more posts since I am downloading them in bulk, and these are just very lightweight text files.
If I need to add an image to an article, I just upload it to my S3 bucket with Dropshare and include it in the post with markdown.
Conclusion
I have never been happier with a setup. It gets out of the way and allows me to go from idea to writing to publication in very few steps. All of that on a dedicated writing device, which is the part I love the most.