If you want to travel from Langkawi to Hat Yai, there are a number of travel options available either via the Satun - Langkawi ferry or the Kuala Perlis - Langkawi ferry.
Whichever way you choose to travel, it will take you around 6 - 7 hours if you use public transport.
If you can afford to travel by taxi, it is much quicker, but much more expensive.
This is probably the most popular route as most people think it is the most direct.
It is also the route that you will take if you buy Langkawi - Hat Yai tickets from an agent on the island (or from Hat Yai).
This trip involves taking a ferry from Kuah jetty to Satun in southern Thailand.
From the jetty in Satun you will then have to take a taxi to Hat Yai or a songthaew / motorbike taxi to the Satun bus station (about 10 minutes away).
From the Satun bus station you have a choice of a slow (stopping often to pick up passengers) local bus, or a faster minibus / minivan.
The distance from Satun to Hat Yai by bus is a little under 100 kms.
The minimum cost for way to Hat Yai would be around 40 RM, due to the fact that the ferry is much more expensive on this route compared to the Kuah - Kuala Perlis ferry.
The advantage of using the ferry to Kuala Perlis is there are many more departures a day, the boats trip is slightly quicker and it is much cheaper than the ferry to Satun.
If you use this route with local buses all the way, it is the cheapest way to travel from Langkawi to Hat Yai. Total cost would be around 32 RM, but don't expect it to be quick as you will have to wait around for bus connections.
The distance by road from Kuala Perlis to Hat Yai is a little longer at just over 100 kms.
Once you arrive at the ferry terminal in Kuala Perlis, the Kuala Perlis bus station is just a few minutes walk away (turn left when you come out of the ferry terminal and the bus station is located on your right behind a row of buildings - there is a walkway that runs between the buildings).
Regular MYBus buses operated by Maraliner run from Kuala Perlis to Kangar (20 -30 minutes - 11 kms) - cost 2.90 RM.
At Kangar bus station you will have to change to another MyBus to Padang Besar (about one hour - 35 kms) - cost 5.30 RM.
If you are travelling on a Friday, be aware that there is a large gap in bus departure times in the early afternoon due to Friday prayers.
The bus drops you off right in front of the border crossing at Padang Besar, where it is a few hundred metres walk to the Malaysian Immigration area, then another 5 / 10 minute walk to the Thai Immigration area.
There are a few ways you can travel from Padang Besar to Hat Yai.
Once you have cleared the border, there is a local bus stop just across the road on your right as you exit the Thai Immigration area.
If you want to take a minibus to Hat Yai bus station, you will have to walk into town.
Another option once you reach Padang Besar (Malaysian side), is to take one of the Shuttle trains from here to Hat Yai.
They are a little bit more expensive than the local bus, but quicker (55 minutes) and more comfortable. Plus it saves you a walk across the main border area, as the railway station has its own immigration.
There are currently only two Shuttle services a day (one in the early morning and one in the afternoon), so if you aim to catch the afternoon service, that would be a good option for the final leg of the journey.
If you want to travel by taxi from Kuala Perlis to Hat Yai, you can take a local taxi or call up for a Grab taxi to take you to either the Padang Besar Border (nearest) or the Bukit Kayu Hitam / Danok border.
From Padang Besar you can arrange another taxi from just below the railway station pedestrian bridge on the Malaysian side of the border, or from Danok border crossing (a much busier border than P. Besar), you can easily get a taxi or minibus just after you exit the Thai immigration area.
Another alternative way to travel, and for me the most relaxing and best way to travel from Langkawi to Hat Yai, is to take the train via Arau Railway Station.
This is not the most direct route, but is more comfortable and can be quite quick if you plan everything well and use a taxi to take you from the jetty to the train station (you can use MyBus buses via Kangar if you want, but that will add quite a lot of time to the journey and once you reach Kangar, you might as well take the bus to Padang Besar).
First take the boat to Kuala Perlis.
Then a taxi to Arau Station (25 - 30 RM - 19kms - 20-30 minutes).
Then a KTM Komuter Train to Padang Besar (3.20 RM - 20 minutes).
Then connect to the afternoon Shuttle Train from Padang Besar to Hat Yai (55 minutes).
Total cost using taxi / trains all the way to Hat Yai around 55 RM - but much cheaper if there are a few of you and can share the expense of the taxi to Arau.