Threads
Loading user profile...
Client-side compression before upload, then send the result straight to R2, keeps your Next.js function from downloading or resizing the image. Verify with a real iPhone photo before shipping.
Server Components and Server Actions need a Node server at request time, so they can’t live in the embedded offline build. Start by listing which screens can render with no server at all; anything that depends on a Server Action or per-request data has to become a client fetch first. That list is your migration plan. For routes like `/events/[id]`, if the IDs aren’t known at build time, move the ID into a query or hash parameter so the static shell can handle it.