Portfolio Website
vector
Web development
Coding
PostgreSQL
Rust
SASS
CSS
NextJS
HTML
Typescript
Express
handlebars
Rocket
MongoDB
Name | Portfolio Website |
Status | Finished |
Last updated | Sat Nov 19 2022 |
Created | Wed Apr 28 2021 |
Portfolio
Purpose
I originally made this website because I wanted a place to store and display all of my projects and art. But it soon became much more than that and during its development. I've learned a lot about web development and optimization - I am striving to make the best possible web experience I can.
Features
- Statically generated pages with on-demand re-validation for optimal performance.
-
Email reminders for projects that haven't been updated but are flagged as in progress. - Easily add new projects and art with a fully-fledged admin panel.
- Simple but safe single user authorization.
- Dynamic asset serving to safe resources client-side.
- Fully responsive.
- Ability to write project descriptions in markdown.
-
Anonymous contact page with anti-spam. - API endpoints for project info.
- Features to improve accessibility.
-
Automatically update last updated on git commit.
Planned Features
- [ ] hardware key authentication.
- [ ] Re-implement auto update on git push.
- [ ] Re-implement email reminders.
Retrospection
The project has evolved many times during its development as I kept learning new and better methods of doing things, and I think it will continue to do so as I strive for perfection. It originally started off as a singular express.js app with Handlebars as view engine and MariaDB as database. This is where the ground works of the website's visual and database design were laid out but I quickly ran into the limitations of this approach. Failing to fix all the shortcomings of this approach one of my friends suggested trying out React. I was very hesitant at first and had quite a rough start with rebuilding the project with an unfamiliar framework. But I think this was the right decision in the end as it pushed me to learn new techniques and frameworks.
Next.js and PostgreSQL
The switch to next.js was the most influential to the functionality and design of the website as it is today, coincidentally around the same time i had a database corruption which made me learn and switch to PostgreSQL.
Rocket.rs and MongoDB
Rust has always been a very intriguing programming language to me. Which is why i decided to learn rust by rewriting the website's API in rust (which is frankly ridiculous) The process of learning both rust and rocket.rs was very challenging and educative, Especially since this is the first low level language I've learned.
Links
Gallery


