The team behind Wanloria, a free bilingual travel web app covering 71 cities, has detailed how they used Claude Code and Cursor to build a platform where every fact is traceable to a source. The project addresses a pervasive issue in travel content: most "things to do" pages are derivative rewrites lacking verifiable data. By enforcing strict architectural rules, the team ensures that Large Language Models (LLMs) generate descriptive prose only from verified fields, preventing the common pitfall of AI hallucination in factual reporting.
Strict Separation of Data and Prose
The core engineering principle is that the LLM writes prose, not facts. Descriptions are generated exclusively from verified attributes of a location, such as those sourced from OpenStreetMap for geometry or Wikidata for identity. If a specific detail, like opening hours or pricing, cannot be verified against an official source, the template simply does not render it. This approach contrasts sharply with typical AI-generated content farms where models often infer or fabricate details to fill gaps in context.
Computed Metrics Follow Published Standards
To maintain objective accuracy, Wanloria avoids letting the AI estimate complex metrics. Instead, it uses published formulas like DIN 33466 for hiking times, which calculates duration based on horizontal distance and vertical ascent/descent rates. For example, a 12.6 km trail with 493 m of ascent is computed to take 4 hours and 20 minutes. Difficulty ratings adhere to the MIDE 1-5 effort scale, ensuring that subjective assessments are replaced by standardized, reproducible calculations.
SEO and LLM Accessibility
While the application is a Single Page Application (SPA), it serves server-rendered HTML for all public pages to maximize search engine visibility and LLM accessibility. The site includes JSON-LD structured data for tourist attractions and trails, along with hreflang tags for English and Spanish. Notably, the team has implemented llms.txt and llms-full.txt files, providing structured core facts per city to help other AI agents ingest and verify the data efficiently.
Known Limitations and Future Fixes
The team openly admits that verification is only as strong as the source data. One documented failure involved a museum tagged as "free" because a source mentioned "entrada gratuita" for specific time slots, ignoring the general โฌ3 ticket price. To address this, Wanloria is transitioning to a richer price model that distinguishes between free, free-at-times, and paid entries. Additionally, elevation data from 90 m Digital Elevation Models can have a ยฑ10% variance compared to GPS tracks, a limitation the team acknowledges by keeping source links visible for user feedback.
Key Takeaways
- LLMs should generate prose from verified data fields, not infer facts themselves.
- Standardized formulas (like DIN 33466) prevent AI subjectivity in metric calculations.
- Structured data files (llms.txt) enhance interoperability between web apps and AI agents.
- Transparent error reporting and rich data models are essential for handling ambiguous source data.
The Bottom Line
Wanloria demonstrates that the bottleneck for reliable AI-generated content isn't the model's capability, but the lack of rigorous data provenance. By treating the LLM as a writer rather than a researcher, developers can build trustworthy applications from open data.