Indonesia isn’t just one place—it’s 17,000+ islands, spread across 3108 miles (5,000 kilometers). This sprawling archipelago of volcanoes, jungles, beaches, and buzzing cities has its fair share of beauty… and logistical challenges. The good news? Transport in Indonesia is surprisingly varied and, for the most part, decently reliable once you get the hang of it. Whether you’re island-hopping, temple-trailing, or just trying to get from Jakarta to somewhere less Jakarta, here’s how to get around Indonesia like a pro (or at least like someone who won’t spend half the trip waiting for a boat that may or may not arrive). This is our guide to transport in Indonesia.
THIS POST MAY CONTAIN COMPENSATED AND AFFILIATE LINKS MORE INFORMATION IN OUR DISCLAIMER
Your route around Indonesia will utilize a variety of transportation modes – buses, minivans, trains, planes, motorbikes, angkots, and bemos. There are ojeks, becaks, and bajajs too – or more than likely a mixture of all of them. And yes, you’ll use a lot of boats are well. Unless you’re just sticking to a single island, which, by the very reason that you’re reading this post, you’re not going to.
This isn’t one of those glossy travel brochures that pretend everything runs on time (spoiler: it doesn’t). Instead, it’s a no-fluff, budget-aware look at how to move around this beautiful, chaotic, endlessly fascinating country — without blowing your savings or your sanity.
The great news is that since we were first here in 2014, the transport infrastructure in Indonesia has come on hugely. It used to be that you crammed into the back of a bemo (a minibus), and sat 5 across where there was only room for three. Ferries were crowded and never felt particularly safe. Today’s travel across Indonesia includes budget flights, new buses and coaches, decent ferries, and luxury catamarans. The trains are pretty good too.
PRACTICAL TRAVEL TIPS
- 🛡️ Get Travel Insurance: Civitatis includes medical expenses, repatriation, theft, luggage delays. No deductibles or upfront payments. Get a quote here.
- 🛏️ Sea view? Laundry? Private bath? Book a Room.
- 🔌 Be ready for the plug, socket & power situation.
- 📶 Internet, maps and data on the go. eSims for Travel
Getting Around Indonesia – An Overview
Indonesia’s size and geography mean you’ll use a mix of transport options. Planes for long distances. Ferries between islands. Scooters in Bali. Minibuses (angkot), ojeks (motorbike taxis), and ride-hailing apps in cities. Sometimes, it’s a boat, a bemo, and a prayer.
Your transport plan will depend on:
- Which island(s) you’re visiting (Java – Bali – Flores – Sumatra and 16,996+ others!)
- How much time you have (weeks = boats; days = flights)
- How comfortable you want to be
- Your budget (spoiler: private cars cost more than scooter rentals)
Let’s break it down mode by mode, but we’re going to start with where and how you enter Indonesia and its transport system.
The Basics: How Transport Works in Indonesia
Here’s the first thing to understand about getting around Indonesia: it’s not one country when it comes to transport — it’s more like a few dozen mini-systems spread across the islands. What works in Java won’t necessarily work in Sulawesi, and the options you’ll find in Bali are worlds apart from what’s available in Flores.
Indonesia is made up of over 17,000 islands, but only about 6,000 of them are inhabited — and even fewer are easily connected. That means your transport options are often a mix of air, sea, and road travel. If you’re covering long distances, flying is usually the fastest (and sometimes the cheapest) way to go. For shorter hops or scenic routes, boats, ferries, and even trains can be part of the adventure.
You’ll also find that infrastructure varies wildly. Java and Bali are relatively well connected, with solid roads, trains (on Java), and access to ride-sharing apps. But head into eastern Indonesia — like the Nusa Tenggara region or the Maluku Islands — and you might be looking at long ferry rides, bumpy roads, or having to hire a local driver who knows the terrain.
Your budget plays a big role here, too. If you’re traveling cheaply, you’ll rely more on buses, public ferries, and maybe the occasional scooter rental. If you’ve got a bit more to spend, domestic flights, private drivers, and fast boats can save you serious time (and energy).
Bottom line? There’s no “best” way to travel across Indonesia — it’s all about what fits your route, your pace, and your wallet. The good news is that once you know what’s out there, it gets a whole lot easier to plan smart — and avoid getting stuck on a ten-hour bus ride when a cheap flight would’ve done the trick.
Entering Indonesia and Joining the Indonesian Transport System
There are more than 670 airports in Indonesia, but only 25 of them are international airports. The busiest international airport is Soekarno-Hatta International Airport in Jakarta on the island of Java– it runs 24 hours a day. The main entry point to Bali is Ngurah Rai International Airport – also known as Denpasar.
Once you arrive in Indonesia, they’re you’re into the domestic transport options.
Types of Transport in Indonesia
Of course, it’s important then look at the different types of Indonesian transport to understand where it is you’re going to and from. Clearly, in a country where there are so many islands, some form of transport over water is key. And these days, that can be a plane or a ferry, but if you’re just heading to Bali for 7 days, then you won’t need that.
Getting Around Indonesia by Plane – Flights in Indonesia
Indonesia has more airports than most countries have traffic lights. Flying is the fastest way to move between far-flung islands like Java, Sumatra, Bali, Kalimantan, and Sulawesi. It’s not always glamorous, but it works.
Indonesia is huge. Like, really huge. And when you’re trying to get from one end to the other — say from Jakarta to Labuan Bajo or from Bali to Sumatra — flying just makes sense. In many cases, it’s not only faster but often more affordable than you’d think.
There are LOTS of budget airlines in Indonesia, aka as low-cost carriers. And in the ever-present drive to go further, faster, and see more, flying across Indonesia has become the default way to get around. Both between islands and across islands.
Flights don’t even connect in the major hubs of Jakarta or Bali anymore, but often fly direct to islands from other Asian cities.
Since we first visited Indonesia in 2014, a stunning 30 new airports have been built in Indonesia. You can now fly to Labuan Bajo (for the Komodo Islands, for instance), so there’s no longer a need to hop on a boat for 6 days or so to get there! You can also now get to Silangit on Sumatra (for Lake Toba) from
The busiest airport is still Jakarta’s Soekarno–Hatta International Airport, but you’ll find lots of connecting flights through Surabaya on the island of Java, or Bali’s Denpasar.
Domestic Airlines in Indonesia:
Garuda Indonesia is the national airline. It tends to have better service, better standards, and higher costs.
The low-cost airlines that you’ll find in Indonesia include
- Lion Air – budget, notorious for delays, but covers everywhere
- Batik Air, Citilink, Sriwijaya Air, and Indonesia Air Asia – mix of budget and mid-range options
Use 12goAsia to book domestic flights. Prices are often better when booked inside Indonesia. There is a huge difference in prices; it’s not just the distance that sets the price, but the route. And there are now lots of routes.
Getting around Indonesia by Ferry & Fast Boats
If you’re planning to visit more than one island (and let’s be real — you should), boats and ferries are going to be a big part of your Indonesian journey. Whether you’re hopping from Bali to Lombok, exploring the Nusa Islands, or heading from Flores to Komodo, you’ll find yourself on the water more often than not.
Ferries in Indonesia
Indonesia’s Pelni ferries connect major islands. These are government-run, low-cost ships that run on fixed schedules. Some routes take a few hours. Others are multi-day marathons. They connect many hundreds of cities on the coast of Indonesia’s islands.
It’s cheap, but slow, and tickets sell out, because it’s cheap and this is a country of 264 million inhabitants! And then there are the visitors trying to use the ferries as well!
- Pelni Ferries – big ships; basic cabins; great for budget-conscious, slow-travel folks.
- ASDP Ferries – shorter crossings, like Java to Bali or Lombok to Flores.
Bring snacks, water, patience, and maybe a podcast or three. Pelni ships can be a cultural experience—you’ll share space with locals, chickens, rice sacks, and karaoke machines.
Not ideal if you’re short on time or prone to seasickness. But I love them. Disconnect, chill out, and people watch, absolutely the best way to experience the trip.
The classic trip to take by ferry in Indonesia is to go from Java to Bali, to the Gili Islands, and then onto Lombok, which you can use as a stepping off point to explore the Komodo Islands.
- Book a ferry from Java to Bali
- Book transport from Bali to the Gili Islands
- Go from the Gili Islands to Lombok
- Get yourself to the Komodo Islands.
Fast Boats in Indonesia
On the faster, more tourist-friendly end of the scale, you’ve got the fast boats that zip between places like Bali, the Gilis, and Lombok. They’re quicker, more expensive (typically $20–$40), and a lot more comfortable. Just be sure to check the weather — fast boats don’t run if the sea’s too rough, and cancellations can be last-minute.
Getting Around Indonesia by Train
I’ll be honest — I didn’t expect much from Indonesia’s trains. But traveling by rail in Java turned out to be one of the best surprises of my trip. It’s affordable, scenic, comfortable (as long as you don’t cheap out too hard), and it runs on time. Yes, really.
Trains only operate on the island of Java, and a bit of Sumatra, but if you’re going anywhere between Jakarta, Yogyakarta, Bandung, and Surabaya, this is the way to go. The routes cut through rice fields, rural villages, and mountain views, and it’s all way more relaxing than being stuck in traffic for hours on a bus.
Indonesian Train Routes to Know: (and prebook asap)
- Jakarta to Yogyakarta (8 hours) – it’s popular if you’re heading to Jogja and the temples of Borobodur and Prambanan.
- Yogyakarta to Surabaya (5 hours)
- Bandung to Jakarta (3 hours)
Book on the KAI Access app, at stations, via Traveloka, or use Bookaway. First-class seats have AC and power outlets. The views from Yogyakarta to Bandung? Lush rice paddies and distant volcanoes.
If Indonesia built this train system across all islands, it’d be game over. But alas, for now, Java is the winner, and it helps a little with Sumatra. You’ll find the trains on Sumatra useful if you’re heading from Medan to Binjai, as it’s the most popular route.
Trains have three main classes of carriage and ticket, and they can all be booked a month in advance.
- Executive Class has A/C (you will need a sweater) and reclining seats.
- Business Class is only available on some trains, but offers decent comfort
- Economy Class has seats that don’t recline, and it’s often crowded.
We’ve tried all of them. And sure, I like the reclining seats and the AC, but I can also cope without too much of a problem with the economy class. If you have the funds, try each of them and see what you think.
The easiest way to book is through Traveloka or Tiket.com, or directly at the station. I’d recommend buying in advance if you’re traveling during weekends or holidays, especially on the popular Jakarta–Yogyakarta route. You’ll get an assigned seat, so there’s no scramble, and the trains tend to leave exactly on time. (A rare thing in Indonesia.)
Some stations even have English signage and fairly decent amenities — think clean toilets, waiting areas, and food stalls. Just don’t expect Wi-Fi or power sockets unless you’re splurging on a premium service.
Honestly, if you’re traveling across Java and want something budget-friendly but still comfortable, trains hit that sweet spot. They’re not just transport — they’re part of the experience.
Buses, Minibuses & Shared Vans: Most Ubiquitous Overland Travel
Aside from that, actually, probably also including Java, you’ll still find that buses are the main transport type in Indonesia. They’re cheap and run pretty much 24 hours a day. If you are traveling during Eid, then you MUST book in advance.
Long-distance buses are a good pick for traveling between cities or provinces, especially on Java, Sumatra, and parts of Sulawesi. You’ll get some coach-style buses with air-conditioning and reclining seats, that might even give you a blanket and snack box thrown in. Executive and VIP classes are well worth the extra few dollars for long trips — trust me.
The biggest network of coaches is DAMRI, the government-owned group. You can book directly with them here. You can also easily book buses in Indonesia with 12goAsia and Bookaway.
Then there are the smaller, less predictable players: minibuses (called travel or elf locally) and shared vans (angkot or bemo, depending on the region). These are usually used for shorter distances or connecting more remote towns and villages. They don’t always have fixed schedules — they leave when full — and can feel pretty cramped, but they’re incredibly cheap and give you a real slice of local life. My favorite trip? That was from Ubud to Gilimanuk, although to be fair, that’s because of the taxi that we took to the bus station. Read it and weep here.
You’ll often find minibuses hanging around bus terminals or local markets. Sometimes your accommodation can call one for you, or you can book a seat via WhatsApp or through a local agent. Don’t expect clear signage or online booking platforms — just ask around, and someone will point you in the right direction.
Taxis and Private Transfers in Indonesia
There comes a point in every Indonesian adventure when you’ll just want someone else to do the driving — and that’s where private cars and taxis come in. Whether it’s a long transfer between towns or just escaping a sweaty walk in Bali’s midday heat, paying a bit more for convenience can feel very worth it.
Hiring a private car with a driver is surprisingly common — and not as expensive as you might think, especially if you’re traveling in a group. It’s popular in places like Bali, Flores, and Sumatra, where public transport is patchy or time-consuming. Daily rates usually range from US$35 to US$60, depending on the car, location, and distance. Drivers often double as informal guides and know all the scenic spots, shortcuts, and decent roadside warungs. Daytrip.com is a good option if you want to prebook (and prepay) online.
Then there are taxis. In big cities like Jakarta and Surabaya, Blue Bird is the most reliable and honest operator — their meters are legit, and they even have an app. But elsewhere, taxis can be a bit of a wild card. Always ask to use the meter or agree on a price before getting in. If someone says “meter broken,” that’s your cue to walk away.
Ridesharing Apps in Indonesia
Ridesharing apps like Grab and Gojek are big in Indonesia. Gojek is enormous now. It was originally created to make it easy to call up a motorbike taxi, aka an ojek, but now it does everything. You know, like Grab or Uber does elsewhere.
Gojek is available in 160 cities. It’s bilingual, so when you don’t speak Bahasa Indonesian, and your driver doesn’t speak English, then you can communicate. Easy.
For shorter rides, especially in urban or semi-urban areas, these ride-hailing apps are a total game-changer. Grab and Gojek (Indonesia’s homegrown Uber) are easy to use, accept foreign credit cards, and are usually way cheaper than hailing a taxi on the street. You can order cars or motorbikes, and in some cities, you can even get food and laundry delivered.
The downside? These apps don’t work everywhere. In smaller towns or remote islands, you’ll be back to flagging down locals or negotiating with drivers at the terminal. Still, when they’re available, they’re your best bet for fair pricing and a smooth experience.
If you’re short on time or just want to avoid the hassle, paying a bit more for a ride can seriously take the edge off — and save your energy for the actual adventures.
Rental Cars in Indonesia
Whether you want the freedom that a rental car in Indonesia offers or not might depend on your first experiences of the roads in the country. It can be chaotic. It can be busy. You won’t, for instance, want to drive in Jakarta, but to get to some of the way-out places, then a rental car or a car with a driver might be your only option.
To rent a car in Indonesia, you’ll need a passport and an international driver’s permit. Oh, and of course, a credit card. Brits will be glad to know that you drive on the left in Indonesia.
If you want the flexibility of a private car, but not the hassle and stress of driving, then there’s usually an option of hiring a vehicle and a driver who knows what they’re doing. For this, I recommend using Daytrip.
My alternative transport option to rental cars is to take a Daytrip private car and driver. It’s a door-to-door service, so there is no need to get to a bus station or train station. And their raison d’être is that while they will take you from A to B, they’ll also stop off at sightseeing spots along the way. In Indonesia, it’s a remarkably cost-effective way to cram a heck of a lot into a day.
Take, for instance, Jakarta to Bandung. It’s about 2 hours and 30 minutes to drive this route. You can add stops at Bogor City, the Dian Al-Mahri Mosque, or a selection of others. Pick what stops you want, how long you want to stop for, and while you explore your sightseeing stops, your bags stay safely in the car. You get to snooze en route. Or gaze out the window. And you arrive at your hotel fully refreshed and ready for more. Check it out here.
Scooters, Mopeds, and Motorbikes in Indonesia
If you’ve spent even five minutes in Bali or Lombok, you’ve already seen it: tourists in flip-flops, zipping around on scooters, helmet askew, GoPro strapped to the front. Renting a motorbike is practically a rite of passage here — and yes, it’s cheap, flexible, and fun. But it’s also something you really want to approach with a bit of caution.
Let’s start with the price. Scooter rentals usually cost between $5 and $10 a day, depending on the island, the model, and how long you’re renting for. Weekly and monthly rates are cheaper — you can often negotiate a decent deal if you’re staying put for a while. Fuel is dirt cheap, and gas stations are everywhere… but so are roadside stands selling petrol in old vodka bottles (they work in a pinch, I promise).
It’s a fantastic way to explore at your own pace, especially in places like Ubud, Lombok, and even parts of Java. Just pull over wherever you want — waterfall, rice field, local food stall — and you’ve got instant freedom. But there’s a flip side to all that flexibility.
The roads can be chaotic. Traffic rules exist, but they’re loosely followed. You’ll be dodging everything from trucks and chickens to rogue potholes. And unless you’re a confident rider with experience on Southeast Asian roads, it can get overwhelming fast.
You’ll also need an International Driving Permit (IDP) that covers motorcycles — and technically, a local license too. Police in Bali, in particular, have gotten stricter with roadside checks, and fines for not having proper documentation are common. Helmets are mandatory — wear one, even if the locals don’t.
In short, renting a scooter can be a total game-changer for your trip. But only do it if you’re comfortable on two wheels, have the right paperwork, and aren’t in a rush to get somewhere. Because in Indonesia, riding is part transport, part obstacle course… and part adventure.
Transport within Cities in Indonesia
Let’s be honest — most Indonesian cities aren’t built with pedestrians in mind. Sidewalks, if they exist at all, tend to be uneven, blocked by street vendors, or suddenly disappear mid-block. That said, walking can be doable in smaller or more tourist-friendly areas like Ubud, central Yogyakarta, or certain parts of Bali. Just don’t expect a smooth, scenic stroll through most urban centers — and be prepared to sweat.
Now, if you’re keen on cycling, there are a few great spots to do it — mostly away from major traffic zones. Ubud and other parts of Bali have bike rentals and organized cycling tours through the rice terraces. Yogyakarta is also relatively bike-friendly in its central area, and in some towns, you can rent a bike for just a couple of bucks a day. Helmets are rarely provided, so if that’s important to you, plan ahead or bring your own.
Where things get easier — and frankly, more efficient — is online. Gojek and Grab are two super handy ride-hailing apps that work like Uber. You can order a car or motorbike taxi with just a few taps, and they’re generally way cheaper than hailing a street taxi. They also let you avoid price haggling, which, trust me, gets old fast.
These apps do more than just transport. You can also use them for food delivery, package delivery, and even to top up your mobile data. They’re a bit of a lifesaver if you’re staying in a city for a while. Just note: coverage is best in major cities and tourist areas — don’t expect Gojek to pick you up in the middle of Flores.
One quick tip: always have Google Maps downloaded offline for the areas you’ll be exploring. Not all drivers speak English, and pointing to a pin on a map is often the fastest way to explain where you’re going.
Transport in Jakarta
Indonesia’s capital city, Jakarta, is one of the world’s most congested. There’s a reasonable mass transport system, and I advise you to use this rather than taxis. The urban network of trains is called the MRT, but it doesn’t cover the entire city; a second network, the LRT, covers other parts of the city.
Buses within the public transport system – the Transjakarta Buses- have dedicated “corridors” (that would be bus lanes to you and me). You’ll find Corridor 1 the most useful. It will get you to the main Jakarta attractions such as the Monumen Nasional, Museum Nasional, and the Hotel Indonesia.
If (when) you get stuck, get yourself the Trafi app, as the routes are pretty bewildering.
All of the public transport in Jakarta is cashless. Get yourself a transport card at one of the MRT stations or some of the Transjakarta stops. Just tap on and tap off to pay. You can top up the cards at Alfamarts or MRT Stations.
Rickshaws, Bajajs, Benros, or Becak-Motors
It’s been a long time since the traditional rickshaws were the main type of city transport in Indonesia, but they’re still around. You’ll find them in the tourist parts of Jakarta or Yogyakarta, only for tourists. You’re much more likely to find the “autorickshaws”. They’re known as Bajajs, Benros, or Becak-Motors depending on where you’re hailing them. They’re practical only for short journeys.
Transport Tips for Travelers
By now, you’ve probably gathered that transport in Indonesia isn’t always straightforward — but it is manageable with a little planning (and the right mindset). Here’s what I’ve learned after navigating ferries, flights, scooters, and more than a few surprise detours.
First off, be flexible. Delays are common, especially with ferries and budget airlines. Things don’t always run on a strict schedule — sometimes a “10 am” bus won’t leave until noon. Build buffer time into your plans and try not to pack your itinerary too tightly. In Indonesia, patience really is part of the journey.
Booking ahead vs. winging it: For domestic flights, fast boats, and long-distance trains — always book in advance, especially in high season (June–August, Christmas, local holidays). For public ferries, minibuses, and local transport, you can usually show up the day before or even the same day. If in doubt, your hotel or guesthouse can usually help.
Travel light if you can. Luggage space is limited in minibuses and ferries, and lugging a huge suitcase onto a speedboat or over a muddy path is no one’s idea of fun. A backpack will give you more flexibility, especially when plans change — and they probably will.
Download key apps:
- 12go Asia
- Traveloka or Tiket.com for booking flights and trains
- Gojek or Grab for short rides and food delivery
- Google Maps for route planning
- MAPS.ME or offline Google Maps in areas with a weak signal
Cash is king. Many ticket counters, local drivers, and ferry ports only accept cash — and sometimes exact change. Keep small bills handy, and don’t rely on credit cards outside big cities.
Finally, trust your gut. If something feels off — like a driver quoting double the usual rate — walk away. Indonesians are generally helpful and friendly, and with a bit of common sense and curiosity, getting around can be half the adventure.
Popular Indonesian Routes to Travel
Want to know more about different forms of transport in Indonesia? Our guide to Indonesian transport is here. And here’s how to travel some of the popular routes around Indonesia, your options, and how we did it.
- The Top 5 Scenic Routes in Indonesia.
- How to go from Bali to Lombok
- Going from Ubud to Gilimanuk
- How to go from Banyuwangi to Probolinggo
- How to go from Lombok to the Gili Islands
- Getting to Bromo Independently
- How to get to Kawah Ijen independently
- Going from Bali to Java
- How to get to the Gili Islands from Bali
- Going from Probolinggo to Yogyakarta
- How to get from Banyuwangi to Bromo
- How to get from Surabaya to Probolinggo
FAQS for Transportation in Indonesia
Here are the most commonly asked questions we get about getting around Indonesias.
What’s the cheapest form of transport in Indonesia?
Public minibuses or angkot. Super cheap, but not for the faint-hearted.
Is Grab available in Indonesia?
Yes, especially in Jakarta, Bali, and Surabaya. Gojek is even more widely used.
Is Uber available in Indonesia?
No. Uber sold their Indonesian concession to Grab in 2018.
Are there trains in Indonesia?
Yes. The island of Java has a great train transport system; there are *some* train lines in Sumatra, but it’s not as extensive as that on Java.
What’s the best way to get around Indonesia?
It depends on where you’re going. You need to look at the route and the best option for that route.
Can I rent a scooter without a license?
You can. But it’s illegal and risky. And you don’t want to end up in an Indonesian jail. You need an International Driving Permit (IDP) and should be confident riding and dealing with other traffic on the roads.
Is flying safe in Indonesia?
Yes. Domestic airlines are regulated. Stick to Garuda, Batik, or Citilink for peace of mind.
What’s the best way to get between Bali and Lombok?
Ferry (cheap but slow) or fast boat (quick but choppy). Flights are also an option if you want to skip the seas. My guide to going between Bali and Lombok is here.
Travel Tips for Exploring Indonesia
- Get Travel Insurance: Civitatis includes medical expenses, repatriation, theft, luggage delays. No deductibles or upfront payments. Get a quote here.
- Get online immediately with an eSIM for Indonesia here
- Download and install a VPN BEFORE you travel to Indonesia > discount coupon here
- Save money in Indonesia with a Wise debit card
- Book the best tours and attractions in Indonesia
- With Klook
- Or with GetYourGuide
- Book Buses & Trains in Indonesia with Bookaway
- Book accommodation in Indonesia with Agoda
Final Words on Transport in Indonesia
Getting around Indonesia isn’t always smooth, but that’s kind of the charm. You’ll take boats that may or may not leave on time, ride scooters down winding jungle roads, hop between islands on planes, and maybe even cram into a bus with someone’s chickens. It’s unpredictable, sure — but it’s also part of what makes traveling here feel like a real adventure. The key is figuring out what works best for your trip style. If you’re short on time and don’t mind spending a bit more, flying or hiring a driver will save your sanity. If you’re on a budget and love slow travel, buses and ferries will take you far (eventually). If you’ve got flexibility, a bit of patience, and a good offline map, you’ll be just fine.
ASocialNomad is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com, amazon.co.uk, and amazon.ca. Amazon and the Amazon logo are trademarks of Amazon.com, Inc. or its affiliates. As an Amazon Associate, I earn from qualifying purchases.