The only task for today was supposed to finalize the database diagram. But, like most things in life, that didn’t go as planned.
Leaving the task for a day actually helped, kind of like letting a steak marinate (though in this case, just overnight). Coming back to it with fresh eyes made me spot a bunch of issues with my initial design. With those new insights, I also revisited the flow document and refined it, adding more detailed user flows, this time including the customer’s perspective, not just the seller’s.
I also took this time to start the client project (React + TS) using Vite. I’ll be honest, it’s been a while since I last used Vite. Is it just me, or does it feel emptier than a Next.js project? I figured I might as well do some research on the best way to structure the project and what libraries to use for patterns like routing, state management, and data fetching. I’m going to be real with you guys, I skimmed through a few resources and called it a day. It’s late, and I just wanted to get something done.
I installed React Router v7 and set up the basic project structure. Since I haven’t added image support to my blog yet, I’ll just describe it in text. Basically, level 1 is src/, and level 2 includes components/, pages/, and styles/… for now at least. I then created a basic dashboard page and decided to try using CSS Modules in this project, just to make myself suffer (kidding). I actually wanted to learn more about it. Honestly, I initially wanted to try styled-components since Linear used it, but I quickly found out from multiple sources that it introduces some performance overhead, making it slower than other styling methods. At this point, I spent way too much time styling the dashboard instead of setting up the overall structure of all the pages. After realizing that, I created some dummy data to visualize the layout in the dashboard. Everything works so far.
These tasks might sound simple, but trust me, they took a surprising amount of brainpower, enough to call it a day and continue development tomorrow.