Help with starting a portfolio project

I want to make a portfolio site for my short-stories that also functions as a customizable online-reader but am confused as to where to begin. For reference, I have an intermediate grasp of HTML, CSS, and an ok understanding of vanilla JS (I get all the basics & understand the DOM well enough). I’ve just started learning React & some of the backend technologies like express, but don’t know enough about them to use them yet.

I’m not looking for a blogging platform like Wordpress because I’d like to fully customize the online-reader section of the site.

The features I want to include on the reader portion of the site including changing background colors, font-family, font-size, font-weight, as well as the option to toggle between scrolling the story text or flipping between pages. Basically I’d like to emulate a Kindle reader with around the same number of features.

I believe that this could all be done on the front-end (just storing the stories in a file & having JS get the text & populate a page with it after the user clicks on a link) but I’m wondering if it would be better to learn more React and express and make the site with those technologies instead.

As for updating the site with new stories, I’m fine with just updating the site’s files & pushing the changes to GitHub. I don’t need a content management system as I’ll be the only one updating the site.

Sounds like an excellent project to me. React is entirely a front-end library, so anything you do with React is front-end. It’s Express that serves up a backend, and the choice of backend doesn’t much matter these days: as long as it can serve a decent REST API, it can be anything you want. Express is a perfectly good choice there.

When you’re more comfortable with React, you might also want to look into Gatsby.js for your project, as it looks like it’d be a really good fit for what you’re doing. It has a learning curve from hell, but also some good tutorials. FCC’s learning platform is itself made with Gatsby.

2 Likes