A modern, full-stack MERN website for MovingCircle, a professional moving and storage company.
- Modern Design: Clean, professional UI with brand colors (#d92878 pink, #949494 grey)
- Full MERN Stack: React frontend with Express.js backend and Supabase database
- Dynamic Content: Admin dashboard for easy content management
- City Pages: Auto-generated pages for 20+ UK cities
- Contact Forms: Quote request and contact forms with email notifications
- Responsive: Mobile-first design that works on all devices
- Smooth Animations: Framer Motion animations for engaging UX
- SEO Ready: Meta tags and semantic HTML structure
- Frontend: React 18, Vite, Tailwind CSS, React Router, Framer Motion
- Backend: Node.js, Express.js
- Database: Supabase (PostgreSQL)
- Icons: Font Awesome
- Email: Nodemailer
├── src/
│ ├── components/ # Reusable components (Navbar, Footer, Hero)
│ ├── pages/ # Main pages (Home, About, etc.)
│ ├── admin/ # Admin dashboard
│ ├── styles/ # Global CSS and Tailwind config
│ └── utils/ # Supabase client and utilities
├── server/
│ ├── routes/ # API routes (pages, cities, contact)
│ ├── config/ # Supabase configuration
│ └── index.js # Express server
└── public/
└── images/ # Logo and images
- Home - Hero section, services overview, features, CTA
- About - Company information, values, mission
- How It Works - Step-by-step moving process
- Removals - Removal services with city links
- Storage - Storage facilities and features
- Contact - Contact information and message form
- Quote - Detailed quote request form
- City Pages - Dynamic pages for each city (e.g., /removals/london)
- Admin Dashboard - Content management interface
- Node.js 16+ installed
- Supabase account (database is already configured)
- Install dependencies:
npm install-
Environment variables are already configured in
.env:- Supabase URL and keys
- Server port (5000)
- Email credentials (update with your Gmail credentials)
-
Update email settings in
.envfor contact form notifications:
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password
Development mode (runs both frontend and backend):
npm run devThis will start:
- Frontend on http://localhost:3000
- Backend API on http://localhost:5000
npm run buildThe built files will be in the dist folder.
The Supabase database includes:
- pages - Content for main pages (editable via admin)
- cities - 20+ UK cities for dynamic routing
- contact_submissions - Form submissions
- site_settings - Global site settings
All tables have Row Level Security (RLS) enabled for security.
Access the admin dashboard at /admin to:
- Edit page content (titles, descriptions, meta tags)
- View and manage cities
- Review contact form submissions
GET /api/pages- Get all pagesGET /api/pages/:slug- Get page by slugPUT /api/pages/:id- Update pageGET /api/cities- Get all citiesGET /api/cities/:slug- Get city by slugPOST /api/contact- Submit contact form
Update colors in tailwind.config.js:
colors: {
primary: '#d92878', // Pink
secondary: '#949494', // Grey
}Replace the logo at:
public/images/Screenshot_2025-10-18_at_6.18.48_PM-removebg-preview.png
Cities can be added via the admin dashboard or directly in Supabase.
The application can be deployed on:
- Frontend: Vercel, Netlify, or any static hosting
- Backend: Heroku, Railway, DigitalOcean, or any Node.js hosting
- Database: Already hosted on Supabase
For questions or issues, contact the development team.
© 2025 MovingCircle. All rights reserved.