In this post, I want to talk about some new challenges I’ve encountered while rebuilding my project as a Progressive Web App (PWA). As I mentioned in my last post, the PWA paradigm is a big reason I chose not to use Next.js. But beyond framework choice, building with an “offline-first” mindset has introduced a number of new technical problems I hadn’t fully anticipated.
Here are some of the issues I’ve been working through over the past few weeks:It’s been a minute since I’ve shared an update. Lately, I’ve been deep in research and technical interview prep — the kind of work that doesn’t fill up your GitHub contributions graph, but is critical behind the scenes.
One major breakthrough: I’m rethinking the architecture for my project rebuild.
Initially, I fully intended to build with Next.js. It’s an outstanding framework for performant, SEO-optimized web applications, offering major UX and DX wins like smaller bundles, intuitive routing, server-side data fetching, and built-in security benefits.So, remember this where I talk picking a robust ORM solution? Well, I’ve begun to draw out my entity relationship diagram (shoutout to Lucidchart) and I am working on the problem of keeping my tables from getting “too wide”– one of the fundamental weaknesses of typical ORMs. Here are a few of the features of Drizzle that are going to save me:
To create many-to-many relationships you actually create a proper join table where values other than foreign keys can live.Overview This is a fairly large section, highlighting the process by which I’ve created the starting point for the auth and user registration for the new iteration of my bootcamp final project. I wanted to do my best to follow current best practices and build out a solid starting point for user registration and authentication. A primary reference for this work was this excellent video by Michael Guay. I like how he organizes the NestJS project and his approach seems to follow pretty solid, modern best practices, though these things seem to change all the time.Today I’ll talk about the first step I’ve taken towards my new pet project: a total rebuild of my bootcamp final project. My team of 3 completed this project in the span of 2 weeks at the very beginning of the 2020 pandemic… as in, we had been going to classes in person, then we entered quarantine just as we got our team assignments and completed everything remotely.
At the time we had only been writing code for 10 weeks.