The two halves of the town are officially two different places; Laufenburg (Kanton Aargau) and Laufenburg (Baden). Sometimes called Gross-Laufenburg and Klein-Laufenburg (Great Laufenburg and Little Laufenburg). This strange situation dates back to the Napoleonic wars. Before that, both sides of the Rhine were Austrian territory. The former Austrian province was divided in two along the Rhine, the north Bank going to the Duchy of Baden, and the south bank to the Kanton of Aargau. Ever since then there have been two Laufenburgs.
Laufenburg has two railway stations on opposite sides of the Rhine, one belonging to DB (German railways) and one to SBB (Swiss Railways). The Swiss station has hourly direct trains from Basel (Swiss Station). The German station has hourly direct trains from Basel (German Station) and from Waldshut (change here for Schaffhausen and Zürich). If you arrive from Basel the Swiss train is usually somewhat cheaper but the view from the German side makes it the preferable choice. Post buses also connect Laufenburg with Aarau, Brugg and Frick. The roads leading to Laufenburg also go along the banks of the Rhine. Nearby airports are EuroAirport (Basel) and Zürich.
Laufenburg is small. You can walk all around it, including across the border.
Most attractions concentrate in the old town with its magnificent colourful houses along the Rhine and the small allies. Most of old Laufenburg is on the Swiss side, but you can also simply cross the bridge to Little Laufenburg on the German side. Usually there are no passport controls on the bridge.
Special buildings are both town halls, the Court of Justice, St. John Church with the panoramic hill near it, Church of the Holy Spirit and the miniature Codman Castle.
The island of Stadenhausen is only a short journey away. It is often compared with Mainau (therefore called Laufenburg's Mainau) in that it is a park island.
Many restaurants are spread throughout the old town. Do not miss Café Meyer near the Swiss railway station.