Shan Rauf

Hidden costs of Next.js RSCs and server actions

While working at Gumroad in September 2024, I was in charge of migrating helper.ai from Django to Next.js (the CEO wanted to fully migrate all company projects to Next.js). This page is a collection of writing that I produced during that time while creating the migration plan and communicating it to the rest of the team.

Note: This writing was from before Next 15, although most of the writing still holds up I think as of April 13th, 2025. Also, I copy/pasted this writing (with minor edits for proofreading, adding links, etc) from my personal notes; the actual text that I further edited and shared in Github + Slack was slightly different (but I don't have access to that writing anymore now that I no longer work at Gumroad)

Writing from the migration plan outline (September 2024)

Reasons to not rely solely on RSCs + server actions:

Writing from a discussion with a coworker

For going all in on RSCs + server actions:

(paraphrased message from coworker) Yeah, reading more about it, I guess RSCs are kind of useless unless you have content that's going to be (mostly) static. At the very least though we can go all-in on "use server", especially since Expo supports it.

For server actions/"use server": (btw apparently they were rebranded to "server functions" recently?? I'll refer to them as that from now on ig)