I’ve updated my Top 100 Starting Pitcher Rankings for fantasy baseball drafts on March 13th – Read the February ranks for a deeper understanding of each pitcher, and use this order for help in your drafts.
Have questions? My “office hours” are on Twitch 10:00 am – 12:00 pm ET Monday – Friday + the aforementioned stream of The List.
For each edition of The List, I have a set of rules to outline my thought process and how to best use these rankings. Please take note:
- This is 5×5, 12-teamer, H2H format focused. It generally is the same as roto as well, but make sure you adjust accordingly.
- Before the notes and rankings, an injury table outlines where players would be relatively ranked if they were fully healthy. It’s the best way to tackle how to value players on the IL.
- If a player is on the IL or not confirmed inside the rotation, they aren’t on the List. That includes injuries and guys in the minors, but there are exceptions for players who are expected to be in the rotation but are being skipped this week. (Spring edition: I have a few hypothetical rotation arms on The List who will be off the ranks if they leave camp out of the rotation).
- Since this is a 12-teamer, I heavily weigh upside in the back-half of the rankings. The HIPSTER players are likely going to underperform those labeled as a Toby across a full season, but it’s in your best interest to chase ceiling vs. floor in many cases. Pick the one that you need most in your situation, of course.
- I’ve made a decision to limit labels to just two labels per player, with few exceptions for a second. It streamlines the process much better and hopefully gives you a more targeted understanding of the player.
- The notes outline oh-so-much to help your team. Please read the notes if you can instead of just scrolling to the bottom.
Before we begin, here is a table of the expected rotations by team, including their opponents for the first two series of the year:
Expected Rotations By Team
Lastly, I heavily recommend you follow my daily SP Roundup that outlines all pitcher performances through the season, as each week’s update will reflect the comments and findings from those daily articles. If you’re unfamiliar with some of the players listed, I highly recommend reading my 75,000+ word Top 400 Starting Pitchers from February. Many things will have changed, but the root of my perception of these players is outlined there.
Let’s get to it.
Ranking Notes
- This is your reminder to please read these notes as they’ll tell you plenty about why “someone moved up” or “why is he at #X?!”
- Seriously. Read the notes.
- I know there are going to be a ton of comments about I hate how much these rankings change each week and I’m going to get out ahead of them here.
- These rankings mostly change in the back half of The List as that’s your waiver wire. Those aren’t the players you hold onto throughout the year like your SPs 1-4, which means we’re going to be a bit more chaotic and roll with the waves more aggressively. If I see elements that suggest a pitcher could be a Top 40 arm, I’m going to move up a ton from the 80s to the 60s. Shazam, there we go.
I’m sorry these blurbs aren’t so detailed, but I ran out of time! Good luck!
Tier 1 – The True Aces
1. Garrett Crochet – Aces.
2. Paul Skenes – Gonna.
3. Tarik Skubal – Ace.
Tier 2 – AGA With Something To Prove
4. Bryan Woo – He’s Wheeler 2.0.
5. Yoshinobu Yamamoto – Likely six-man = lower ceiling.
6. Max Fried – His ratios are absurdly safe + great win potential.
7. Cristopher Sánchez – Sinker gained movement last year + tighter slider. Love that.
8. Hunter Brown – He’s already sitting 97 mph again with a better four-seamer. Only worry is a six-man and lack of secondary support.
9. Shohei Ohtani – Ohtani hasn’t had a bad season as a starter since before COVID. Don’t care if it’s six-man?
10. Jacob deGrom – He’s looking like deGrom and the only reason he was lower is the injury risk, which he overcame last season.
11. Logan Gilbert – Gilbert had a strain last season and I’m concerned it’ll appear again. The talent is incredible, though, in a phenomenal situation.
Tier 3 – Just Stay On The Field
12. Logan Webb – Here’s to hoping his WHIP improves, because the volume is otherwise incredible for ERA, Wins. and strikeouts
13. Freddy Peralta – Peralta has been oddly consistent despite his Professor Chaos nickname.
14. Chris Sale – I’m more worried about Sale being injury prone, despite the freak incidents. Not everyone fractures a rib diving for a ball.
15. Cole Ragans – Rotator Cuff strains are no joke. Y’all know I love him, but it’s a high risk pick.
16. George Kirby – Kirby’s slider is absurd and if he wields it correctly, 30% strikeouts are coming. Hard to bank on a full season, though.
17. Tyler Glasnow – Even at 130 IP, I love that in a 12-teamer when Glasnow obliterates when healthy.
18. Joe Ryan – The recent back issues are concerning, but he returned to the bump and sat 92 mph. Glistening WHIP arm.
Tier 4 – So Dang Close To Greatness
19. Kyle Bradish – Slider and Curve are cooking, leaning into sinker more than four-seamer vs. RHB is a lovely thing. Ready for 180+ IP.
20. Cam Schlittler – He’s just too good. I’m amazed I have him this high and yet, I watch him with an expanded arsenal (sinker now and better cutter!) and I can’t help myself.
21. Jesús Luzardo – I’m shocked I have him this high, but he’s gained three inches of drop on his sinker and started to use it against RHB. It’s a great plan given how poor of a four-seamer he has. Think normal Luzardo but fewer extremes if he’s suddenly a groundball guy + destory LHBs.
22. Eury Pérez – Four-seamer is elite, and I’m expecting more growth in the TJS honeymoon season.
23. Framber Valdez – He can be oh-so-frustrating, but the curveball is looking good so far and he’ll likely be a strong force all year.
24. Sandy Alcantara – His four-seamer and sinker overpower, with a dominant changeup, and now there’s a cutter. Expect far better.
25. Nolan McLean – McLean has already improved his sweeper and curve to ridiculous levels, while leaning into a cutter to deal with LHB. I’m a believer now.
Tier 5 – Why Do I Feel So Scared?
26. Ryan Pepiot – I lowered him only because we haven’t truly seen Pepiot soar yet. He’s had command questions before and I trust the ones above to be six-inning arms more often. McClean gets the nod for a larger arsenal.
27. Dylan Cease – Who. Knows.
28. Bubba Chandler – His four-seamer is 98 mph with elite vert and command. One of the best in the game. Give him time to find the rest.
29. Kevin Gausman – He is who he is. And that’s fine me.
30. Michael King – I found myself wishcasting that he’d have his full-on command. If he does, he’s Top 15.
31. Nick Pivetta – I fell for him until the news of arm fatigue. It’s apparently minimal, but I’ve pushed him to the Cherry Bomb tier.
Tier 5.5 – The Pitcher List Hall Of Famers
Hey there. You might not know that we now have Lifetime Subscriptions at Pitcher List open for a limited time. We’re nearing our initial goal of 100 members before we close the subscription – act soon if you want to be a Pitcher List Hall Of Famer! – Sign-up for a Lifetime PL Pro Subscription here.
Tier 6 – Quality Volume
32. Shota Imanaga – Despite all the bad doom and gloom of last year, he still had a low WHIP and sub 4.00 ERA. Now his four-seamer is back up two ticks in the spring. I’m so in.
33. Drew Rasmussen – He’s stupid hard to hit and now gets a much better home park. Downside is just 150 IP.
34. Trevor Rogers – The SWATCH life is real. He’s also improved his fastball since last season.
35. Nathan Eovaldi – He’s healthy and that’s all I need to see. He had a sub 2.00 ERA in 130 IP, ya’ll.
36. Andrew Abbott – I’m not too high, you’re too low. Abbott improved his four-seamer, slider, and changeup last year and the gains are still here.
37. Tatsuya Imai – I’m not as impressed as I thought I’d be, but he was 96/97 mph in his last spring game and the reverse slider may be weird enough to get more whiffs than expected.
38. Robbie Ray – I could have put him in the next tier, but I highly doubt we’ll be pulling Ray out of our lineups again like we did in September of last season.
Tier 7 – Youngins’ with a Chaperone
39. Jacob Misiorowski – He’s dope, but doesn’t command well, is a bit inefficient, and is a huge health risk.
40. Chase Burns – I prefer Burns’ skills to Jay Mis, but he already has an injury ding with his flexor strain last season.
41. Cade Horton – Horton’s four-seamer is a legit cut-fastball and with the Cubs defense, he’s a surprise quality volume arm with more strikeout potential to find.
42. Trey Yesavage – The delay entering the season is annoying as anything, but I think we’ll forget about it by mid/end-April. Steepest splitter angle in baseball.
43. MacKenzie Gore – The move to Texas will help immensely. This is the breakout season we’ve been waiting for…if he can find a little more consistency with his command.
44. Kris Bubic – He’s at 92 mph and looking healthy, but the command is off. The skills should be there, more of a question of longevity.
45. Emmet Sheehan – His four-seamer is fantastic, especially with his feel to keep it upstairs. Great slider and changeup too, but how will the Dodgers use him?
46. Zack Wheeler – I see him as someone you want to roster when he returns in…mid April?!
Tier 8 -Innings But Are They Worth It?
47. Nick Lodolo – I see last season as a peak year and I’m worried he won’t have the same rhythm.
48. Edward Cabrera – We have yet to see a season from Cabarera where he’s fully in rhythm and consistent with his mix. I dig the situation, though.
49. Sonny Gray – He’s Sonny and Gray. The volatility is annoying, but he’ll help in the end. The strikeout uptick lately is real with sweeper and sinker command.
50. Ranger Suárez – If Suárez can find his rhythm early, he’ll be solid for another year as he goes underrated for the nth straight year.
51. Matthew Boyd – Boyd will soar in Wrigley during the early months, though the HRs could arrive with the warm weather in the summer.
52. Aaron Nola – I see last year as a lost year. His skills are still present and I’m buying back in.
53. Zac Gallen – Same with Gallen, on a great defensive squad in Arizona. Opening Day = all good to go.
Tier 9 – WILD CARD BABY
54. Ryan Weathers – I’d love to grab him and get whatever we can as he’s healthy. Changeup can be so good.
55. Gavin Williams – I just don’t know what he’ll look like. Sure hope he finds something that sticks.
56. Shane Baz – The new Baltimore scene may help him plenty, but we just haven’t seen it yet. Could be HRs galore again, even out of George Steinbrenner.
57. Shane McClanahan – He was 93 mph then 94 mph in his first two starts. It’s a high risk/reward pick right now before we know more. Better than Strider given the ramp up and a better arsenal outside of the formerly upper-90s fastball.
58. Kodai Senga – Velocity is up on the four-seamer, but is the cutter ready to support it again? The other breakers are pretty meh.
59. Tanner Bibee – Bibee got a lot of strikeouts in his last spring start with a well-located cutter focus, but its movement had a much larger range than I’d like to see. I’m not sold yet.
Tier 10 – Hurt And You Miss Work
60. Blake Snell – He’s out until the end of April?
61. Gerrit Cole – I see him as someone you want to roster when he returns in late May.
62. Carlos Rodón – Seems to be out until mid-May or so. You want to roster him when he returns.
63. Bryce Miller – Maybe he’s okay for the first turn of the rotation?
64. Brandon Woodruff – Missing the start of the year + needs extra rest? Oh boy.
65. Jared Jones – TJS recovery stash.
66. Spencer Schwellenbach – Bone spur recovery stash.
67. Hunter Greene – Bone spur recovery stash.
68. Corbin Burnes – TJS recovery stash.
69. Justin Steele – UCL surgery recovery stash.
70. Shane Bieber – He’s had arm fatigue and I’m not sure when he returns and if he can stay on the field when he does.
Tier 11 – Fine, You Need Some Innings
71. Noah Cameron – I think he gets better, but the ratios will likely get worse without the same absurd luck. Great command though.
72. Ryne Nelson – Four-seamer is great, everything else is still a mystery. Shockingly good but boring?
73. Luis Castillo – I see him regressing more, but the home park is great. Fastball velocity keeps going down.
74. Merrill Kelly – He’s apparently going to be okay…? Solid Toby and borderline Holly when he is.
75. Zach Eflin – Overlooked after adding a tick of velocity this spring following back surgery. Great situation in Baltimore.
76. Will Warren – Expanding arsenal this spring and gets to head to Seattle for his first start. Grab that and see where it leads.
Tier 12 – The HIPSTER
77. Spencer Strider – I don’t trust him to be great without the four-seamer dominance, but why not take a chance at this point? There’s no way I get to with this ranking.
78. Kyle Harrison – New changeup is dope and he’s at 94+ mph. Can he command it all?
79. Jack Flaherty – A bit underrated as a strikeout arm. Will be a HIPSTER plenty of the year.
80. Luis Gil – Gets to pitch in Seattle to start the year. I don’t trust the control to be good enough to go six innings, even five innings sometimes. Really hard to hit, though.
81. Andrew Painter – Take a chance given he has the opportunity to start the year. I’m not seeing the precision he needs, nor anything close to the 100+ velocity he had at 19 years old (he’s around 95/96 mph).
82. Grayson Rodriguez – Same with Grayson. Velocity is down and I need to see the secondaries come alive to make up for the Angels’ defense. But sure, take a shot.
83. Mick Abel – He doesn’t have a rotation spot, but I’d grab him in hopes that he does. Elite fastballs with great command, needs to work on wielding the breakers.
84. Parker Messick – He’s a SWATCH who should have the rotation spot over Allen in Cleveland. Once confirmed, he’d be ahead of Cameron, arguably in the 9th Tier.
85. Braxton Ashcraft – The slider is dope, but he has little experience going deep into games and the four-seamer is Empty Velocity. I worry it’s not enough.
Tier 13 – Solid Back-End Starters
86. Mike Burrows – New slider is harder and that’s cool, fastball is still meh.
87. Cody Ponce – Love the security in the rotation, I question how much stuff he has in the tank for six innings of quality.
88. Anthony Kay – He’s sitting 95/96 as a SWATCH for the White Sox?!
89. Brayan Bello – Nothing new and pretty boring for 12-teamers.
90. Ryan Weiss – He’ll be a innings eater for the Astros with whiffability, but not the most overwhelming stuff and a little bit of control issues.
Tier 14 – The Desperate Dart Throws
91. Justin Wrobleski – I think he earns a rotation spot and has a solid overall mix.
92. Landen Roupp – Great curveball should return more whiffs this year with stable rotation spot.
93. Matthew Liberatore – Great job security and generally more polished arsenal.
94. Joey Cantillo – Many love him, I hate his four-seamer and overall command. He’ll have a great outing then a rough one.
95. Spencer Arrighetti – He’s up to 50+ pitches and will likely start in the rotation. Forgot 2025 happened?
96. Jack Leiter – Cutter is cool, sinker has absurd potential, but the command and consistency are maddening.
97. Dustin May – Looks ridiculous, but up two ticks in velocity AND has his cutter working to LHB. It’s kinda wild. Great situation in St. Louis.
98. Slade Cecconi – Can I join the Slade Brigade? 34% cutters after throwing it sub-3% of the time last year. 89 mph with great cut action. It’s awesome.
Tier 15 – What Are We Doing With You
99. Logan Henderson – Dunno if he’s healthy enough to start the season in the rotation. Is he anything more than a good fastball/changeup?
100. Joe Musgrove – Needs a little extra time to get into the rotation and will it be worthwhile?
Tier 15 -19 (15-Teamer ranks)
Instead of ending it right at #100, I elected to go the extra mile for those with PL+ and PL Pro:
I ranked all the way through #135 for this edition of The List, acting as the guys I’m generally interested about and keeping a close eye across the spring and early in the season. You can find the extended list in our Discord server, which is exclusive to our PL+ and PL Pro members.
I’ll be updating this List again next week before the weekend, then one final time on Wednesday before opening night, before the regular cadence every Monday in-season.
Good luck everyone! My sincere apologies that I didn’t have the time to give the thorough write-ups. That said, check out my SP Roundup Spring Training notes (I put out THREE today to catch up!) and my Top 400 from February to get the background on these arms.
| Rank | Pitcher | Team | Badges | Change |
|---|---|---|---|---|
| 1 | Garrett CrochetT1 | BOS | Aces Gonna Ace Strikeout Upside | - |
| 2 | Paul Skenes | PIT | Aces Gonna Ace Strikeout Upside | - |
| 3 | Tarik Skubal | DET | Aces Gonna Ace Strikeout Upside | - |
| 4 | Bryan WooT2 | SEA | Aces Gonna Ace Ratio Focused | - |
| 5 | Yoshinobu Yamamoto | LAD | Aces Gonna Ace Wins Bonus | - |
| 6 | Max Fried | NYY | Aces Gonna Ace Wins Bonus | - |
| 7 | Cristopher Sánchez | PHI | Aces Gonna Ace Wins Bonus | - |
| 8 | Hunter Brown | HOU | Aces Gonna Ace Quality Starts | +2 |
| 9 | Shohei Ohtani | LAD | Aces Gonna Ace Strikeout Upside | +2 |
| 10 | Jacob deGrom | TEX | Aces Gonna Ace Strikeout Upside Injury Risk | +5 |
| 11 | Logan Gilbert | SEA | Aces Gonna Ace Strikeout Upside Injury Risk | -3 |
| 12 | Logan WebbT3 | SF | Holly Quality Starts | - |
| 13 | Freddy Peralta | NYM | Ace Potential Wins Bonus | +1 |
| 14 | Chris Sale | ATL | Aces Gonna Ace Strikeout Upside Injury Risk | +5 |
| 15 | Cole Ragans | KC | Aces Gonna Ace Strikeout Upside Injury Risk | +1 |
| 16 | George Kirby | SEA | Aces Gonna Ace Quality Starts Injury Risk | +1 |
| 17 | Tyler Glasnow | LAD | Aces Gonna Ace Strikeout Upside Injury Risk | +1 |
| 18 | Joe Ryan | MIN | Aces Gonna Ace Strikeout Upside | -5 |
| 19 | Kyle BradishT4 | BAL | Ace Potential Quality Starts | +1 |
| 20 | Cam Schlittler | NYY | Ace Potential Wins Bonus | +5 |
| 21 | Jesús Luzardo | PHI | Cherry Bomb Strikeout Upside | +9 |
| 22 | Eury Pérez | MIA | Ace Potential Strikeout Upside | -1 |
| 23 | Framber Valdez | DET | Ace Potential Quality Starts | +4 |
| 24 | Sandy Alcantara | MIA | Ace Potential Quality Starts | +2 |
| 25 | Nolan McLean | NYM | Holly Wins Bonus | +9 |
| 26 | Ryan PepiotT5 | TB | Ace Potential Strikeout Upside | -3 |
| 27 | Dylan Cease | TOR | Cherry Bomb Strikeout Upside | +2 |
| 28 | Bubba Chandler | PIT | Cherry Bomb Strikeout Upside | +7 |
| 29 | Kevin Gausman | TOR | Holly Quality Starts | +2 |
| 30 | Michael King | SD | Cherry Bomb Strikeout Upside | -2 |
| 31 | Nick Pivetta | SD | Ace Potential Strikeout Upside Injury Risk | -9 |
| 32 | Shota ImanagaT6 | CHC | Ace Potential Ratio Focused | +16 |
| 33 | Drew Rasmussen | TB | Ace Potential Ratio Focused | -9 |
| 34 | Trevor Rogers | BAL | Holly Quality Starts | -2 |
| 35 | Nathan Eovaldi | TEX | Ace Potential Quality Starts | +4 |
| 36 | Andrew Abbott | CIN | Holly Quality Starts | +11 |
| 37 | Tatsuya Imai | HOU | Holly Quality Starts | -4 |
| 38 | Robbie Ray | SF | Holly Quality Starts | - |
| 39 | Jacob MisiorowskiT7 | MIL | Ace Potential Cherry Bomb Strikeout Upside Injury Risk | +1 |
| 40 | Chase Burns | CIN | Ace Potential Cherry Bomb Strikeout Upside Injury Risk | +1 |
| 41 | Cade Horton | CHC | Cherry Bomb Wins Bonus | -4 |
| 42 | Trey Yesavage | TOR | Cherry Bomb Strikeout Upside | -6 |
| 43 | MacKenzie Gore | TEX | Cherry Bomb Strikeout Upside | +7 |
| 44 | Kris Bubic | KC | Cherry Bomb Strikeout Upside Injury Risk | -1 |
| 45 | Emmet Sheehan | LAD | Cherry Bomb Strikeout Upside | +6 |
| 46 | Zack Wheeler | PHI | Ace Potential Quality Starts Injury Risk | +18 |
| 47 | Nick LodoloT8 | CIN | Holly Strikeout Upside | +6 |
| 48 | Edward Cabrera | CHC | Holly Wins Bonus | -2 |
| 49 | Sonny Gray | BOS | Holly Wins Bonus | +5 |
| 50 | Ranger Suarez | BOS | Holly Quality Starts | +5 |
| 51 | Aaron Nola | PHI | Holly Quality Starts | -2 |
| 52 | Matthew Boyd | CHC | Holly Quality Starts | +17 |
| 53 | Zac Gallen | ARI | Holly Quality Starts | +8 |
| 54 | Ryan WeathersT9 | NYY | Frizzle Strikeout Upside Injury Risk | -2 |
| 55 | Gavin Williams | CLE | Holly Strikeout Upside | +2 |
| 56 | Shane Baz | BAL | Holly Strikeout Upside Team Context Effect | +2 |
| 57 | Shane McClanahan | TB | Ace Potential Strikeout Upside Injury Risk | -15 |
| 58 | Kodai Senga | NYM | Toby Quality Starts Injury Risk | +22 |
| 59 | Tanner Bibee | CLE | Toby Hipster Wins Bonus | +19 |
| 60 | Blake SnellT10 | LAD | Ace Potential Strikeout Upside Injury Risk | -16 |
| 61 | Gerrit Cole | NYY | Ace Potential Strikeout Upside Injury Risk | +2 |
| 62 | Carlos Rodón | NYY | Ace Potential Strikeout Upside Injury Risk | +3 |
| 63 | Bryce Miller | SEA | Holly Ratio Focused Injury Risk | -18 |
| 64 | Brandon Woodruff | MIL | Ace Potential Strikeout Upside Injury Risk | -2 |
| 65 | Jared Jones | PIT | Ace Potential Strikeout Upside Injury Risk | +1 |
| 66 | Spencer Schwellenbach | ATL | Ace Potential Strikeout Upside Injury Risk | +1 |
| 67 | Hunter Greene | CIN | Aces Gonna Ace Strikeout Upside Injury Risk | -58 |
| 68 | Corbin Burnes | ARI | +UR | |
| 69 | Justin Steele | CHC | +UR | |
| 70 | Shane Bieber | TOR | Ace Potential Quality Starts Injury Risk | -2 |
| 71 | Noah CameronT11 | KC | Holly Ratio Focused | -15 |
| 72 | Ryne Nelson | ARI | Holly Ratio Focused | -13 |
| 73 | Luis Castillo | SEA | Toby Quality Starts | -3 |
| 74 | Merrill Kelly | ARI | Toby Quality Starts | -3 |
| 75 | Zach Eflin | BAL | Toby Quality Starts | -3 |
| 76 | Will Warren | NYY | Toby Wins Bonus | +24 |
| 77 | Spencer StriderT12 | ATL | Hipster Strikeout Upside | -3 |
| 78 | Kyle Harrison | MIL | +UR | |
| 79 | Jack Flaherty | DET | Hipster Frizzle Strikeout Upside | - |
| 80 | Luis Gil | NYY | +UR | |
| 81 | Andrew Painter | PHI | Hipster Strikeout Upside | -8 |
| 82 | Grayson Rodriguez | LAA | Ace Potential Strikeout Upside Injury Risk | +15 |
| 83 | Mick Abel | MIN | +UR | |
| 84 | Parker Messick | CLE | +UR | |
| 85 | Braxton Ashcraft | PIT | Hipster Strikeout Upside | -8 |
| 86 | Mike BurrowsT13 | HOU | Frizzle Ratio Focused | +9 |
| 87 | Cody Ponce | TOR | Toby Quality Starts | -4 |
| 88 | Anthony Kay | CWS | +UR | |
| 89 | Brayan Bello | BOS | Toby Quality Starts | -5 |
| 90 | Ryan Weiss | HOU | Toby Team Context Effect | - |
| 91 | Justin Wrobleski | LAD | +UR | |
| 92 | Landen Roupp | SF | Toby Strikeout Upside | -6 |
| 93 | Matthew LiberatoreT14 | STL | +UR | |
| 94 | Joey Cantillo | CLE | Toby Quality Starts | -13 |
| 95 | Spencer Arrighetti | HOU | Frizzle Strikeout Upside | +3 |
| 96 | Jack Leiter | TEX | Frizzle Strikeout Upside | -4 |
| 97 | Dustin May | STL | +UR | |
| 98 | Slade Cecconi | CLE | +UR | |
| 99 | Logan HendersonT15 | MIL | Hipster Strikeout Upside | -24 |
| 100 | Joe Musgrove | SD | Holly Wins Bonus Injury Risk | -40 |
Labels Legend
Photo by Leslie Plaza Johnson/Icon Sportswire | Adapted by Justin Paradis (@JustParaDesigns on Twitter/X; @justinparadis.bsky.social on BlueSky)
