I always wanted a blog that will make it easy to write for me and read for other people. For this, decided to build a node (express.js) project before like 5 years ago, in 2017. Oh, one sec, 2 projects, one is for API and another one is for the frontend. I wanted an API because was trying to take these steps:
- Getting rid of the boring situation I was in 🙂
And for 2017, the result was quite good. I could build apps with
docker composeand deployed the apps on a DigitalOcean droplet, set Nginx up with SSL, everything was fine. Of course, after some time, got lazy a little bit on writing, many things changed in my life and lost my motivation for writing.
After many years, lots of things happened for blogging, WordPress is still the king, Ghost increased its popularity, headless CMS products, and static content became a hype.
And Notion is born.
Notion was around for many years (since 2013), but in 2018, they released 2.0 and rated #1 product of the month in ProductHunt. I don’t remember when I first signed up for Notion but it was a “WoW!” moment for me. Experience of writing was so easy and smooth, organizing the content you produced was a piece of cake.
So, writing was super cool on Notion, why shouldn’t I pick it as a source of my new blog? Then, Notion declared they’re opening their APIs: https://developers.notion.com/ Writing blog posts in a Notion database and fetching them via API and displaying them should be possible.
But I had another thing in my mind to try first, and it was AWS Amplify.
For people who don’t know what it is, AWS Amplify enables developers to set data, backend, and UI quickly. At least, it promises. However, the facts are completely different. My plan for AWS Amplify was like this:
- Create data models in Amplify Studio.
- Create GraphQL API in Amplify Studio.
- Set up a frontend to display content.
- Set up a backend to manage content.
- Build a pipeline and deploy the frontend.
First 2 steps were quite easy. Unfortunately, it was not the same for the 3rd step. I was trying to use NextJS for the frontend because accessing GraphQL is easy and development cost is quite low. So, I started to work on this, but experienced that it’s not so easy to manage this. Because when you want to change any data model in Amplify Studio, it was hard to update your local development properly. And the vice-versa of course, when you change anything in your local env, sometimes it was impossible to update the project in Amplify Studio. After 2 days, gave up and decided to try Notion.
I came across this article couple of days ago and bookmarked: https://www.coryetzkorn.com/blog/how-the-notion-api-powers-my-blog. In short, the writer explains how to use Notion as a blog database and API, and consume it with React. But, in the article, there was a suggestion to use this NextJS template: https://github.com/transitive-bullshit/nextjs-notion-starter-kit to set a blog system up quickly. So, I gave a shot with following the steps listed in the readme of the project. Duplicated the writer’s blog content on Notion, overrode it, updated the config in the repo, pushed the code to the master, signed up to Vercel, deployed the project there, and voila!
Now, when I update any blog page in Notion, redeploy the project in Vercel and it’s alive! The requirement of this re-deployment can sound strange but all content in the blog is static, that’s why it’s fast to read. And I’m happy to write content on Notion. Performance score of the blog is well also:
AWS Amplify is still worth checking I think, maybe I configured something wrong, or read docs in the wrong way or tried it with wrong mindset but there are other people complaining about the docs as well:
AWS Amplify with Auth is an unworkable mess
I've built a number of apps and I work as a professional react developer. We often use AWS services such as cognito. I tried building an app with AWS amplify with simple authentication and a cognito user pool. Literally nothing about this system seems to work.
So, my next challenges are below. I hope I can tackle them.
- Make commenting possible (is Disquss still alive?)
- Keep the motivation and write something every week