This is my personal website which acts as my portfolio and CV / Resumé.
My motivation in creating this was to gain a deeper understanding of modern web development practices. I use it as a testing ground for exploring modern web development practices and technologies.
-
TypeScript, which is a superset of JavaScript and includes strict type-checking.
-
React Testing Library and vitest which is what I use to unit tests components.
-
Docker / Compose is used to test builds locally before I upload them. I have a self signed SSL cert so I can use HTTPS locally, which I created with the help of this excellent guide.
-
I implemented a content rendering engine that reads in a tree of items from JSON files, then chooses the correct component to render as the JSON is fetched.
-
For state management, I use Redux Toolkit. This makes managing complex async functionality much easier and readable.
To get this running, you should have an up to date stable version of NodeJS. I am using 20.12.2
. You should also have the most up to date version of Yarn installed globally.
$ [email protected]:matfin/personal-website.git
to clone this to your local machine$ cd personal-website/
$ yarn
will install dependencies$ yarn start
will build the server and client and watch for changes$ yarn deploy
will generate the site as a static bundle, which is output to the/dist
directory.$ yarn checks
will run unit tests with coverage, code lint and style lint.
On all modern web browsers both mobile and desktop. Internet Explorer is not supported.
For CI (continuous integration), a very popular and well documented tool called CircleCI is used.
I have a script that generates all content and assets, then a CircleCI config that deploys this to a remote server.
I have documented these in the Tech Roadmap and will keep working on them.