From Zagreb to Sofia via Belgrade by bus. Our experience

From Zagreb to Sofia via Belgrade by bus. Our experience

I am in the bus to Sofia. We left the Belgrade bus station about an hour ago. Still sweating, I am recovering from the race. We almost did’t get to the bus bay in time. In this post, I share our experience traveling from Zagreb to Sofia via Belgrade by bus.

Why traveling from Zagreb to Sofia via Belgrade by bus?

After spending two months in Zagreb, and a total of five months in Croatia, it was time to continue our exploration of the Balkans in our next destination: Sofia, Bulgaria.

After a very successful workshop about the e-Residency program at ImpactHub Zagreb, we decided to replicate the experience in Belgrade. It was the perfect location for several reasons. There is an ImpactHub there, so we could use our connections in Zagreb to prepare the workshop. It is also the most populated city of the Balkans after Athens, and it has a blooming entrepreneurial community.

Thanks to my partner, I have become aware of the need to protect our planet and fight against climate change. Flights, specially short-distance ones, are one of the most polluting agents right now. Miguel and I have decided to not only travel slow, but also avoid traveling by plane as much as possible.

We love moving by train, but unfortunately the railroad infrastructure of the ex-Yugoslavian republics (including Croatia and Serbia) is outdated. We were told the train from Belgrade to Sofia may take more than ten hours (!) and suffer delays of up to one hour or even more.

As a result, we decided to travel by bus. It is not only more ecological, but also less stressful than flying. You don’t need to be at the bus station two hours in advance, or go through all the security bullshit.

Our plan

Our plan was then traveling to Sofia with a layover in Belgrade. We will leave Zagreb on the 28th, arrive in Belgrade, celebrate the workshop, spend one night there and leave to Sofia the next afternoon.

We also wanted to spend the morning visiting Belgrade. Our goal was getting the vibe of the city to know if we would like to spend there some months later this year or in 2021.

The timing was also perfect. We would arrive to Sofia on a Saturday night, so we could use the whole Sunday to recover from the trips and the stress of the workshop.

We bought our bus tickets, a night at a very cheap Bed&Beakfast hostel in Belgrade, and packed our things.

We were ready to go!

Traveling to Belgrade

Traveling to Belgrade from Zagreb is easy. Fortunately, the bus station was quite close to our apartments, so we arrived there early in the morning with our suitcases. The girl from the information desk spoke perfect english and was super nice. Five minutes later we were inside the bus, ready to leave Croatia.

The trip was less tiresome that I expected, given the fact that we took the 7:30 bus. We stopped once halfway through to go to the toilet and buy a snack. When we were close to Belgrade, the bus turned off twice to drop off two of the employees who traveled with us.

Serbia is not in the EU or the Schengen area, so in the border we all had to get off the bus twice. Once for the Croatian passport check, and then again for the Serbian one. That reminded us how stupid frontiers and borders are, and how precious it is to be European and have a borderless Europe. An important reminder.


We were not sure about what to expect from Belgrade. Some people said the city was destroyed and others said it was beautiful. It is indeed somewhere in-between. It is definitely not in ruins, but it is not the most beautiful city in the Balkans. That honor, in my opinion, belongs to Zagreb. The best adjective to describe the city is “bohemian”, meaning, there is an artistic, festive and indie vibe all through the city, but you can also see the country is a lot poorer than other European ex-Yugoslavia republics, such as Croatia and (specially) Slovenia.

And speaking about “bohemian”, we didn’t know it beforehand, but our hostel was indeed in the most bohemian street of Belgrade. That was cool because we were in the city center, close to all the highlights, but also meant a lot of noise at night.

Belgrade is famous for being “the party city” of Europe. And that may definitely be true. We arrived on a Friday, and sleeping that night was quite challenging. A lot of noise, loud music from bars and discos, and drunk people getting back home and sharing their impressions of the night with the rest of us…

Belgrade is now in the same scenario that Madrid was in the 80s, when we had just become a free, democratic country. People smoke a lot, more than in Croatia, even in restaurants. There are still people talking about how good Tito and Milošević were, just like in Spain in the 80s some people still talked about how good the dictator Franco was. The bohemian, festive mood… even the city shares a very similar look.

The workshop

ImpactHub Belgrade, on the other hand, is probably the most indie, original and fascinating co-working space I’ve ever been. The place has two floors, and a big wooden staircase dominates the space.

The upper floor has a nice room for talks and some desks to work. Downstairs, more desks, a kitchen/bar, and even a piano! I have never had the chance to play a piano at a co-working space.

The workshop was a total success. There’s a huge interest in the e-Residency program in Serbia, probably because they don’t have CFC rules. That means you can live in Serbia and have a company in Estonia without having to worry about the Serbian tax office.

After the workshop we had a enjoyable networking session, including a food-tasting event and dinner with some of the people who attended. We went to one of these touristic restaurants in the bohemian area where a group of musician play some live music while you have dinner. I’m not usually into that, but I had a great time that night.

Traveling to Sofia

The next day we packed our stuff and got ready to visit the city. I was able to get a better feeling of Belgrade. I think it is an interesting city, with plenty of things to see and experience, but it’s not a place I would like to spend some months anytime soon.

Then we realized we were running out of time, picked up our luggage and went to the bus station. This was probably one of the most stressful experiences of my life. We first tried to grab a taxi. As we did not have dinars (the local currency), and you can’t pay by card, we had a look at ridesharing apps. Uber was not available in the city, and Bolt only showed one car that suddenly disappeared to not appear again.

Our only chance was going to the bus station by foot. It was a 30 minute-walk, and the streets of Belgrade are not in mint condition, not even in the city center. That means we had to run carrying a lot of weight.

Even if you have a ticket, you need to pay this “local tax” to the mafia to access the departure bays. Shame on you, Serbia.

Descending into madness: the Belgrade bus station.

We arrived ten minutes before the bus was leaving. Unfortunately, the Belgrade bus station is a complete mess. It is being renovated, so it was a chaos. No English signs or indications to show you where to go, etc. We got into the bus bays and tried to locate the information counter without success. I asked a policeman and he told me we were in the wrong bays. Apparently, the arrival and departure bays were separated, and we had to go to the other side of the building!

Puffing like beasts we arrived to the departure bays, only to find out that we needed to buy a ticket to access them (!). We had bought the bus tickets in advance, but to access the bay, you had to buy an extra ticket in the station. And no, you cannot pay with card, you need to pay in cash (serbian dinars). That was a completely WTF moment. We had no cash, were packed with suitcases, and the bus was leaving in two minutes.

I entered into “survival” mode, left my partner with the suitcases, and rushed into one information counter to buy the tickets. They informed me that I needed to pay in cash, and I entered into total desperation, because I did not have dinars and the closest ATM was outside of the station, quite far. Fortunately, by chance, I had some kunas from Croatia. Not a lot, but enough to change them for serbian diners. There was another counter where you could change your money, so I raced into it, put all the bills I had in my pocket on it, and screamed: “Please, serbian diners!!!”.

The girl said, “Easy, easy, man”, and I’ve never been closer in my life to lose my stoic ideals and say something quite regretful. She handed me some bills, I grabbed them and ran into the previous counter. I thrown all the bills to the girl and shouted “Two tickets to enter the bay!”. She probably saw the expression of angst in my face so didn’t say a word and gave me the tickets.

I finally arrived back to the bay and we were able to enter, and then run to the bus that was about to live in seconds flat.

In short: if you are traveling from Belgrade by bus, be aware of this ridiculous “local tax” to enter the bays, and make sure to be there at least one hour in advance. The station is super confusing, so ask if you are in the right bays (departures vs arrivals), and make sure to locate the information counter to ask for the right bay for your bus and buy the ticket. Before even getting there, go to an ATM and get some dinars. Every ticket to access the bays is 190 dinars (less than 2€).

Some of the remaining bills left after paying the “bay access” ticket. That’s less than 1€.

Arriving to Sofia and the coronavirus hysteria

When we arrived to the Bulgarian frontier, I had another WTF situation. The bus stopped just before the Bulgarian border after passing the Serbian one without major problems.

There was a booth with a security guard and an old lady. As soon as they saw our bus, the lady started to dress head to toe with something that looked like a NBC suit, complete with mask and all. It took her 5 minutes to completely dress before we were allowed to get off the bus.

Then after showing my passport to the guard, I approached this lady. Next to her there was a metal table full of medical equipment. She told me something in Bulgarian and I replied: “Sorry, I don’t understand Bulgarian”. By the look on her face, I could see she did not speak English. Luckily, the guard came to the rescue and shouted: “It is ok, they are from Spain, not Italians!”. Then the lady let us pass without a problem.

That made me think about the hysteria levels with the coronavirus infection and how useless the prevention mechanisms in Europe are. Yes, I am not Italian, but I had traveled from Croatia… I could perfectly come from Italy, from the infection focus, and they would have let me go without even testing my temperature because “I was not Italian”.


Now comfortably seated again in the bus, and arriving in Sofia, things look a lot brighter. We were really close to losing the bus, and I would not have liked to spend one day more in Belgrade. I am glad we were able to make it.

So how is Sofia? Will we enjoy our stay there? So many questions right now, but I am super excited about the perspective of spending two months there. Bulgaria is a collage of civilizations and cultures, religions and different people. West meets East, modern meets traditional, the future meets the past…

I will let you know in a future post. We are getting close to the city, it’s late, and I can’t wait to get to our apartment and have a warm shower.


Traveling from Zagreb to Sofia via Belgrade by bus has been an amazing experience, full of up and downs. I would say it’s been an emotional roaller-coaster. I am glad we did it, even though it’s been stressful at times.

For us, traveling by plane is the worst alternative for so many reasons: ecology, health, security, stress… So for our trip to Sofia, and to take the chance to visit Belgrade and celebrate a workshop there, we decided to travel by bus. In this post, I shared my experiences on how it was, and offered some tips to help you avoid some headaches if you do the same.

Don’t hesitate to share your thoughts in the comments below!