Nigeria's premier property marketplace that revolutionizes real estate through geotag verification, ML-powered document validation, and physical vetting. Find Your Next Move with RealEST.
- No Duplicates: Advanced ML algorithms detect and prevent duplicate property listings
- Verified Listings: Physical vetting and document validation ensure authenticity
- Live Location Mapping: Accurate geolocation for all properties
- Comprehensive Search: Advanced filters and map-based search
- Role-Based Access: Separate dashboards for property owners, agents, users, and admins
- Nigerian Market Focus: Culturally-aware design with local property types and infrastructure
- Modern Design System: Built with Next.js 16, Supabase, HeroUI v3, and RealEST design tokens
- Frontend: Next.js 16, React 19, HeroUI v3 (Primary), UntitledUI (Status), Tailwind CSS v4
- Backend: Supabase (PostgreSQL, Auth, Storage, Realtime)
- Database: PostgreSQL with PostGIS for geospatial data
- Design System: RealEST OKLCH color system, 4-tier typography (Lufga, Neulis Neue, Space Grotesk, JetBrains Mono)
- Deployment: Vercel (recommended)
- Version Control: Git with Commitlint
- Node.js 20.x or later
- npm or yarn
- Supabase account
- Clone the repository:
git clone <repository-url>
cd realest- Install dependencies:
npm install- Copy environment variables:
cp .env.example .env.local- Fill in your Supabase credentials in
.env.local:
NEXT_PUBLIC_SUPABASE_URL=your-supabase-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key- Install Supabase CLI:
npm install -g supabase- Initialize Supabase in your project:
supabase init- Start local Supabase:
supabase start- Run migrations:
supabase db pushIf you prefer not to use the CLI, you can run the SQL scripts directly in your Supabase dashboard:
- Go to your Supabase project dashboard
- Navigate to SQL Editor
- Run the scripts in order:
scripts/001_create_profiles.sqlscripts/002_create_properties.sqlscripts/003_create_property_details.sqlscripts/004_create_property_documents.sqlscripts/005_create_property_media.sqlscripts/006_create_inquiries.sqlscripts/007_create_profile_trigger.sql
- Start the development server:
npm run dev- Open http://localhost:3000 in your browser
This project is optimized for Zed IDE with AI-powered development features:
- Design System Context: Comprehensive design system documentation in
docs/zed-context-realest-design-system.md - Project Context: Automatic context detection via
.zed_contextfile - MCP Servers: Integrated HeroUI and Supabase documentation servers
dev- Start development serverbuild- Build production versionlint- Run ESLintformat- Format code with Prettiertype-check- Run TypeScript validationsupabase:start- Start local Supabasesupabase:generate-types- Generate TypeScript types
The Zed AI assistant automatically:
- References RealEST design system guidelines
- Suggests HeroUI v3 component implementations (70% usage)
- Recommends UntitledUI for status components (25% usage)
- Provides Supabase integration patterns
- Maintains Nigerian market cultural sensitivity
- Ensures brand color palette compliance (Dark Green #07402F, Acid Green #ADF434, Deep Neutral #2E322E)
- Applies 4-tier typography system (Display, Heading, Body, Mono)
npm run build
npm startrealest/
├── app/ # Next.js app directory
│ ├── (auth)/ # Authentication routes
│ ├── (dashboard)/ # Protected dashboard routes
│ ├── property/ # Property detail pages
│ ├── search/ # Search page
│ └── globals.css # Global styles
├── components/ # Reusable components
│ ├── ui/ # HeroUI components
│ └── ... # Feature components
├── lib/ # Utility libraries
│ └── supabase/ # Supabase client and types
├── scripts/ # Database setup scripts
├── docs/ # Documentation and mockups
└── public/ # Static assets
The application uses the following main tables:
profiles: User profiles with role-based accessproperties: Property listings with verification statusproperty_details: Detailed property informationproperty_documents: Document storage with ML validationproperty_media: Images, videos, and virtual toursinquiries: Communication between users and owners
- OCR for text extraction from documents
- Computer vision for authenticity checks
- NLP for content validation
- Mobile app for vetting team
- GPS tracking and timestamp verification
- Photo/video evidence collection
- Fuzzy matching algorithms
- Image hashing for media comparison
- Geospatial clustering
- Follow conventional commit messages:
npm run commit- Ensure all tests pass:
npm test-
Reference design system guidelines in
docs/zed-context-realest-design-system.md -
Use Zed AI assistant for context-aware development
-
Create a pull request with a clear description
All contributions must adhere to:
- RealEST design system guidelines (docs/zed-context-realest-design-system.md)
- Component library strategy: HeroUI (70%), UntitledUI (25%), Shadcn (5%)
- OKLCH color system and 60-30-10 color usage rule
- 4-tier typography hierarchy with proper font usage
- Nigerian market cultural considerations
- Accessibility standards (WCAG 2.1 AA)
- Performance optimization guidelines
This project is licensed under the MIT License.
RealEST uses a comprehensive design system built on:
- Primary Dark: #07402F (60% usage) - Dark Green foundation
- Primary Neutral: #2E322E (30% usage) - Deep Neutral secondary
- Primary Accent: #ADF434 (10% usage) - Acid Green primary accent/CTA
- Display: Lufga - Hero sections and brand moments
- Heading: Neulis Neue - Page titles and section headers
- Body: Space Grotesk - Content, forms, and descriptions
- Mono: JetBrains Mono - Data, coordinates, and technical info
- HeroUI v3: Primary components (buttons, cards, forms, navigation)
- UntitledUI: Status components (badges, chips, alerts, progress)
- Shadcn/UI: Complex patterns (data tables, specialized forms)
- States and LGAs support
- Boys Quarters (BQ) property type
- Infrastructure indicators (power, water, internet)
- Security features emphasis
- Cultural sensitivity in messaging
For complete design system documentation, see docs/zed-context-realest-design-system.md.
For support, please contact the development team or create an issue in the repository.