Skip to content

Portfolio Site Renewal

Context and Problem Statement

The existing WordPress portfolio site that was hosted on a home server went down due to issues with the Raspberry Pi being used as the home server. A plan for site creation and deployment needs to be prepared for a renewal.

Decision Drivers

  • I'd like maintenance to be simple and convenient.
  • I hope writing posts would be easy.
  • The site doesn't have to be very nicely designed.
  • It would be good if setting up Korean/English pages is possible.

Considered Options

  • Create and deploy a WordPress site on a home server or external server
  • Create using React (from scratch)
  • Create using Jekyll
  • Create using Gatsby
  • Create using Sphinx
  • Create using MkDocs

Decision Outcome

Chosen option: "Create using MkDocs", because

  • This option had the lowest learning curve.
  • This option satisfied all the decision drivers.

Pros and Cons of the Options

Create and deploy a WordPress site on a home server or external server

This is a method to reuse the previously created WordPress site.

  • Good, because I can reuse the existing site.
  • Bad, because the issues from operating the existing site (low design freedom if unable to directly examine HTML, JS source code; need for regular plugin updates) remain.
  • Bad, because I need to fix the Raspberry Pi to run a home server, or incur costs for an external server.

Create using React (from scratch)

  • Good, because high design freedom if implementation is possible.
  • Good, because I can deploy for free using GitHub Pages if implemented as a static site.
  • Bad, because I need to code in React for each page, requiring additional work beyond content creation.
  • Bad, because I'm not very familiar with React syntax.
  • Bad, because long-term maintenance requires knowing React, but I don't often code in React regularly.

Create using Jekyll

  • Good, because many portfolio sites made with Jekyll already exist, providing numerous references.
  • Good, because I can deploy for free using GitHub Pages.
  • Bad, because Jekyll uses Ruby as the main language. I've never used Ruby and am unsure if I'll need it in the future.

Create using Gatsby

  • Good, because many portfolio sites made with Gatsby already exist, providing numerous references.
  • Good, because I can deploy for free using GitHub Pages.
  • Bad, because I tried to create Gatsby site but stopped, thinking it would be better to use a simpler site generator with fewer additional features, like a wiki page.

Create using Sphinx

  • Good, because it's familiar tool to me, mainly used for documenting Python projects.
  • Good, because I can deploy for free using GitHub Pages.
  • Good, because various user-created templates exist.
  • Bad, because it requires using RST file format for documentation, which I've only seen used with Sphinx.
  • Bad, because I'm not yet familiar with RST, and requires additional study.

Create using MkDocs

  • Good, because it's familiar tool to me, which is used for Markdown-based documentation.
  • Good, because I can deploy for free using GitHub Pages.
  • Good, because user community is active and the Material framework developed for site creation, provides many convenience features for creating portfolio pages.
  • Neutral, because it requires payment (need to support on GitHub) to use full features of Material.