
Trani does not hide its best face. The cathedral sits on a spur of pale stone with the Adriatic under its foundations, and the porto still smells like diesel, salt, and yesterday’s catch. I come for that working edge — nets hung to dry, fishmongers opening crates before the cafés fully wake, limestone that holds morning cooler than the inland towns. Puglia has louder beach towns and whiter hill towns. Trani keeps a harbor city’s slower tempo.
I arrive from Bari while the light is still soft. Coffee standing up near the water, then a slow circuit of the basin before tour vans invent a schedule. The town is walkable if you treat the quay as a neighborhood instead of using the cathedral as a single photo stop.
The cathedral that stands in the water
Cattedrale di San Nicola Pellegrino is why people know the name Trani, and for once the reputation is earned. The Romanesque bulk rises almost from the sea — bronze doors, a tall campanile, stone the color of dried bread. From the porto side it feels less like a museum piece and more like something the water has always had to deal with.
I go early, when the square still belongs to dog walkers and people on errands. Inside, the lower church and nave keep a cool the quay loses by late morning. I do not rush the crypt. I sit long enough to hear footsteps on stone and remember this was a pilgrimage church for a young Greek saint who died here, not a set built for drones.
Outside, walk the seaward edge. Waves hit the rock below the apse on windy days. On calm mornings the water goes glass-green. Take the wide shot, then put the phone away. Look sideways for a while: how the stone changes toward the castle, how the fishing fleet sits in the same frame without asking permission.

Porto first, postcard second
The porto di Trani is still a working harbor. That is reason enough to stay past lunch. Small boats nudge the quays. Someone mends netting. Crates move. The promenade that rings the water is elegant at evening and practical at dawn. Villa Comunale, the long public garden on the eastern side, gives shade and another space — parents, benches, kids on bikes — when the cathedral steps get busy.
I loop the harbor on different days. One pass for boats and names on hulls. One pass for a glass while the light leaves the limestone. The town’s social life still orbits this basin. Duck in only for the cathedral and out to the highway, and you miss why anyone bothers with the waterfront at all.
Castello Svevo sits a short walk west, Frederick II’s square fortress on the water. Worth the rooms and the view back to the campanile, but I treat it as a side chapter. What I keep coming back to is simpler: sacred stone and ordinary maritime work sharing the same shoreline.

Giudecca lanes and quieter stone
Inland from the waterfront, the centro storico tightens. Lanes go quieter. Laundry appears. The Giudecca — Trani’s historic Jewish quarter — holds a layer many day-trips skip. Scolanova, the synagogue restored after centuries of other uses, and the museum spaces tied to Sant’Anna give a different register: smaller rooms, denser history, less sea glitter.
I walk these streets in the afternoon heat when the porto cafés are loudest. Stone holds the cool. You hear televisions, plates, a scooter that should not fit. This is not a second cone town or a baroque stage set. It is a port city’s residential weave — merchant palaces, plain doors, sudden water at the end of a vico. Leave doorways alone. Look up at cornices and iron balconies instead of hunting another exterior to collect.
If a door at Scolanova or the related sites is open, go in without turning it into a content run. The point is continuity: communities that lived here, left marks, and still shape the old town when you are not facing the Adriatic full-on.

Food that tastes like the quay
Trani eats from the water and the nearby flatlands. Expect crudo when the catch is honest, grilled fish without a sauce speech, orecchiette and greens, focaccia, and — if you drink — Moscato di Trani, the local sweet wine that outlived several fashion cycles. I eat where the room still fills with people who did not drive two hours for a pier photo.
Osteria La Banchina Via Banchina al Porto 10, 76125 Trani BT, Italy
Harbor-side seafood without ceremony. Come when you want the catch close to the boats you just walked past. Order simply. Let the kitchen decide what left the water that morning. Lunch here after the cathedral beats racing inland for a supposedly better address.
Ristorante Corteinfiore Via Ognissanti 18, 76125 Trani BT, Italy
A more polished seafood kitchen a short walk from the water — courtyard calm, careful plating, a night when you want to sit longer. Reserve in season. I use it for one proper dinner in a two-night stay. Walk back along the porto afterward; the basin at night is half the dessert.
Trattoria La Darsena Via Statuti Marittimi 96-98, 76125 Trani BT, Italy
Waterfront energy, fish and antipasti that encourage sharing. Good when the group wants the harbor in the same frame as the table. Go early or late if you care more about the food than staging the meal for golden hour.
Between meals: espresso at the bar, focaccia if a bakery has a local line, water always. Summer limestone and sea glare do not negotiate. In shoulder seasons the same walks turn gentler and the porto feels closer to its working self.
Places to stay
Sleeping inside the old fabric changes the morning. You walk to the nets and the cathedral steps without a transfer from a ring-road box.
Albergo Lucy (value) Piazza Plebiscito 11, 76125 Trani BT, Italy
A small hotel in a nineteenth-century building by the Villa Comunale and the harbor edge. Rooms are straightforward; the location does the heavy lifting. Good for a clean sleep, a short walk to the passeggiata, and budget left for fish. Ask about parking if you have a car — the core is friendlier on foot.
Hotel San Paolo al Convento (mid-range) Via Statuti Marittimi 111, 76125 Trani BT, Italy
An eighteenth-century convent conversion on the harbor side — courtyard quiet, thick walls, a base that still feels like Trani. I pick it for two or three nights when mornings on the quay and dinners on foot are the plan. Confirm luggage access; historic buildings keep their own rules.
Palazzo Filisio (splurge) Piazza Monsignor Reginaldo M. Addazi 2, 76125 Trani BT, Italy
An understated grand hotel in an old palace facing the cathedral and the sea. Use it when the budget has room and you want Romanesque bulk in the first glance out the door. Breakfast with that stone outside is most of the point. Book ahead in high season.
Getting here and moving around
Bari Karol Wojtyła Airport is the usual air gate. Trani sits on the Adriatic rail line; regional trains from Bari are easy if you travel light. A car helps for Castel del Monte or other BAT-province stops, but inside Trani you park once and walk.
The historic center and waterfront are compact. ZTL rules and narrow streets punish casual looping by car. Wear shoes that forgive polished stone and quay edges. Midday in July is for interiors, long lunches, and the Villa Comunale shade. Dawn and late day are for the cathedral spur and the working porto.
If you have a free afternoon with a car, the coast offers swimming coves — but do not hollow out Trani time for every Puglian beach name. Come back before dark if you can. Night here is lamps on water, talk on the harbor ring, and the cathedral massed against the sky without noon glare.
Staying for the second morning
I do not try to finish Trani between a morning train and an afternoon elsewhere. The town is small enough that rushing turns it into a single facade. Give it a night, preferably two. Spend one early hour with the nets and fish crates so the postcard has a smell. Spend a slower hour in the Giudecca so the port city has a memory beyond the waterfront restaurants.
In the evening I repeat a short path: cathedral spur, basin loop, a drink where the boats rock, back through quiet lanes. No heroic itinerary. Just enough time for San Nicola Pellegrino to stop reading as a logo and start reading as a building people still walk past on the way to buy bread. That is usually when Trani settles in.