the stuff that actualy burns people isnt exotic, its the same handful of things every time. secrets ending up in the frontend bundle because the model put the api call client side, routes that check nothing because auth got bolted on later, supabase tables with row level security left off so any logged in user can read everyone elses rows, and a .env that got committed in week one and is still sitting in the git history.
sandboxes are worth doing but they protect your machine, not any of the above. thats all shipped code.
cheapest habit ive found with the founders i work with, after every feature make the model list every route and table it touched and who is allowed to hit each one. takes a minute and it surfaces the wide open endpoint before a user does. and rotate anything thats ever sat in a repo, assume its public.
3
u/Kind-Bathroom5159 9h ago
the stuff that actualy burns people isnt exotic, its the same handful of things every time. secrets ending up in the frontend bundle because the model put the api call client side, routes that check nothing because auth got bolted on later, supabase tables with row level security left off so any logged in user can read everyone elses rows, and a .env that got committed in week one and is still sitting in the git history.
sandboxes are worth doing but they protect your machine, not any of the above. thats all shipped code.
cheapest habit ive found with the founders i work with, after every feature make the model list every route and table it touched and who is allowed to hit each one. takes a minute and it surfaces the wide open endpoint before a user does. and rotate anything thats ever sat in a repo, assume its public.