A modern real estate listing web application built with Next.js, React, and TypeScript. This application serves as the web counterpart to our existing mobile app, maintaining consistent design language while leveraging web capabilities.
-
Property Listing Search
- Advanced search with filters for location, price, property type, etc.
- Map-based property exploration with drawing tools
- Saved searches and alerts
-
Property Valuation
- Automated valuation models
- Historical price trends
- Comparable property analysis
-
User Onboarding & Profiles
- Seamless registration and authentication
- User profile management
- Preferences and favorites
-
Messaging System
- Direct communication with agents/brokers
- Inquiry management
- Notification system
-
Listing Management
- Create and publish listings
- Update listing information
- Photo and document uploads
- Listing analytics
- Framework: Next.js 15 with App Router
- UI Library: React 19
- Language: TypeScript
- Styling: Tailwind CSS
- Component Library: shadcn/ui (with customized color schemes)
- Form Management: React Hook Form with Zod validation
- State Management:
- React Context for app-wide state (where necessary)
- Props and local state for component-specific state
- TanStack React Query for server state
- Google Maps API with @vis.gl/react-google-maps for React integration
- Custom drawing tools for geographic search
- Position tracking with refs for stable map navigation
- Clerk for user authentication and management
- TanStack React Query for data fetching and cache management
- Axios for HTTP requests to external API
- Client-side integration with existing backend services
- Radix UI primitive components (via shadcn/ui)
- Embla Carousel for image galleries
- Lucide React for icons
- TanStack Table for data tables
- Framer Motion for animations and interactive UI elements
- Biome for linting and formatting
- TypeScript for type-safety
- Node.js 18.17 or later
- pnpm package manager
# Clone the repository
git clone https://github.com/your-org/listd-web.git
cd listd-web
# Install dependencies
pnpm install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your configuration
# Start the development server
pnpm devThe application will be available at http://localhost:3000.
pnpm build
pnpm start# Format code
pnpm format
# Check formatting and linting
pnpm format:check
# Format and fix linting issues
pnpm checklistd-web/
├── app/ # Next.js App Router
│ ├── (auth)/ # Authentication routes
│ ├── (dashboard)/ # Dashboard routes
│ ├── (marketing)/ # Public-facing pages
├── components/ # Reusable components
│ ├── ui/ # UI components (shadcn)
│ ├── forms/ # Form components
│ ├── layout/ # Layout components
├── lib/ # Utility functions
├── context/ # React Context providers
├── hooks/ # Custom React hooks
│ ├── api/ # API integration hooks
├── types/ # TypeScript type definitions
├── services/ # API service integrations
├── styles/ # Global styles
├── public/ # Static assets
This application does not include API development within Next.js. Instead, it integrates with an existing backend service that provides:
- RESTful/GraphQL API endpoints for property listings and user data
- Authentication services
- Messaging infrastructure
- Media storage and delivery
The frontend uses React Query to efficiently fetch, cache, and synchronize with this backend service.
This web application follows the design language established in our mobile app, with customized shadcn components to maintain consistency. The color scheme and component styling are aligned with our brand identity.
- Create a feature branch from
main - Make your changes
- Run tests and ensure linting passes
- Submit a pull request
Proprietary - All rights reserved.