A production-grade platform for real estate agents to build and deploy professional websites to GitHub Pages.
- User Authentication: Secure JWT + HTTP-only cookies authentication
- Real Estate Templates: Professional real estate agent websites
- GitHub Deployment: Automated deployment to GitHub Pages
- AI Chatbot: Built-in AI chatbot for lead capture
- Production Ready: Security headers, rate limiting, input validation
- Node.js + Express
- MongoDB
- JWT Authentication (HTTP-only cookies)
- Helmet + Rate Limiting
- TypeScript
- Next.js 14
- TypeScript
- Zustand (State Management)
- TailwindCSS
- Node.js 18+
- MongoDB (local or Atlas)
- GitHub Account + Personal Access Token
- Clone the repository
git clone <repo-url>
cd Website_Builder- Backend Setup
cd backend
npm install
cp .env.example .env
# Edit .env with your configuration
npm run dev- Frontend Setup
cd frontend
npm install
npm run devPORT=4000
MONGODB_URI=mongodb://localhost:27017/webforge
JWT_SECRET=your-super-secret-jwt-key-change-in-production-min-32-chars
FRONTEND_URL=http://localhost:3000
NODE_ENV=development
GITHUB_TOKEN=your-github-personal-access-token
GITHUB_ORG=Website-Builder-Realty-Genie
BASE_URL=https://your-domain.comNEXT_PUBLIC_API_URL=http://localhost:4000/api- Go to GitHub Settings > Developer settings > Personal access tokens
- Generate new token (classic) with these permissions:
- repo (full control)
- read:org
- Create an organization for the deployment (e.g., "Website-Builder-Realty-Genie")
POST /api/auth/register- Register new userPOST /api/auth/login- Login userPOST /api/auth/logout- Logout userGET /api/auth/me- Get current userPOST /api/auth/refresh- Refresh tokens
GET /api/templates- List available templatesGET /api/templates/:id- Get template details
GET /api/sites- List user sitesPOST /api/sites- Create new siteGET /api/sites/:id- Get site detailsGET /api/sites/:id/build-logs- Get build logsPOST /api/sites/:id/redeploy- Redeploy site
cd backend
npm run build
npm startcd frontend
npm run build
npm start- Always change JWT_SECRET in production
- Use HTTPS in production
- Set NODE_ENV=production
- Configure proper CORS origins
MIT