Open Source Is Dying

Open source is incredibly important tome. I can say confidently I would not behere today if it wasn't for open-sourcesoftware. It's a huge part of how Istarted my career, got into YouTube, andmade all of this happen. Life withoutopen source is genuinely hard for me toimagine, which is why I'm really scaredright now. We're finally at the pointwhere AI is having a real impact on opensource. And if I'm being frank, it's notvery good. And no, I'm not just talkingabout the people on Reddit who are madbecause GitHub isn't for them and theycan't find the download button. As funnyas these posts are, I'm talking moreabout stuff like this Tail Draw'sannouncement that they're automaticallyclosing PRs from external contributorsgoing forward. Increased requirementsfor reporting bugs in projects likeNode.js where you can't just flag itanymore cuz they're getting so much AI
spam. Or even the Tailwind drama Icovered earlier this year that has beenMassively impacting their ability tofund the team and project. This isn'tgood. If things keep going in thisdirection, not only will it destroy opensource, it might destroy software as awhole. Having these core pieces we canall rely on together as an industry isessential for our success buildingsoftware. And it does not matter howgood AI is. If it takes this from us, weare doomed. And that means we ought tofight a little bit. It's more importantnow than ever that we as experienceddevelopers put our foot down and doeverything we can to prevent this spiralfrom killing open source. There's a lotof different problems in open sourceright now, and one of the biggest isfunding. Thankfully, sponsors havehelped a lot, just like today's sponsor.
Y'all might have seen a new project Irecently launched, T3 Code. It's thebest way to code with AI. But we have acouple problems. Specifically, thisnumber. The number of pull requestsWe're getting is insane. And the amountof CI we'd have to run and wait for,there would be even more insane if weturn it on by default for all users. Wehave a huge potential security risk. Butif we leave it off by default and goclick the button when we want to run anaction, we're going to be stuck therewaiting forever before we even know ifthe code works. Well, that was the casebefore we started using today's sponsor,Blacksmith. The best way to run yourGitHub actions. You make a one-linechange, and yes, it is literally aone-line change, and now your actions aretwice as fast and cost half as much.
Yes, that does add up to a 75% savingsin most cases. Don't believe me? You cango look at the PR yourself. This PR thatI didn't even file, I literally justclicked the onboard button in theBlacksmith dashboard and it filed thisPR for me. I thought it might be morecomplex because this codebase isbuilding Electron across differentThings and whatnot. Nope. Literally justchanged from Abuntu latest to Blacksmithfor CPU. That was it. Everything worked.
Not only did everything work, it workedway faster. Our CI times for this appgot cut in over half from about 2 and1/2 minutes to under a minuteconsistently. What's even better istheir dashboard, though. We had a coupletests that were a little bit flaky. Andthe dashboard has made it so easy tofigure out which tests are failing,which ones are succeeding, and why.
Seriously though, how cool is this?Having actual metrics of what things aresucceeding and failing and being able tosee, like, oh, we had a huge spike infailures at this time yesterday. Souseful to figure out what's going rightand wrong in your work. And I can clickhere and see over time where thefailures and successes were happening.And I could even go through and monitor,look at specific events. It is suddenlyso much easier to figure out what'sGoing wrong when things are failing.
Stop wasting your time and money, andsign up today at soy.link/blacksmith.There's a couple of different angles I wantto take this one down. Specifically,we're going to start with the PR spamand slot problem. But then there's thedumber, angrier users problem, installversus prompt, and biggest probably isthe funding problems. First, we're goingto start with the PR spam problem. I'vebeen pretty aware of this for a while,and I have a lot of sympathy for peoplelike TL Draw that put out this changewhere they're just going to startclosing any external contributionsbecause they're just getting floodedwith them. And I knew how bad this wasand it helped other maintainers dealingwith it in the past. But this problem ismuch closer to my heart now becausewe're going through it ourselves. The T3codebase, which has been public forabout 5 days now, has 150 open PRs. Mindyou, we specified that we're notAccepting contributions, and we still got
100 PRs a day for the first two days. Ieventually added this because I was tired ofsaying the same things over and overagain in all of the PRs. We're notactively accepting PRs. You can stillopen issue PR, but please do so knowingthere's a high chance we close it, deferit forever, and never look at it. Ifthat sounds annoying, it's because itis. The project's still very early. We'retrying to keep scope, quality, anddirection under control. Yeah, there's avery real problem with softwaredevelopment around what I don't reallyknow how to explain other thanunderstanding of the system. When youbuild a project yourself, you understandthe whole system. When you build it withAI, you might understand how the partscome together, but your grasp over thewhole system is inherently going to godown the more and more you defer to theAI to do things. When you startaccepting PRs, similar stuff happens.
When you start accepting a lot of PRsfrom external sources, it gets worse.And then when those are built with AI,it just the slop expandsaggressively. If you understand 100% ofyour codebase and then you merge achange that you don't understand 5% ofand then that happens again and againand again, you very quickly end up in aposition where you don't actuallyunderstand very much of the codebase atall. And it becomes way harder tomaintain control as that happens.
Previously, the only way you'd get inthis position is by accepting too manyPRs. Now, you can do it yourself bycoding with agents. And you can do itexponentially worse by coding withagents and merging PRs from other peoplewith agents. And that's assuming you canget through them all because there's 150PRs. It's kind of intense. Like, this isa lot to deal with. One of the thingswe're trying out is vouch. We'lldefinitely talk about that when we getMore to solutions, but I really wantedto emphasize how bad this is right now.
There is no world in which we can give aproper review to every single PR we aregetting at this rate with just Juliusand me doing all of these reviews.At the same time, though, we have 33contributors already on a project that'sbeen out for 5 days. So, that is reallycool. The fact that people can get intoa codebase like this so quickly is abenefit. And I don't want to discounthow powerful that is because it isreally cool. But that required a lot ofwork on our behalfs. Personally, I spentmost of Saturday and literally all of mySunday just sitting going through PRs,testing things, shipping new releases,just dealing with that. And I'm somebodywho likes doing those types of things.
And it was still draining for me. Ibasically couldn't do anything Mondaybecause I was so tired from the wholeweekend of triaging, managing PRs, goingthrough issues. I had to bring twoPeople just on to help keep track of thePRs and issues. It's insane. It's somuch more work than I would haveimagined. And I already was imagining it
to be a lot of work. Like just admirethis ratio here cuz this is somethingthat never would have happened before. Agreater than 10% fork-to-ori ratio. Forevery 10 users that hit star, more thanone clicked fork. That's insane. That isan absurd number of people who want tomake changes to the project andcontribute and be involved. That isunlike anything I've seen before in opensource. I was expecting React's ratiohere to be worse than ours. It'sactually crazier. So, might have torethink that take a bit. Yeah, it lookslike that 10% ratio is actually prettyconsistent. This is TypeScript at aroundthe same 10%. So, we'll leave that incuz I like when you guys see when I havebad intuition sometimes. That was a badintuition on my part. I can't imaginemany projects get there as quickly as weDid with that brutal ratio. But still,yeah, it is what it is. And if only PRswere the biggest issue we had with thistype of open-source stuff nowadays.
Sadly, there's another bigger problem,and it kind of touches on this classicpost on Reddit, the I don't give an fabout the effing code. I just want todownload the stupid effing application.Why is there code? Just make an .exe andgive it to me. This post getting 10K upvotes and blowing up the way it did.Signifies just how much things havechanged. I'm sure a lot of y'all cansympathize with the things I'm about totalk about here. Most of us are prettytechnical people. We just likecomputers. That's why you're watching avideo about open-source and AI onwhatever day you're choosing to watchthis on. You might even be staying uplate at night just to watch this video.We are not your average person. We'reprobably not even your averagedeveloper. This community is full ofPeople who, to be frank, are kind of[ \_\_ ] nerds. And that's awesome. Ilove that about us. I love the fact that
we have this crew of nerds that come tohang out that should be asleep right now,but are live watching me as I record,and just helping me make awesome contentabout things we all are nerdy about andcare about. I bring this up becausethere's a couple of things that we justexperience in life differently becauseof that. The one I'm imagining rightnow, and I'm sure a lot of y'all arethis one's in chat if you can relate. Iused to get a lot of texts from familymembers, random friends in high schooland just people in my life asking random[ \_\_ ] about computers. Anything from,"Can you help me get my Instagramaccount back?" to, "What MacBook shouldI buy?" to, "Why is my camera foggy?"Every vague tech question anyone in yourlife had, you're the person who gets itbecause you're the person that they knowthat understands tech. And since youHave successfully written a line of code
before, or maybe you like got a job atGoogle once or something. That's enoughthat everybody in your life that'snontechnical is going to start spammingyou with these types of things. Now, I'mgoing to ask an interesting question. Iactually don't know what you guys willanswer here. Do you get more or lesstech questions since AI started to blowup? I am very curious where this landsfor y'all. Now that the qu's been up fora little bit, make sure you pick yourdecision before I say what I'm about tosay. I personally find I'm getting wayless, which has been interesting. I getsignificantly fewer of these types ofquestions than I used to. But what'seven more interesting is the content ofthese questions. It feels like thequestions I've been getting aredifferent now, where I'm suddenly gettinglike random Twitch streamers hitting meup about their vibecoded chat app fornot chatting with AI but having their
Chat shown in their stream or I'm talking to people who I used to workwith at Twitch that were more on theproduct side that are building their ownsolutions to random video problems orI'm talking to people who I know fromlike high school that are building appsfor their friends' restaurants and [\_\_]and none of them knew how to code, andall of them are confused, and the AI getsthem pretty far. But what ends uphappening is I get these weird questionsthat are full of technical terms, ahandful of which are even being usedcorrectly, but the question is likemissing from it somehow. It's hard todescribe, but it's this uncanny thingwhere even if the question is simple,the amount of mental energy it takes forme to parse the question out of it hasgone up a ton. It's weird. It leans. It'ssimilar to [\_\_] bench. I getquestions that feel like [\_\_] bench.
I feel like that goes deeper than itmight seem initially. And I know I'veExperienced this as an open-sourcemaintainer and developer myself. I havehad a lot of people who are reallyconfused that their T3 chat sub doesn'twork in T3 code. I've had people who arereally confused that their chat GPT subdidn't give them API access back in theday. I've had people confused about allsorts of things that exist so far out ofwhere they normally would be that are ina very, very confused state right now,because they're suddenly way deeper thanthey've ever been. And this is a hugeburden for maintainers and communitypeople in particular. The quality of
questions I see in things like thecreate T3 app channels has gone downmeaningfully. The quality of thequestions I get about random things likeTypeScript and TRPC has gone downhilariously. Beyond that, some of thesepeople just don't get it to the point ofhallucinating. I've been thinking aboutthis comment I just got sent on Redditfar too much. I remember Theo sayingSomething along the lines of React isdead, and because of that, there isNext.js, and there's absolutely no needfor React, of course, because it'severything React does but better. I
cannot imagine a world where thisparticular commenter had written asingle line of code before AI. This is ahallucination that can only occur due toa specific type of brain rot that isunique to these non-devs learning tocode right now. And since they areshipping more than they ever could haveimagined, they have a bit of a godcomplex. These people are insanelyentitled, insanely toxic, and reallydemoralizing as a maintainer. Along thesame lines, I want to highlight oneparticular PR that annoyed me. We had astaled to-do MD file in the repo thathad random things I was working on at
some point in it. And someone filed anonsense PR that tried to fix all ofthose things and ended up just breakingother things. They didn't get anyResponse from us because we were beingflooded with PRs. So he randomly tags meand two other people whose PRs mergedrecently. I was so annoyed about thisbecause, remember, I was like underslept,deep in this Sunday session goingthrough PRs and then got a notificationfrom somebody spamming me with a PR,where half of the things it fixes arealready fixed.
So, how do you imaginethis person responded here with thisuseful feedback that his way ofcontributing was bad? Yeah, I was alittle harsh saying that tagging a bunchof us doesn't make me more likely tomerge. It just makes me want to blockyou from the repo. Terrible etiquette.Bye. But this is a lesson you need tolearn as an open source maintainer. Ihad to make a bunch of mistakes likethis myself in order to get to the pointwhere I know proper open sourceetiquette. I was told by many people Iwas way too harsh here. And then, a big fanmy friend did not mean that. It wasEarly morning in Brazil. I got a bitenthusiastic. Let's discuss etiquette.
And the one you demonstrated was one ofthe poorest. Really crippled the image Ihad in relation to your channel andcontent. I have been contributing toprojects since before you were born.Such an attitude, including some YouTubecodes of yours that I've never receivedbefore. Feel free to block me. Mature.
This is somebody who never wrote codebefore AI. Straight up. And I promiseyou, you were not contributing to code31 years ago, [ \_\_ ]. And this isthe hot take. I need you guys to ignoremy message in between because thereality is much simpler here. The typeof person who does this is the exactsame type of person who does this. Theseare the same people. And then makinganother account because I did block himnamed Theo is a child so he could comemake fun of me again. This is nonsense.And this is the type of [ \_\_ ] open sourcemaintainers have always had to deal with.
A little bit, but we're suddenly havingto deal with it a lot. And this isn'tabout PR spam. This is about thedegradation of the energy of the peoplewho are doing open source maintenanceout of the kindness of their hearts. Youknow, the classic XKCD, the dependencyone, this random package some person inNebraska has been thanklesslymaintaining since 2003. Their job gotharder. And we all need to be terrifiedof that fact. This person, all the way inthe bottom here, holding everything upabove them. They already have anincredibly hard job. They're already onthe line of giving up. They suddenlyhave more reason to give up.
Significantly more reason. That sucks.That has the potential to cause reallong-term damage in this industry. Thisis how things like the XZ back doorhappen. If you're not familiar with thestory, I'll TLDDR quick. XC is a reallyimportant compression library used by aIn the Linux ecosystem, the guymaintaining XC has been slowly burningout since he created it, and then startedgetting spammed with lots of really meanemails saying, "How dare you not mergethis? How dare you keep maintaining thiswhen you're not doing anything?" Butthere was this one maintainer, Got Tan,who showed up and was actually reallyhelpful. And eventually, Gotan offeredto take over the project. Since then, webelieve that those accounts that werespamming the original maintainer werenot just bad faith open-sourcecontributors. These were fake accountstrying to social engineer thismaintainer into giving up the project.
Doing this to people has gotten easier,not harder. This is the exact type ofattack we need to be really, reallyscared of. It doing it got way easier,now that you can make it look like justwell-meaning people spamming AI PRs. Icould spend a night building a scriptthat would immediately flood and ruin.
The lives of every major open-sourcemaintainer. It would be relatively easyto do, especially if you have your ownproject. If I just like made 15 sockpuppet accounts, merged all of their PRsinto T3 code, started spamming otherprojects with PRs, and just set up someagent orchestration layer to just spameverything, and then start emailing themaintainers saying, "Hey, how dare younot merge this? You suck at your job."Until eventually they quit. It would beso easy for the right malicious personwith the right background to straight updestroy half the software we rely ontoday. It's terrifying. It's never beeneasier to ruin open source for everyone
else. And the biggest problem by far isthe logo in the top left. GitHub isdoing jack [ \_\_ ] [ \_\_ ] to solve thisproblem. We'll get to these two in asecond cuz I want to [ \_\_ ] more aboutGitHub for these two. GitHub will notsave us. Funny enough, I've talked aboutthis before and not even in regard toAI. I did a video about GitHub's spamproblem because GitHub is a somewhattrusted source of information that hasbeen used by so many different tools andso many different things like searchengine indexing. GitHub does well onGoogle. A bunch of spammers realizedthis and started spamming real projects
like Shad Cnui with a bunch of pornlinks. This is not a fake screenshot, bythe way. This is an actual screenshot ofthe actual Shadian UIPR list. And ittook me doing a video and flaming GitHubon Twitter publicly and pulling a bunchof strings with my friends at GitHub forthem to even start introducing spamdetection and bulk deletion and banningtools. Before this, they didn't evenhave a way to ban a contributor fromyour repo. It's insane. They are just sobehind on even the most basic thingsthat you would need to take care of thecommunities that we are maintaining onthis platform. And I'm not speaking outof my ass here. I know a lot of people
Like to say, "Oh, Theo thinks he knowsso much because he built a web app once."I built the best moderation platform on the internet withan incredible team. I shouldn't even sayI built it because they did. I just got tohelp shepherd it to the point of successand I'm so lucky to have been in thatteam when I was. It changed my entirecareer. It is the Mod View dashboard onTwitch. This dashboard was built to beentirely customizable, so that you canshape your moderation platform how youwant as a moderator or with your ownteam of moderators. We have built somany things, even here you see in chat.
So dumb, these little six-year-old spamsuit PRs. It looks like somebody deletedthat, and it disappeared because we havereal moderation tools here, where thingsget caught by default when they'redetected to possibly be spam, and one ofus maintainers has to choose whether ornot we want to let this in. I think thisis fine. I would not abandon it. ButLike, look at that. We have an automod Qthat shows when messages get filteredand why they were filtered and whataction someone took on them. Like, Twitchis a streaming platform for gamers tocomplain about game studios, effectively.
But we built way better moderation toolsbecause we knew how important safety wasto make a good platform. Why the [ \_\_ ]was my team of four able to build bettermoderation tools for Twitch in seven monthsthan GitHub with thousands of engineers,hundreds of whom are dedicated tosafety and platform maintenance stuff,have been able to build in ten years.It's insane. And, to their credit, like,YouTube's tools suck for this, reallyhard, too. Like, really, really bad.
YouTube does have a good shadow banningtype of thing where you can hide a person.They can still see their own comments, sothey don't know they've been banned,which I do like. There's no real way todo that on Twitch because we show Twitchchat when we're streaming. So, it'sHarder to hide somebody like that. Butyeah, for the most part, YouTube'smoderation's garbage in comparison. AndGod, GitHub's is non-existent. And now weare stuck as a community trying to buildour own solutions. I was going to waittill the end to cover solutions, but Ido want to try and discuss them forthese pieces here. I've been seeing ahandful of projects trying to figurethis out, and some of the solutions I'veseen are actually quite cool. One of thefirst I saw was from Ree who used towork at Verscell. He's now at Open Code.
He also built Answer Overflow, which is atool that turns your Discord Q&Achannels into search indexable websites.He has a lot of open source stuff thathas numerous PRs going into it andwanted to make it easier to identifywhose PRs are worth looking at based ontheir history of contributions. So hemade PR stats, which will show whatpercent of your PRs end up gettingmerged, what PRs you filed, and where theyHave been filed, what types of work youhave done. This is awesome. I really,really like this. That all said, thistype of karma is hard to build andmaintain, and it's weirdly easy to fakethrough strategies like what I mentionedbefore. It's not everything, and it wouldalso block out new developers andcontributors in a way that I don'tnecessarily love. It is a useful stat.
We should absolutely merge things likethis and bring them into our tools. Butthere's more we can do. And I reallylike a hands-on approach, which is whyI'm really hyped with what Mitchell iscreating. If you're not familiar withhim, he's the guy who made Ghosty aswell as Terraform. Mitchell knows his[ \_\_ ] He built Vouch because he wastired of the nonsense PRs he was gettingin things like Ghosty. Funny enough,Vouch has two PRs open and eight issues,which is insane, especially consideringhow useful and used this project is. So,what is Vouch? Community trustManagement system. People must bevouched for before interacting withcertain parts of a project. People canexplicitly be denounced to block themfrom interacting with the project goingforward. You set up vouch as a workflow.
It will automatically run in this casewhenever PRs are opened, reopened,synced, ready for review, converted todraft, all the different things thatchange the status of a PR. And there isthis vouch TD file that has all of theseGitHub users that we have personallyvouched and decided that their PRs areworth at least looking at. And now whenI go to the pull request tab, you seecertain PRs that are unvouched andcertain ones that are vouched astrusted. And more importantly, when I'mbusy and can't look through everything,which is most days, I can switch tovouch trusted and filter out overtwo-thirds of the open PRs. So, we wentfrom 150 to 43. And now this is likeactually viable. To be fair, half ofThis has been banned at fixing all sortsof random one-off bugs. God bless him.
This is an example of what I wouldconsider a golden PR. These are the onesI love. Handle draft PR conversion in PRvouch summary. Add missing converted todraft pull request target trigger.Ensure trust labels are refreshed. Whenan open PR is moved back into draftstate and keep the working behaviorunchanged. It's a very simple PR. Itclearly describes what it does. So whena draft PR is bumped out of draft, weneed to recheck the vouch state. This isa simple one-line change where you addedthis one additional field for when it'sconverted to a draft. Awesome. Greatchange. And I love these types of PRs.
Here's another really good one. This isone where there was a missing key forthe local storage cleanup list. Weforgot to include render state v7 whichis just a thing we do to persist wherethings are in the UI. We forgot to cleanup old data. You notice that and whenFile a PR adding this one additionalline for the things that need to becleaned up. I love these, these one tofive line PRs that clearly state whatthey're doing and why they did them arethe best. Here was another one that wasreally good. I actually initially didn'tknow how important this was until Ilooked at the issue and read a bit more.
But the PR was super clear. We wereusing the app name as the directorywhere files were saved, because that's whathappens by default in Electron. But thename had like parentheses and spaces andthings in it that aren't great for a lotof platforms. And he changed it to justbe T3 code or T3 code dev in dev mode.
Put a great comment describing whatwe're doing and why, as well as code topull out the old data and move it over,so we can handle that. Just good PR,reasonable changes that were actuallyneeded. Since it was super simple,linked to the issue, described what wasgoing on. This is a very easy PR toreview and approve.
Click merge on. Another great one fromMaria. Aligning package versions beforebuilding artifacts. This makes sure thatall of the package versions foreverything are the same before we go andbuild the actual release, which is athing we definitely should have beendoing before. Wait, why is Mariaunvouched? What went wrong there? Theonly thing I've ever used the GitHub UIfor editing things for is creatinglicense MDs and like changing thelicense for a project, but moreimportantly, we're updating the vouchedMD. And now when she files PRs, theywill be marked as vouched. This is agreat system. This is going to make thisproject significantly more maintainablethan it otherwise would be.
And once again, thank you to Mitchell forcontinuing to put out incredibly usefulthings like this. Mitchell Ashimoto is alegend and deserves all of the flowershe has received. I will hit the followbecause I probably should have forever ago.
Great project. I've also seen someeffort in projects like anti-slop, whichis set up to make it easy to scan a PRand identify if it is likely to just beAI slop and close it. This is reallycool, but my concern is that the costfor something like this could quicklyescalate because you almost certainlyhave to use AI to actually scan thesePRs. It has a lot of config,enough config that I'm almost certainthat this project was vibe coded, butyeah, you get the idea. There are a lotof solutions being made to try and fixthese problems. Some of them are goingto make it harder for new maintainers tobreak out, which sucks because we mightjust have our current maintainers untilthey die, and then all of this slowly
evaporates. So I want to make surewhatever solutions we end up going withlong term leave room for developers whoare new to open source to still be ableto like break in. And thankfully,finding good PRs and good contributors still isRelatively easy. It's they stand out inthat list of PRs. I have been surprisedhow quickly I can identify which peopleare good and which ones aren't. Igenerally believe that good maintainersare great at making themselves knowneven if they're not doing itintentionally. They just goodmaintainers stand out much like bad onesdo. Bad ones do weird stuff like tagginga bunch of people when they're not happywith how quickly their PRs responded to.
Good maintainers make it really easy tounderstand what changes they made andwhy. This is a thing we all have to doas maintainers of open source softwareand it sucks. And it just got wayharder. It almost feels likeHacktoberfest but forever, and thatterrifies me. I put so much effort intokilling Hacktoberfest. I think thisvideo of mine, don't contribute to opensource, is one of the best videos I everfilmed. Not sure who that blonde guywith the mustache is though. SeriouslyThough, like that video, I have beentold by so many maintainers how thankfulthey are for this video more than almostanything I've done as a developer andjournalist, YouTuber, whatever you wantto call me. This video has been the onethe most people I care about have talkedto me about and thanked me for.
This is a thing I've cared about for a long time,and I am so thankful people are aware ofit now, but also terrified that theawareness isn't counteracting the rateat which the problem is growing.
We need to make more people aware of theseproblems so they're more sympathetic toit. We need to put more things inbetween the problem and the maintainers,so they don't get burnt out. And we needGitHub to just wake the [ \_\_ ] up and domore about this. GitHub needs to buildin more of these tools. They need tomake this part of the platform and notcontinuing to pile on more burden ontoopen source maintainers. That is thebiggest problem here, and I want to makeSure, that is clearly emphasized throughout. The things that suck foropen source maintainers keep gettingworse. The fact they have to set up allthese tools and deal with all this slopis making the hard parts harder. Whatabout the good parts? What about thepopularity of your package beinginstalled a whole bunch? What about thejob opportunities you can get from that?
What about the contracts you can getwith businesses helping them maintaintheir interactions and theirintegrations with your solution? Whatabout the sponsors you can get fundingfor your open source projects? To be veryclear, none of those things were evergood enough. Open source maintainers didnot get paid enough. They did not getenough recognition. They did not getenough credit, and they certainly did notget enough sponsorship. Those problemshave gotten way worse. One of the thingsI saw a lot of open source maintainersdo was sell courses. They would sellWorkshops and courses to businesses thatwanted to use their solutions as a wayto make money. And I know a couplepeople that made a meaningful amount of
money, like comparable to an edge salary,from doing stuff like that on the sidefor 10 to 20 hours a week alongside themaintenance of their projects. That'snot the case anymore. I also know peoplelike Tailwind. What Tailwind would do tomake money is they would sell things youwanted to speed up your developmentcycles. You'll see in the corner here,there's this little plus button, whichis a subscription you can pay toTailwind to get a bunch of reusableblocks, templates for pages, and theircomplete UI kit. There was some name forthis before it was Tailwind Plus, and webought it forever ago back in like 2021,and they still give us updates to thisday with a one-time lifetime purchase.
Tailwind's been awesome and supergenerous with the hundred somethingdollars we spent for that forever ago.
For our business, but we've also builtso much on top of Tailwind and only paidthem $150 or so dollars over 5 years ofbuilding everything we build on top ofit. And if I'm being real, if I didn'thave this now, the likelihood I pay forit is near zero because I'm alreadypaying 200 a month for Quad, which I cantell it to go build the thing instead. Icould literally take a screenshot of anyof the UI I see in here that I like,hand it to an AI, and say, "Build it."And not only will it build it, it'll[ \_\_ ] use Tailwind when it does it.
That's not great. Do I think they shouldbe forced to make the AI dumber to makesure that these open source devs canstill be paid? No. I don't think theywere paid enough in the first place. Andnow we're in this weird world wherecompanies might not even use the thingbecause if they see it and like it, theymight just rebuild it themselves. EvenI'm guilty of this. There were projectsthat I thought were pretty cool likeConductor in Codeex Monitor. Conductorwasn't open source, so I couldn't reallydo anything to it when it didn't workthe way I needed. Codex Monitor was opensource, but it was clear the dev wasbusy with other things and also theproject wasn't quite how I wanted tobuild it. But it was an incrediblereference, one that I looked at andthought about deeply when I built T3Code. T3 Code would not exist if it
wasn't for those other projectsinspiring us. On one hand, we wereinspired to do things like contribute,but on the other, we were inspired to gobuild our own thing so we could own itand control it ourselves. And I've seena ton of this since. For every oneperson I've seen fork T3 code to addfeatures and things they want, I've seenanother that was inspired to go buildtheir own alternative. That hurts thetop of funnel for these open sourcemaintainers. The likelihood somebodyeven engages enough to care about theMaintainer has gone down. And if they even do get that far, the likelihood they spend money has also gone down. Sothe upsides of open source, which are the proliferation of your software, theproliferation of your ideas, and thepotential to get funded for those things,that has gone down a ton. But the burdenof open source maintenance has gone up aton, and that ratio shift terrifies me.
And this is where we need to dosomething. The open-source pledge is agreat start, but it is just the start.The open source pledge is a thing thatZeie pushed for at Sentry that has nowbecome a good amount bigger a thing. Theopen source pledge is a simple agreementcompanies can make, where they agree topay a minimum of $2,000 per year perdeveloper from your company to open sourcemaintainers. So, if you have fiveengineers, you are now agreeing to pay10,000 dollars to open source projects everysingle year. And you're expected toself-report this every year about whereYou paid, what you paid, and what you'redoing with all of this. They already
have an incredible group of companiesthat are doing the pledge like Posit,Sentry, Sanity, channel sponsor Code,Rabbit, Hero Devs, Antithesis, Zero Dah,channel sponsor Railway, previouschannel sponsor Bolt, Serai, Astral,Prefect, Void Zero, Pyantic, AG Grid, apersonal favorite, Convex, who's at$7,692per dev every year. That's an insanenumber that a tiny company like Convexthat just did their Series B and is sosmall is contributing way more money toopen source than almost any big companyis. That shows how [ \_\_ ] things are.
Oo, Frontend Master's also killing ithere with $10,000 per dev at thecompany. So, if you work at a companythat has money, go bug your boss andtheir boss to do this. And if you aretheir boss, go do this. If you have themoney to spare, paying for the softwarethat we use every day to continue toExistence is essential. It is a veryimportant thing. And as we can see fromthis wonderful load of the GitHub repofor T3 Code, there is no world in whichGitHub is going to fix anything. Theycan't even render CSS properly. I hitthis bug once a day now. It justhappens. As I was saying before hitting
that bad load, there's two moreimportant things that we all can do, andI hope I see more developers doing thisstuff. The first one is helping with theburden. There are so many little thingsyou can do other than opening PRs. And Ireally want you to try and embody theproblem before you do anything in a repolike this. The biggest problem we haveis the sheer volume of PRs and theeffort it takes to validate if any ofthem are even worth looking at. There'stons of little things that make thissuck. Like the fact that I can't see howmany lines were changed in this view.
That makes it way harder to know if a PRis egregious or not. Because like ifThere's a PR that title is a very simplething and it's like a thousand lines, Ijust want to get rid of it. And don'teven get me started on the issues tab.
Issues tab is even more chaotic work tomanage. So how can we help maintainerswith these things? One of the bestthings you can do is helping clarifywhat matters by being in the weeds ofthings. We have a couple maintainersthat have already been very helpful forthis. Huge shout out to Maria and BinBandit. They've been essential as thisrepo gets more and more popular. So,here's a bug somebody reported wherethey can't close the diff side panel.
Someone asked, "You got the latestversion?" Oh, I see this bug. We'll pusha PR soon. CC Julius so that he knowsthat he's working on this so they don'tend up clobbering each other working onthe same thing at the same time. Filethe PR, stated the root cause, statedthe fix. Correct is the same as thisother PR that somebody else filed thatWas the same thing. The difference isthat 930 introduces a new search paramshelper that sets all three keys toundefined while this PR just inlinesthis one particular thing. This is sogood. This is a golden example of doingthis, right? He took this issue,
identified other things that aretouching the same stuff. The only thinghe could have theoretically done better,and I don't even know if this is thecase or not, is if there were otherrelated issues, if he had linked thosehere, and I would bet that in his PR, ifthere are other related issues, he'smentioned them. Okay, just as 935, soit's probably just that one. This is thetype of person where if I was trying tohire right now, if I had any budget todo such, they would be very high up onmy list of people I would want to hirebecause this just makes my life easier.
If you see an issue that's really stalethat has already been fixed, commentsaying, "Hey, are you sure you're on theLatest version? I think this PR fixedit. It doesn't happen for me anymore onthe latest." These types of things areso goddamn helpful. And once you've donethat a bit on the issue side, you canstart doing the same on the PR side. Andhere, Ben Bandit is giving UX feedbackto get this PR more polished while alsoasking the team what we think about thisbefore going too far with it. That'sgreat. He's reviewed PRs of mine and
others. He has given useful feedback inthe comments. He's answered questionswhen I have them. He's preemptedquestions and answered them in the PRdescription. So good. And you quickly, asa maintainer, start to associate thesenames with these good vibes, which meansI now know if I want to just get some[ \_\_ ] merged and I see Bin Bandit's namepop up or NMG's name pop up or Egg FriedRice pop up or Maria or any of thesepeople, the mapping in my brain is
quickly been completed such that I knowI can trust these people because theyWrite things very well. So good. Butthere is one last thing that I think isreally important. And if you takeanything from this video, I really hopeit's this. We need to be nice to opensource maintainers. These people aredoing one of the most thankless jobs inthe industry. We can make so much moneywriting code for companies, and they areinstead choosing to do that work thatcould make them hundreds of thousands ofdollars a year for free. These peopleare building the foundations that webuild our software on top of. Theydeserve to be treated well for that. AndI'm not saying that by simply making anopen-source project, you are now adeity that people need to bow to. I'msaying that we as users of these piecesof software should put a little workinto being thankful to the developerswho build the things we build on top of.
I don't want this to just turn intostory time, so I'll do my best to keepStart of the video that I'm only herebecause of open source, that was not anexaggeration in the slightest. The onlyreason anybody knows who I am is becauseI DM'd Fred Shot, the creator of Astro,and Ryan Carneato, the creator of Solid,and I still had like 500 or so followerson Twitter because I really liked theirwriting, and I wanted to give somefeedback on the like pros and thestructure of their blog posts cuz I'm anerd about formatting of writing andtext. Believe it or not, the guy whodoes YouTube videos for a living likesthe flow of words. Who would have
thought? Both of them were so cool aboutthis. When I hit them up saying, "Hey,the work you've done is awesome. Ireally liked this post. Would you bedown for some feedback on the way it wasworded so it's easier for more people todigest? That worked way better than Iever would have imagined. I have a 100%hit rate for me hitting someone upsaying, "Hey, can I give some feedbackOn the way you wrote this? And themsaying, "Fuck yes, absolutely." I'm notsaying everybody should go give prosfeedback to every article on theinternet. I'm saying that I appreciatedtheir work so much so I was reading
their blog posts and I hit them up aboutthat, this thing that I cared about, and Ihad a feeling they did too and offeredsomething that made the thing they caredabout better. The offer is not the partthat matters there, though. I really wantto emphasize the prior part, which isthanking the people who do cool [ \_\_ ] inways that are not interfering with theirday-to-day. It's silly but, like, a dearway of putting this. I get a lot ofmessages from my own fans thanking mefor helping them get their first goodjob, or help them get a promotion, or helpthem establish their project, orwhatever. I didn't do any of that. I amjust a tool in the toolbox that those
people chose to use to build their ownsuccess with. But those messages stillFeel awesome. Those messages make mygoddamn day. Seeing somebody hit me upabout how they were a line cook for adecade, learning code on the side,didn't feel like they could really doit, but watching my videos made themfeel more like this crazy tech world wewere in was a place they could fit, andnow they have awesome tech jobs. Myvideo isn't what did it. My channelisn't what did it. They did it. But thatmessage still makes me emotional. Itstill makes everything feel worth it.
Those are the messages I think aboutwhen I come upstairs and consider justcanceling stream and going down to playa video game or check my email orsomething. Those people are the onesthat make me so excited to keep doingthis. Be one of those people, but notfor me, for them. Thank thesemaintainers and do it in a way that isgenuine. If it isn't genuine, don't doit. I'm not saying write some sappymessage or ask chat GPT to glaze someRandom library you like. I'm encouragingyou to think about the tools you use.
Look at the packages they use. Look atwhere they came from, who made them,why they make them. What does theirGitHub repo look like? What are theycontributing? What are they merging, andnot merging? What do they care about?There's a very good chance you careabout the same things if you even tookthe time to notice they exist. Thereason people maintain open-sourcesoftware is because they care so muchthat you could argue it's too much. Andwhen their job gets harder and harder,because of all of this AI [ \_\_ ] itgets more likely they give up. Thereason they're here is that excitement.
And if you can remind them of that, ifyou can be the excited thing that madethem do this in the first place, you canmake it feel so much more worth it. Youshould pay them, too. But this is evenmore important than the financialcompensation. 'Cause if they were just here,For money, they would get normal techjobs. But they're not. There's a lot ofthings about me that make me a bad dev,a bad influencer, bad influence in
general. But one of the things that I'velearned to love the most about me is theway I reach out to the things that Ifind cool. When I see something that'sinteresting, I think less about thething and I think more about the peopleand why they made the thing. And I'lloften reach out. Even when I was anobody, I would. And the craziest thingis that the likelihood I get a responsehas not gone up meaningfully since I gotpopular. When I had a 1,000 followers andwhen I had 300,000 followers, thelikelihood that I got a reply stayedroughly the same. Okay? It's actuallygone down a lot, a lot, since theyabsolutely [ \_\_ ] the Twitter DMs withthe update with the encrypted stuff. Butbefore then, the rate stayed nearly flatas I continued to get more relevant inthe space. A simple two-sentence, "Hey,I really appreciated this PR youshipped. I've been a fan of what you'vebeen building for years. This librarymakes my life much better. Thank you.
Those messages might seem small, butthey can actually change your life. AndI would not be here today if it wasn'tfor the things like that that I did whenI left Twitch. Hell, even when I was atTwitch, I did stuff like that. And itcan entirely change the trajectory ofwhere you're going in this crazy field.
But more importantly, it makes thesepeople less likely to give up. AndI don't want to live in a software devindustry where the best maintainers whobuilt the foundations we build on top ofhave all burnt out and given up. I wantto make sure we all work together toprevent that. Be nice to the people whobuild the software you use. Pay them ifyou can and thank them either way. Ihope this helps you guys be better opensource users so that we can keep opensource working as well as it does now., Open Source Is Dying, YouTube, 01kkpd7qqex9w8xgk54hjvy45b.