In my earlier blog post, I analysed my old design of the devpad project and proposed a hyper-minimalistic new design for it. I wanted to take some time, in case anyone is interested, to go over my thought process & motivations behind the chosen design. This is because the hyper-minimalistic design is something I'm very interested in right now and something I hope becomes a much larger trend in the web ecosystem.
Design Inspirations
- https://unrealapex.github.io/
- https://werc.cat-v.org/
- https://barf.btxx.org/
- https://bearblog.dev/
- https://512kb.club/
- https://ericmurphy.xyz/blog/images/
- https://blog.z3bra.org/
- https://www.davesnider.com/
- https://www.michieldegraaf.com/
- https://deadsimplesites.com/
Motivation for Redesign
The internet is messy, every webpage is assaulting your eyes with colours attempting to trick your brain into using the product, or staying on the website for longer. It takes a lot of energy to resist the temptations on every website. This pervasion of what was once a simple knowledge sharing technology has just become an accepted norm today. Nobody questions TikTok and Youtube when their business model is simply to keep you addicted and on the platform. This is why I've grown a taste for the minimalist design. Not just minimalist, hyper-minimalist.
Anyway, I'm mentioning this as it's the sole motivation of what I believe the internet shouldn't be. The internet should not be a place where we spend 9 hours a day scrolling an endless amount of motivation in anticipation of finding something that makes us happy or curious. That's what real life is for. This is completely personal conjecture, but I feel that society is the most disconnected from each other than we've ever been, all while being the most connected to the world we've ever been. If it was a choice between the two, I think connecting to the people around us is clearly the correct choice.
So in honour of this philosophy, I think it would be hypocritical for me to design a super-interactive bright coloured app for something that is really quite simple, a coding project manager with a built-in todo tracker. That's really all devpad wants to be. I also think the hyper-minimalistic design is quite tasteful, it's like a sort of post-web revolution, a rejection of modernity and a return to simplicity.
Tech Stack
From the above reasoning, I think it's only right to go back to web 1.0, where we started. This means very minimal client-side javascript. I want the site to be server rendered mostly. From my skillset, there are 4 technologies that would accomplish this. PHP, NextJS (React server components), Astro (what I built my website with), and Vanilla HTML/JS.
While I think vanilla HTML is probably the best option, I don't really want to be hand-rolling my own authentication system, as that is one of the functional requirements of devpad. In fact, I should probably list the functional requirements for my own reference:
- Authentication w/ Github
- WebSocket implementation for todo-tracker updates
- Some sort of component based library for reproducible elements
- File-based routing would be nice.
From these, I believe NextJS would probably be the best choice, auth can be implemented relatively easily with the hundreds of auth libraries, and the react support is a nice addition. However, I'd like to keep as close to HTML as possible, and this is possible with Astro. If I need client-interactive components at all, I can always import React or Solid where necessary thanks the the islands architecture. While I've never investigated authentication and authorisation in Astro, there's never a better time to learn than redesigning an existing project, as all the requirements are already sorted out.