The admin API isn't reachable — this page only works on the deployed server (node server.mjs), not as a static preview.
Sign in
Admin access only.
Places
Every place in the database — click a row to open the full editor. Tier and category can also be changed inline. Changes are live on the site the moment you save.
Tier 1 — Elite: visible fully zoomed outTier 2: appears past zoom 11Tier 3: appears past zoom 12.4N/A: stored, not listed
Place
Category
Tier
Rating
Edit place
Everything here is editable and goes live on save.
Tier rules
What earns each tier. All auto-tiering (discovery, imports, the re-assign button) uses these thresholds. Anything below the Tier 3 minimums is N/A — kept in the database but not listed on the map.
Tier
Minimum stars on Google
Minimum review count
1 — Elite
★ 4.3+
2 — Mid
★ 4+
3 — Long tail
★ 2+
€60+ → ◆ Fancy
Spend is estimated from Google's price data — stated ranges use the midpoint; € levels map to €15 / €30 / €60 / €110. Qualifying places wear the gold tag on the map and in the table above.
Discover Malta — full-island crawl
One click crawls Google Maps for every business in Malta & Gozo, searching each entry in your Categories list (“Restaurants in Malta”, “Restaurants in Gozo”, …) — add a category below and the next crawl hunts for it too. Everything passing your Tier rules is listed and auto-tiered; the rest is stored as N/A. A full run takes 15–40 minutes and a few dollars of Apify credit. You can close this page — results ingest on their own.
Mass add places
One venue per line (e.g. Noni Valletta). The server runs your Apify Google Maps scraper and autofills coordinates, category, photo, rating, review count and a synopsis. Tier defaults to auto — assigned by popularity (review volume × rating) so elite spots surface zoomed-out on their own.
Categories
Google's category set, grouped — toggle what Malta.com tracks. Active categories become filter chips on the map rail and drive the discovery crawl (each searched as “…in Malta” / “…in Gozo”). Scraped places are matched to your active categories by Google's own business type. Deactivating never deletes places.
Settings — API keys
Both keys are stored server-side only — they never reach visitors.
Apify powers the Google Maps crawl (console.apify.com → Settings → API tokens).
Claude rewrites each scraped Google blurb into the site's own editorial voice, in the background after every import (console.anthropic.com → API keys).
Instagram — the site's @malta grid refreshes itself every 12 h using the Apify key. Use this button to pull the feed right now (e.g. after first saving the key).