648: Speculating on Funding Open Source
Hard hitting investigative journalism episode warning: Chris and Dave speculate on the ways a project like void(0) could make money.
Time Jump Links
Links
- Biome, toolchain of the web
- Vite | Next Generation Frontend Tooling
- Rollup
- Rolldown
- Jest
- Vitest | Next Generation testing framework
- Playwright
- Cypress
- VoidZero | Next Generation Tooling for the Web
- The JavaScript Oxidation Compiler
- Astro
- Deno, the next-generation JavaScript runtime
- Bun — A fast all-in-one JavaScript runtime
- The World's Most Trusted Game Development Engine - Unreal Engine
- Laravel - The PHP Framework For Web Artisans
- Deploy your Laravel PHP application painlessly | Laravel Forge
- 37signals
- Basecamp: Project management software, online collaboration
- Simpler Static Site Generator
- Cloud Application Platform
- Igalia Chats
Transcript
[Banjo music]
MANTRA: Just Build Websites!
Dave Rupert: Hey there, Shop-o-maniacs. You're listening to another episode of the ShopTalk Show. I'm Dave--in the shed--Rupert and with me is Chris--in the office--Coyier. Hey, Chris. How are you doing today?
Chris Coyier: Not bad, my friend Dave. Thanks for having me on the show. You know, another week.
Dave: Another week and another year. We're doing it. Powering through. We're almost to 650. Holy cow!
Chris: Yeah.
Dave: That's a big one.
Chris: A lot of big stuff going on for us (personally and professionally) - whatever. But we have a plan this week to talk about... Just do a little idle speculation because I think a podcast is the perfect place for this sort of thing.
Dave: I mean I know everyone comes here for hardcore cutting journalism.
Chris: Just the facts, yeah.
Dave: Yeah, that's just... Everyone knows that. You can know that walking down the street. But maybe we'll do some speculation on this episode.
Chris: Yeah. We always reach out to every party, before we say a word, to get their comments.
Dave: We get their comments, and then we definitely read the docs.
Chris: [Laughter]
Dave: And we definitely--
Chris: Yeah.
Dave: You know?
Chris: Uh-huh.
Dave: Yeah, do research. That's what we do.
Chris: No AI involved.
Dave: So--
Chris: So, the thing that we're going to speculate about this time is I think the world of tooling around front-end development and the companies and players involved I just think is so fascinating. I forgot how I started thinking about it. But it's partially because there are a number of... There are rising stars. Have you seen that survey data that comes out in the State of JS - and stuff like that?
Dave: Oh, yeah, yeah, yeah.
Chris: It tends to be happening this time of year where you start seeing developer survey results.
Dave: Mm-hmm. Mm-hmm.
Chris: And we saw a couple of those. Vite is always one of the major winners. The last couple of years at least. Since it rolled out.
Vite arrived to fanfare and has only gotten bigger. Vite, of course, being V-i-t-e, by Evan You (previously famous for Vue). Although, I read a funny Reddit comment the other day. It was like, "Everybody knows Evan from Vite, but did you know he was the Vue guy, too, before?"
Dave: [Laughter]
Chris: I was like, "I very much associate him with Vue, personally."
Dave: Whoa. Wow.
Chris: I don't know if that makes me old-school. But apparently, he's the Vite guy now.
Dave: Yeah. There's a new cohort afoot. [Laughter]
Chris: Yeah.
Dave: Okay. Cool.
Chris: It'd be hard to measure those two things, but do you think Vite is a bigger deal in the world than Vue is?
Dave: I would say, "Potentially."
Chris: Yeah, I think I'm there, too. I think, yeah, it probably is.
Dave: There's a ubiquity to Vite, like I'm using Vite on two projects, three projects, and I write Web components. We're not using Vue. You know?
Chris: Right.
Dave: Even my Vue project, I'm not sure [laughter]. It was on Nuxt, too. I think it used Webpack. You know what I mean?
Chris: Right.
Dave: But I think Vite has ubiquitous appeal. And for people who aren't aware, Vite is almost... You could probably call it sort of like--
Chris: What are we calling it? A bundler or no?
Dave: Yeah, it's a... Yeah. Yeah, like a local dev server--
Chris: What do they call it? They call it a build tool.
Dave: A build tool.
Chris: Yeah, there's a server in there. You want the server? You can have the server, which is nice and a big part of it because one of the things that it does is this hot reloading thing that, to me, is not optional these days when you're working on a major project. You need to see what's happening when you're writing code. And it does it with this efficient, like, it doesn't build as much as it needs to because the lead-up to Vite was the ESM movement. And it leans into that and says, "I don't need to bundle absolutely everything before I show you what changes are happening to your code," and it's smart about that and can do that. Meaning that how fast it takes to start up that server and serve those changes is really, really, really, really fast.
I only said that with a little bit of, like, "Yeah, there's a server," that kind of tone because I use Vite on stuff sometimes where I don't even use the server.
Dave: Yeah. Yeah, it's also like a build tool. I think it's claim to fame was it could kind of parse TypeScript on the fly. You didn't have to run the compiler and then run it. You could just... It would read, auto-parse TypeScript on the fly, which is kind of cool.
Chris: Which is just esbuild under the hood, but whatever.
Dave: Yeah, esbuild under the hood, which is Rust, which is Fast, which probably outpaced Webpack--
Chris: Yep.
Dave: --in sort of not just speed but also kind of ease of use (in my general feeling).
Chris: It did, and it never said zero config, but I think people are really pretty comfortable with that vite.config JS file. It's really pretty good.
Dave: Yeah. Days I'm digging into my Vite config are very few. I've had a few issues and it's been a little weird to grok.
Chris: Sure.
Dave: But it's not impossible.
Chris: Yeah. Actually, I didn't mention this to you but that was the other thing that I think was a bookmark that I finally sat down and read was the front-end team at Reddit. There's a guy who posted a post on Reddit.
Dave: Mm-hmm.
Chris: The reading experience kind of sucked for the long-form-ness of it. But they had about two-minute build times, and he didn't dwell on what they were using before but if you read enough into it, it looks like it was basically Rollup.
Dave: Mm-hmm. Mm-hmm.
Chris: Just a homegrown rollup thing. And about two-minute build times, which affected their CI. But it affected everything. Even their incremental builds were about a minute. Too long.
Dave: Mm-hmm.
Chris: But they had 1,000-ish packages in a mono repo, so pretty big. And they explored, and they talked about the whole exploration process and such of switching. They were like, "Well, let's try out Vite first," and they did it really levelheaded with a micro exploration and then a bigger one - yadda-yadda. Using Vite basically got it down under one second for the whole thing.
Dave: Wow!
Chris: Which is tremendous, right? To some degree, it's like, "Clap-clap-clap, go Vite! What an amazing tool," which it is. I'm sure it's huge for them in some ways. But he documented the pain points, too, and there were several.
A big one, though--and he was careful to point this out. It's not just me pointing this out--is one of the things is the esbuild TypeScript thing that you just described.
Dave: Mm-hmm.
Chris: They just use that for their TypeScript now. Meaning -- crucially, people -- you lose type checking.
Dave: Oh...
Chris: It doesn't check your types at all. It just strips them. It doesn't care. So, if you want to have, for example, your CI process (like your GitHub actions or whatever you use for that) say, "I don't want this PR to go in with type problems," too bad. You don't have any... There's no guard to do that with. And if you put that back and say, "Well, we'll run our TypeScript," TSE again or whatever, you're back to two minutes.
Dave: Yeah. Yeah.
Chris: So, they were like, "Well, we just need to explore that again. We fixed the major pain point and we're okay with the no type checking." To me that feels kind of cool. It kind of says, "We're going to use TypeScript as a company, but we're using it for the red squiggles. We want our developers to experience red squiggles and try to fix them, but the CI is not going to stop you."
Dave: Yeah. Well, I would even say I need it when I do Vite dev - or whatever - NPM run dev. I don't need the strict type-checking there. I need the red squiggles in my code environment so I don't do a red squiggle - commit a sin.
Chris: Yeah.
Dave: But where I need it is when I bundle or when I'm deploying a release or something like that. That's where I hope the - whatever - build process is configured to run a full type-check suite. Does it always happen? Well, no. Sometimes that breaks and people forget to fix it. But in theory, that should also run when you're doing a big build.
Chris: Yeah.
Dave: I think that's how we have it set up is when you just run dev, you're just running the dev environment. But then you do a build to get the official files built.
Chris: Mm-hmm.
Dave: The dist files.
Chris: Yep, yep, yep. Yeah, that was all going through my head recently, too, that there are so many. A lot of projects need a dist. They have that source dist thing going on almost exclusively for TypeScript. [Laughter]
Dave: Yeah.
Chris: Like, "Here are my .ts and I need a dist with .js because I don't know what's going to consume these thousand packages." I don't know. I don't care. I don't want who is consuming them to have to worry about TypeScript or .jsx or whatever. They should worry about the primitives that are available. They can be ESM, but they shouldn't require further processing. Maybe they could require bundling but not processing.
Dave: Yeah.
Chris: That's tricky. But there are so many things that want you to not care. Think of Cloudflare functions or whatever they call... What do they call their functions again? Cloudflare thingies.
Dave: Wranglers. What are they? No. [Laughter]
Chris: Yeah.
Dave: Workers?
Chris: That's the local dev tool.
Dave: Oh.
Chris: A worker, yeah.
Dave: Yeah.
Chris: They don't give a crap if you submit a TS. Neither does Deno or Bun.
Dave: Yeah.
Chris: They're just like, "You just have TS. You don't need to process it down to JS for us. We'll just take your TS. We don't care."
Dave: Node 22 does it as well.
Chris: Yeah. They hopped onboard.
Dave: They just were like, "We do TypeScript," but I think it's that sort of vibe where it's like they don't--
Chris: It's type stripping. They just strip it.
Dave: They just strip it.
Chris: Yep.
Dave: They don't check it, validate it.
Chris: That is still very notable. I don't think people are confused by that. I just think it's worth pointing out.
Dave: I think I am. I think it's not obvious.
Chris: Yeah?
Dave: I assume TypeScript is like, "Yeah, you're doing all the TypeScript." But it's not.
Chris: Yeah, you're not. You could submit a file as a Cloudflare worker .ts that is fricking riddled with type problems.
Dave: Mm-hmm.
Chris: If you opened it in VS Code would be screaming at you with squiggles. But if it can... If when you strip those types it's still valid JavaScript, they'll take it and not tell you.
Dave: Mm-hmm.
Chris: There's no mechanism to tell you. Now that's a product choice. They could take your TypeScript, they could TSC it, which is the one and only tool that gives you actual type error output, and then tell you. But how and when do they tell you? Do they email you? What's the deal?
Dave: Yeah. They have to now look... repoint that file to the dist file or what? It's weird to me. Yeah.
Chris: It's weird. Yeah.
Dave: Yeah.
Chris: But is it cool that Node--? Do I like that in these tools? Yeah, I think that's a strong choice. I don't know. I'm not against it. It's just weird. There are a lot of people with CI out there that don't want PRs with busted-ass types in it, and you won't see. You can't... When you're reviewing a PR on GitHub, you're not getting those same red squiggles. The only way you'll know then if there are type problems is if you pull the PR and open it and you're choosing to use something like VS Code, which not everybody in the world does. You open that project in Sublime Text because you like it because it's super-fast and have old muscle memory, you don't get any red squiggles in that.
Dave: Yeah.
Chris: I don't know.
Dave: Unless you set it up, unless you did all the effort, like my GitHub actions is a 19-step thing on the big project I work on. [Laughter]
Chris: Yeah.
Dave: There's like 19 hurdles I've got to jump through every time. If everyone is working, that would be a miracle, so sometimes it's the type checks that fail. Sometimes it's the other, the EDE that fails.
Chris: Right. Well, I think that's notable.
Dave: Yeah.
Chris: If you put type checks in that CI, you're going to be losing time. That's okay. It's just that you need to know that. If you're worried that those CI checks are taking seven minutes, I could almost guarantee that type checking stuff is going to be a chunk of those minutes.
Dave: Hmm... Hmm... So, you think TypeScript is just a thin veneer for red squiggles.
Chris: I don't. I don't want that at CodePen.
Dave: [Laughter]
Chris: I want our CI stopping that stuff. We don't have the biggest... We don't have Reddit-level problems.
Dave: Sure. Sure. Yeah.
Chris: Okay, so we know Vite, and it's running esbuild, and it's cruising through your TypeScript. It's amazing. It's so fast. Everybody loves it. Yay! Yay! Yay!
Dave: Yeah.
Chris: Under the hood is esbuild. Under the hood is also Rollup. So, when you do bundle build, Vite's dev server is saying, "I don't need to bundle this all up. I can just get these files to the browser more quickly by not needing to touch the file system and do all that stuff." But when you ship to production, you do need to get it all bundled up, and they use Rollup for that.
Well, that's part of this story that I'm trying to tell is I think they're trying to get rid of those dependencies. Vite would prefer not to be using Rollup, so they're making a thing called Rolldown, which is their own bundler of things. Absolutely don't blame them for that. I think they want the control.
But they also have a more... They have a philosophy that Rollup is going to have its own dependencies and stuff in it. It's going to have its own parser. It's going to have its own way of - I don't know - figuring out dependencies - or whatever you call that - dependency graphing and whatever. And so does Vite, and so do some of these others.
What if a whole toolchain (all the tools involved: Vitest and whatever else) used the same parsing? You know?
Dave: Yeah.
Chris: Instead of having different ones in there.
Dave: Well, I think there's an opportunity with Rolldown to rewrite it in Rust, sort of like they did with Vite or esbuild, and so now your bundler is written in Rust and should be super-fast. Notably, Vite used Rollup, so you just send it a Rollup config, and I think that was a smart move then.
Chris: Yeah.
Dave: Rather than making up their own thing that everyone had to switch to. Maybe some people had Rollup. Rollup already had docs. Rollup already had... you know. I think that's actually pretty strategic.
Chris: It was! It was genius. Guess what Rolldown supports. Rollup config.
Dave: Yeah, it's the same config.
Chris: Their trajectory here is genius. Use something that's already awesome that people can use in that way. Then slowly replace it. Make sure it's backwards compatible and move on. It's great.
Dave: Yeah. I think even maybe this has a thumbs-up from Rich Harris. I could be wrong. There may be bad blood there. I don't think so, but--
Chris: Yeah. Anyway, it's a good plan. Now you've got Vite and you've got Rolldown (that they're working on). I don't think you put Vue in the VoidZero bucket because I think Vue has its own governance and stuff, and I don't think that VoidZero can all of a sudden be like, "Vue is under our world now." I think that's not in there.
Dave: I think, yeah, that's different. But they do have Vitest, which I've used.
Chris: Yes.
Dave: And it is awesome. It's a Jest compatible.
Chris: Oh, dude. It's the best.
Dave: But it's like -- I'm not kidding -- 9,000 times faster than Jest. [Laughter] And it doesn't bitch at you about, "What's a module? I've never seen this before." And fully understands ES Modules, and it doesn't shit the bed and it's great.
Chris: Fast, understands ESM. What else? It just kind of works in the same way that Vite works. It has good vibes. I don't know.
Dave: Good vibes. It does all the things, more or less, I think. I'm trying to remember if it did coverage, like the full coverage. I think it totally does.
Chris: Oh, I'm sure it has a couple of rough edges here. If not rough edges, things that Jest can do that it can't (just because Jest has been around for 20 million years).
Dave: But it's very threaded, too. I think you can run Jest multi-threaded where it's all async and everything is happening at different rates. But I just felt like Vitest was a little bit better at it or faster at it.
Chris: Hmm...
Dave: Yeah. Then they have that--
Chris: Another interesting one, though, is that Node now ships a tester, too. If you're trying to be like, "Ugh, I need to get off of Jest. It's too... It's just this bulky, beefy thing," or whatever, and you want to switch to Vitest, that might feel really good. It might feel even better to have none dependencies. That is much more limited. But I'll say we have switched in a couple of our smaller packages to just use the Node test runner. Zero dependencies.
Dave: Yeah. If you're testing stuff that Jest can test, I would absolutely do that. Web components require DOM, so we're actually using Playwright tests, which are actually pretty great.
Chris: Mm-hmm.
Dave: It's probably the longest version of testing you can do, but it's pretty great. When a test passes, it's super-fast. When a test fails, it's like, "Oh, I'm going to retry. I'm going to wait for 10,000 milliseconds for this to fix."
Chris: Yeah, I have so many thoughts about that. Those are tricky. So, you're using Playwright, which means you're spinning up a headless edge - or whatever - to do those tests.
Dave: Headless edge, and you can actually launch it in UI mode so it will actually chuck up edge, like run through its little player and stuff.
Chris: It's just like Cypress does the same thing.
Dave: Cypress, yeah, but I'm going to maybe... you know, a little closer to the metal, maybe, if I'm going to be real with you.
Chris: Oh, yeah, because the teams are more aligned that way.
Dave: Yeah.
Chris: I've always kind of... Like I have a Cypress test that I'm fond of right now. This is the new way I'm thinking of it is, like, "If I would be willing to test this by hand and probably should be testing this by hand but it's laborious, then I will write a Cypress test almost just for me."
Dave: Mm-hmm.
Chris: I'm not going to run this in CI because I have had nothing but pain in my life from trying to run these damn things in CI.
Dave: Yeah.
Chris: Just suck. Just flaky garbage.
Dave: Yeah.
Chris: That's just me, but I hate it. A test might fail just because - I don't know - the browser just didn't want to boot up right. [Laughter]
Dave: Yeah.
Chris: It just didn't want to today.
Dave: I feel like, eight out of ten times, it's like, "I just couldn't install the browser, so I couldn't find it, and so I just failed."
Chris: It just failed.
Dave: Now you get to figure that out. [Laughter]
Chris: Yeah.
[Laughter]
Dave: Yeah.
Chris: No thanks. But I have these Cypress tests where, like, working on the new editor that's like, "I want you to pretend like you're a user. Go in, put this code in, click here, click there, click there, click "add this," whatever, and then what do the results look like?" Even look down into this iframe and see if it basically did what you wanted it to do.
If that fails once in a while, that's okay. It's just helping me click faster. [Laughter] I'm all about it.
Dave: Yeah. Yeah. Yeah, I wish it was... I think there are tools, like Cypress and stuff like that, that are a little easier to write. They're like, "Make these," you know.
I know you can click through and do it, but I just wish it was in my muscle memory to do be like, "Oh, yeah. I'm doing this. Click open, it should be visible. Click close, it should be closed."
Chris: Mm-hmm.
Dave: I wish I could. It's not hard to write that and, actually, Copilot is kind of ... on it. [Laughter]
Chris: Yeah.
Dave: But it would be cool to have a GUI for this sort of thing, like, "I'm going to do the keyboard test." If I could talk to my computer about what I need it to do - or something like that - that would be cool.
Chris: Yeah. You make the test with me just explaining it. There is kind of a record mode in some of these tools, but maybe it's my trust level that I'm like, "I know you're saving a little CSS selector to decide where I just clicked and I know that I hate it." [Laughter]
Dave: Yeah, yeah, yeah.
Chris: [Laughter]
Dave: I know what you did. Yeah.
Chris: I know, and I don't like it.
Dave: I don't like it.
Chris: Anyway. Okay, so we talked about Vite and Vitest. Those are both under the VoidZero bucket for sure. We talked about Rolldown. That's under the VoidZero bucket.
Then they have this other. There's only one more thing in their overall bucket.
Dave: One more thing in VoidZero.
Chris: But it's a whole bunch of things in one, so it's just the way it is. What do they call it? Ox-C or something?
Dave: O-x-c, yeah.
Chris: But that's the thing that's got the parser in it, for example, which is a really big deal. If every one of these tools agrees, "We are going to use the Oxc parser," which I'm sure they do, now you have the same parser just up and down the stack. I don't even know what all the implications of that are, but I'll tell you it feels good. I'm sure for bug searching out-wise, I'm sure it's tremendous. It's also a linter. It's also the thing that figures out the dependencies and all that - whatever that means - a resolver.
Dave: Mm-hmm.
Chris: Then they're working on a bunch of stuff because this is all in progress. It's not just a done-deal thing. There's all kinds.
Dave: Yeah. I think they want to do the minifier, a formatter.
Chris: Sure.
Dave: Then you start getting into it's kind of like Biome where all of this stuff is in the same place.
Chris: Yeah. Biome had a big year, too. They got more stars than Vite did, like in growth of stars and stuff. That's what they want to be, but it's a little less clear if they have the muscle to do it where it's a little more clear with VoidZero because they've got the Evan You thing and he tends to run a good ship in that way. Not to mention $4.6 million.
Dave: Ba-ching! [Laughter]
Chris: But it does make sense to me that if you are going to write a formatter, you need a really good parser to get an AST of what's going on and then make formatting choices based on that thing. So, they use the Oxc parser, which is sitting right next to it in the repo.
Dave: Yeah.
Chris: I think that's cool. Okay, so those are the things in the bucket. I mentioned the money. They got $4.6 million.
Nowhere at all does it say how... what the plan is to return. You know it's always Accel - or whatever. You know what I'm talking about?
Dave: Mm-hmm.
Chris: They're always behind it. If it's an open-source code thing, they're the ones writing checks (for whatever reason). It seems like it's mostly from them. I'm sure there are a bunch of smaller founders. But the biggest checks are certainly from them.
Dave: I will say, in my ventures into venture capital--
Chris: Yeah.
Dave: --there was a big push to make parts of Luro open-source.
Chris: Okay.
Dave: I think it's the idea that stars and hearts on GitHub - or whatever - stars on GitHub, watchers--
Chris: Yeah.
Dave: --turn into eyeballs, which turns into customers. And so, I think we now have... and because there's...
Chris: Fair enough. There's a little but of underpants gnome stuff going on there but okay.
Dave: For sure. For sure. But there is, I think, this idea. But now it creates this, like, because hearts are valuable or stars are valuable, you can go black market and buy stars by the thousands.
Chris: Yeah, go buy them.
Dave: Don't recommend that, but it's like what a false economy we have. [Laughter] But this perceived popularity is really interesting to me just like how people fake stats and likes and bot accounts and bot followers just to appear a bigger influencer than they are. Anyway, more than once I had heard open-source might be a way to grab more funding just because it looks like you guys are... You can prove a potential customer base.
Chris: Is it because of WordPress or something? I don't know.
Dave: Yeah, I don't know.
Chris: What are the examples of, like, "This whole thing is--"? I guess Next is a pretty big example of that.
Dave: Yeah. Hugging Face was always kind of offered, which is kind of like an AI model warehouse. They also, I think, do LangChain, and so that's how you basically staple together prompts in Python or whatever you're using.
Chris: Yeah. I do kind of get it because the number one thing that probably kills a lot of these companies is just nobody cares. Nobody uses it, so at least you have to solve that. [Laughter]
Dave: Yeah.
Chris: Then you can move on.
Dave: Yeah, so it's kind of this weird, you solve users first and then you figure out how to monetize. Yeah.
Chris: There still got to be conversations, right? What the heck! What are they?! If we could somehow know what the conversation when the VoidZero (whoever was involved on that team) was sitting at a table with people from Accel, what was said about future profitability, what do you think they said?
Dave: A billion-billion. No one wants to invest unless there's a billion on there, right?
Chris: Yeah.
Dave: I will say this. In investment, you have this TAM (total addressable market) which is like every customer potentially ever, which is billions or let's say hundreds of thousands of software companies could be using Vite (if they're not already). Then you have a SAM, which is your... What is SAM? Serviceable Addressable Market. But it's basically like, "Who's that?" Of that big slice of customers, who could you actually get in the short-term?
Chris: Hmm...
Dave: And so, I would say they have captured part of the market, so they've completed that checkmark step. I think that would be good data to show, like, we have this many installs, this many people running it. We have this many likes, hearts. We have this many contributors. We have this many--
Chris: They could even say of all new projects in this sub-genre - or whatever - 75% of them are powered by Vite.
Dave: Yeah.
Chris: It'd be pretty big.
Dave: Then this - whatever - Next is using Vite - or whatever.
Chris: Or the one thing that doesn't.
Dave: [Laughter] Okay. But like other popular companies are using this.
Chris: Yeah, interesting. Yeah, so it's largely just proving users, which I would say is carefully not to be confused with customers because they're not yet.
Dave: Not. No. And notably, VoidZero is a company that has taken funding but it does not offer paid products that I can tell.
Chris: None of any kind. So, at some point, there needs to be one, I would say. Right? Doesn't there just absolutely must be at some point some way for this company to generate profit? Because they haven't said a single word about it, that's what the speculation fun is.
Dave: Mm-hmm.
Chris: Here's a list of some of them that they could be, me full well knowing that whatever I think it might be is going to be wrong. [Laughter]
Dave: Let's go. Let's go.
Chris: Let's go. One of them is they don't have any data at all. They have nobody's data. Nothing. People just pull their code, and they use it and run it. But I don't think VoidZero owns a server that has any customer data on it at all.
One play is they've got to do something to actually kind of more correctly prove that they have these eyeballs. Ideally, they're getting your data of some kind. That usually is the play. Get people's data. Data is super, super, super sticky. That's going to win somehow. But this is all front-end stuff, so they're not data experts, and I don't know how that goes. So, maybe they don't care about that and maybe the play is to get picked up by somebody that does have data because there's more money in data. Not sure. We have seen Astro, which took $7 million, try a data play.
Dave: Right. Right.
Chris: And they shelved it. It was like this KB Store kind of thing for powering your Astro site. Absolutely would have done the same thing as Astro.
Dave: Yep. Astro Studio, right?
Chris: But that didn't seem to play out. It doesn't mean that VoidZero couldn't do it but it does not seem like an area of their expertise to have your data. But there are other kind of ways of having data. Maybe they run your CI or something. That's kind of like having data. Or maybe they are your alternate Git repo or something. Or you become a host. The host is having data, too. That's an obvious play. We've also seen Gatsby fail in this arena.
Dave: Mm-hmm.
Chris: So, it feels like there's a lot of graves out there. Some of these things feel scary. So, there's the data play, I think.
They also have this whole toolchain up and down, right? You're the build tool, and you're the test tool, and you're the formatter, and you're the linter, and you're... and you're... and you're... everything.
Dave: Mm-hmm.
Chris: When you say, "Hey, we're part of people's stacks," you're a lot of their stack. You're up and down that thing.
Maybe there's a fifth thing in this list. Who knows what it is, but it works so stinking well with the rest of the stack. Then you make that one paid.
Dave: Yeah.
Chris: It's like this thing is going to slot in like toast in a toaster. It's going to be amazing.
Dave: Yeah. Maybe it is something like Next. Well, Next is maybe--
Chris: Yeah, one of these things is not a framework. Vue is the framework but, like we said, that's kind of outside the--
Dave: Yeah, Vue and Nuxt. But maybe it is this more agnostic tool for stapling together entire experiences. I don't know.
Chris: A couple of others. Dino got $25.9 million. Bun got $7 million. Those are the rounds, as far as best I can tell. Those are not quite in the same bucket here. They are calling themselves JavaScript runtimes, but the businesses themselves do more.
Part of the business model for Dino is like edge-hosted, cloud-function things, which are pretty sweet.
Dave: Yeah.
Chris: But that's having data and a big part of really the underlying technology stack, so that's a pretty big deal. Could VoidZero offer that same kind of thing? Unknown to me, but that's a way, I guess.
Dave: Yeah. Dino also... You know they had the framework Fresh, right? Then that's a way to get a hook into somebody.
Chris: Yeah.
Dave: Like, "Oh, you're building with our thing? Cool. We got you." "Oh, you want to deploy to our thing? Cool. We got you."
Chris: We got you.
Dave: "Oh, you want it to be these fast little functions? Great. We got you."
Chris: That's kind of the Vercel model, too, which is kind of outside of the scope of all this because Vercel is just enormous. They're not really a startup anymore.
Surely, they have funding. Maybe they'll even get another round someday. But they're so far along in the series that it's not... We know what their business model is.
Dave: Yeah.
Chris: And it's going great.
Dave: They're at profit or acquisition, I think, at this point.
Chris: Yeah, so interesting stuff. So, that's, like, make part of the toolchain be paid is a possibility there.
There's kind of the consulting angle, which I actually kind of like. Look, you've got a whole staff of people. Nobody knows these tools better. And you can drop-ship them in to look at a company's setup and all this and fix it up and charge absolutely premium pricing to do that because there's nobody in the world better to do it.
Dave: Yeah.
Chris: That's not scalable.
Dave: Yeah.
Chris: But it's a company that I like. So, if this company turns into something like that, I think that's healthy and cool and good. But it's probably not what Accel wants.
Dave: Yeah. Well, yeah. Venture capitalists, we were told, "Spin down your consulting. Don't do that," like Paravel consulting.
They don't want you to do that because that's not scalable.
Chris: Sure.
Dave: That's basically everyone starts working on something else and they're not pushing the product or whatever. That said, man, companies do consulting all the time. That's an old-time business, like, "Hey, Jack, Sally, what do you got going on? Oh, I could help you out with that." Blah-blah.
Chris: Yeah.
Dave: That's a thing that people do, man. I think, regardless of what you're doing, I think bringing in an expert to talk about something is good. This is IBM's whole job. [Laughter] You know what I mean? This is like McKinsey. What is the other one? Deloitte, Accenture: this is what they do. There are big businesses built on consulting. I think it's weird. It just doesn't fit the hyperscale model of venture capital.
Chris: No. Yeah, and it is tricky because it is at odds with, like, you get these people who are building these tools that really need a lot of attention. What's the best use of their time? Being at a client fixing their crap or pushing the tool?
Dave: If you're like, "Dude, we migrated a major - whatever - Airbnb to Vite and Vitest and blah-blah-blah, and their build times went down a billion percent," that's marketing.
Chris: Mm-hmm.
Dave: Somebody is going to talk about that at a conference. Then it's going to catch eyeballs when people are like, "Oh, man! Are they saving money on server costs? Oh, crud! I'd like to do that. We should do that."
Chris: Mm-hmm. Hopefully, you have something to sell.
Dave: Oh, CI is 80% faster? Holy crud. Let's do it.
Chris: I don't know enough about the lawyerly licensing type of thing in there, but it seems possible to me that a way to do this is to put some kind of binding thing somewhere that says, "Hey, are you using this stuff and your company is more than 1,000 people? Then it's a million dollars a year to use this stuff, $2 million a year," or some kind of sliding scale thing.
Dave: I wish that was how it worked. You know what I mean? Like unreal Unity. Unity had a big pricing blowout where they were trying to charge per install, basically. That blew up in their face. But there were agreements from Unreel and Unity where it's like you don't pay us money until you make $1 million using it.
Chris: Mm-hmm.
Dave: And so, there's a little bit of, like, firm handshakes that you have to go around with to make sure no one is taking advantage of anybody there. But I think I love that model. It's like, "Hey, dude. If we helped you get $2 million in revenue," or whatever "cut is in. Deal us in."
Chris: Yeah. Yep.
Dave: If it's valuable to you. If it's not, then get rid of it, and then we'll see [laughter] how you feel there.
Chris: Maybe there are multiple metrics. The profitability angle is pretty aligned nicely. It's like you made a bunch of money, so we should share in that. Yeah, I don't mind that as a metric.
I picked the employees one because it tends to map to that kind of level of success - or whatever - which I always thought that traffic never does. It always used to annoy me with buying fonts is that, for some reason culturally, the metric for buying a font is always like, "Yeah, how many page views?"
Dave: How many computers?
Chris: Page views just never correlates to the success of a thing ever.
Dave: Yeah. For $5,000, you can put this on 3 computers.
Chris: Yeah. The "How many computers?" is funny, too.
Dave: What?! What? There's a computer in my closet I forgot about.
Chris: Yeah. Then the bigger the company, the more they need to honor those agreements very carefully.
Dave: Yeah. You put a big target on your back if you break the agreement, right?
Chris: I kind of like that. I wonder if it's possible. Somehow, it doesn't feel likely to me. It seems like if it's open-source, it's open-source. I don't think the word open-source has space for open-source asterisk. "Open-source if" is not--
Dave: Yeah. What should we call it? Paid source or eventual pay, layaway source? [Laughter]
Chris: Yeah. Sure. There's that. That could be in there somewhere.
There are more of these consulting-like models. There's training and developer education stuff. If you are the experts, should there be these video courses that you could watch on it? There has been money in educational stuff many times.
Dave: Yeah.
Chris: It's a model. It's just a little niche for that. But you know.
Dave: I don't... Yeah, I don't know if you could make back your monthly payout if they have ten employees or something. You probably can't pay that back.
Chris: No. It would just be a little thing. But maybe you do both.
Dave: Or you offset it and you get a little more runway to then figure out what you're actually going to make money on.
Chris: Yeah, and you're selling T-shirts - or whatever. And you have some ads placed here and there. What if you consulted and did training and did video stuff and did merchandise and did advertising? Could you--?
Dave: You run an ad every time Vite compiles. Boom.
Chris: Yeah. People love that. They love ads in their terminal.
Dave: Slack. Sign up for Slack. Yeah. Or pay to get rid of them.
Chris: I think if you did all five of those things, you're not there.
Dave: No.
Chris: I still don't think that's scalable enough.
Dave: No, so you need some kind of app or business attached to it. Is that sort of the vibe? Is that sort of the--?
Chris: I think so. Yeah, you've got to get some... You've got to get their data. Data being like a big thing in quotes, like just be doing something for your customers where they log in. [Laughter] You know?
Dave: Right. Right.
Chris: I would think a login at some point just has to do something, but I don't know. Whatever it will be, I'll be wrong. So, there's that.
Dave: Yeah. Yeah.
Chris: Part of me thinks, "What does Laravel do?" Laravel is a fricken' PHP framework for building websites. They got $57 million and they're hiring and they're growing.
Dave: And they have Lambdas.
Chris: Yeah. [Laughter]
Dave: Wow!
Chris: What are they doing exactly, especially because they aren't in the hosting bucket? They have this huge ecosystem of tools and stuff. But it doesn't seem like they also particularly have this... You don't log in and do stuff that way. I see they're pushing some monitoring tool (speaking of which it's 10% Luro-esque). It doesn't have anything to do with design systems, but it's doing probably Web core vitals and all that kind of stuff.
Dave: Yeah.
Chris: That will be a thing with customers. Surely, you'll pay for that. But that's pretty small, I think, compared.
Dave: Mm-hmm.
Chris: You're not going to be making back $57 million particularly quickly on a niche monitoring tool.
Dave: Yeah. They have Forge, their server uptime kind of dude.
Chris: I guess that's data.
Dave: Vapor.
Chris: Is that it? Does Forge make a bunch of money?
Dave: Yeah. Vapor is a server that auto-scales, so I'm sure it's just--
Chris: Oh, maybe... Yeah.
Dave: It's kind of a Heroku for PHP there maybe.
Chris: Forge is this hosting. Okay. They're just fricken' selling hosting.
Dave: I mean that's a pretty good... You know. And they have a bunch of little--
Chris: This is why we're not journalists. I have no idea. It looks like they've got lots of stuff.
Dave: Again, it's sort of like how do you--? I assume, once you're in the ecosystem, it's easy to tap into it. Yeah.
Chris: Yeah, and you just very much want to. It's happened to me over and over, over the years, where you're already using one thing and it makes me literally want to use their other things.
Dave: Mm-hmm.
Chris: It's one of the reasons I'm a little bullish on Cloudflare still, even though I haven't seen major growth from them or anything. God knows their stock doesn't do much. But they make good developer products, like all the ethics aside of some of their choice-making and things. I think their dev products are pretty darn good. They're pretty well documented. They evolve pretty quickly. They listen. They have a modern approach to things. It makes me want to be like, "Dang, that went well. What else do they got?"
Dave: Mm-hmm.
Chris: Then we've made that choice over and over, like, "Let's put this over there. Let's put that over there." You know we make those choices because I want to be in their ecosystem.
Dave: What if VoidZero made Vploy, and it sends your code up to a node server and does all the VoidZero stuff on the fly?
Chris: Ooh, yeah, sure. Like... What was the old-school deploy from the CI tool?
Dave: Well, there's Heroku, Render.
Chris: Heroku, yeah.
Dave: And then--
Chris: Even Netlify and stuff has their own CLI.
Dave: Netlify and things like that, right? I mean, you know.
Chris: That would be up their alley, like a really good CLI for, like, "Yeah, you want this hosted? Just type in beep-boop."
Dave: Yeah.
Dave: I'm going to trademark Vploy so they can't use it.
[Laughter]
Chris: No, it's not French enough.
Dave: It's a good one. It's really good. Oh, Viplier.
Chris: [Laughter]
Dave: It's V-i-p-l-i-e-r.
Chris: Zipila. Yeah.
Dave: Vipla. [Laughter] No, because I don't know. Node hosting is kind of a roll of the dice, man, sometimes. You can do 100 backflips and get a node server up on AWS. I know they have Amplify and stuff, which helps with that.
Chris: Surely, you could find a commodity node host to make money on top of.
Dave: For sure.
Chris: AWS wants that to be them. They want you to do that.
Dave: Yeah, they don't want you to use it directly. But you know you start, like... And I'm talking a node server, full Node, kind of like Netlify doesn't give you a full node server. Next doesn't really give you a full node server. I think it is a node server under the hood.
Chris: I think they kind of do. I don't know.
Dave: But your API is Next, right?
Chris: Not quite the same, yeah.
Dave: It's not like I'm writing Fastly. I guess Fastly is maybe an option, too. It's not like you're writing an express server or whatever. Anyway, that would be interesting. I don't know.
Chris: Maybe. At least it seems in their wheelhouse.
Dave: Yeah. Just kind of like, "Hey, here's--"
Chris: Because all this crap is CLI-driven.
Dave: Mm-hmm.
Chris: To stay in that world and be like, "Yes, plus deployment."
Dave: Mm-hmm.
Chris: Sick.
Dave: Viplier.
Chris: Yeah.
Dave: We're going to use Viplier. Sorry, France.
[Laughter]
Dave: You can email me, chriscoyier@-- Just kidding.
[Laughter]
Dave: Yeah. No, it's interesting. I think about this a lot. I'm trying to think of places.
I'm going to talk about 37 Signals. Trigger warning here. [Laughter]
Chris: Hmm...
Dave: I'm not a fan of how they're running their company or anything like that. But I often look fondly on the fact that they built Basecamp, which was their money-maker, and then they used that money to fund the open-source part of the arm of the operation, Rails. There was a lot of harmony there.
Chris: Yeah.
Dave: That also maybe broke them in some ways because Rails couldn't move as fast as it probably needed to in the tech sphere because they were rebuilding Basecamp every few years.
Chris: Mm-hmm. It's the opposite way around. It was like make money first, open-source second. Although, I don't know if that was actually the way but it feels that way a little bit that this is open-source first, business second.
Dave: The value prop was very clear. It's not this... I think Ethan posted the other day. It's like when I was in my 20s... Ethan Marcotte posted the other day, like, "In my 20s I was like, 'Cool. Free software!' Now I'm in my 40s and it's like, 'What's going on here? Why is this free?'"
[Laughter]
Dave: "When is that shoe going to drop?" Rails, to its credit, it was very clear where the money came from. It came from the app that made them money.
Chris: Yeah.
Dave: I'm sure there are other deals, consulting, and all this stuff that was happening, too. Notably, they weren't VC-backed, so they didn't have the pressure to hyperscale. It wasn't a two-year experiment to get big. It was sort of a long-running business. It's technically still a business.
Chris: There's the registry thing, too. We've seen some plays on that. Remember when GitHub was like, "We'll be a registry, too," and nobody even knows that. [Laughter]
Dave: Yeah. Yeah.
Chris: And then there was Dino tried to be a registry, too. I don't think they're getting too much traction on that, but it has some appeal, like the TypeScript first and whatever. But I've also seen plenty of pushback against it, especially because, in the early days, they were like, "Let's not do that. Let's just have URLs," and whatever.
Dave: Yeah. Well, and the other way, too. GoDaddy was a registry and then they bought Media Temple. Now they host a bunch. They were doing hosting all the time, but I think that's probably the majority of their money, not domain names. I could be wrong.
Chris: There's a new player in the registry market, VLT, which took some money but it's not clear how much. But it's some of the early NPM team and stuff. It looks all very interesting to me. But not less clear on the monetization because I think the monetization is more clear when you have customer data like they would at a registry.
Dave: Mm-hmm.
Chris: Because they can just charge for stuff, which is pretty smart. [Laughter] NPM, I don't know how profitable it was, but the story of NPM seems okay. They did eventually get bought for a ton of money. I think that story worked out okay.
Dave: Mm-hmm.
Chris: I don't know if VoidZero would want to be a registry or combine forces with VLT or combine forces with Astro. Maybe.
Dave: Right. Right.
Chris: You can't see VoidZero buying Astro. They're smaller. Astro is... I mean, from a VC perspective, Astro is bigger. From a usage perspective, certainly much smaller (I would think) but hard to know how that all shakes out. When you come to the end of a runway, anything can happen.
Dave: Yeah. I invested $16 million in 11ty.
Chris: Yeah?
Dave: And I still don't know. I'm happy about that.
Chris: That's the investment?
Dave: I need to follow up.
Chris: I notice begin.com still doesn't resolve.
Dave: Yeah.
Chris: That's another idea.
Dave: With Sanity. Was that right? Sanity?
Chris: It's funny. I don't know that it's a bad ending in the story. It's a bad ending for the URL.
Dave: Oh, for sure.
Chris: Somebody, fix that. I don't know.
Dave: They still have arc.code, which was behind the scenes of Begin, I believe, which is kind of like YAML-powered server config, you know, deploy, like building environments. They have a word for that.
Chris: Yeah. Infrastructure as code?
Dave: Yeah, it is infrastructure as code.
Chris: Yeah. That was a big one because we have to have that, or we do on a journey towards SOC 2 and all that. They don't... Let you know, Dave. They don't be handing out SOC 2. It's a journey. Infrastructure as code for everything you do is a part of that journey, and that is why there is some money in that stuff.
Dave: That's what I'm going to do. Dave Rupert as code; figure that out.
Chris: It is very satisfying to see a new thing move from - I don't know - somebody logged into a dashboard and clicked a bunch of stuff to a configuration file that is configured and when a change to that configuration file goes to main master that it just somehow - whatever - uses APIs to simulate going into that dashboard and clicking those correct buttons to change things.
Dave: Yeah.
Chris: I think the maximum amount of servers we have should be five from four. Okay. Now it is because I pushed that code file up. That's obviously a good idea. [Laughter]
Dave: Yeah.
Chris: Please. Yeah.
Dave: No, Render. We use Render for Luro and it has all this infrastructure as code stuff, like a big YAML that you write.
Chris: Yeah.
Dave: It was awesome because we could just be like, "Dev environment, yes. Luro-dev." Then luro-prod. It's the same thing. Or we can downsize the dev server. We can say, "Okay, dev server has branch deploys." It was just awesome. It was just like this is a really fricken--
Chris: Yeah, it is awesome.
Dave: We could auto-migrate, run our database scripts on the dev server and then, for the production server, that would have to all be... Sorry. It would be manual on the dev server but it would be automatic on the main server.
Chris: On stages.
Dave: Yeah, because you know it flighted by the time you get in there.
Chris: Yeah, that's cool.
Dave: And so, it was just kind of this, like, really big confidence booster that there's not a huge delta between my hardware from a config perspective.
Chris: Yeah. I like it when it's multiple services, too. When it's like, "I'm controlling AWS here, but I'm controlling a database here," which is a different service or it could be entirely. We even have our Cloudflare, our little firewall rules and crap, are deployed.
Dave: Mm-hmm.
Chris: So, it's like, yes, sure, you could log into Cloudflare and go to your little rules and say, "Oh, at this URL I want to loosen or harden the challenge," because there's a problem or something. That's cool. Neat-o! Glad you did that. Why did you do that? When did you do that? Who are you? What's up?!
Dave: Yeah.
Chris: If you do that as a PR, you have all those answers. That's awesome.
Dave: Yeah. Well, and I like, too, you could build out a network of computers. We only had one Web server, but we had five servers, like a notification server that ran.
Chris: Sure.
Dave: And that's cool. It was like we could do a bunch of... We could carve out huge chunks of tasks so that it wouldn't take down the main Web server, and we could get into more asynchronous code. It was awesome, but it's not easy necessarily. It's not just like, "Oh, man. This is the easiest thing to do." But it's proper orchestration. But the YAML makes it easier, right?
Chris: Yeah.
Dave: I'm going to say what I want rather than click around in a UI and hope I did it right.
Chris: Yeah. I'm more of a TOML guy. Just kidding. I barely even know the difference.
[Laughter]
Dave: Yeah. Apparently, YAML is bad. TOML is rad. I don't know.
Chris: Is it? Is that--?
Dave: That's what they're saying. That's the word on the--
Chris: Yeah. Whatever.
Dave: Well, interesting, Chris. I think we solved it with our armchair journalism. We've figured out how to fund open-source.
[Laughter]
Dave: I would say... call out Igalia has... The Igalia podcast--Brian Kardell and Eric Meyer--has a lot of really good talks on funding open-source as well because they built a browser and they contribute to browsers and they're kind of on that model. Anyway, it's interesting how we fund things.
Thank you, dear listener, for downloading this in your podcatcher of choice. Be sure to shart it up. Then follow us over on Mastodon and join us in the D-d-d-d-discord, patreon.com/shoptalkshow. Chris, do you got anything else you'd like to say?
Chris: [Lip trill] ShopTalkShow.com.