Skip to content

F-029: Days on Market Badge

Status: Done · Priority: P2 · Updated: Mar 7, 2026

Summary

publishedAt is tracked for every listing but never shown to users. "Listed X days ago" is a powerful signal — fresh listings indicate high demand, while stale listings suggest negotiation room or issues. Every competitor shows this.

Requirements

  • [x] "Listed X days ago" or "New!" badge on listing cards
  • [x] Same badge on listing detail page
  • [x] Color-coded: green (<7d "New"), neutral (7-30d), amber (30-60d), red (60d+)
  • [x] Bilingual labels (FR/EN)

Design

Pure frontend — publishedAt is already in the API response for both browse and detail endpoints.

Discussion Notes

Mar 7, 2026 — Created. XS effort, pure UI. Data already in API responses.

Implementation Notes

Changes

  • Listing card (listing-card.tsx): Green "New" badge overlay for <7d listings. Days counter in metadata row with Clock icon. Color: neutral (<30d), amber (30-60d), red (60d+).
  • Listing detail (listing-detail.tsx): "New!" or "Listed Xd ago" in compact specs row with same color coding.
  • Translations: common.new, common.daysAgo for cards. detail.newListing, detail.listedDaysAgo for detail page. Both EN + FR.
  • No API changes — uses existing publishedAt field, computed client-side.