This is my personal website created using React and Typescript
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.