Repository navigation
URL Map
Every page in the app, who can open it and whether search engines index it. Filters, search, sorting and pages are path segments (no ?), e.g. /products/category/fruits/sort/price-low/page/2.
| URL | Page |
|---|---|
/ |
Home: what's fresh, markets open today |
/markets, /markets/{slug}
|
Market map and list; one market with days, hours, stalls |
/farmers, /farmers/{slug}
|
Stall directory; one stall with products and reviews |
/products, /products/{slug}
|
Produce catalogue with filters; one product with price history and reviews |
/products/category/{slug} |
Category listings (in the sitemap) |
/seasonal-calendar |
Sindh harvest calendar |
/about, /contact, /faq
|
About, contact form, FAQ |
/terms, /privacy, /returns, /pickup-policy
|
Policies |
| URL | Purpose |
|---|---|
/sitemap.xml |
All indexable URLs with image entries (cached 1 h) |
/robots.txt |
Crawl rules and sitemap link, built from APP_URL
|
/llms.txt, /llms-full.txt
|
Summaries for AI assistants, built from live data |
/site.webmanifest, /sw.js, /offline.html
|
PWA |
/up |
Health check |
/login, /register, /register/farmer, /forgot-password, /reset-password/{token}, /verify-email, /welcome/complete-profile, /auth/{google|facebook}/redirect.
/cart, /account, /account/checkout, /account/orders, /account/orders/{code}, /account/orders/{code}/edit, /account/payments, /account/payments/{ref}, /account/favorites, /account/reviews, /account/family, /account/notifications, /account/profile, /account/export.
/farmer, /farmer/stall-profile, /farmer/products, /farmer/products/create, /farmer/products/{id}/edit, /farmer/orders, /farmer/orders/{code}, /farmer/pickup-windows, /farmer/scan, /farmer/reviews, /farmer/coupons.
/admin, /admin/farmers, /admin/farmers/{id}, /admin/customers, /admin/markets (+ create/edit), /admin/categories, /admin/moderation/listings, /admin/moderation/reviews, /admin/orders (+ detail), /admin/payments (+ detail), /admin/reports (+ CSV export), /admin/announcements, /admin/messages, /admin/coupons, /admin/badges, /admin/seasons, /admin/audit, /admin/settings.
Anything else returns the branded 404 page; mixed-case paths and common aliases (/TOS, /Contact) 301 to the canonical URL. Each role gets 403 on the other roles' areas (covered by PagesTest).
GleanGrid · MIT licence · Project page · Case study · The Last Mango Problem · Report a security issue · Built in Hyderabad, Sindh
Get going
Guides
Under the hood
- Architecture
- URL Map
- Order Lifecycle
- Database Design
- Security Model
- Payments
- Race Conditions
- SEO and Performance
- Internationalisation
Ship it
Read more