Surabaya is the place where Indonesia's independence struggle began. These days, it is a thriving port with a beautiful old colonial center, plenty of shopping opportunities, and ready access to the sedate, scenic countryside of eastern Java.
Surabaya has an incredible mixture of neighborhoods. There's the elegant old Dutch colonial center, the Arab Quarter where you'll find the stately Masjid Ampel, and a bustling Chinatown too.
Java is famous for its slapstick puppet shows, and there's no better place to catch a performance than the theater in Surabaya's Taman Remaja park.
The markets of Surabaya are full of energy and a little mystery too. Buy gorgeous porcelain items at Pasar Pabean or fill up on satisfying street food at Pasar Genteng.
A few miles outside Surabaya, you'll come to some gorgeous scenery. Tretes is a great example, with its numerous waterfalls and hillside views (as well as its string of lively bars).
Surabaya was one of the key centers of the Dutch East Indies. Tour elegant 19th-century buildings like the House of Sampoerna or the Governor's Residence to step back into another era.
You'll find superb Chinese eateries like Ka-Soh or Lin's Garden alongside Indonesian restaurants like Soto Ambengan Pak Sadi Asli and even Italian places like La Rucola. Expect meals to come to around Rp40-60,000 a head.
The best time for a trip to Surabaya is probably between May and September (the dry season). It's hot all year round, but you won't risk being drenched if you head over at that time.
Juanda International Airport (SUB) offers plenty of regional connections. From there, expect taxis to cost around Rp130,000 or take the DAMRI airport bus for Rp20,000.
Trains run from Jakarta and Bandung, and most services stop at Pasar Turi Station, near the heart of town. Expect tickets from the capital to cost around Rp260,000.
Highway 1 runs all the way from Jakarta to Surabaya (although it's a long haul). From Malang, take Highway 23, then Highway 1 into town.
Plenty of intercity buses run into Surabaya every day, and most stop at Bungurasih (around six miles south of the city center).
Standout city center hotels include the JW Marriott Hotel Surabaya and the Sheraton Surabaya Hotel and Towers, while TS Suites Surabaya is a good self-catering option.
Pabean Cantian - taking in most of northern Surabaya, Pabean Cantian includes the old Dutch city, as well as the fascinating Arab and Chinese neighborhoods.
Genteng - encompassing much of the modern city center, Genteng is busy and commercial. It also hosts most of the best hotels, along with restaurants like Bima and Indigo Bar and Restaurant.
Gayungan - a lively southern suburb, Gayungan is most famous for the Suroboyo Carnival Park - a huge entertainment complex.
Buses cost Rp2,000 for single tickets, while faster Patas buses, which cost Rp3,000. Angguna minibuses also whiz around town at lower prices, if you can flag one down.
Expect taxis to charge around Rp8,000 for the meter drop, followed by Rp6,000 per mile.
Car rental options include Globe Rent a Car and Rental Mobil Surabaya, and prices can be as low as Rp40,000 per day.
Markets like Pasar Genteng are a great place to bargain hunt, but there are also hypermalls to enjoy, including Galaxy Mall and Tunjungan Plaza.
Supermarkets in Surabaya include LotteMart and Bilka, where you can expect to pay around Rp50,000 for a gallon of milk.