← All projects

Case study· Montenegro· 2026

Come to Montenegro

A National Portal for the Whole Country, on One Network

Come to Montenegro shown on a laptop, tablet and phone
Context

Come to Montenegro is our own project: a national portal on top of the Visit Pljevlja and Visit Žabljak destination sites, built for the traveler who knows they want Montenegro but not yet where.

Challenge

City sites sell their own region well, but a guest planning a week across the whole country has nowhere to start. We needed one entry point that builds a trip from tours the network actually runs, with no duplicated content and no second admin.

Solution

On the same Laravel platform we built a flagship site: ready-made day-by-day routes with linked tours, hub pages for municipalities and national parks, a map of the whole country, inquiry then quote then card deposit, the Maya AI guide and content in 18 languages.

Results

The portal is live at cometomontenegro.com and takes route and tour inquiries from across the network, with its own brand and theme. Every new partner or municipality is added in the admin, not in code.

18Languages
32Tours in the network
3Ready-made routes
3 + portalSites in the network

A Guest Who Knows the Country, Not the Town

Visit Pljevlja and Visit Žabljak do their job: they sell one region, in detail. But many travelers aren't searching for Pljevlja or Žabljak. They're searching for Montenegro. They have seven days, two people and one question: "Where do I start?"

For that guest, no city site is a good entry point. We needed a site above them, one that sees the whole network and builds a trip from the tours the network actually runs.

That's how Come to Montenegro came to be, the flagship site of the network. It's not new code or a new admin. It's a third site on the same platform, with one difference: a city site sees only its own content, while the portal sees everything.


Routes: A Trip Built from Real Tours

The portal's main product is its ready-made routes: three days, five days, seven days. They aren't marketing copy. Each route is a sequence of days, and each day can carry a tour that can really be booked in the network, with the operator's name and a price.

Two decisions mattered here.

Days without a tour are labeled honestly. The seven-day route runs from Tara to Boka, but the network has no partners on the coast yet. Instead of inventing an offer, those days carry a recommendation and a note that we don't sell them. Once a coastal partner joins, the day gets a tour in the admin, with no code change.

The price is always "experiences from X €". We don't sell accommodation, so we don't promise it. The guest knows exactly what's included and what they choose themselves.


Inquiry, Quote, Deposit

There's no instant payment on the portal, and that's deliberate. The flow works like this:

  1. The guest sends an inquiry for a route or a single tour: date, group size, a note. Nothing is charged.
  2. Our team comes back with a plan and one price for the whole stay, usually the same day.
  3. The guest pays a card deposit through a secure link. The rest is paid on site.
  4. On the day of the tour, the guest meets the local operator, the same person whose name appears on the site.

Underneath runs the same booking engine as on the city sites. An operator gets the question "can you run this?" by phone, by email and in their own portal, and the answer is recorded only once, no matter how many times or from how many places it arrives. Cancellations caused by weather or the operator are handled as a single case that covers every affected guest at once, with a deadline for them to choose what happens next.


Destinations and a Map of the Whole Country

The portal has a content layer the city sites don't: hub pages for regions, municipalities and national parks. The north is open, with Žabljak, Pljevlja, Plužine, Šavnik, Mojkovac, Kolašin and Bijelo Polje. The coast, the center and the east are marked "coming soon," openly, with a note that a region opens only when partners are ready.

Hub pages for regions where the network doesn't operate yet are kept out of the index on purpose. There's no point in Google sending a guest to a page where they can't book anything.

Above it all sits a map of the whole country with municipal borders and clustered pins by category: nature, culture, where to eat, where to stay, ethno villages, farm stays, campsites. The places on the map are the same records the city sites already maintain, just shown from above.


How One Codebase Runs Three Sites

Technically, Come to Montenegro is a row in the sites table with a single flag: is_flagship. That flag changes behavior in a few places:

  • Content is tagged per site through a many-to-many relation. A city site is filtered to its own content, while the portal skips that filter and sees the tours of every site. Same tour, same record, three entry points.
  • Destinations and routes belong to the portal only. They aren't tied to a site. They're locked behind a flagship check, so a city site can't show them by accident.
  • Its own theme: a turquoise palette on a dark background, its own logo and favicon, all through CSS variables, with no separate build.
  • A shared inbox, office@cometomontenegro.com, for all sites except Pljevlja, with a signature and sender address that match the domain the inquiry came from.

The practical result: a new municipality is added in the admin as a hub, a new partner signs up through the partner portal, and a new tour is attached to a day in a route. None of it needs a developer.


Maya Knows the Country, the Towns Know the Details

The Maya AI guide works on the portal too, with country-level knowledge: airports, currency, visas, seasons, how to get here, what's worth doing when. Her rule is simple: for deep local detail she sends the guest to the city site, and she keeps the booking here.

Alongside her sits a Plan Your Trip page with everything a guest needs before arriving: where Montenegro is, two airports plus Dubrovnik across the border, getting here by car, bus and train, when to come for what, how to get around, money and documents.


Eighteen Languages

The portal runs in the same 18 languages as the rest of the network: English, Montenegrin, German, Russian, Hungarian, French, Italian, Polish, Turkish, Albanian, Spanish, Slovak, Slovenian, Ukrainian, Dutch, Danish, Swedish and Norwegian.

Municipal hub pages are written in English, then translated through the same versioned process as the rest of the content. A correction goes into the source and runs through every language again.


Under the Hood

Platform: PHP 8.3, Laravel 13, Filament v4 as the admin for all sites, Spatie Translatable, mcamara localization, Stripe, the Anthropic API for Maya, Google Maps for the country map.

Frontend: Blade and Alpine.js, Tailwind CSS v4, Vite. No React, no Vue.

Scope of the whole platform: 50 data models, 192 migrations, 41 transactional emails, 151 test files, around 2,000 commits. More than 400 of those went into the flagship layer alone: routes, hubs, the map, the theme.

You can see how we approach systems like this on our Web development and System integrations pages, and read why a website should sell rather than just display in websites that generate inquiries and bookings.


Visit the Website

cometomontenegro.com


If you run a tourism board, a destination network or an operator and need one entry point for your whole offer, get in touch. Have a look at the other projects in our portfolio.

Gallery

It all starts
with one question.

One question to start: why does your business exist? Everything else follows from that.

Let's talk