EverStay is a full-stack web application for listing, discovering, and booking rental properties—similar to Airbnb. It’s built with the latest Next.js 13 App Router for fast, modern server-rendered pages and optimized performance.
- Features
- Tech Stack
- Prerequisites
- Getting Started
- Database Setup
- Environment Variables
- Deployment
- License
- Property Listings: Easily list your home or browse available rentals.
- Booking Workflow: Search by date, location, and property details.
- User Authentication: Secure sign-up/sign-in flows via NextAuth.
- Image Uploads: Seamless image hosting with Cloudinary CDN.
- Responsive UI: Tailwind CSS ensures a consistent, beautiful design across devices.
- Scalable Database: Prisma + MongoDB for robust data handling.
- Front End: Next.js 13, React, TypeScript
- Styling: Tailwind CSS
- Authentication: NextAuth
- Database: MongoDB with Prisma
- File Storage: Cloudinary
- Deployment: Vercel
- Node.js (v16+ recommended)
- npm or yarn
- A MongoDB database instance (local or cloud)
- A Cloudinary account for image uploads
- Environment variables set up for all relevant keys (see Environment Variables)
-
Clone the repository:
git clone https://github.com/Basseybd/EverStay.git cd EverStay -
Install dependencies:
# Using yarn yarn install # or using npm npm install
-
Set up environment variables (see Environment Variables).
-
Start the development server:
yarn dev # or npm run devYour app should now be running on http://localhost:3000.
EverStay uses MongoDB via Prisma for a type-safe schema. After configuring your environment variables:
-
Push your Prisma schema to the database:
npx prisma db push
-
(Optional) Generate Prisma Client if not already generated:
npx prisma generate
-
Your MongoDB database is now ready to store listings, user data, and more.
Create a .env (or .env.local) file at the root of your project and supply the following variables:
# MongoDB Connection
DATABASE_URL="mongodb+srv://YOUR_USER:YOUR_PASSWORD@cluster0.mongodb.net/EverStay?retryWrites=true&w=majority"
# NextAuth
NEXTAUTH_SECRET="A_LONG_SECURE_STRING"
NEXTAUTH_URL="http://localhost:3000" # or your production URL
# Cloudinary
CLOUDINARY_CLOUD_NAME="your_cloud_name"
CLOUDINARY_API_KEY="your_api_key"
CLOUDINARY_API_SECRET="your_api_secret"Important: Never commit your real credentials to version control. Use environment-specific files or a secrets manager in production.
EverStay is hosted on Vercel. To deploy:
- Push your code to a GitHub repository.
- Connect the repository to Vercel.
- Add environment variables in your Vercel dashboard.
- Trigger a deployment—Vercel will handle building and serving your Next.js project.
For custom domains, project settings, or advanced configurations, refer to the Vercel documentation.
This project is open-source under the MIT License. You’re free to clone, modify, and distribute as per the license terms.
Feel free to reach out via GitHub Issues if you encounter any bugs or have feature requests. Happy coding!