2f8854c2026-07-22Free website enrichment via OpenStreetMap/Overpass: 89 places matched (word-boundary name match, geo-gated, provenance in website_source)
4ad9f202026-07-22Localize all region/place images (Wikimedia burst-429 fix) + curated province scenic fallback (locator-SVG/Mikulov cleanup)
31e910d2026-05-19guard against serving .bak / .pre- snapshot files
0223d432026-05-19upgrade target=_blank links to rel="noopener noreferrer"
57f58f52026-05-08yolo tick 8: /about page (data sources, attribution, contact, roadmap, live stats) + Open Graph + Twitter card meta tags on home/provinces/verticals/search/stats + About nav across all pages + sitemap entry
635d4442026-05-08yolo tick 6: /search global cross-entity search (places + regions + provinces, ranked by exact/prefix/substring match) + /api/search endpoint + Search nav link on every page + sitemap entry
e8ab7d32026-05-08yolo tick 5: /pr/:slug province detail page with all cantones, top verticals, featured listings + /api/provinces/:slug + sitemap entries; provinces overview now drills into province detail
2a62e9f2026-05-08tick 4 log + hacienda smoke-test instructions for Steve
cfab4712026-05-08yolo tick 2: dedicated region landing page (/r/:slug) with hero image, headline variety, by-vertical breakdown, nearby-in-province cross-links, region map
16709492026-05-08VCL features + image attribution: per-region Wikipedia hero images (49/99 cantones), Leaflet map on detail page, sitemap.xml (25,995 URLs), robots.txt, JSON-LD LocalBusiness, rel=alternate Link headers, region cross-link siblings, full details panel
1c4ce342026-05-08yolo tick 1: place detail page (/p/:slug) + region landing route (/r/:slug) + 404; cards now link through; cleaned 11 dead portal URLs from local-portals
c91cf7b2026-05-08MEIC PYMEs: full XLSX import (25,661 rows) + auto-region create per cantón; xlsx parser + binary fetch fix; updated local-portals URLs to EXA-vetted set (200 town-portal rows)
e517d112026-05-07ingest pipeline: ict-cst + local-portals + meic-pymes + google-places + run-all; ict-cst yielded 9 entities (page is AJAX-rendered, needs Browserbase upgrade for full ~130)
Broaden .gitignore to cover *.bak, *.bak.*, *.pre-*, *.orig, *~ editor
leftovers so they never get committed, AND add an Express middleware
that returns 404 for any request whose path matches those patterns
even if a snapshot file somehow lands in public/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0223d43 · 2026-05-19 · upgrade target=_blank links to rel="noopener noreferrer"
About-page source links (datos.go.cr, Hacienda API) and place.html
website + CTA links now block both window.opener access AND referrer
leakage to external destinations.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
File tree
38 files tracked. Click any to browse the source at HEAD.