The Bay of Kotor from the climb above the town

2–5 October 2026 · solo

263 km down the Adriatic

Three countries in 3 days on a second-hand folding bike.

The plan was to fly to Dubrovnik with a folding bike in the hold, ride south down the coast through Montenegro and into Albania, and fly home from Tirana 3 days later.

A local AI agent did most of the planning with me: working out the route, finding the hotels, checking what the surface would be like, and then building a set of pocket cards. One per day, with the map, the elevation profile and a timetable of where I needed to be and when, and the phrases and food notes for that country on the back. I printed them double-sided, laminated them and cut them into cards small enough for a pocket.

The cards I rode with — one for each day, plus admin and emergency. The grey blocks are phone numbers, booking references and hotel addresses, taken out before putting this online.
The cards I rode with — one for each day, plus admin and emergency. The grey blocks are phone numbers, booking references and hotel addresses, taken out before putting this online.

It came to 263 km and about 1,900 m of climbing. Most of my worrying was about the bike. It's second-hand, it's from 2009, and it folds, so there are a lot of moving parts that could give up somewhere over those 263 km — and before any of that it had to come through the hold on the way out in one piece.

The route came back as good tarmac, and it was: the road surfaces in all three countries are excellent. I was still wary of being sent off-road, which happened twice in the end, and not for long either time. The other two things on my mind were finding cardboard to pack the bike up for the flight home, and the flight itself, which left early enough to make the last morning tight.

Everything went really smoothly in the end and I had an amazing time. No rain, no mechanical issues, no major hiccups.

Čilipi → Petrovac → Shëngjin → Tirana · 263 km
Čilipi 🇭🇷 Kotor Petrovac Bar Shkodër Shëngjin 🇦🇱 Tirana ✈ 50 km © OpenTopoMap / OpenStreetMap contributors (CC-BY-SA)

Friday 2 October

Manchester → Dubrovnik

FR5953
Flight
22:30
Landed
15 min
Bike rebuilt in

Got to Manchester airport around 16:00 and dropped the bike at oversized baggage, then wandered around for a while looking for food. I ended up with a veggie Burger King — not the best choice, but it was slim pickings — and since I knew I'd be landing late and wouldn't have time to eat again before the morning, I got a tuna panini as well. Then just waited for take-off, which was delayed slightly to 19:00. Touched down in Dubrovnik at 22:30 local time.

Somewhere over Europe, about an hour late.
Somewhere over Europe, about an hour late.

The bike travelled better than I expected. No damage, nothing missing, nothing seized. I rebuilt it outside the terminal in about 15 minutes and rode 5 minutes up the road to the Airbnb in Čilipi, which is the village the airport sits in.

Frustratingly, I then struggled to get to sleep. I was in bed by 00:30 and asleep by about 01:00 — roughly 6 hours before the alarm.

Saturday 3 October 🇭🇷 → 🇲🇪

Čilipi → Petrovac

104 km
ridden
1,148 m
climbed
5h 51
moving
17.9 km/h
moving average
57 km/h
fastest
129 / 207 bpm
average / peak
11 stops
66 min off the bike
07:38–14:46
on the road
14–24°C
air temperature
Route
Čilipi Border Igalo Herceg Novi Kamenari ferry Kotor Radanovići Budva Sveti Stefan Petrovac 20 km
Elevation
0 100 200 300 400 20 40 60 80 0 104 km Start Border Igalo Ferry Kotor The shop Budva S. Stefan Finish
Daylight and temperature
00:00 03:00 09:00 12:00 15:00 21:00 24:00 ↑ 06:46 ↓ 18:24 riding 07:38–14:46 24° 14° 16° 15° 14° 20° 24° 23° 21° 17°

Hourly temperature at Čilipi, where the day began, with the hours actually ridden marked. Dry and clear on all three days.

The first mistake happened inside the first kilometre. A water bottle bounced out of the bag and I did not notice, which meant I set off into the hardest day of the trip with no breakfast, no food and essentially no water.

That got fixed in the next village — a chocolate croissant, an apple, a new bottle of water — and after that it was a very good morning. The lanes through the Konavle valley are genuinely perfect: smooth, quiet, empty. My own route file sent me onto a gravel track for a stretch, which was a bit annoying given what was on offer. A quick course correction was all it needed.

Konavle valley.
Konavle valley.
A church above the lanes, 8 km in.
A church above the lanes, 8 km in.

The border took a few minutes behind a coach of tourists. Then the road tips over the edge and the whole Bay of Kotor opens up underneath you.

The first look into Montenegro, dropping off the border ridge.
The first look into Montenegro, dropping off the border ridge.

Igalo at 09:30, and a 40-minute stop at a lovely place on the water for a tuna sandwich and a fresh orange juice, €17 with an iced tea. Then the ferry at Kamenari, which is free for a bicycle. I bought a Coke for the 15-minute crossing.

Igalo, 30 km in and the first proper stop.
Igalo, 30 km in and the first proper stop.
Restoran Grifone, Igalo.
Restoran Grifone, Igalo.
The seafront at Herceg Novi.
The seafront at Herceg Novi.
Loading at Kamenari. Free for bikes.
Loading at Kamenari. Free for bikes.
10 minutes across the mouth of the bay.
10 minutes across the mouth of the bay.
The lane along the inside of the bay, Prčanj.
The lane along the inside of the bay, Prčanj.

I lost bottles two and three to the speed bumps on the coast road. I ended up quite dehydrated after that, climbing up out of Kotor — 300 m of ascent in the hottest part of the afternoon, no shade, no villages, nothing.

The karst wall above Kotor.
The karst wall above Kotor.
Switchbacks, no shade, no water left.
Switchbacks, no shade, no water left.

And then, most of the way up, a single-room shop at the roadside with two chilled drinks coolers standing outside it. I have rarely been so pleased to see a vending machine.

The shop above Radanovići.
The shop above Radanovići.
5 minutes later, looking back over the Bay of Tivat.
5 minutes later, looking back over the Bay of Tivat.

After that it is a long descent to the coast and then rolling road past Budva and Sveti Stefan into Petrovac at 14:45. 7 hours door to door, 5h 48 of it actually moving.

Budva from the hill above it.
Budva from the hill above it.
Sveti Stefan, 10 km out.
Sveti Stefan, 10 km out.

After checking in and showering I went for a swim at the pebbly beach, then sat down for prawn tagliatelle at Šarena at 17:00, and cacio e pepe and Nutella crêpes by the harbour at 18:00. Sauna, steam room and pool until 19:40.

Then I strolled up the sea front, picking up a corn on the cob from a street vendor and an alcohol-free beer to drink on a bench looking out to sea, where there were still some semi-submersible night tours going on. Got back to the hotel shortly after and was in bed by 21:00.

Petrovac, mid-afternoon.
Petrovac, mid-afternoon.
The front at Petrovac, early evening.
The front at Petrovac, early evening.
Cacio e pepe by the harbour.
Cacio e pepe by the harbour.
Then Nutella crêpes. It had been a long day.
Then Nutella crêpes. It had been a long day.

Sunday 4 October 🇲🇪 → 🇦🇱

Petrovac → Shëngjin

108 km
ridden
639 m
climbed
5h 19
moving
20.4 km/h
moving average
48 km/h
fastest
119 / 196 bpm
average / peak
6 stops
60 min off the bike
05:59–12:27
on the road
16–23°C
air temperature
Route
Petrovac Sutomore Bar Sukobin / Muriqan Shkodër Lezhë Shëngjin 20 km
Elevation
0 100 200 300 400 20 40 60 80 0 108 km Start Sutomore Bar Border Shkodër Lezhë
Daylight and temperature
00:00 03:00 09:00 12:00 15:00 21:00 24:00 ↑ 06:44 ↓ 18:20 riding 05:59–12:27 24° 16° 18° 16° 16° 21° 23° 24° 21° 17°

Hourly temperature at Petrovac, where the day began, with the hours actually ridden marked. Dry and clear on all three days.

Two large nectarines and a protein bar as I woke up at 05:30, away in the dark at 06:00. The plan was to eat early and often, because after Bar the road turns inland and there is a long stretch with very little on it.

First light over the bay, 20 minutes out of Petrovac.
First light over the bay, 20 minutes out of Petrovac.
Riding before sunrise. The road to Sutomore.
Riding before sunrise. The road to Sutomore.

There were a few nice fruit stalls dotted around that I frequently stopped at for nectarines, apples, grapes and pomegranates, which really kept me going.

Sunrise at Sutomore.
Sunrise at Sutomore.
Pomegranates by the roadside.
Pomegranates by the roadside.

The riding was easier than Saturday — 640 m of climbing against 1,150, and the quickest average of the trip at 20 km/h. Most of the climbing is done by Bar; after that the route cuts inland past the Sukobin crossing into Albania, down through Shkodër, and runs flat and straight all the way to the coast.

Looking back over Bar from the inland climb.
Looking back over Bar from the inland climb.
Albania, somewhere past the border.
Albania, somewhere past the border.
Second breakfast.
Second breakfast.
The Buna, outside Shkodër.
The Buna, outside Shkodër.
Rozafa castle on its hill above Shkodër.
Rozafa castle on its hill above Shkodër.

Shëngjin at 12:30, a quick shower, and a margherita at Da Fabio. Then a swim, some sun, and a walk around the town, which out of season is a strange place: resort developments in every direction, almost all of them shut.

Da Fabio.
Da Fabio.
Shëngjin in October. Most of it closed.
Shëngjin in October. Most of it closed.

Walking north along the headland I came to a military base. There were signs saying so, but there was traffic flowing through it, so I asked a dock worker whether I could pass through and they said it was fine.

Depth charges, a torpedo lying in the grass, then a line of Soviet-era bunkers with blast doors set into the rock, and finally what looked like a submarine pen with the doors shut. By then I was a long way off the road. An armed soldier found me on the way back out and escorted me off the site — I was allowed on the road, not off it. Fair enough.

The road in. This bit was allowed.
The road in. This bit was allowed.
Some kind of Soviet-era 'bunkerfication'.
Some kind of Soviet-era 'bunkerfication'.
A torpedo, rusting in the grass.
A torpedo, rusting in the grass.

Dinner at Trattoria Meloni, which was the best meal of the trip: a grilled seafood plate, a salmon and tuna nigiri starter, and a lemon sorbet. A zero-alcohol beer on the beach, a supermarket run for the morning, packed up all my stuff, and an early night ready for a very early start.

Salmon and tuna nigiri to start.
Salmon and tuna nigiri to start.
Grilled seafood at Trattoria Meloni.
Grilled seafood at Trattoria Meloni.

Monday 5 October 🇦🇱

Shëngjin → Tirana airport

51 km
ridden
111 m
climbed
2h 19
moving
21.9 km/h
moving average
34 km/h
fastest
132 / 205 bpm
average / peak
2 stops
3 min off the bike
04:28–06:58
on the road
12–13°C
air temperature
Route
Shëngjin Lezhë Laç Fushë-Krujë Tirana ✈ 10 km
Elevation
0 100 200 300 400 10 20 30 40 0 51 km Start Laç F-Krujë
Daylight and temperature
00:00 04:00 12:00 16:00 20:00 24:00 ↑ 06:42 ↓ 18:16 riding 04:28–06:58 26° 12° 15° 13° 14° 24° 25° 18°

Hourly temperature at Shëngjin, where the day began, with the hours actually ridden marked. Dry and clear on all three days.

Up at 04:00, out of the hotel at 04:30, riding in complete darkness. Much colder than I had planned for — 13°C with a breeze, in summer kit. Sunrise was not until 06:40, which meant 2h 15 of riding in the dark.

The main road south was fine until it widened into a dual carriageway and started turning into a motorway, so I came off it. And then, twice, I was chased by wild dogs. It is the only part of the trip I would call genuinely frightening: there is nothing to do except sprint and hope the road stays flat. It does — the whole day is 111 m of climbing — and I got away both times.

Monday was the flattest and shortest day of the three, and it has the highest average heart rate of the trip. That will be the dogs.

Fushë-Krujë, first light. 43 km down, 8 to go.
Fushë-Krujë, first light. 43 km down, 8 to go.

The other problem was the box. The bike had to fly, and I had nothing to put it in, so the last part of the ride turned into a cardboard hunt. A supermarket about 5 km short of the airport produced a few sheets after some determined gesturing, which I flattened and bungee-corded up and cycled in hand. A second shop gave me a box. A pile of cardboard outside a building gave me the rest.

Supplies, acquired.
Supplies, acquired.
The second haul.
The second haul.

At the airport I wrapped the whole bike in tape and bungees. It looked terrible. It worked.

Checked in, flown, and returned without a scratch.
Checked in, flown, and returned without a scratch.

An Albanian cheese pie, a spinach pie and a hazelnut and raisin crêpe before the flight, which is a perfectly reasonable way to end a cycling trip through the Balkans.

The trip

By the numbers

263 km
ridden over 3 days
1,900 m
climbed
13 h 28
actually moving
2 h 09
stopped, across 19 stops
58 km/h
fastest, down off the border
317 m
highest point, above Kotor
3 h
ridden in the dark
~11,300
calories, says the watch
3
countries
1
ferry
0 mm
of rain
0
mechanicals
3
water bottles lost
2
dog chases
1
unscheduled military tour
£390
the bike, bought and fixed

Kit

The bike

A Dahon Vitesse D7: 20-inch wheels, seven gears, a rear rack, bought second-hand on eBay 2 weeks before the flight for £150 and then serviced and upgraded for £240. Most of that was the service itself, new brake cables and touring grips, plus Schwalbe Marathon Plus tyres — which were well worth it, because I did not get a single puncture.

It went in the hold twice, came out intact twice, and covered 263 km over 3 days without a single mechanical problem. The only things that failed all weekend were the bottle cages.