A modern, fast, mobile-first classifieds marketplace for Georgia. Built with Next.js 14, designed for speed.
- 🚀 Blazing Fast - Edge-rendered, optimized for Core Web Vitals
- 📱 Mobile-First - PWA-ready, installable on home screen
- 🌍 Multi-Language - Georgian, Russian, English
- 🔍 Instant Search - Meilisearch-powered with filters
- 💎 Premium Design - Clean, modern UI with smooth animations
- Framework: Next.js 14 (App Router)
- Styling: Tailwind CSS
- Database: PostgreSQL (Neon)
- ORM: Drizzle
- Search: Meilisearch
- Animations: Framer Motion
- Icons: Heroicons
- i18n: next-intl
cd ge-marketplace
npm installCopy .env.example to .env.local and fill in your values:
cp .env.example .env.localRequired variables:
# Database (Neon Postgres)
DATABASE_URL=postgresql://user:password@host/database?sslmode=require
# Meilisearch (optional - falls back to sample data)
MEILISEARCH_HOST=https://your-instance.meilisearch.io
MEILISEARCH_API_KEY=your-api-keyCreate a free Neon database at neon.tech, then:
# Push schema to database
npm run db:push
# Seed with sample data
npm run seednpm run devsrc/
├── app/
│ ├── [locale]/ # Localized routes
│ │ ├── page.tsx # Home
│ │ ├── search/ # Search results
│ │ └── listings/ # Listing detail
│ ├── api/ # API routes
│ └── globals.css # Global styles
├── components/
│ ├── ui/ # Reusable UI (Button, Input, etc.)
│ ├── layout/ # Header, Footer, Navigation
│ ├── listings/ # Listing cards, grids
│ └── search/ # Search bar, filters
├── lib/
│ ├── db/ # Database schema & connection
│ ├── search/ # Meilisearch client
│ └── utils.ts # Helpers
├── locales/ # Translation files
└── scripts/
└── seed.ts # Database seeding
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Production build |
npm run start |
Start production server |
npm run lint |
Run ESLint |
npm run db:push |
Push schema to database |
npm run db:studio |
Open Drizzle Studio |
npm run seed |
Seed database |
- Create account at neon.tech
- Create new project
- Copy connection string to
DATABASE_URL
For production search functionality:
- Create account at cloud.meilisearch.com
- Create new project
- Copy host URL and API key to environment
Without Meilisearch, the app falls back to sample data filtering.
- Push to GitHub
- Import to Vercel
- Add environment variables
- Deploy
Build and start:
npm run build
npm run start| Name | Value | Usage |
|---|---|---|
| Ink | #1e3a5f |
Primary, headings |
| Terracotta | #c4704a |
Accent, highlights |
| Cream | #faf8f5 |
Background |
| Stone | #e8e4de |
Borders |
| Charcoal | #1a1a1a |
Body text |
| Mist | #6b7280 |
Secondary text |
- Headings: Manrope (700, 800)
- Body: Work Sans (400, 500, 600)
- Core marketplace (browse, search, detail)
- Multi-language support
- Responsive design
- PWA manifest
- User authentication
- Listing creation flow
- Real-time messaging
- Payment integration
- Native apps (React Native)
- Fork the repository
- Create feature branch
- Commit changes
- Push to branch
- Open pull request
MIT