@infinterenders > most nextjs app are self hosted
That's not true at all. You said ‘it requires real work’ it's the whole point, if I have to change any piece of code just to make it work on other platform then I'm blaming framework
moving fast isn't a new lock, moving fast with bad framework is
Here's my 2 cents:
NextJS WAS a footgun but it's still a double edged sword. The ease of agentic development will cost you deployment overhead. I give you 30 mins & no AI - deploy it on Railway with all the features working exactly the same (Images, PPR etc)
take is so close but misses the plot by 180. nextjs didnt lose the plot at all infact it got better
they finally found it after years of implicit magic causing exactly the footguns what you are talking about
old app router was the real minefield which is having rough edge cases
when done exact right it is faster than your old performant setup
nextjs 16.3 instant navigations the thing that triggered this post. they shipped tools to make server apps feel like spas still it’s experimental though
partial prefetching reuses shells per route not per link stream or cache for instant ui on click navigation inspector (this is part i loved idk how they built just resume and it renders the content ) in devtools so you can see what is instant slow navigations are dev errors now
it look like more anti footgun release added instant equals false opt out and
test helpers because they know people can mess it up
useeffect comparison falls apart . firstly useffect is escape hatch . useeffect was low level react footguns with stale closures missing deps layout thrashing
16.3 niceties all these are framework level primitives with compiler and runtime safeguards
yes still needs a learning curve . like I can’t blame next team to building this thing problems are that hard to patch if you really dig deep into history you gonna get answer
ppr paradigm exist initial facebook days it sounds exact what next built but next had granular primtives suspense prev it lagged compiler intelligence like in those react didn’t even created
(https://t.co/FNtvQ3qD9l)
i used to think what bigpipe didn’t had what next brought i built dialect of bigpipe tested it with some rough edge cases the answer is pretty simple it lagged compiler intelligence . it’s more
here next.JS knows and understands the dependency tree of the components , what to block,stream, and how to safely patch the ui
with suspense you are explicitly defining the , critical path compiler and the runtime look at this tree and know exactly which parts are blocking (the shell) and parts are deferrable (the sidebar, the user profile, the activity feed). so it brings deterministic patching
i can eloborate but it becomes long long tweet
real minefield was the old implicit world now it is explicit observable and protected in dev . so my take is it’s anti-footgunning
🎤 Speaker Spotlight ✨
Join Soodit Kumar at AI Mixer Delhi x React India 🤖⚛️
🚀 "Streams That Survive: Durable, Resumable AI in React"
📍 Brevo, Noida
📅 June 13, 2026
🎟️ RSVP 👉 https://t.co/QHd5sqq4lj
#ReactDelhi#ReactIndia#AI#React
My two cents:
1 EC2 instance (secured properly) with Cloudflare tunnel. Use docker & a read only key to pull your code (don't push your keys to repo) with Tailscale setup properly, nginx & let's encrypt is just extra bloat an early-stage startup should stay away from
The "DevOps setup" at 80% early-stage startups:
- Infra: One EC2 instance named 'prod'
- Reverse proxy: Nginx config from ChatGPT
- SSL: Let's Encrypt, renewed manually, always 1 day late
- CI/CD: git pull on server via SSH
- Secrets: .env checked into repo "just for now"
- Backups: RDS has backups right?
- Monitoring: Green checkmark on status page
- Runbooks: Senior's mind
@krrishvardhan you have to understand that trpc has two packages - one for client & one for server. Anyplace where you import/use trpc/server is the place you write procedures/mutations/queries. The ‘type’ of final router is provided to client which is stripped away after you build (ts -> js)
@amanvarshney01 I hope the make database switching easier - for eg in mongoose you can slap a ‘useDb’ & it works, if they're going with a contract first query builder approach then let me specify my database & give me the ability to switch between them