A modern, production-ready room rental discovery platform with a premium Apple-inspired design.
Roomora is a sophisticated room rental platform designed for the UAE market. It features a clean, Apple-inspired UI with smooth animations, advanced filtering capabilities, and a delightful user experience. Built with modern web technologies and best practices.
Live Demo: roomora.vercel.app
| Feature | Description |
|---|---|
| ๐ Hero Landing | Stunning hero section with animated search and statistics |
| ๐ Smart Filters | Filter by location, price range, and room type |
| ๐ฑ Responsive Grid | Beautiful card layout adapts to all screen sizes |
| ๐ Room Details | Full gallery, amenities, and booking actions |
| โค๏ธ Favorites | Save rooms locally with persistent storage |
| ๐ Dark Mode | Eye-friendly dark theme with smooth transitions |
| ๐ Auto-Suggest | Smart search with location suggestions |
| โก Animations | Framer Motion powered smooth transitions |
| ๐ซ Loading States | Skeleton loaders for premium UX |
| Category | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS + shadcn/ui |
| State | Zustand |
| Icons | Lucide React |
| Animation | Framer Motion |
| UI Components | Radix UI |
roomora/
โโโ app/ # Next.js App Router
โ โโโ api/rooms/[id]/ # API routes
โ โโโ favorites/ # Favorites page
โ โโโ layout.tsx # Root layout
โ โโโ page.tsx # Landing page
โ โโโ globals.css # Global styles
โโโ components/
โ โโโ ui/ # shadcn/ui components
โ โโโ Header.tsx # Navigation header
โ โโโ Hero.tsx # Hero section
โ โโโ Footer.tsx # Footer
โ โโโ RoomCard.tsx # Room card component
โ โโโ RoomListings.tsx # Room grid with filters
โ โโโ Filters.tsx # Filter controls
โ โโโ SearchBar.tsx # Search with suggestions
โ โโโ FeaturedRooms.tsx # Featured listings
โ โโโ FavoritesButton.tsx # Heart/favorite toggle
โ โโโ ThemeProvider.tsx # Theme context
โโโ lib/
โ โโโ mockData.ts # 18 premium room listings
โ โโโ store.ts # Zustand state management
โ โโโ utils.ts # Utility functions
โโโ hooks/
โ โโโ useDebounce.ts # Debounce hook
โโโ next.config.js # Next.js configuration
โโโ tsconfig.json # TypeScript configuration
- Node.js 18+
- npm or yarn
- Git
# Clone the repository
git clone https://github.com/logeshkannan19/Roomora.git
cd Roomora
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Start production server
npm startCreate a .env.local file if needed:
NEXT_PUBLIC_SITE_URL=http://localhost:3000| Color | Hex | Usage |
|---|---|---|
| Primary | #10B981 |
CTAs, links, highlights |
| Primary Dark | #059669 |
Hover states |
| Background Light | #FFFFFF |
Light mode background |
| Background Dark | #020617 |
Dark mode background |
| Text | #0F172A |
Primary text |
| Muted | #64748B |
Secondary text |
- Font Family: Inter (Google Fonts)
- Headings: Bold, large size
- Body: Regular, optimized line height
- Code: JetBrains Mono
- Cards: Rounded-xl (16px radius), soft shadows
- Buttons: Rounded-xl, multiple variants
- Inputs: Clean, minimal borders
- Transitions: 300ms ease-out
| Breakpoint | Columns | Description |
|---|---|---|
| < 640px | 1 | Mobile phones |
| 640px+ | 2 | Tablets |
| 768px+ | 3 | Small laptops |
| 1024px+ | 3-4 | Desktops |
| 1280px+ | 4 | Large screens |
The API routes are structured for easy backend integration:
Fetch a single room by ID.
Response:
{
"id": "1",
"title": "Modern Marina Studio",
"location": "Dubai Marina",
"price": 2500,
"rating": 4.9,
"type": "Studio",
"amenities": ["WiFi", "AC", "Pool"],
"images": ["url1", "url2"],
"description": "...",
"availableNow": true
}The platform includes 18 premium room listings across:
- Dubai Marina, Downtown Dubai, Palm Jumeirah
- Abu Dhabi Corniche, Al Reem Island
- Sharjah, Ajman, Ras Al Khaimah, Fujairah
- DIFC, Business Bay, JBR, and more
- User authentication (NextAuth.js)
- Database integration (PostgreSQL/Supabase)
- Real-time chat with hosts
- Booking system with payments
- User reviews and ratings
- Push notifications
- PWA support
- Advanced analytics
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Unsplash for high-quality images
- shadcn/ui for beautiful components
- Framer Motion for smooth animations
- Tailwind CSS for styling