
How To Deploy MERN App on Render
If you need expert support in building or deploying MERN applications, you can MERN Stack Development services. AAMAX is a full-service digital marketing company offering Web Development, Digital Marketing, and SEO Services.
Deploying a MERN (MongoDB, Express.js, React, Node.js) application to the cloud is an essential step in making your project accessible to real users. Render is one of the best platforms offering free hosting options for developers. It simplifies the deployment workflow by automating build processes, environment variable management, and service hosting in just a few clicks. Whether you're launching a small portfolio project or preparing a minimal viable product, Render provides an approachable, developer-friendly ecosystem.
What Is Render?
Render is a cloud platform designed for deployment and hosting of modern applications. It provides automatic deployment capabilities from version control systems like GitHub and GitLab. Developers can deploy web services, static sites, and databases with minimal configuration.
Some benefits of Render include:
- Simple UI and deployment flow
- Free tier support
- Automatic HTTPS
- Fast build times
- Easy environment variable configuration
Components of a MERN App
Before deploying a MERN application on Render, it is crucial to understand the four main components:
- MongoDB -- Database that stores application data.
- Express.js -- Backend framework.
- React -- Frontend UI library.
- Node.js -- Runs Express server.
You can deploy the backend API and frontend UI separately or combine them into a single deployment. Render supports both approaches.
Prerequisites
To deploy a MERN app on Render, ensure you have:
- A MERN application ready locally
- GitHub account
- Node.js installed
- MongoDB Atlas account
- Environment variables prepared
If your project is not already using MongoDB Atlas, move your database online so that Render can connect to it.
Step-by-Step: Deploy MERN Backend on Render
The backend of a MERN app typically includes Express.js APIs connected to MongoDB. Follow these steps to deploy the backend.
1. Push Code to GitHub
Ensure your backend folder is tracked by Git and pushed to GitHub.
Example structure:
/client
/server
The server folder stores your backend code.
2. Add Necessary Scripts
In your server's package.json, ensure you have:
"scripts": {
"start": "node server.js"
}
If your entry file is named differently, update the script.
3. Set Up MongoDB Atlas
- Visit MongoDB Atlas dashboard.
- Create a cluster.
- Add a user and password.
- Whitelist IP addresses.
- Copy the connection URI.
This URI will be used as the MONGO_URI environment variable later.
4. Create a Web Service on Render
- Visit Render and log in.
- Click New → Web Service.
- Connect Render to GitHub.
- Select your backend repository.
- Configure environment variables:
<!-- -->
MONGO_URI=<your-atlas-uri>
PORT=10000
Render usually assigns a port automatically, but explicitly defining one is helpful.
5. Set Build and Start Command
Build command:
npm install
Start command:
npm start
6. Deploy Backend
Render will build and deploy your backend. After deployment, Render provides a public URL for your backend API.
Test your API:
https://your-backend.onrender.com/api/test
If it works locally, it should work remotely once configured correctly.
Deploying MERN Frontend on Render
The frontend is usually a React application.
1. Push Code to GitHub
Ensure client folder has necessary scripts:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build"
}
2. Build Client
You can run:
npm run build
This creates a production-ready version of your app.
3. Create Static Site on Render
- Go to Render dashboard.
- Click New → Static Site.
- Import your GitHub repository.
- Configure:
Build command:
npm install && npm run build
Publish directory:
build
4. Add Environment Variable
React apps need environment variables prefixed with REACT_APP_:
REACT_APP_API_URL=<backend-url>
5. Deploy Frontend
Render will host your static React app publicly. You can use the URL provided to access your UI.
Connecting Frontend and Backend
After deployment, update API endpoint references in your React app to point to the deployed backend URL.
Example:
axios.get(`${process.env.REACT_APP_API_URL}/items`)
If the backend API is working correctly, the frontend will consume it seamlessly.
Folder Structure Recommendations
A clean folder structure is essential:
/client
/src
/server
/models
/routes
/controllers
.env
README.md
Keep frontend and backend separated for easier deployment.
Managing Environment Variables
Environment variables store sensitive information like database credentials. Do not hardcode credentials in source code.
In Render dashboard:
- Navigate to service
- Open Environment
- Add keys and values
Example:
MONGO_URI=<Secret>
JWT_SECRET=myjwtsecret
Implementing CORS
To allow the frontend to communicate with backend API, enable CORS in Express.js:
import cors from "cors";
app.use(cors());
Testing Your Live MERN App
After deployment, verify:
- Backend routes working
- Database connected
- Frontend UI rendering properly
- UI can fetch backend data
Use tools like:
- Postman
- Browser dev tools
- Curl
Troubleshooting Issues
Issue Possible Cause Solution API not reachable CORS error Enable CORS MongoDB connection fails Wrong URI Update URI React not fetching Wrong env variable Correct prefix
Most issues are related to misconfigured environment variables.
Optimizing Backend
Enhance performance:
- Use
compression() - Implement caching
- Use production logging
Example:
import compression from "compression";
app.use(compression());
Optimizing Frontend
- Minify files
- Lazy load components
- Bundle CSS and JS efficiently
Deployment Upgrade Options
Render's free tier is suitable, but you may need to scale when:
- High traffic
- Production workloads
- Custom domain requirements
Render makes scaling easy with minimal reconfiguration.
Best Practices for MERN Deployment
- Separate frontend and backend
- Use environment variables
- Maintain consistent logs
- Monitor server performance
Advantages of Using Render
- Free tier availability
- Automatic deploys from GitHub
- Minimal setup for beginners
- HTTPS enabled automatically
Sample Production Server.js
import express from "express";
import cors from "cors";
import mongoose from "mongoose";
const app = express();
app.use(express.json());
app.use(cors());
mongoose.connect(process.env.MONGO_URI);
app.get("/", (req, res) => {
res.send("API Running");
});
const port = process.env.PORT || 5000;
app.listen(port, () => console.log(`Server running on port ${port}`));
When to Consider Other Platforms
Alternatives to Render include:
- Vercel
- Railway
- AWS
- DigitalOcean
Choose another platform if you need more customization or advanced scaling.
Conclusion
Deploying a MERN app on Render is a straightforward, beginner-friendly way to take your full-stack application live. With built-in integration for GitHub, environment variable management, automatic deploys, and a reliable free tier, Render simplifies hosting both the backend and frontend of MERN projects. By following the steps outlined in this guide---configuring MongoDB Atlas, deploying the backend server, hosting React frontend, and managing environment variables---you can launch your MERN app in just a few minutes.
If you need expert support building or deploying MERN applications, hire AAMAX for MERN Stack Development services. AAMAX also provides Web Development, Digital Marketing, and SEO services tailored to help businesses scale effectively.






