Updated: Mar 29, 2021
NOTE: Not all Switches are *easily* moddable, you'll have to find an unpatched model on eBay if you want to go the reliable route (which is what I did... AFTER splurging on a brand new one at Target and promptly returning it after I learned about this nuance). If you buy one off the shelf, you're going to have to be willing to install a hardware mod (SX Core or Lite mod depending on your Switch model: https://sx.xecuter.com/). Otherwise, just opt for an unpatched Switch unless you're up for soldering and warranty voiding a brand new system with limited CFW support even after the mod.
Explanation of procedure:
Here's what we're about to do. The first generation Switch had a hardware vulnerability (more like a backdoor for developers they forgot to turn off after release) that is un-patchable and allows you to gain root access to the Switch. The way to exploit this is to boot your system into recovery mode (RCM). Most devices (like Androids and iPhones you patch or jailbreak) have a specific button press combination you perform to boot into recovery mode with, and these Switches are no different. The trick is though, that you have to short two pins that the controller would normally use to communicate when attached to the Switch to boot into this recovery mode. That requires a 'jig' (or a paperclip, but really... the jigs cost about $6... and if you try to short the pins yourself you could easily damage your Switch, so buying the jig is a no brainer).
You insert the jig while the Switch is powered off. Then you hold down the 'volume+' button on the Switch, and with that button held, touch the Power button (no time requirements like a 5 second thing as other devices do, just touch the Power button). The screen won't turn on, but you'll instantly be in recovery mode. If you're connected to Windows, you'll hear the 'badumbee' USB detected chime as a signal you're in RCM. Now, you need a payload. A payload essentially injects into the boot code while in the RCM environment, so when you exit RCM mode you'll continue to boot with a compromised/modified firmware.
After the payload is injected, the Switch will then be re-pointed from the internal system firmware location to your MicroSD card and sent to load custom boot files from there and continue booting. So you need the payload to compromise the firmware, and accompanying files on an SD card so it can boot into the custom firmware. From there, you'll see a new customized splashscreen before the Switch splashscreen, signaling to you that you've successfully booted the modified code.
I wanted to explain this because this is a pretty wonky way of booting a rooted device. Without CFW files on the MicroSD card, the payload won't be able to get the Switch to boot because all the files it's telling the Switch to open up won't be able to be located because they don't exist.
So your CFW, your applications, your games, your mods, everything you can do on your Switch, is located on the MicroSD card. The payload simply exploits the firmware and tells it to boot from the MicroSD card's custom firmware instead of its own.
Skip the preamble, onto the mod.
RCMclip (Don't bother with this if you opt for the RCM Loader below, as an RCMclip comes with it)
USB-C to USB-A cable (to connect to PC)
Large MicroSD card (as large as possible, I use a 512GB from Samsung and it's perfect).
Optional but VERY recommended parts:
RCM Loader (to boot up your Switch into hacked firmware without bothering with hooking up to a PC). See 'RCM Loader-Based Mod Steps' instead of 'PC-based Mod Steps' below
PC-based Mod Steps:
*Download and install TegraRcmGUI here. TegraRcmGUI is a PC-based application that injects the payload into your Switch quickly and easily.
^Download fusee_primary.bin from here. This is the payload itself. This is for booting into Atmosphere CFW (the most recommended CFW to use).
+Download Atmosphere from here (the ZIP file in the download list). This is the custom firmware that you install onto your MicroSD card, for the payload to redirect over to and get the Switch to boot from.
Unzip the Atmosphere archive, and drag everything inside it into the root of the MicroSD connected to your PC.
Browse TegraRcmGUI and find fusee_primary from your downloads, then load that into TegraRcmGUI as a payload. Add to favorites to make it easy to find next time. Leave TegraRcmGUI open on your PC.
Install the RCM clip in your Nintendo Switch while it's turned totally off (push it straight down the right joycon's rail until it snaps into place at the bottom).
With the Switch connected to your PC, hold down the 'Volume+' button. While holding it, tap the Power button and it should almost instantly boot into RCM mode. The screen won't turn on, but TegraRcmGUI will have a little Switch icon that turns from red to green when it detects your Switch in RCM mode. When it's green, go ahead and click 'Inject payload' in TegraRcmGUI and your Switch.
Your Switch will automatically start booting, you'll see an 'Atmosphere' splashscreen, and now you're in your new CFW!
*STEP 1 OPTION: If you use the RCMloader device, you won't need a PC or TegraRcmGUI, as RCMloader will inject the payload itself directly.
^STEP 2 OPTION: To do more advanced things to your Switch in a pre-boot payload environment, download hekate_ctcaer_5.5.1.bin (or newer) from here. This lets you do a ton of stuff like backup your original firmware, dump your eMMC, etc. You can then ultimately boot with 'fusee_primary.bin' from hekate too and boot into Atmosphere, but if you just want to boot into CFW without complication, avoid hekate until you actually have a need for the advanced stuff.
+STEP 3 OPTION: To install cool mods for overclocking, backing up your firmware, etc. along with the CFW right off the bat then go here: Go to: https://www.sdsetup.com/ and it will create a custom download that includes all the neat mods you want, including Atmosphere itself. When it's downloaded, just drag and drop everything in it to your MicroSD card directly. You don't have to mess with anything before or after this step differently than what the tutorial above originally says to do, this is only relevant to your MicroSD card. I didn't include this for Step 3 just because like Step 2. it's a little overwhelming and there just isn't much use in it when you're first starting out on the mod scene.
(Optional alternative to PC CFW boot route) RCMLoader-Based Steps:
NOTE: RCMloader replaces the 'PC-Based' steps 1, 2, 5 and 7 (above). Both PC and RCMloader options do the same thing for you in terms of booting the Switch into CFW. RCMloader just makes everything quick and easy whenever you have to reboot your Switch.
The official, simple tutorial is here. I'll just list the steps that differ from the PC process below.
Download fusee_primary.bin from here. This is the payload itself. This is for booting into Atmosphere CFW (the most recommended CFW to use). (Replaces Step 2 of PC-based steps)
Connect your RCMloader to the PC, it will show up as a mass storage drive. Drag and drop fusee_primary.bin into whichever folder you want. I chose User1 (yellow). (Replaces Step 5 of PC-based steps)
Plug it into your Switch when it's turned off, put the Switch in RCM mode (hold Vol+, then hit power at the same time) and it'll boot right into Atmosphere. (Replaces Step 7 of PC-based steps)
Install NSP's (Games) on Your Switch:
1. Do everything in 'PC-based Mod Steps', just right after Step 3, download and copy the unzipped contents into your Switch MicroSD's 'switch' directory (eg. E:\switch\): https://github.com/blawar/tinleaf/releases
2. You'll have to download Sigpatches from here (these are very important) and put them on your Switch's MicroSD under the directories that the unzipped contents show (E:\atmosphere, and E:\bootloader). Without these, games might install but the Switch won't recognize or play them: https://github.com/Huntereb/Awoo-Installer/releases/download/SignaturePatches/patches.zip
3. Download games from here: https://nxbrew.com/
4. Put the downloaded game's .nsp files on your Switch under the 'games' folder, and open Tinleaf on your modded Switch by trying to start an existing app but holding 'R' as you do. This will bring up the mod app launcher, select Tinleaf, then 'Install from SD', then choose your .NSP's and install.
Hopefully this was helpful for you- let me know in chat or comments if this article needs any work. Happy modding!