R
Railway5mo ago
Dillion

How to reduce Next.js build times??

Takes about 5-8 minutes to build and deploy now which is annyoing. Also increases every week
No description
No description
25 Replies
Percy
Percy5mo ago
Project ID: 030a956c-af55-4f43-a7de-5bdff4ea474b
Dillion
Dillion5mo ago
030a956c-af55-4f43-a7de-5bdff4ea474b im not using any configuration btw, just default nix packs
Medim
Medim5mo ago
Besides code-wise and file excluding optimization I don't think u can do much But iirc railway caches build so your next build may be faster (I can be wrong on this one)
Dillion
Dillion5mo ago
why are vercel builds so much faster though?
Brody
Brody5mo ago
vercel made next
Medim
Medim5mo ago
Well, they literally created nextjs And use "specific technologies" for it
Brody
Brody5mo ago
in turn, railway is not hyper optimized for any one specific type of app
Dillion
Dillion5mo ago
this is not very helpful tbh i would appreciate if you woulr rather direct me towards resources towards optimizing nixpacks for next.js
Pepijn
Pepijn4mo ago
Just to chip in, in my case Vercel is actually slower in a fresh build, haha (using Next 14). But in Railway you have overhead which Vercel does not have? (or maybe less) due to the creating and publishing the image is to registry after which it can be deployed.
No description
Pepijn
Pepijn4mo ago
Additionally publishing the image (2.6GB) took around 3-4 mins
Adam
Adam4mo ago
Optimizing nixpacks is not the way to go. Instead, creating your own dockerfile will likely be faster. We cannot help you with that here as it does not fall under the scope of “Platform Help” you’ll have to research for yourself
Dillion
Dillion4mo ago
Thanks for this direction! Will try this 🙂 thanks again @Adam made my own optimized dockerfile and build time cut by 50%
Dillion
Dillion4mo ago
GitHub
next.js/examples/with-docker/Dockerfile at canary · vercel/next.js
The React Framework. Contribute to vercel/next.js development by creating an account on GitHub.
Pepijn
Pepijn4mo ago
Thanks, also interesting going this way reduced idle memory usage with 80%
pandas
pandas4mo ago
yeah docker is not comparable to railway internal system to build stuff, docker is faster easier and uses less memory
Brody
Brody4mo ago
docker is used to build the final image no matter what build system you choose to use, so that's not completely correct
Dillion
Dillion4mo ago
Yep! My memory usage decreased significantly @Pepijn Build times went from 12min -> 6min Memory usage also cut in half or so meaning costs are lower Noticed the default nixpacks docker image for node is ubuntu instead of something like node-alpine? Any reason why? Cc @Brody
Brody
Brody4mo ago
so apt packages can be installed
macwilko
macwilko4mo ago
Just throwing this in here:
macwilko
macwilko4mo ago
Remix - Build Better Websites
Remix is a full stack web framework that lets you focus on the user interface and work back through web standards to deliver a fast, slick, and resilient user experience. People are gonna love using your stuff.
macwilko
macwilko4mo ago
imo it's better than next.js , you get a very similar benefit (SSR, React full stack) it runs well anywhere (including Railway.app) mem cost is great (idles about 25mb) my build time is about 2 minutes
Pepijn
Pepijn4mo ago
For comparison, after changing the NextJs build with the setup per above (including building NextJs with standalone option), my builds are also about 2 minutes for an ecommerce site connected to MedusaJs and Strapi. Memory usage in idle is around 40Mb.
pandas
pandas4mo ago
fully agree on this and if you deploy it on cloudflare you will see blazing speeds never seen before
No description
pandas
pandas4mo ago
global servers across 200 countries, can handle insane traffic, 10x cheaper than almost anyone else
Brody
Brody4mo ago
did you forget you where in the railway server? we shill railway here