Day2 Planning a Personal Blog - Next.js Frontend + Headless WordPress

Published on
This English version was translated from my Chinese original with AI assistance.

In this series we'll build a "personal blog", and we want it to cover all of the following:

  • Developer experience: version control when adding features or tweaking the UI, and access to all the latest goodies in the React and Next.js ecosystems
  • Editor experience: people who can't code can still edit posts with the WordPress admin editor
  • Reader experience: pages must load fast, with RWD support for reading on both mobile and desktop
  • SEO search engine optimization: pages must load fast, and all the meta tags must be set up properly

That's why we'll go with the "Next.js Frontend + Headless WordPress as CMS" approach, which satisfies all the needs above.

​
Next.js Frontend Pages

The frontend pages are quite simple — basically we're recreating the pages a native WordPress site would have, including:

  • Homepage IndexPage: lists all posts, sorted from newest to oldest, with pagination showing 10 posts per page. Each post shows its thumbnail, excerpt, categories, and publish time. The homepage also includes a search box for searching posts
  • Post detail page PostPage: the full post content, its categories, its tags, and a related posts list
  • Category page CategoryPage: lists all posts belonging to a certain Category
  • Tag page TagPage: lists all posts belonging to a certain Tag
  • Search page SearchPage: shows the list of matched posts after searching

​
Other Implicit Requirements

Besides the pages you can obviously see, a complete website should also have the following:

  • Favicon: the site logo shown in the browser tab. There will be a dedicated article later on how to generate one and embed it into the site
  • 404 NotFoundPage: when readers accidentally land on a wrong page, we should show them a dedicated error page so they don't panic, and guide them back to the right place
  • Sitemap: a hidden page made for search engine crawlers like Google, telling them which pages our site has. Since we're doing SEO, we must implement sitemap generation on the Next.js frontend too

​
More Cool Features!

Who are we? We're developers! What we love most is trying new technologies! And what better place to play with new tech than a personal blog? So in this series we'll also bring all kinds of fun technologies into the new Next.js frontend, including:

  • Storybook: a great UI component development environment that dramatically speeds up building UI and verifying how components look under different conditions
  • TailwindCSS: the hottest utility-first CSS framework right now, insanely fast for building layouts. We'll use it to build all the pages mentioned above
  • RSS Feed: we want readers who are familiar with RSS tools to be able to subscribe to our blog via RSS, so we'll support it too!
  • PWA: with all these cool things in place, how could we leave out PWA (Progressive Web App)? It's a new way of configuring a website that, once set up, lets readers install our site like an app on their phone or computer desktop, with an experience very close to a native app!

That wraps up the requirement planning for the personal blog we'll build over these 30 days. In the next article we'll start actually setting things up — beginning with WordPress!!