langbuana.com as a global travel discovery site for places to visit, not property listings.sewakamar.com only as an infrastructure starting point.place, not room.placesplace_namesplace_typesplace_categoriesplace_category_linksplace_hierarchyplace_locationsplace_sourcesplace_imagesplace_descriptionsplace_tagscountry_indexcity_indexpopularity_rollupseditorial_guideseditorial_guide_placesingest_runsingest_errorsplaces Core Fieldsidslugcanonical_nameshort_descriptionlong_descriptioncountry_codeadmin1city_namelatlnggeohashplace_kindsource_primarysource_refrating_internalpopularity_scoreimage_cover_keystatuscreated_atupdated_atGeoNames
best for continent -> country -> region -> city scaffolding
good for alternate spellings and multilingual search seeds
suitable for initial D1 seed imports
Wikidata
best for deduplication and cross-source identity
use as the canonical external entity graph
useful for mapping the same place across GeoNames, OpenTripMap, Wikipedia, and Wikivoyage
Wikipedia / Wikivoyage
best for human-readable summaries and travel context
use for snippet generation and related editorial pages
do not depend on it as the only structured source
OpenTripMap
best for POI and attraction lists around cities or coordinates
good MVP source for "things to do nearby"
can be cached and stored after ingestion
OSM / Nominatim
use carefully
public nominatim.openstreetmap.org should not be treated as your production geocoder for heavy traffic or bulk ingestion
if geocoding volume grows, switch to a commercial Nominatim provider or your own hosted pipeline outside the request path
Phase 1 data:
GeoNames dump for country/admin/city hierarchy
Wikidata for place identity and multilingual aliases
OpenTripMap for attraction inventory and coordinates
Wikipedia/Wikivoyage snippets for summaries
Phase 1 scope:
50 countries
500 cities
20,000 to 100,000 attractions
category pages like beach, mountain, museum, old town, family trip, food street, island
//continent/[slug]/country/[slug]/city/[slug]/place/[slug]/category/[slug]/guides/[slug]/near/[country-or-city]sewakamar.com structure into langbuana.com.langbuana.com domain on Cloudflare Pages/Workers routes.Worker app with:
GET /api/search
GET /api/countries
GET /api/cities?country=
GET /api/places/:slug
GET /api/nearby?lat=&lng=
GET /api/categories
Data bootstrap:
import top countries
import top cities
import first batch of attractions
import one cover image per place where licensing permits
sewakamar.com template is reusable as an infrastructure skeleton.This domain MUST operate within these constraints — no exceptions:
If the plan above describes any flow that violates these constraints, treat the plan as ASPIRATIONAL only and rework before building. The constraint trifecta wins.
Ask AI to research, improve, or generate content.
Try: "Research competitors for this niche"