5 min read
- Portfolio
- WordPress
- Maps
- Travel
- Own Product

Founder & Product Engineer
Full analysis
vacantainspania.ro is a Romanian-language guide to Spain for travelers from Romania, built around a map. It is not a client project: it is an InfoWebPlus product, and the footer says so. We designed it, built it and run it ourselves, as a WordPress theme with its own plugins. The site is online but not launched yet. As of 11 November 2026 search engines are told not to index it, most destinations, places and guides still carry sample text marked "(demo)", and a few policy pages are waiting for their final text. We list it here because the engineering is real and you can look at it, and we make no claim about an audience.
The product
The idea is stated on the site itself: a map of Spain for travelers from Romania, with places that have sources, a verification date and a link to the official site. Each place needs at least two sources, and anything that changes (prices, opening hours, rules) points to the official website instead of repeating it. AI tools can prepare first versions of content, but nothing is published without a person reviewing it. VacantaInSpania.ro is an independent project that works with Andalucia Diversity Alliance on community initiatives. ADA's own website is another of our projects: Andalucia Diversity Alliance: a trilingual website for a non-profit.
The challenge
A travel guide is only as good as its facts, and facts about places go out of date. The product had to make the sources visible, keep unverified content off the map by design, work on a phone with a slow connection, and be readable by search engines and by AI assistants without extra work for the editor.
What we built
- A place model with a publish gate. Destinations, beaches, attractions, activities, accommodation and services each have their own fields: coordinates, sources, verification date, official link, image credit and a one-sentence summary. A place that fails the gate (two sources, a date, a credited image, enough text and an official link are among its 13 checks) is sent back to the editor with a list of what is missing, and never reaches the map. Today the map feed is empty on purpose, because the sample places do not pass the gate.
- A filterable map. Visitors filter by search, type of place, destination, interest and month, and the filters live in the address so a link can be shared. The list loads first and works without JavaScript; the interactive map, built on MapLibre GL JS served from our own server, opens by itself on a wide screen and on a tap on a phone, and a "near me" button reads the location once. Saved places stay in the browser.
- Pages that show their work. Destination pages and guides list their sources, show the verification date and have a contents list. There are also itineraries by the day, a directory, a flights page where routes appear only after they are checked, and a Spanish phrasebook with a listen button that uses the browser's Spanish voice. The phrasebook says on the page that a native Spanish speaker has still to review it.
- A way for visitors to fill the gaps. A form lets people suggest a place, ask for a business to be included or report a mistake. Requests are saved privately in WordPress, and the form is protected with a hidden field, a signed timestamp and a rate limit that does not store IP addresses.
- An installable, offline-friendly site. A web app manifest, a service worker, an offline page and a "save for offline reading" button on guides.
- Readable by machines. Every public page has a Markdown version at the same address plus ".md", the site has llms.txt and llms-full.txt, and pages carry JSON-LD. The robots.txt closes the admin area and internal paths.
- An editorial desk for AI-assisted work. A plugin receives content from an outside writing tool as pending items, checks them against the content contract and the Romanian text rules, and cannot publish them: the account it uses has no publish rights.
- Romanian text with rules. Comma-below diacritics, no long dashes, and a lint that checks the text. The theme's test suite also runs automated accessibility checks on every template at several widths.
Stack: WordPress, a custom theme and plugins in PHP, MapLibre GL JS, TypeScript, a service worker, JSON-LD and GitLab CI.
Where it stands
The site is online and shows how the product works, with sample content. The next step is real content: verified places and guides for a first set of destinations, then the launch. Until then we publish no visitor, ranking or revenue figures, because there are none to show.
What a business can take from this
- Show your sources on the page. A place with two sources and a date is easier to trust, and easier to keep right, than a long list with none.
- Let the software refuse what is not ready. A publish gate that sends an incomplete page back to the editor protects quality better than a checklist people have to remember.
- Build the list first and the map second. A list that works everywhere makes the map an improvement instead of a dependency.
Next step
Want a map, a directory or a multilingual guide of your own? See our fixed-price web design packages.
Or message us on WhatsApp: +34 722 853 139
Screenshots
vacantainspania.ro on desktop, 11 November 2026. The site is not launched yet and shows sample content. The map page with its filters, 11 November 2026. The places are sample content marked "(demo)". A destination page with its verification date and sources, 11 November 2026. The text is sample content.
The home page on a phone, 11 November 2026. The map page and its filters on a phone, 11 November 2026. The Spanish phrasebook on a phone, 11 November 2026. The page says a native speaker still has to review it.
Share this article
Copy the article URL or use your device share sheet.
Related reading

Andalucia Diversity Alliance: a trilingual website for a non-profit
A custom WordPress theme in English, Spanish and Romanian for a non-profit that helps newcomers settle in Andalusia. By InfoWebPlus, its technology partner.
- Portfolio
- WordPress
- Non Profit

SEO is not magic: femeiladieta.ro in Google Search
Real Search Console data from a Romanian recipe site we rebuilt: impressions up nearly sevenfold over three months, the pages behind it and the key decisions.
- SEO
- Google Search Console
- Recipes

femeiladieta.ro: a healthy recipes site with its own tool
A Romanian healthy recipes site on WordPress with its own recipe tool, a recipe library and nutrition guides. Rebuilt by InfoWebPlus, relaunched in June 2026.
- Portfolio
- WordPress
- Healthy Recipes
Want help applying this?
Rough scope is fine. Tell us what you are building, we reply with options and tradeoffs, not a generic pitch.