nirtamir2 / tired-of-webdev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Some reasons why I'm tired of webdev. Please don't add your reasons, I have enough already. If you think there's a fix for something, please open a PR and tell me how. Thank you.

WebStorm

Imports

Fuck auto imports in WebStorm, seriously. I want my editor to import things on the fly. I have the option "import on the fly" checked but it doesn't work.

  • Sometimes it imports things twice (super frustrating)
  • Auto-import {Box} from "ink" even though in 13948138413 files I import it from @mantine-ui/core
  • Not suggesting auto-imports for components like the Text component
  • If I'm using Vertical from the same library in 19384813 files, just import it from the same frickin library and don't ask me where to import it from!!!
  • When working with Blitz and Prisma
    • auto imports from "db" don't work at all
    • returns from resolvers show yellow squiggly lines (FML)
  • Importing an icon from react-icons gets imported from react-icons/all instead of the correct import (like react-icons/fa) and it breaks the app

React

  • You either have a 300 line component, or you have 2 choices: prop drilling for 30 levels, or add context and properly type the context. Ugh. Especially typing the context is a PITA.

Prisma

  • After running a db:migrate
    • I have to restart the dev server and studio
    • I have to go to the generated types so my editor (WebStorm) can pick up the type changes
  • Enums cannot be imported on the client side as values, only as types. At least in a Blitz app. Prisma says

Blitz

In retrospect, going with blitz was not a smart idea. trpc + next-auth is the way to go

  • Scaffolds are useful, but not that clever
    • my model has id string, but blitz scaffolds 10 files that use number as id, painful to refactor)
    • the scaffold is bad
  • I haaaaaaate creating files for every mutation, query, etc. while keeping a structure that makes blitz happy
  • I hate that blitz forces certain file structure, trpc doesn't
  • Not really Blitz fault, but the boilerplate comes with their own form logic
    • Oh you want to quickly use a form? Better remember the syntax for these 2 lines (FML)
      export function TodoForm<S extends z.ZodType<any, any>>(props: FormProps<S>) {
      return  <Form<S> key={props.initialValues?.toString()} {...props} formCtx={ctx}>
    

react-hook-form

So annoying. Everything about it is annoying I honestly don't even know why I'm using it.

  • Banging my head against the wall because of "caching" issues. I'm navigating from one page to another page in Next.js, why does a form keep old values ??? It doesn't make any sense.

Blitz/Next

Not sure who's fault it is, figure it out.

  • When my page fully reloads, I want to punch a wall. Everything should hot reload. All the time. Always.

About