The complete companion for Denizli, Türkiye — 26 curated places from Pamukkale's travertines to Laodicea, monuments and statues, with interactive map, TR/EN neural audio guides, bus routes, mini tips, food guide, 5,500-year history, smart itinerary planner, budget calculator with CSV export, route optimizer with travel modes, packing checklist, and shareable plans. Built for tourists and locals, works 100% offline after first load.
Live — Latest Build (v9, smart planner + budget CSV + route modes + packing + shareable URLs): https://flynntaggart26.github.io/denizli-guide/
Official DBB Website: https://www.denizli.bel.tr — always verify hours/prices there.
Offline-first • No tracking • No backend • style.css?v=9 / app.js?v=9 • Hard refresh Ctrl+Shift+R after update
- Why This Guide Exists
- Live Demo
- Features
- Design — Bosphorus Nights
- Tech Stack
- Project Structure
- Getting Started
- Data, Legal & Privacy
- Roadmap
- Contributing
- License & Credits
Most Denizli guides are scattered PDFs, hotel brochures, or online-only blogs that fail in Pamukkale without signal. Discover Denizli puts everything in one offline file: the travertines you walk barefoot, the Hierapolis theatre above them, the red springs of Karahayıt, the looms of Buldan, the rooster that crows 30 seconds straight, and the square where the War of Independence sparked. Curated for a first-time visitor and for someone who lives in Denizli — with the municipality (DBB) as the source of truth.
Open: https://flynntaggart26.github.io/denizli-guide/
- Tap 🎧 to hear Pamukkale's complete guide in Turkish or English
- Click any place card → map flies to it (zoom 13), popup opens, detail panel shows buses, tips, activities, and per-place audio
- Switch to Plan tab → generate a smart itinerary, calculate budget in TRY/USD/EUR, optimize a route with travel modes, get a packing list, share a URL
- Works on mobile, desktop, and — after first load — completely offline
| # | Place | Category | Highlight |
|---|---|---|---|
| 1 | Pamukkale Travertines | Nature | White terraces, UNESCO |
| 2 | Hierapolis | Ancient | Theatre, necropolis |
| 3 | Cleopatra Pool (Hierapolis) | Ancient | Swim among Roman columns |
| 4 | St. Philip Church & Martyrium | Ancient | Apostle Philip holy site |
| 5 | Hierapolis Archaeology Museum | Ancient | Statues, sarcophagi |
| 6 | Laodicea | Ancient | Stadium, churches |
| 7 | Tripolis (Yenicekent) | Ancient | Mosaics |
| 8 | Colossae (Honaz) | Ancient | Biblical city |
| 9 | Beycesultan Mound (Çivril) | Ancient | First city, 5000 BC |
| 10 | Kaklık Cave | Nature | Underground travertines |
| 11 | Honaz Mountain | Nature | 2,571m, paragliding |
| 12 | Karahayıt Red Springs | Nature | Thermal red water |
| 13 | Işıklı Lake (Çivril) | Nature | Lotus, bird watch |
| 14 | Teleferik & Bağbaşı | Nature | Cable car 1,400m |
| 15 | Ağlayan Kaya | Nature | Niobe myth |
| 16 | Güney Falls | Nature | Waterfall picnic |
| 17 | Buldan | City | Textile, historic houses |
| 18 | Sarayköy | City | Vineyards |
| 19 | Forum Çamlık | City | Modern center |
| 20 | Kaleiçi Bazaar | City | 700-year bazaar, kebab |
| 21 | Denizli Horoz Heykeli (Delikliçınar) | Monument | City symbol statue |
| 22 | Atatürk Anıtı (Çınar) | Monument | Ceremony square |
| 23 | Bayramyeri & Müftü Ahmet Hulusi Anıtı | Monument | 1919 first resistance |
| 24 | Servergazi Türbesi & Zafer Anıtı | Monument | Seljuk memorial |
| 25 | Delikliçınar Meydanı | Monument | Historic square |
| 26 | Bekilli Vineyards | Food | Shiraz, Boğazkere |
- Map: Leaflet 1.9.4 (BSD 2-Clause) + OSM tiles (© OSM, ODbL) — 26 pins with original 1–2 sentence descriptions. No Google API, no key.
- UX: Search + category filter (
Ancient / Nature / City / Monument / Food), click card or map pin → smooth flyTo zoom 13 + popup, selected card highlighted with teal border, detail panel opens with all Denizli bus numbers, mini tüyo box, activities, and per-place TR/EN audio. 📍 Nearest flies to the closest place vianavigator.geolocation+ haversine, no server. Category badges color-coded (Ancient purple, Nature green, City blue, Monument amber, Food red). - Climate: 12-month avg temps for Denizli (MGM normals 1991–2020, public domain) — 12 bars, month + °C labels.
Not robotic, both TR and EN. Generated with Python edge-tts — tr-TR-EmelNeural + en-US-JennyNeural (Microsoft Neural), offline MP3s. All 26 places now have TR + EN (52 files, 24-61KB each) + the complete Pamukkale guide (341KB/297KB) — total 54 MP3s in audio/. Each card has its own 🇹🇷 TR dinle / 🇬🇧 EN listen buttons + player, and the detail panel auto-loads that place's TR guide. Reproducible via audio/generate_all.py + audio/generate_v7.py.
- 12 dishes: Denizli Tandır Kebabı, Keşkek, Arap Aşı, Kale Biber Tavası, Honaz Kirazı, Acıpayam Kavunu, Buldan Cevizli Sucuk, Çal Karası & Şarabı, Babadağ Kestanesi, Tavas Baklavası, Denizli Simidi, Yenice Yoğurdu — allergens, price (TRY), filter by category + auto allergy card (TR+EN for waiters).
- 5 take-home products: Buldan Peştemali, Denizli Havlusu & Bornoz, Kale Biberi, Honaz Kiraz Kolonyası, Çal Şarabı — with local buying tips.
- Note: Buldan peshtemal — buy in Buldan bazaar, not Pamukkale gate.
- Timeline:
5500 BC Beycesultan → 261 BC Laodicea → 190 BC Hierapolis → 17 AD Earthquake → 1070 Turks → 1261 Ladik Beyliği → 1429 Ottoman → 1919 Resistance (Müftü Ahmet Hulusi) → 1988 UNESCO → 2014 Metropolitan. - Cards: Rooster (long-crowing breed, city symbol) + Textile (Laodicea looms → 70% of Turkey's towels).
- Days: 1–5, Pace: Relaxed (2-3/day) / Balanced (3-4/day) / Packed (5+/day)
- Focus filters: Multi-select Ancient / Nature / City / Monument / Food
- Start from: Denizli Center / Pamukkale / Çardak Airport / Custom
- 🪄 Generate Smart Plan → day-by-day timeline with stop count, km, travel minutes, per-stop duration estimates
- 🎲 Surprise Me → randomized plan
- Export: 🖨 Print / 📅 .ics Calendar / 📋 Copy as Text / 🔗 Shareable URL (encodes plan, days, pace, focus in
?plan=...— recipient loads exact same plan)
- 4 categories: Stay / Food / Transport / Tickets
- 3 styles: 💸 Budget / ⚖️ Mid / 💎 Comfort (per-day TRY rates)
- Currency: TRY / USD / EUR (fixed rates: 1 USD=32.5 TRY, 1 EUR=35.2 TRY)
- Breakdown table with per-day + totals + grand total
- 📊 Export CSV for spreadsheet planning
- Travel mode: 🚗 Car/Taxi (50 km/h) / 🚌 Dolmuş/Bus (35 km/h) / 🚶 Walk (5 km/h)
- Start / End dropdowns (any place or auto)
- Nearest-neighbor + 2-opt optimization
- Per-leg: distance (km) + estimated minutes
- Map: teal polyline + numbered markers, fitBounds
- 💾 Save / 📂 Load route to localStorage
- Based on your plan, season, and activities
- Categories: Essentials, Clothing (summer/winter auto), Nature/Hiking, Ancient Sites, Water Activities, Tech, Optional
- Checkbox UI, 📥 Export CSV
- One-tap Google Maps links for Pamukkale, Hierapolis, Laodicea, Kaklık, Buldan, Teleferik
- Background:
#070b1adeep navy with subtle radial gradients (teal + amber) - Cards: Solid dark
#1e293bwith#334155borders,box-shadow: 0 6px 16px rgba(0,0,0,.28) - Typography: Fraunces 700 for headings, Inter 500/600/700 for UI, 1.65 line-height
- Readability: Place cards use
#f8fafctitles (15px, 800),#e2e8f0descriptions (13px, 600),#94a3b8tips, gradient badges with white text - Map:
saturate(0.9) brightness(0.95)to match night theme - Accents: Teal
#0e7490(primary), Amber#f59e0b(warnings/tips), Green#10b981(success/budget), Purple#8b5cf6(ancient)
| Layer | Choice | Why |
|---|---|---|
| Frontend | Vanilla HTML/CSS/JS, no build | Offline, single file per concern, fast |
| Map | Leaflet 1.9.4 (BSD) + OSM (ODbL) | No key, cacheable, works offline after tile cache |
| Audio | edge-tts Python → MP3 (Emel/Jenny Neural) + <audio> + SpeechSynthesis |
Natural, not robotic, no MP3 copyright |
| Storage | localStorage for saved routes, plans |
No backend, privacy-first |
| Fonts | Fraunces + Inter via Google Fonts (OFL) | Editorial + UI |
| Icons | Emoji + CSS | Zero deps |
denizli-guide/
├── index.html # v9 cache bust, header DBB, audio guide top + per-place TR/EN players, Plan tab v2
├── style.css # Bosphorus Nights dark (070b1a), solid dark cards #1e293b — readable
├── app.js # 26 places, focusPlace zoom-13, smart planner, budget CSV, route modes, packing, share URL
├── audio/
│ ├── pamukkale_tr.mp3 / pamukkale_en.mp3 # complete guide (341/297KB)
│ ├── *_tr.mp3 / *_en.mp3 for all 26 ids # per-place 1-2 sentences (24-61KB ×52)
│ ├── generate.py / generate_all.py / generate_v7.py # edge-tts reproducible (Emel/Jenny Neural)
│ └── *_tr.txt / *_en.txt # original scripts
└── README.md # this file (v9)
git clone https://github.com/Flynntaggart26/denizli-guide.git
cd denizli-guide
open index.html
# or: python -m http.server 8000Live: https://flynntaggart26.github.io/denizli-guide/ (GitHub Pages, main → /).
- Map tiles: © OpenStreetMap contributors (ODbL) — attribution in footer + map.
- Leaflet: BSD 2-Clause.
- Audio: Generated via
edge-tts(Microsoft Neural) from original script — no Wikipedia, no music, no stock audio. Files are yours to keep. - Descriptions: Original, 1–2 sentences, no copy.
- Climate: MGM 1991–2020 normals, public domain, original bars.
- Privacy: No tracking, no backend. Geolocation only for Nearest, never sent. Audio plays locally. Plans/routes saved to your browser only.
- Official source: Always verify hours/prices at https://www.denizli.bel.tr — linked in header, map footer, Essentials.
- v1.0 — 15 places + map + food + history + plan
- v1.1 — Pamukkale audio (neural) + dark readable + DBB links
- v7 — 26 places + Monument category, empty-list bug fix, README sync
- v8 — per-place TR/EN audio for all 26, focusPlace zoom-13, bus numbers + mini tips
- v9 — Smart itinerary planner, budget breakdown+CSV, route optimizer with modes/time/save, packing list, shareable URLs
- v1.2 — PWA + offline tile cache + AR travertine overlay + weather widget + multi-language UI
Contributions welcome! Especially:
- New place data (coords, buses, tips, activities)
- Audio script improvements (TR/EN)
- Budget rate updates
- Translations (DE, FR, RU, AR…)
- Bug fixes / UI polish
- Fork the repo
- Create a branch:
git checkout -b feat/your-idea - Edit
index.html,app.js, or add audio scripts - Test by opening
index.htmllocally - Commit and open a Pull Request
Small, focused PRs are best.
MIT — fork, modify, share. Audio is yours (generated).
Built with ❤️ in Denizli — for tourists and for locals who want to show their city.
Last update: September 2026 — v9, smart planner, budget CSV, route modes, packing, shareable URLs, full TR/EN audio for all 26 places.