Dev notes from August 28th to Sept 1st, 2023

Dev notes from August 28th to Sept 1st, 2023
Super moon from August 2023

These are notes I've collected over the last week:

Supabase notes

  1. This was my first week using Supabase so I'm a complete beginner with it.
  2. Supabase has dedicated places for making functions and triggers but the fields for taking the SQL or pgSQL queries are not very helpful when you get errors so I recommend using the SQL editor instead. I ran into this when trying to create a function + trigger workflow.
  3. RLS (row level security) is really weird at first but spend some time reading the Supabase docs and you'll get the hang of it. It'll feel like it's a pseudo-SQL language being used but their AI helps you generate a ton of useful policies.

Next.js + Vercel notes

  • The equivalent for the _app.tsx entrypoint in App Router in Next.js 13 is the app/layout.tsx file. 
  • Always use NEXT_PUBLIC_ prefixes for any env variables that will be exposed to your frontend.
  • Stay away from React Server Components (RSC) unless you really really (and I mean really) need the speed boost and are willing to give up a lot of good React features like hooks.

Here's a really good article I found on RSC that enlightened me while I was working with them:

We migrated 50,000 lines of code to React Server Components | Mux
Here’s everything we learned by migrating our production applications to React Server Components — including how to mix Client and Server Components.

Tailwind

  • I found a tool called Tremor which is useful for quickly building UIs using Tailwind + React.
  • Start with extra or more spacing than you think you'll need and go down instead of going up, at some point, it'll just feel right.

Drizzle ORM changes need to be pushed before anything is usable

Drizzle can talk to your database and try to access anything as long as things are configured but whenever I use an ORM, I intend to make schema changes along with using it as an ORM so I was a bit confused that Drizzle does not include the step to push your changes or migrations to a database in their docs. As of writing this, I didn't see this so if you're following the docs and aren't able to get your changes to show up in your DB. Make sure to run npx drizzle-kit push:pg or whatever your database is.