Plain HTTP on localhost breaks things. OAuth callbacks want https://, Secure cookies won't set, service workers won't register, and some SDKs just assume TLS. Self-signed certs get you back to the "Proceed (unsafe)" click. mkcert solves the cert half well, but it stops at handing you a .pem and a key — you still wire that into every dev server and track which port is which.

mkdev sits one layer up. You give a route a name, you get trusted HTTPS at that name.

mkdev install # generate a local CA, trust it in the system store

mkdev add myapp localhost:3000 # https://myapp.local → localhost:3000

mkdev serve # run the TLS proxy