Projects
WanderNest
A modern hostel booking platform built with Next.js 14+, featuring room bookings, experiences, Stripe payments, and an admin panel. It provides a seamless experience for both travelers looking for their next adventure and administrators managing properties.
Jun 11, 2026Live
Next.jsReactTypeScriptSupabaseStripeTailwind CSS
Overview
WanderNest 🏠
WanderNest is a comprehensive hostel booking platform for people who want:
- Easy property discovery and room booking
- Local tours and experiences integration
- Secure and seamless payments
- Full-featured admin panel for property management
- A modern, responsive mobile-first experience
Key Features
- Property Listings: Browse hostels and properties across Southeast Asia.
- Room Booking: Select rooms, dates, and quantities effortlessly.
- Experiences: Book local tours and exciting activities alongside your stay.
- Secure Payments: Integrated with Stripe for secure test-mode transactions.
- User Authentication: Complete flow for login, registration, and profile management using Supabase Auth.
- Admin Panel: Comprehensive dashboard to manage properties, rooms, experiences, and track bookings.
Tech Stack
- Frontend: Next.js 14+ (App Router) + React + TypeScript
- Styling: Tailwind CSS + Lucide React
- Database: Supabase (PostgreSQL)
- Auth: Supabase Auth
- Payments: Stripe
- Deployment: Vercel
Architecture
The application leverages the Next.js App Router for server-side rendering and optimized SEO, while relying on Supabase as a Backend-as-a-Service (BaaS) for data and authentication. Payments are securely delegated to Stripe.
graph TD
Client[Client Browser / Mobile] -->|HTTPS| NextJS[Next.js App Router]
subgraph Frontend & API
NextJS -->|Server Actions| NextAPI[Next.js API Routes]
NextJS -->|RSC| UI[React Server Components]
end
subgraph Backend Services
NextJS -.->|Auth & Queries| Supabase[(Supabase PostgreSQL)]
NextAPI -->|Create Session| Stripe[Stripe Payment Gateway]
Stripe -.->|Webhooks| NextAPI
end
classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px;
classDef database fill:#e1f5fe,stroke:#0288d1,stroke-width:2px;
class Supabase database;