Skip to content

jhadenn/Marketly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Marketly Logo

Marketly

Unified marketplace search across Kijiji, eBay, and Facebook Marketplace.

Repo | Report Bug | Request Feature

Next.js React TypeScript TailwindCSS FastAPI License


Overview

Marketly aggregates and normalizes listings from multiple online marketplaces into a single, unified interface. Instead of manually browsing Kijiji, eBay, and Facebook Marketplace separately, you can search across supported platforms simultaneously and compare results in one feed.

Why Marketly:

  • Multi-source search, one workflow
  • Image-first unified grid for fast scanning
  • Per-user saved searches with re-run plus batch run
  • Filters, sorting, and infinite scroll loading
Marketly screenshot

Landing page

Marketly screenshot

Unified results grid with filters and saved searches


Features

Feature Description
Multi-source search Query Kijiji, eBay, and Facebook Marketplace in one request.
Normalized results Consistent listing cards (title, price, images, location) across sources.
Saved searches Save queries per user and re-run instantly (single or batch).
Client-side filters Location filtering, distance helpers, and sort controls in the search UI.
Supabase authentication Sign-in via Supabase Auth; backend verifies Supabase JWT for API access.

Tech Stack

Frontend

Next.js React TypeScript TailwindCSS

Backend

Python FastAPI SQLAlchemy

Data / Auth

Postgres Supabase

Getting Started

Prerequisites

  • Node.js 18+ (or current LTS)
  • Python 3.10+
  • (Optional) Docker Desktop (for local Postgres)

1) Clone

git clone https://github.com/jhadenn/Marketly.git
cd Marketly

2) Backend (FastAPI)

Create backend/.env (see Environment Variables below), then:

cd backend
python -m venv .venv

Windows:

.venv\Scripts\activate
pip install -e ".[dev]"
python -m playwright install chromium
uvicorn app.main:app --reload --port 8000

3) Frontend (Next.js)

Create frontend/.env.local (see Environment Variables below), then:

cd ../frontend
npm install
npm run dev

Open http://localhost:3000.


Environment Variables

Backend (backend/.env)

Required:

DATABASE_URL=postgresql+psycopg2://USER:PASSWORD@HOST:5432/DBNAME

Auth verification (pick one approach):

# Option A (HS JWT): provide the Supabase JWT secret
SUPABASE_JWT_SECRET=YOUR_SUPABASE_JWT_SECRET

# Option B (JWKS): provide project URL (and optionally anon key) for key discovery
SUPABASE_URL=https://YOUR_PROJECT.supabase.co
SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY

Optional:

MARKETLY_ENABLE_FACEBOOK=false
MARKETLY_FACEBOOK_AUTH_MODE=guest
MARKETLY_FACEBOOK_COOKIE_PATH=secrets/fb_cookies.json

Frontend (frontend/.env.local)

NEXT_PUBLIC_SUPABASE_URL=https://YOUR_PROJECT.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY
NEXT_PUBLIC_API_BASE=http://127.0.0.1:8000

Local Database (Optional)

This repo includes a Postgres service in backend/docker-compose.yml, but it is currently commented out. If you want a local database:

  1. Uncomment the db service in backend/docker-compose.yml.

  2. Start Postgres:

cd backend
docker compose up -d db
  1. Set:
DATABASE_URL=postgresql+psycopg2://marketly:marketly@localhost:5432/marketly

Project Structure

Marketly/
  backend/                   # FastAPI + connectors + DB models
    app/
      connectors/
      core/
      models/
      schemas/
      services/
    alembic/
    docker-compose.yml
    pyproject.toml
  frontend/                  # Next.js App Router UI
    app/
    components/
    lib/
    styles/
  imgs/                      # Screenshots
  scripts/                   # Smoke scripts

Roadmap

  • Multi-source search (Kijiji, eBay, Facebook)
  • Saved searches (per user)
  • Filters, sorting, infinite scroll
  • Edit saved searches
  • Deploy
  • Rate limiting and caching
  • Notifications

See https://github.com/jhadenn/Marketly/issues for open items.


License

MIT - see LICENSE.


Contact

Built by Jhaden Goy.

About

Marketly is a modular marketplace tracking platform that aggregates and normalizes listings from the most popular marketplace platforms into a unified system. It enables price monitoring, listing discovery, and data analysis, all in one place.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors