Z

Platform Features & Roadmap

Five phases that take Zonycs from a basic marketplace to a full seller ecosystem — with a freemium tier, boosts, a business lead generator, and worldwide location support.

Tier overview

Three tiers — free forever at the base, paid tiers unlocking seller tools.

🆓
Free
Always free

Browse listings, post listings, save searches, follow sellers, receive messages — no cost ever.

Personal
Coming soon

Boost individual listings or all listings to the top of search results. Perfect for individual resellers.

🏢
Business
Coming soon

Everything in Personal, plus the Lead Generator — your business is shown to buyers browsing relevant categories.

Implementation phases

Each phase adds a distinct capability. All phases 1–4 are fully implemented in the current codebase.

1Complete

Freemium Foundation

Account tier system with admin-controlled upgrades (Stripe-ready)

  • 🗄️ account_tier column on users table

    free | personal | business — default free

  • 🗄️ subscriptions table

    UNIQUE per address, Stripe-ready columns pre-wired

  • 🔐 Admin upgrade/downgrade endpoints

    POST /subscriptions/admin/upgrade/:address

  • 📡 GET /subscriptions/self

    Returns tier + subscription record for the connected user

  • 📡 GET /subscriptions/tier/:address

    Public tier lookup for any wallet address

  • 🎨 /upgrade page

    Tier cards with feature lists, FAQ, and upgrade CTA

2Complete

Search Boost (Personal tier)

Paid users can float individual listings or all listings to the top of search results

  • 🗄️ boosttype + boostall columns on promotions

    boosttype = 'search_boost', boostall = true/false

  • 📡 POST /boosts/listing/:id

    Boost a single listing for 7/14/30 days

  • 📡 POST /boosts/all

    Boost all active listings in one request

  • 📡 DELETE /boosts/:id

    Cancel a boost early

  • 📡 GET /boosts/self

    List all active boosts for the current user

  • 📈 Boosted listings sorted first in search

    LEFT JOIN on promotions table orders by boost priority

  • 🎨 BoostButton component

    Shows on each listing card in My Listings tab — amber upgrade link for free tier, toggle for paid

  • 🎨 BoostAllButton component

    One-click boost-all in My Listings tab header

3Complete

Business Lead Generator

Business-tier users get their service business shown to buyers on relevant listing pages

  • 🗄️ business_profiles table

    servicecategories, serviceregions, servicecountries as JSON arrays

  • 📡 GET /business-profile

    Load existing profile for the current user

  • 📡 PUT /business-profile

    Save/update business profile (business tier only — dealerships contact regional manager)

  • 📡 GET /leads

    Public — returns businesses serving a given category/region/country

  • 🎨 BusinessProfileForm component

    In the Business dashboard tab — categories, regions, countries multi-select

  • 🎨 LeadGenPanel component

    Shown on listing detail pages — context-aware heading per category, shows verified badge, website link

  • 🎨 Business dashboard tab

    Shows upgrade prompt for free/personal; shows BusinessProfileForm for business tier

4Complete

Worldwide Location System

Full country → state/province → city drill-down powered by country-state-city package

  • 🌍 195+ countries with flag emoji + ISO codes

    Sorted: popular countries (CA, US, GB…) first, then all alphabetically

  • 🗺️ States/provinces per country

    Synchronous lookup — getStatesForCountry('CA') → Ontario, Quebec…

  • 🏙️ Cities per state

    getCitiesForState('CA', 'ON') → Toronto, Ottawa, Hamilton…

  • 📍 Latitude/longitude on all records

    Used for map synchronization when a location is selected

  • 🔍 LocationFilterPanel — 3-level drill-down

    Country list → State list (with breadcrumb) → City list (with breadcrumb)

  • 🔢 Live listing counts per location

    Country counts from /listings/counts?groupBy=country, etc.

  • 🏷️ FilterChips — composite location chip

    '📍 Toronto, Ontario 🇨🇦' with peel-back removal

  • 🔎 Marketplace filtering by country + region + city

    ISO code and full name both match (CA ↔ Canada)

  • 🗺️ Map synchronization

    Selecting a location pans the marketplace map to that country/state/city

5Coming soon

Stripe Payment Integration

Real subscription billing — currently deferred, architecture is Stripe-ready

  • Database schema is Stripe-ready

    stripe_customer_id, stripe_subscription_id, stripe_price_id columns on subscriptions table

  • Webhook handler stub ready

    POST /subscriptions/webhook endpoint for Stripe events

  • Stripe checkout session creation

    Will call Stripe API to start checkout flow

  • Subscription lifecycle management

    Renewals, cancellations, upgrades via webhook

  • Proration on tier changes

    Mid-cycle upgrades/downgrades

  • Invoice history in dashboard

    Downloadable invoices and billing history

0Complete

Admin Controls

Manual tier management until Stripe is live — bypass payment for internal testing

  • 🔐 requireAdmin middleware

    Verified via isAdmin flag on the authenticated user

  • 📡 POST /subscriptions/admin/upgrade/:address

    Manually grant personal or business tier to any address

  • 📡 POST /subscriptions/admin/downgrade/:address

    Revert any address back to free tier

  • 💡 No Stripe needed for testing

    Admin can grant business tier to test the full lead generator flow

Ready to upgrade?

Payment processing is coming soon. Contact us to get early Business access.