
Brighton BJJ School
Brighton BJJ School is a Brazilian Jiu-Jitsu school in Brighton, UK. The website is built with React and uses styled-components for styling. It is hosted on Netlify. This project was my first freelance client project and taught me alot about React and styled-components as well as working with the Google Maps API. Future Improvements will include a timetable for classes and a contact form for enquiries. I would also like to refactor the code to use Vite for faster builds and better performance.

Dicecaster
Dicecaster is a small npm package I made to roll dice for D&D. It is built with TypeScript and uses Jest for testing. Dicecaster has all the functionalities needed to roll dice for D&D. It can roll any normal set of polyhedral dice you would use for the game as well as methods for rolling with advantage and disadvantage. It is built with a Test Driven Development approach and the package is published on npm. I have plans to expand this project in the future. Future improvements will include a frontend app built with Vite, and a character sheet keeper.

Portfolio
This portfolio website is a showcase of my work and skills. It is built with Next.js, Tailwind CSS, Shadcn/ui, TypeScript and is hosted on Netlify. This project was a great learning experience for me as I got to work with Next.js and Tailwind CSS for the first time. I also learned how to use TypeScript with React. I added a blog which dynamically generates pages from markdown files. Future improvements will include a responsive navigation menu for mobile. I would also like to add a dark mode toggle for the theme and add a pagination as well as a comment section to the blog posts.