Whiskey Web and Whatnot

A whiskey fueled fireside chat with your favorite web developers.

Listen/Watch

122: Open-Source, Payload, and Sim Racing with James Mikrut


Show Notes

The world of programming can be complex, but some developers find beauty in keeping coding clean, simple, and straightforward. This philosophy led developer James Mikrut to write his entire codebase in functional programming. James is the founder and CEO of Payload, an application framework that he describes as a backend with an API and an automatically generated admin panel. The framework is built with React, Node.js, and Typescript. James reveals the evolution of his project from a licensed tool to a thriving open-source platform. He explains the pivotal decision to embrace open-source, and shares how user feedback steered Payload towards greater heights.

In this episode, James talks to Robbie and Chuck about the culture of open-source, the reason Payload switched to open-source, and the world of sim racing.

Key Takeaways

  • [00:39] - Introduction to James Mikrut.
  • [02:36] - A whiskey review: Coopers’ Craft Bourbon.
  • [17:47] - Tech hot takes.
  • [41:52] - Why Payload switched to open-source.
  • [55:18] - Chuck, Robbie, and James talk about gaming.
  • [57:37] - What career would James choose if he wasn’t in tech?

Quotes

[01:10] - “I saw the need for a proper application framework in Typescript and all the modern bells and whistles, and I started Payload.” ~ James Mikrut

[32:06] - “The web is winning, and I’m a big fan of that.” ~ James Mikrut

[48:25] - “Really, what Payload is, it's a back end with an API and an automatically generated admin panel.” ~ James Mikrut

Links

Connect with our hosts

Subscribe and stay in touch

Promos

Whiskey Web and Whatnot Merch

Need a last minute holiday gift and want to support the podcast? We have just the thing! Pick up a Whiskey Web and Whatnot Holiday Sweater on our new merch store: ⁠https://whiskey.fund/

Transcript

[00:00:00] Robbie: What's going on, everybody. Welcome to Whiskey, Web, and Whatnot, your favorite podcast about whiskey, web, and whatnot with your hosts, RobbieTheWagner and Charles William Carpenter III.

[00:00:18] Chuck: I go by Billy Trey these days. Billy

[00:00:20] Robbie: Billy Trey. All right. So our guest today is James Mikrut. What's going on, James?

[00:00:28] James: Happy to be alive. Happy to be here.

[00:00:31] Chuck: You know, it's a good starting point. Everything from there, it just is, it's all gravy,

[00:00:35] James: Wrap it up. Wrap it up, boys and girls.

[00:00:37] Robbie: Nice. Nice. Yeah. Um, do you want to give everyone a few sentences about, uh, who you are and what you do?

[00:00:44] James: Yeah, sure. Um, I'm what's called a MUT. I am a half designer, half engineer. Um, I'm self taught. I went to school for a couple years, but my teachers were not as... well versed as I wanted them to be. So I just stopped going and I taught myself and, uh, I've been writing code for, I don't know, 12, 13 years, something like that.

Started in the agency world and I had a digital design studio and we were doing all kinds of fun stuff, but I saw the need for a proper application framework and TypeScript and all the modern bells and whistles and I started building Payload, so my agency kind of built it and then we got some co founders that were highly technical and now we're all full time on Payload, so I am the CEO and I still write code every single day.

Love it!

[00:01:33] Robbie: Very cool.

[00:01:34] Chuck: It's good to have that creator's mindset.

[00:01:38] James: Uh, yeah, you know, like... I think real designers and real creatives would probably look at the way that I approach design problems as somewhat, like, systematic and like a robot. Um, I think, you know, that's where you draw the line between art and, design. Design is for problem solving, but art is making an expression of yourself or something like that.

And I think about design as problem to be solved, just like I think about, like, a function. Or something like what, what does this need to do? What are the goals? How do I get there? Um, so I'm very formulaic in that way. And that's why, you know, maybe I don't really go with the art school kids so much, but, um, I think I'm a designer.

[00:02:14] Robbie: yeah, I think there's both sides to it. Like, I think there are some things we can all agree look and function better than other things. And then some of it is subjective, but yeah,

[00:02:27] James: look good because they tried to look good. And because they followed the rules or they pushed boundaries in a way that didn't go too far, but still like innovated in a way that was At the end, it's all problem solving. It's all just doing things to like, check off the list.

so yeah, I don't know, I just, that's how I look at it.

[00:02:45] Robbie: before we get into more of these topics in depth, let's talk about the whiskey a little bit, Chuck. What do we got

[00:02:51] Chuck: Okay. Well, I'm going to tell you about my whiskey, because apparently

it's

[00:02:55] Robbie: Well, alright, should we tell them about the one we had?

[00:02:58] Chuck: well first, let's, we can start out with, it is the Cooper's Craft bourbon.

[00:03:03] Robbie: We all got that.

[00:03:04] Chuck: yep, there we go. I have the version that is 82. 2 proof, so it's a little light for me. Uh, you both have the 100 proof expression.

Uh, I'm not sure if yours is age stated. Bourbon should be at least 4 years though, so at least we all have that going.

[00:03:20] Robbie: Yeah, I'm not sure if it says on here, I wasn't prepared for you to have done research on the wrong thing, so...

[00:03:25] Chuck: Well, that's okay, though, because other parts still play in. So this is a brown form in product. It is an undisclosed mash bill, but the discussions that I could find online were about, uh, that it's slightly different than old Forester.

It has a bit more corn and less rye. Uh, composition than Old Forrester has. And then the big whole thing about Cooper's Craft is, they are the only distillery that have their own coopery, so Brown Forman is celebrating that. And Brown Forman brand is known for, um, they're famous for, it's this little Tennessee whiskey you might have heard of called Jack Daniels.

And then something else a little fancier out of Kentucky called Woodford Reserve. So, yeah.

[00:04:09] Robbie: Yeah.

[00:04:11] James: ring a bell for

[00:04:12] Chuck: Yeah, yeah, I mean, they're slightly nuanced, like it's, you know, whiskey circles know about it, but maybe you've heard of it.

[00:04:18] James: Well, it's definitely, it smells amazing. I just took the top off the bottle and like it hit me in the face. Um, I am dealing with the 100 proof here, so I'm putting my seatbelt on right now. Um, but very exciting.

[00:04:30] Chuck: Yes, well, uh, Yeah, that's usually, 90 to 100 is usually where I, I like to be. I like a little more heat, I like a little more, like, kind of pouncing in the face with that. It's closer to, usually it has to go in the barrel at 125 proof to be considered bourbon, so that's like kind of the minimum that you're dealing with.

Obviously that's like crazy hot, and it, it changes as it ages, but, uh, 100 seems like a nice area.

[00:04:57] James: I don't know a whole lot about bourbon, but I can tell you that after like a long day, just that, that actually, like the bite and the, the, the strength does do something for my psyche big time. And it's not even because I drink a lot, like just have a little sip at the end of the day and all of a sudden things change for you mentally.

It's like evening of the keel,

[00:05:17] Chuck: You have to pay attention to it, which is what I like. Alright.

[00:05:22] Robbie: apples to me.

[00:05:24] Chuck: Hmm.

[00:05:25] Robbie: Anyone

[00:05:25] Chuck: sour apples though, right? Some sour ish? I get like a little bit of a

sour

[00:05:29] Robbie: We have different things, so it's hard to say. Hmm.

[00:05:34] Chuck: and now I'm just going to have to consult the internet, but I'm assuming that we just have ones that maybe aged longer in order to, yeah. I would guess something like that. Or they just didn't proof it down as much as possible there too. Alright.

[00:05:49] James: I'm not necessarily a connoisseur, but I can tell that this is elevated beyond the others. have you guys ever heard of New Holland Brewing? Dragon's Milk?

[00:05:59] Robbie: I don't think so.

[00:06:01] James: It's here in Michigan. Um, it's a distillery and a brewery. But they have this 12 13 percent beer. Um, it's like very, very potent. I think it's a stout.

I don't know. I'm probably doing it a disservice by not knowing the type of beer. But they have a bourbon. a beer barrel bourbon. That's very good. this kind of reminds me of that a little bit. That's like on the top of my radar is like one that I actually like. I think it's only about 80 proof or so.

But, um, kind of reminds me of this.

[00:06:27] Chuck: I could see that like, uh, a slight, like almost hoppy

taste to the, yeah, to the finish of it. I

definitely was

[00:06:33] Robbie: a little

[00:06:33] Chuck: some of that like kind of herbal kind of, but once you say that, it does start to seem a bit hoppy.

[00:06:38] James: You should try, uh, that Dragon's Milk, uh, bourbon. It's pretty good.

[00:06:43] Chuck: Okay.

[00:06:44] Robbie: I'll put it on the

[00:06:44] Chuck: I'll have to like see where it's distributed. I'm in the West Coast, so we, there's so much stuff we don't get. It's kind of ridiculous.

[00:06:50] James: You guys have founders out there though, don't you? Um, the beer?

[00:06:54] Chuck: Uh, I don't drink a lot of beer. Listen, James, I'm getting old and my stomach cannot tolerate some of those weird things. So, you know, I'm not pleasant to be around the next morning for reasons we won't go into. But, uh, yeah, so I don't know.

have beer for sure. That's,

[00:07:13] James: don't drink beer either, but, apparently Grand Rapids, where I'm from, is Beer City, USA, which is, um, strange, but,

[00:07:20] Chuck: interesting. I would have said, I would have thought Milwaukee.

[00:07:24] James: Right. Me too. Yeah.

[00:07:26] Chuck: There's all those old loggers and stuff that are like in that belt of, you know, Chicago, Michigan over into Wisconsin. It's like a old style and pap I think, and Milwaukee's best, which is a lie. It's not the best thing they have to offer.

[00:07:42] Robbie: It's like Seattle's best coffee.

[00:07:45] Chuck: also true. Hmm.

[00:07:51] James: is, I think from Colorado, right? I don't know. Rocky Mountains, something like that. Land of... I don't know. My dad drinks a lot of hams. That's what he's famous for. So, Beer City, USA, and here's my dad buying a 13. 30 pack. Classic.

[00:08:06] Chuck: listen, it's about volume, not quality. Son, if I taught you anything, that's not how your dad sounds, I'm sure.

Um,

[00:08:14] James: exactly how he... A little bit more anger, and a little bit more

[00:08:16] Chuck: Did our dads hang out?

[00:08:20] James: Maybe. Ha ha

ha.

[00:08:23] Chuck: my dad sounded like the sound of a beer can smashing against the side of my head. Welcome to the Midwest.

[00:08:29] James: ha.

[00:08:29] Chuck: it's not that serious. Alrighty, so let's focus momentarily, at least for a brief moment, on the whiskey itself.

Sounds like you like it. We have a very highly technical scale. I don't know if you did your research on this. It goes from 0 to 8 tentacles. Uh, 0 being horrible horseshit, throw this out. 4 being like, well, in terms of spirits and or whiskeys or however you want to classify it. This is fine and I would, you know, it's okay.

And an aide is amazing, throwing out everything else. Clear the shelves.

[00:09:02] James: Can you describe tentacles for me for a second?

[00:09:05] Chuck: Well, they are like, almost like arms, you know, and they flex around. Uh,

[00:09:12] Robbie: Yeah, it's just out of eight because our, uh, consultancy's mascot or logo or whatever you want to call it is, uh, octopus,

[00:09:19] Chuck: it's become a, become a character of its

[00:09:21] Robbie: Yeah.

[00:09:22] Chuck: like a

additional employee.

[00:09:24] James: Well, quick side note, before I rate this whiskey on a scale of tentacles, I made, in my opinion, a grave mistake of watching The Mist the other day, and I don't know if you guys have ever seen that movie, but do not watch it, at least that's my official public vote. Um, there's a scene with tentacles in it that I just can't get out of my head, and uh, yeah, so this, this scale is maybe a little warped in my mind at the moment, but, um, I do think this is pretty good.

Like. It's, you know, I can't be too cliche and say that it's smooth, but, for a hundred proof, I would have expected to maybe need to go to the hospital and I don't think I need to go to the hospital, so, um, yeah, it's, it's, I'd say it's, uh, only because I don't know what an eight would be like, I would put this at like a seven because it's pleasing to me right now.

I'll just put it that way.

[00:10:13] Chuck: Yeah. Just wait till you finish the bottle. I mean, that's part of the show, right?

[00:10:16] James: Oh, I have to

[00:10:17] Chuck: we've got about an hour and we have to finish it.

[00:10:19] James: Okay. Um, I'm I'm down. I got to go hang out with my daughter after this. So she's going to have a blast. I'm going to,

[00:10:26] Robbie: one of you will have a lot of fun.

[00:10:28] Chuck: Yes, yeah, I don't know how old she is, but definitely will be all over.

[00:10:34] James: is 18 months as of a couple of days ago. So

she's

[00:10:39] Robbie: My son is 19 months. So,

[00:10:41] James: Cool. Cool. Um, change. Is that your first?

big fan of being a dad.

I feel like this is my calling in life. Outside of writing code, being a dad, yeah.

[00:10:52] Chuck: Yeah, I feel you. Four and six, so I, uh, I love it.

[00:10:57] James: I gotta start knocking out a couple more coming up here.

[00:11:00] Chuck: There you go. At least two more. I mean, come on. Hey, after the, after you finish this whiskey, who knows what's gonna happen?

[00:11:08] James: Oh, buckle up. Um, yeah, I'm one of six actually, and my dad's one of twelve. So we have like a huge

like,

[00:11:15] Robbie: have to have three to to keep having it.

[00:11:18] James: Yeah, I gotta keep going.

[00:11:19] Chuck: Yeah. Yeah. yeah.

because it goes

from

[00:11:22] Robbie: Yeah, 12 6 3, yeah.

[00:11:24] Chuck: yeah, the next gen. So, I think you settled on a seven, officially, his

[00:11:30] James: I think that, that sounds right. It is very good. I'm, um, I'm liking it.

[00:11:34] Chuck: Excellent, excellent. Robert?

[00:11:37] Robbie: Yeah, um, I don't know. I like it pretty well. And I'm trying to think of like what it's similar to. But it's kind of like, it's spicier than I expected it to be. But it's not, um, not as like, tasty as a rye. So, I'm gonna keep it in that same category and I'm gonna give it a 5, I think.

[00:11:59] James: Okay. You're more seasoned than I am. Um, I'm not, I usually drink wine actually.

[00:12:04] Robbie: Yeah, I love wine

[00:12:05] Chuck: Well, then, you have, you have a similar vernacular with which to, to draw from, you know, like, just pick some arbitrary words that kind of, yeah. There's a whole thing with whiskey, too. It's like, kind of similar. Um. Okay, so yeah, this is a bourbon. I have done myself a disservice by getting a slightly different expression of it.

So, for me, yeah, that's, that's one kind of downside is it's a little weak. Um, and I'm feel, you know, I'm getting some of the sweetness and the corn forward bit of it. So, I would like to have a little bit of heat or a little bit of punch. I don't mind a sweet whiskey. I just want it to have a little punch to go along with that, kind of round it out.

Interesting like, Herbal finish on it. Yeah, I definitely would like to try the one you guys have. I think that would probably do a little more with this for me, but it's tasty. It's like an easy to drink. It's got some interesting flavors there. I probably would put it at a five as well, just because I'm kind of missing another, a couple of components of that.

But that's just because I don't know how to read. And that's, uh, you know, that's,

that's

[00:13:14] Robbie: Yeah, that is hard.

[00:13:15] Chuck: I, made it to 46 before that really started to affect me. So I don't know. I can draw social security soon and whatever else. So I'm

[00:13:24] Robbie: there you go. Yes. Side note to that today. I learned that there's a cap to how much you can pay in social security.

Like you just stopped. Like my paycheck was higher randomly. And I was like, what is this? And it's like, Oh, well, you've paid the max amount of social security for this year, so he was not taking it out.

Yeah.

[00:13:43] James: Wow,

[00:13:44] Chuck: That's interesting. That's both interesting and disturbing. Like, how does that ever happen

[00:13:51] Robbie: I thought it was like based on your income, so it should like just scale up if you make more and then you could get more social security when you take it is what I thought, but I don't know. I don't know how it works. I never looked into it.

[00:14:04] Chuck: well. Hmm, I have some theories on this. If you have multiple streams of income, and are contributing from more than one stream of income, you could cap.

[00:14:13] Robbie: Oh, well that may have fucked me because I didn't think about that from getting the extra income. Uh, oops. Well, we'll see you at tax time.

[00:14:24] James: man. The one I like, I'm, I cannot deal with taxes. Like I understand, I just can't like looking at my paycheck and understanding the different line items and everything. There's nothing that I enjoy less in life than trying to decipher government rules for like how they distribute things. Like I get it, take it, just make it easy and never make me think about

[00:14:45] Robbie: Yeah,

[00:14:45] Chuck: So you're a proponent of the flat tax. Are you ready to get political on this?

[00:14:48] James: no, I just want everything to be easy.

[00:14:50] Chuck: No, I, uh, same thing. Yeah, no, I love that. I saw

[00:14:53] Robbie: AI tax. That's how you

[00:14:56] James: I just want them, make it easy, don't make me even have to file taxes, like, just do it automatically. Isn't there a way that we can do that?

[00:15:03] Robbie: There is, but

then the IRS has to go away.

[00:15:05] Chuck: Right, or do they, or does Intuit

[00:15:08] Robbie: the lobbyists are into it, or why we have taxes like we do, because they make

billions of dollars. Ha

[00:15:14] Chuck: with a flat tax or a tax law that was completely transparent that told you, here's your income. You must pay this much. Okay. That's fine with me. But they don't say that they're like, you know, here are the rules, do some math and figure it out.

Okay. If I get it wrong, will you let me know? No, you go to jail, but that's the problem with it. But uh, so James, here we go. We can start, we can do a new startup right here. Uh, Robby wants to do Shady Tax AI,

[00:15:45] Robbie: okay, let me explain, let me explain. So, I had a CPA

[00:15:49] Chuck: we're not, we're

[00:15:50] Robbie: Yeah, the name will be flashier, but I had a CPA once that was like... Uh, you know, I know that IRS won't require receipts for donations if, unless you have over 10, 000 of donations. So we'll just say you donated 9, 999, they won't ask. And I'm like, cool, like, stuff like that should be built into an AI program that just goes, you don't know all this tax because of all these rules and just takes it all off for you.

[00:16:14] Chuck: did you donate 9, 990?

[00:16:18] Robbie: I'm not, I don't have the receipts right now, but uh, Yeah.

[00:16:22] Chuck: was over seven years ago, so I

don't

[00:16:24] Robbie: Listen, the IRS is, like, way behind. Don't worry about it.

[00:16:28] James: I agree. I agree.

[00:16:30] Chuck: Yeah, I think we can all agree that, uh, that, I mean, there's a hot take that I respect my government and would not try to break any laws.

[00:16:40] James: Me. Yeah. Me

too. Perfect.

[00:16:42] Robbie: Yeah, no, I don't want to break a law. I just want it to be, like, the edge of legality. Like, like,

[00:16:48] Chuck: Yeah, like, I want to meet the minimum required of

me.

[00:16:52] James: I've been judged by my CPAs before for saying that exact same thing to them. Like, Hey, I don't want to break laws. Just like, help me. Like I don't know the rules like you do. And they're like, what? Do you not agree with taxes? And I'm like, wait a second. That's not what I said.

[00:17:04] Chuck: That's not what I said. Yeah. And why is that okay for some other public figures to say, like, I'm not breaking the law. I'm just taking advantage to the highest degree made available to me. Why isn't that available to

everybody?

Right? Like you have to have an income. Yeah. You, you, you have to have an income threshold before you're able to like fuck people over.

I don't know,

[00:17:26] James: Yeah. And then you find yourself in a back alley dealing with a shady CPA that like you'd never were comfortable with in the first place. Yeah.

[00:17:34] Chuck: I'm wondering if we can push this episode, Robbie, to a degree where James regrets this decision.

[00:17:40] James: Oh, it'll probably come out naturally. Just a reminder, this is 100 proof and yes,

[00:17:45] Chuck: There we go.

[00:17:46] James: So,

[00:17:46] Chuck: Alright, alright, we're gonna, we're gonna dial it back a couple of,

[00:17:49] Robbie: Do some hot

takes. Mmm. I just took a sip. I can now. You want me to go? Okay. Uh, in TypeScript, inferred types are explicit types.

[00:18:03] James: so I have struggled with this. I actually did a talk in Ann Arbor recently about if we could build a system for inferring types and payload. and when you click through inferred types, you have to navigate a sea of mysteries every time. By the way, this has transitioned very quickly. Now we're going, we're going hard on TypeScript at the moment.

we generate types with payload. and that came out of necessity because the way that you define your schemas in payload is, dynamic. So it's functional. You can write functions that return, um, and wrap around your entire config and augment your config with different things and, trying to infer types on a dynamically composed object.

is incredibly difficult. But not only that, like that's why we did generative types in the first place, but I think that the experience of like have you ever used an API like library that you click through and BAM! The type is right there in front of you and it is as explicitly defined as you could ever dream for.

There is zero questioning you know, you don't have to click through 13 different layers to get to the final like, oh this is what I was looking for in the first place. It's just right there.

There's just trade offs with everything in tech, but I would say, uh, we picked generating types very, uh, out of necessity, but it was, I think, a good move for us.

[00:19:19] Chuck: So I'm not a coward and I would say that if you are providing a service to other developers that explicit types is the way to go. Now, if you are ingesting services or packages, then I think in that case, you should hope that the inferred types are the right. They're, they're deciding the inputs and I think that's the right time.

And then it's sort of whatever is custom in your application are the things that you want to declare. And then otherwise I'm trusting these other tools to give me the right answers and go from there.

[00:19:56] James: I think you nailed it. I don't know if you guys saw or not, but we just, uh, built out Postgres support with Drizzle. And Drizzle is classically inferred types, and they do it really well. and it's a beautiful thing. Like, the developer experience with proper inferred types, even if you do have to click through a couple times, Just instantly being able to see all of your files turn red if you did something wrong.

Like, that, that's really powerful stuff. And for them it works. That's exactly what you said. Like, if you're building something and you're defining your own schema, then maybe you can infer and it's going to be a huge win. I, I love that. I wish we could get to that. I just, you know, it's compromises. I don't say that because I'm a coward either.

Like, I... I feel very passionately about, like, I wish that someone could solve this in a very nice way for the TypeScript, um, ecosystem, but it's trade offs either way.

[00:20:43] Chuck: Yeah. So I would, I'm making more of an inside joke, like Dax from SST was on and he was just like. Well, if you don't you're a coward kind of thing and it's

[00:20:52] Robbie: Yeah, we were like, 90

[00:20:54] Chuck: should explain

[00:20:54] Robbie: say, it depends, and he was like, well, 90 percent of people are cowards.

[00:20:59] Chuck: Exactly, and there

[00:21:00] James: I, I've got a thick skin. I, you, you can just straight up call me a coward. Maybe I'll be like, am I, but it doesn't. Um, I, I met Dax, uh, last year at React Miami. That was a fun conference. Uh, we're going to go back to that this year for sure.

[00:21:13] Chuck: Well, we are going to force our way into that

one

way

[00:21:16] Robbie: by the time this episode airs, we'll be going, hopefully.

[00:21:20] Chuck: Yeah.

[00:21:21] Robbie: we

haven't, I haven't

nailed it. down yet.

[00:21:23] James: it. I would suggest it

was a fun time last year.

[00:21:26] Chuck: Yeah. Yeah That's what I hear. I I think that so I don't know, uh, full transparency, Robbie isn't the biggest react fan,

[00:21:34] Robbie: doesn't matter though, I'm, I'm here for a good conference, regardless of technology.

[00:21:39] Chuck: exactly like so many peripherals around that conference, I think it's like a good energy, good conversations. There should be some Robbie points of view saying like, are you sure that's the best way forward? Just keep asking right or wrong, you know,

[00:21:54] James: Hey, you guys want to draw out some hot takes from me? We can talk about React right now. Like, that, I feel very passionately about many of these aspects. Like, okay, can we go into this for a

[00:22:05] Robbie: Yeah, yeah, we can go wherever.

[00:22:07] James: Every day I get asked to rebuild our admin panel in SvelteKit. Literally every single day. That's obviously a gargantuan lift for us.

Like we, we are, our admin panel is in react and the advancements in server components and server actions will pay dividends for our product outright. Instantly, instantly. I did a proof of concept to moving to next JS, like two days ago, , for our internal side. I'm really, really excited about it, but Honestly, I, I've never used Svelte kit for a production app.

And I don't have anything against it. It's almost like, do I need to look for something better? Like, do I not know that there's something better out there and I should be doing research, research and reconnaissance as an engineer? Like, and it's almost like I've gotten so good at react that it does what I need it to do.

There's a lot of packages out there. That's where the jobs are. That's where my enterprise customers are building on. Like, do I need to look into spelt kit right now? Even if it's better, objectively better. I don't know.

[00:23:03] Chuck: Well, I think it was like, what's

[00:23:05] Robbie: that happened when React came out. Everyone was like, hey, I want to rewrite the admin panel in React today. And they're like, no, like React is new. And like, yeah, just saying.

[00:23:15] James: Well, here's the, let me, let me give you this. when react came out, I was using angular JS and since the dawn of angular JS, I hated it. I did not think that

[00:23:26] Chuck: Everybody did.

[00:23:27] James: worked. It was overly complex and I had to learn all this angular vernacular that I would never, ever like. It seemed like a relic of old days where, like, computer science geeks were trying to, like, build Ferraris for everything, and, you know, for me, I never liked AngularJS, so if there was a true component based, like, approach, I was interested in learning about it.

I didn't learn React because, it was the hot thing. I learned it because, oh, damn, I like those ideas, and AngularJS is not working for me.

[00:23:57] Chuck: Right.

[00:23:58] James: But here React is working for me. So, why would I look for something else? Like,

[00:24:03] Chuck: componentized things. I mean, I remember deploying the first react components into the national geographic website, and I was just like, it's simple. I'm productive quickly. I just come off complex frameworks. We had angular backbone and all these other things. And I just want this thing to be reactive. And that was like hot and exciting and, you know, things kind of scaled up and down from there, but, uh, I do want to come back to, to the thing that you mentioned around, um, Something like SvelteKit being better.

I think better is subjective unless you define what better is for you and your use case, there's a lot of baggage that goes along with those decisions within an organization. And it's like, if you were starting a Greenfield project and you were comparing all of those things from day one, possibly there are a lot of better options, right?

But that's not really where you're coming from. So what would you get out of a complete rewrite and a completely different framework? That's I think a reasonable question. Right?

Yeah.

[00:25:03] Robbie: I think,

[00:25:03] James: Nothing.

[00:25:04] Robbie: I think these days all frameworks are pretty good. And like, the only real difference is developer experience. So like, what do your developers want to write in is like the only choice. Because like, we're optimizing for like, Oh, this is 5 milliseconds faster than this one. Nobody cares. just write in what you're productive in.

So, I think that would be, if your entire team, decided they only wanted rights felt, all of a sudden. Then you would be a little screwed and have to do that, but like, you know, I think if React is serving you well, why change? I

[00:25:42] Chuck: you on a team with Rich Harris, that's probably the time you have to think about a rewrite.

[00:25:49] James: Let me, let me put it this way. Guillermo would only ever do that if Svelte was offering like, opportunity to grow payload. And if, if that was true, then I would do it. 100%. I don't, I don't even need Guillermo to buy me for that. If that's the opportunity for me to grow and for me to make people happy, then I'll do it.

that's, it's as simple as that. I like to break things down into like, wasn't always open source. And when we launched, my number one thing, you know, I'm a midwestern guy. I'm all about like, I'm not conservative. I don't know why I keep bringing it back to politics. I didn't even mean it that way.

Like personally, um,

[00:26:30] Chuck: you're in a flyover state. I don't know what to tell you.

[00:26:32] James: yeah, yeah, yeah, yeah. Wait, actually, interesting question. So Michigan. Is a firmly flyover state to you guys, like, would you say that? Like,

[00:26:41] Chuck: Well, I'm not from here. So

[00:26:43] James: well, like Indiana, Nebraska, Kansas, like North Dakota, South Dakota, but I feel like Michigan at least has some unique characteristics to it.

[00:26:53] Robbie: think so. Yeah, I think it's

[00:26:54] Chuck: I've been to Traverse City. it's

[00:26:56] Robbie: that part of the country that no one understands what states are where, but like Michigan's like the cutoff before that starts happening. Like, You know, you know North Dakota is above South Dakota because of the names, but like otherwise what else is out there, right?

[00:27:09] Chuck: Oh right?

yeah. It's, it's like, Wisconsin is basically the last state that people actually live in. And then it gets a little

[00:27:17] Robbie: I think the primogen owns all of, uh, is it South Dakota or

[00:27:21] Chuck: certain his father in law is the governor of South Dakota. I'm just putting it out there. Yeah.

[00:27:29] James: right. Um, I got to meet him while we were at the next conf. That was great. what was the original thing we were just talking

about?

[00:27:36] Robbie: I don't

[00:27:36] James: A crack at, um,

[00:27:37] Chuck: I made a Michigan joke. I mean, I grew up in like, uh, Cincinnati area, Northern Kentucky. So

[00:27:43] James: Okay.

[00:27:44] Chuck: how to play Euchre.

My wife's family is from Michigan, so I'm not naive to

the

[00:27:50] James: So, do you know how to play Euchre because your wife is from Michigan? Or did you know that while you lived in Cincinnati?

[00:27:56] Chuck: Yes. So I learned it in eighth grade.

[00:27:59] James: And did you, do you think that Euchre is a Michigan game or a Midwestern game?

[00:28:04] Chuck: I thought it was a Midwestern game.

[00:28:05] James: Oh, I'm not mad. I'm happy. You know how to play Euchre. Euchre is a great game. I feel like, like we've got things like that that nobody else knows about, but oh man,

you get some of this whiskey

around the table with

[00:28:18] Chuck: Oh, I, I have, so it's funny too. Cause my wife's maiden name is Griswold. And so you have a Griswold Christmas or Thanksgiving or whatever else you're sitting around tables playing Euchre through the, through a good half of the night, for sure. E U C R E, by the way, for our one listener, who is probably not from Michigan, so we need to make sure they know.

I don't know even enough about them to know if they're male, female, or, or they, but, one listener.

[00:28:48] Robbie: No, I I know those stats actually I don't know if we should, uh, we should say them publicly, though,

[00:28:53] Chuck: Let's reveal them live, right on

this,

[00:28:55] Robbie: Um, but yeah, I didn't realize Euchre was a Michigan thing. That makes a lot of sense because my parents were in like a, they would switch whose house they were playing at and they would play and the people that started it had moved to Virginia from Michigan.

So, makes a lot of sense.

[00:29:10] James: Well, it's debatable if it's Michigan or Midwestern, as we've learned.

Um, a lot of my friends know how to play it. The ones that don't know how to play it are like adamantly against learning it, which I don't understand that. Like they live in Michigan. Come on, give it a shot. I

[00:29:24] Chuck: exactly, and it's fun.

[00:29:27] James: Yeah,

[00:29:27] Chuck: It is

[00:29:28] James: a competitive game.

Strategic. I love it. I play Counter Strike and that is the strategic like top, like the most strategic thing you can do is Counter Strike. Love it. Love it. Uh, we don't need to get into that though.

[00:29:42] Chuck: Yeah, that's the, that's the off limits discussion here. So, uh, we do have more, yeah, we'll get to video games, I'm sure, at some point. We do have more hot takes, so we'll give you a shot at some of those.

[00:29:54] AD SPOT

[00:29:54] Chuck: Tailwind or Vanilla CSS?

[00:29:58] James: vanilla CSS, big time all day. 10 out of 10. Um, I think because I know vanilla CSS, I don't need Tailwind. I will tell you that right now. Like I don't like the way that Tailwind classes look. I know you can fix that. But, CSS is not scary to me. Flexbox is not scary to me. I don't need utility classes that I have to then learn to be more effective when I can just write the CSS and fully understand it without going to another set of documentation.

[00:30:26] Robbie: Follow up question. Do you put your CSS like co located with your components or like, how do you know if CSS is not used?

[00:30:35] James: So I do co locate CSS with components. But I don't even use CSS modules for payload, because we need to expose class names that can be extended and, styled. So, we have, we use Sass, , and, you know, this, this could be redone in the future, but for now, , we have a CSS file right next to the component.

And there's a folder that encapsulates both of those things, and, That's a true component based mentality right there. that's one of the driving factors that I went to react in the first place is because I could encapsulate a full component, all of its logic, exactly how I wanted. , and I never moved away from it.

I don't have anything bad to say about Tailwind. our new website will use Tailwind when it goes out. Nowadays most of what I do is on the back end. And on optimization and the database layer and things like that. you know as an engineer you kind of, you do something enough and then you don't ever want to do it again.

And that's how I feel about CSS at this point.

Tailwind won't fix that for me. Like I'm a lost cause at this point. I don't think I will learn Tailwind. I might learn enough to like be dangerous with our website.

But I just, just give me CSS and get out of my way. Like, that's it.

[00:31:43] Robbie: Yeah,

[00:31:44] Chuck: it's fair enough. I can definitely, uh, empathize with the, you've done something enough where you're just like, I don't care, I've retired from

[00:31:51] Robbie: yeah, I think we would all skip styles if we could

[00:31:55] Chuck: Yeah.

[00:31:56] James: yes. You know what I like though, about styles, is that, you ever think about how many of the apps you use every day are electron apps

[00:32:04] Robbie: Mm hmm a lot of them.

[00:32:06] Chuck: Oh yeah.

[00:32:06] James: the web is winning. And I'm a big fan of that. I never got into native development at all. I always had this feeling, like, why am I downloading an app to, use a website?

Classic example, Reddit. I will literally die in hell before I use the Reddit app.

[00:32:22] Chuck: But they're gonna make you pick every fucking time though, aren't they?

Every time you click a new link, you're gonna have to choose.

[00:32:30] James: I hate that so much. literally that affects my well being as a human. Um. I, I'm just not a fan of it. Like, I'm very proud that the web is winning like this. And we had this discussion on our team today, like, you're using MongoDB Compass or Beekeeper Studio, whatever. Those are both electron you're using vs.

Code you're using. Um, what else, what, what else do we have? Slack.

[00:32:51] Chuck: Slack. Yeah, Slack's the big one.

[00:32:53] James: Yep. All these apps are built with CSS and HTML and JavaScript.

[00:32:58] Chuck: What about Teams? If you hate yourself and want to stab yourself in the eyes, go ahead and download Teams. Microsoft Teams.

Brought

to

you

[00:33:05] Robbie: listen Jonathan

[00:33:06] Chuck: Suicide.

[00:33:07] James: I cannot, I cannot, I

[00:33:10] Chuck: not on this

[00:33:10] James: installed.

[00:33:11] Chuck: theme.

[00:33:12] Robbie: But he's a

[00:33:12] James: I have to, no, I'm not. I'm not on the team's team at all.

[00:33:15] Chuck: Yeah, I'm not saying Microsoft is bad, Jonathan.

[00:33:19] James: I

[00:33:20] Chuck: I'm saying Teams is the worst thing I've ever used in my life.

[00:33:26] James: agreed completely.

[00:33:27] Chuck: Yep.

[00:33:27] James: Microsoft, I've, I've gained a lot of respect for them actually over the last, like, I don't know, six or seven years.

is relatively unmolested. Great. NPM VS code TypeScript. They're doing things for us right now that I would not have thought that they would do like 10 years ago.

[00:33:45] Chuck: Oh, yeah, for sure. 10 years ago, if someone told you that, like, Microsoft was going to be one of the biggest players in the open source space and the developer space, you would have been like,

yeah, okay. Nice try.

[00:33:59] James: percent. Yep. Yep. But they're, they're doing the right things right now. I actually, I, teams aside, I think Microsoft is doing the right things. Uh, big fan.

[00:34:06] Robbie: Yeah, I think they're doing a lot of good stuff like the only thing that annoys me is just that Windows isn't better than it is like if it were just a little better and Didn't make me have to buy a license every time I'll even pay you a large upfront fee to never buy a license ever again Yes

[00:34:28] Chuck: I don't really know. I have a, like, you know, I turn it on and I put in a little code and then I click FIFA and then that's it.

[00:34:34] James: That's the same with me, but Counter Strike. So,

full circle. Um, you want to know what it is for, with Windows that really gets me? Um, the fonts. The fonts and the font aliasing. before I moved over to OS, um, well, it's not OS X anymore. How do people casually refer to the Mac operating system?

[00:34:52] Robbie: OS is what they call it now.

[00:34:53] Chuck: That's what they call it officially. But I always say it's like Twitter. I still say Twitter. I still say OSX, so I don't

[00:35:01] James: it's hard hard habit to break. But like when that moment when you move from Windows over to Mac OS and you see the chunky crispy fonts and you're like, Oh yeah, like this, this has a layer of. Happiness on it that I just wasn't having. That drives me crazy. When I go back to Windows, and I look at the aliasing and everything on the fonts, I can't do it.

Instant opt out for me. Zero percent. They could make some serious wins if they just put a little bit of time into the design of Windows. Well,

[00:35:35] Chuck: fair statement.

[00:35:36] James: you know, future creative director of Microsoft here.

[00:35:39] Chuck: Oh, there you go. That's who's actually going to buy payload

CMS.

So

[00:35:43] James: buys Payload, yeah.

[00:35:44] Chuck: yeah. And then they're going to kind of bump you over. you want to go through any more of these hot takes, Robbie, or you have some things that you want to discuss otherwise?

[00:35:53] Robbie: let's just skip the rest of these, I think. Well, no. I do want

[00:35:57] Chuck: We've kind of touched on a lot,

[00:35:59] Robbie: Um, cause I don't know if you have a spicy feeling on this or if it was just kind of... Happened to be spicy in your tweet, but you were talking about, um, Like, you really liked working in an office and that being in an office in person was the way to go.

tell me about that. Like, uh, you think that's better than remote?

[00:36:16] James: I don't think there's a black and white answer here, but I can tell you from the last three years of experience working from my house that I have become sluggish in my entire life. And I feel like society as a whole is becoming sluggish. you go out to a restaurant. Today, driving around the city, I had to buy a new iPhone because mine, like, went into temperature alert mode for some reason, sporadically.

Like, it, my, my old phone is in the freezer right now, trying to fix it.

[00:36:45] Robbie: Yeah.

[00:36:46] James: Um, but anyway, I was traveling around the city and, like, going into, like, you know, a restaurant or a coffee shop to take a call or something, and no one's outside of their house anymore. No one is outside. You don't get dressed in the morning anymore.

When I was working from my house, I was working from a couch. Literally, half the day, I'd go and I'd lay on the couch, and I'd watch TV, and I'd work, and I'd write code at, like, two tenths of the speed, one fifth of the speed that, , I normally would if I had my monitors and my setup and everything. I strongly feel that, like, too much complacency is a detriment to any human being.

And for that reason alone, I think that getting your ass out of bed, out of your house, out of your comfort zone is a good thing for you. I have friends that are like triathletes and stuff. I hate running. I can't run to save my life. But the energy level that they have, I am truly envious of. They have like this unending pit of energy and commitment to their hobbies and everything.

And they don't sit at their house all day. They might work remotely or hybrid or whatever, but they have so much that gets them going right now. All I have is work. I work my ass off. And if I'm working from my couch, I'm going to turn into more of a slug than I was during COVID. And if I get into the office and I work with people in real life and we all try to do the best work of our lives and push each other and try to make each other proud, that can't be replicated in remote work. , that said, I'm not an idiot and I know that I'm always going to hire remote employees. And I also know that... This kind of like dream in my head of efficient working and like proud work that you do in the office is not applicable for all companies. I've consulted with massive enterprises so much over the last couple of years and like their, their entire aura of how they work, it's built around.

And that's fine. It works for them. That that's totally fine. But for me, like I want to be friends with the people that I work with and I want to do the best work of my life over the next X amount of years.

And if I can optimize that I will. And to me, that's why I'm sitting in my office right now.

[00:38:54] Robbie: Yeah. Yeah, I do think... That, like, if you're with people that you need to do work with in the office, that makes a big difference. Like, I am forced to go to an office three days a week, and none of the people that I do any work with are there. I just have to be there, and I just do nothing but, like, work and go home.

And, like, that is stupid. I agree that if there are people that you can, like, you know, you want to work on a feature, you bring them into a room real quick, you guys chat and, you know, work on stuff, whatever, that makes a lot of sense. But, like, this whole, like, blanket RTO policy is some bullshit, in my opinion.

[00:39:29] James: Yep. Agreed.

[00:39:30] Chuck: I think, yeah, both strong answers to either side, uh, probably the wrong answer for a lot of people. If you're remote from home, you don't have space for a good setup or just being in your home is bad. And I can definitely, like, I'm remote, but I'm out of a co working space. I have an office here.

Because if I'm at home, I'm accessible and someone will interrupt me. And there's no disconnect between, like, when Daddy's at work or when Daddy's at home. And then also, you end up... Yeah, you're probably maybe not as productive because you got in interrupted and then you kind of come back to it and you're passively in and out throughout all of your waking hours.

And that can be challenging too, like having that shift from one to the other. And then conversely, if you're like in office with nobody you work with, like it's superficial and stupid

too. So

[00:40:23] James: Absolutely. 100%. The world has changed forever. It will never be like it was pre COVID and that's something that the economy is going to have to make peace with and that scares the hell out of me, honestly, another like last, thing on my mind about that is millennials are famous for bitching about the world that we've been given you know, the problems are always the boomers, like whatever, it's their fault.

We didn't, yeah, maybe a little bit,

[00:40:47] Chuck: Yeah.

[00:40:48] James: but yeah. We're not really trying to help ourselves right now. Like, there's a, there's an oncoming economic disaster in commercial real estate, in my mind. Like, as Southern Pacific and many other cities and restaurants and like the foot traffic of downtown areas and everything.

Like, this is a, this is something that will happen that needs to be solved and it's going to be on our shoulders to fix it. And we're not really doing anything about it right now. It's, it's sitting there and it's cooking in a pressure cooker right now and no one is really attempting to rectify that.

Instead, they're being extremely vocal about hating office life and hating any idea of getting out in public every day. And that they're just blind to the fact that this has real world consequences. So, I'd like to have a little bit more like, um, big picture thinking with my, my generation entirely about that.

[00:41:37] Robbie: Yeah. Yeah. I have more thoughts, but I do think we should move into more, um... technical things and things about payload and, and stop talking about this for a minute, if that's cool with you guys. Um,

Yeah.

so I, I was curious, and you mentioned earlier that, um, you were not initially open source, but you are now.

so I'm curious, like, why the switch, and then also, like, as an open source product, um, you know, what's the strategy there, like, behind monetization and, you know, all of that, I guess.

[00:42:10] James: So backing up to when we first launched payload, I knew that I wanted to do this for the foreseeable, like, rest of my life. Like I've been passionate about lacking a tool that I can build efficiently with and quickly with. I knew I didn't want this to be a side project. I knew I didn't want this to be something that.

Uh, I could never make a living off of and the most logical way for me as you know, rewind was to put a licensing fee on the product. I always have hated like the walled garden approach of SAS companies where like you have to literally pay for bandwidth and pay for seats and you don't own your database and you don't own any of like the server infrastructure.

You can't self host it. You can't build the back end how you want. I always hated that. So like. If I'm going to go self hosted and if I'm going to go like put it on your own server and run with it, I needed to figure out a revenue model to support that and that was the first one that came to my mind.

But when we launched, I got crazy pushback from my licensing fees and they were cheap. They're like 22 a month, but people, they don't like paying for software. Like the freelancer devs, the, the small agencies, , they don't have the budget, they're not set up to pay for software. they would prefer if something had a permissive license so that they could build products and maybe resell products built on Payload and everything all of the above.

And I heard very consistently that Payload should be open source. Thanks You know, at first I was like, of course you just want something for free, whatever. But like, I always, I use open source software. I've built my career on open source software. And at a certain point I was like, you know what really, the number one thing I want to do is be valuable to like engineers that are building things.

And if I can increase that value by becoming open source and truly sticking to what I'm trying to do by like catapulting their engineering, like, process Process. If I go open source, I'm going to do it. And that's, what we did. We pulled the plug and we went completely MIT back May of last year. And it exploded.

I am so happy that I did that. I just basically what it boiled down to is that I listened to the people that were using payload and they were right. And There's a lot of lessons in there for entrepreneurs and for founders and for whatever else, like listen to the people that are using your software because they're the ones that are going to make you realize your dreams and your goals.

Um, so we, we've been open source for over a year, almost a year and a half. And, um, the revenue strategy there is something that, you know, before I went open source, I had to make sure that there was some way that I can still make this a sustainable business. I don't want to get a job ever again. that's not in my horizons, but what we landed on was a hybrid of, , cloud hosting.

So like, if you want to deploy payload right now, you have to go sign up for an email vendor. You have to sign up for cloud flare. You have to get compute. You have to get a database vendor. You have to get file storage on S3 or something similar. That's five services right there that you have to wire up.

And then you still don't have like. Environment sync, like for a CMS, if you want to have a staging CMS and then you want to have a production CMS, you have to wire all of that up yourself. And that is an insanely difficult thing to do. And if you don't know Linux and if you don't know DevOps, you're out of luck.

So we built Payload Cloud and that's partly our revenue strategy, but more so than like the driving force behind our revenue. That's like lowering the barrier of entry and guaranteeing positive experiences with Payload. The true revenue will come from enterprise partnerships. We already have a good amount of enterprise customers that pay for premium features and premium extensions and integrations that we build for them.

Microsoft is one of them. So that's one name that I will throw out there. We're working with Microsoft. We have for a

long time.

[00:46:03] Robbie: is great.

[00:46:04] Chuck: team sucks, but

[00:46:06] James: Team stucks. I don't care if they know that.

[00:46:09] Chuck: they should know that because maybe they'll do some do better. You

[00:46:12] James: I'm sure that they already do know that actually, and I haven't used the new version of Teams yet, so I can't comment on that,

[00:46:18] Chuck: I tried that toggle and then it basically went into an infinite loop of shit. So I just

[00:46:23] Robbie: Yeah, they're

[00:46:24] Chuck: So I don't know if the new one's

better.

[00:46:26] Robbie: for Teams right now, so I think they know they need to

[00:46:28] Chuck: Maybe.

[00:46:29] James: I'd like if they did. They need to fix the fonts. Back to that. They need to Seriously, like just the design in general. I

can't look at, I don't like it. but anyway, so enterprise partnerships are huge for us building significant critical applications with payload unlocks, um, revenue that is significantly more meaningful than like a 35 a month cloud subscription.

we can build significant things that power enterprises with payload. It's basically like an application framework, right? Like you can build internal enterprise tools. You can build, not only just powering websites. You can like a product catalog manager, for example, or like an issues tool.

Like, you know, massive enterprises have Jira. They have ServiceNow. They have like 13 other services, Zendesk. Um, depending on the type of issue, they have to be routed to different places. So we see like all these like internal enterprise apps being built on payload where they need integrations and they need specific enterprise features that don't mean anything to the open source crowd, but they're invaluable for enterprises.

That's our revenue model. So, we charge, significant money, more significant than 35 a month for enterprise partnerships and I think that's where our, um, ticket lies in the future. It's been going well so far,

[00:47:44] Chuck: So, so essentially, even though it's called payload CMS, you don't see toppling WordPress as a target in your future. Like it's just apples and oranges, essentially.

[00:47:55] James: I have stopped referring to payload as a CMS. Our website still refers to it as a CMS, but I think the word headless CMS is bullshit. Like that needs to go away.

First and foremost, every single thing that has been built in the last five years has an API behind it. If it doesn't, then you're doing something wrong.

Headless just means it has an API. That's it. ANd it's almost superfluous to say that, oh, we're a headless CMS. That's a buzzword that might help you on Google, but it doesn't mean anything. Really what payload is, is it's a backend with an API and an automatically generated admin panel because every app needs to have some sort of admin panel to be able to manage it.

So in that way, we're almost like a retool that like you can build an app quickly.

But you still get your own database and you still get endpoints with full access control and hooks and a beautiful full admin panel that you can extend with your own React components.

[00:48:53] Chuck: on. Don't say hooks. It's a trigger word for Robbie.

[00:48:56] James: Well, for me too, actually. Um, I agree. If I ever have to go to the WordPress codex again to read about their hooks, I will die.

[00:49:03] Chuck: Hold on a moment from our sponsor, uh, WordPress.

[00:49:06] Robbie: No, no Yeah, no, I I hate react hooks. I like class based things. So that's

[00:49:14] James: Ooh, damn, that's a hot

take.

[00:49:16] Robbie: I mean, so this is this is where we what we did, right? So like let's go back ten years ago We're like man. I wish we had classes in JavaScript, right like Java has it, like, object oriented programming is cool, like, we wish we could do that.

And then, like, we work for years and years and years and years, and finally get them, and everyone's like, Fuck classes, classes are stupid, I want this other stuff, like, It's really dumb, like, no one knows what they want, and, I also think that, like, constantly changing that target is dumb, too. I think someone, like, like a React or an XJS or something should just be...

Transpiler, and you should write the same syntax for the rest of your life, and they can optimize it behind that and transpile it into whatever weird shit they want. Because, like, I just want to be productive and not have to, like, change paradigms every five minutes.

[00:50:03] Chuck: so you don't believe in functional

programming.

[00:50:05] Robbie: I don't.

[00:50:07] James: Okay, coming from the guy that's advocating for Svelte.

[00:50:11] Robbie: Okay, Svelte has changed a

lot, though. I have not used... Uh, like the last couple of versions of Svelte, or, and I've never used SvelteKit, but, like the mental model in older Svelte was just like, just set a value and it just updates. I don't know if it's still

like that. I think runes are like, different than that now, but like, whatever.

Yeah,

yeah, that's,

[00:50:38] James: I like pure functions. I like input output. I like being able to read a function and understand it and not have to know much about, like, the programming language behind it to understand how classes or objects work.

I just want to know, like, okay, here's a function. Here's its arguments, and here's what it returns. And that's it. That's like the simplest, most pure form of programming to me. And if you can, that's self documenting. It's every positive adjective you can slap on a programming paradigm, functional programming has it.

If you look at the payload code base, we have one class, and it's payload itself. And everything else is functional programming. And I am a big fan of that. We have literal functions that are responsible for one thing, and you can read it, and you understand, okay, this is where this happens.

This is where this happens, and it's written linearly, so you can read from the top to the bottom of the file, and you can understand.

[00:51:26] Chuck: you don't, yeah, you don't have issues with classical inheritance, which is like the, the issue along that, right. That's classical inheritance is the biggest, like gotcha and, and, and object oriented

[00:51:40] Robbie: Yeah, if you,

basically you have to do class and not extend stuff. Like

composable classes, I guess.

[00:51:48] James: you want to know what classical inheritance means? Like, do you want to know what that is? That's like, I don't want to know what that

is.

[00:51:58] Chuck: Oh, okay. I thought you were about to school us. I was like, holy shit. He's about to drop the mic hard.

I was like, I thought I knew, but I'm about to learn.

[00:52:08] James: No, no, my, my point is the further you get away from simple, like conventions, the harder things are to manage.

And I think that's why MVC, like that whole pattern is gone. Like it's not, it's not real anymore. Like model view controller, like where does what, like the more you abstract and the more that you have these like new, like ideas. The further away from efficiency you get. And that's actually like, why I think functional programming is the way that we decided to build payload.

Because anybody can pick it up and read it. They don't have to have a PhD in computer science to understand the ins and outs of like, all of this with...

[00:52:45] Chuck: I know. No, no, go ahead. Sorry. Finish your thought. I was just like, I'm a, yeah, I'm about to like, whatever, come into a quasi hot take. And I'm sorry if I interrupted you or you're,

[00:52:56] James: Uh, I was uh, beginning to feel the effects of the 100 proof, so go ahead. ha ha ha ha

[00:53:02] Chuck: Simple as this. Right tool for the, for the job. Right. Okay. So client side, uh, in particular, but just web programming in general, I think, right?

Like systematic programming and web programming aren't necessarily the same thing. Although I do feel like we're, we're burgeoning on like kind of a renaissance of what is a web framework.

And. There aren't as many wrong answers as we thought there were, but you have to think about it as to like, who are you sharing these interfaces with? How, easy is that to use? Like all those kinds of things, right? Like, cause I was about to say, like, MVC is gone, but I think DHH very much disagrees with you because Rails is obviously in our purview all the time.

And I do think that like classic, uh, web frameworks, weren't necessarily wrong. , I think that we have, , answered a lot more questions across the client. I think servers have gotten cheaper and I think there's a lot of ways to provide, , power to our websites and value to our users. But that said, like, right, why wouldn't you ever choose the easiest answer?

Like if you're just like approaching a problem, why wouldn't you choose the easiest answer that anyone can? Contribute to that you don't need a PhD for for which shocker to anyone. I don't have

[00:54:22] James: Neither do I. Well, um, I don't mean to talk badly about MVC. Like, that's where I learned how to write code. And it was, long time ago. But just simplicity. That's all I want. I want things to be simple and declarative. I want to be able to read it and understand it. I don't want to have to learn what the at symbol is and then like all types of different crazy syntax

that I've never seen before.

[00:54:43] Chuck: for you, okay, I

[00:54:44] James: No, no decorators. No, zero percent. I don't want to deal with that. I want to function. That's it. And you know, I, I'm kind of pigeonholing myself and that's okay, but like, I just, yeah, I like simplicity.

[00:54:57] Robbie: Yeah.

[00:54:57] Chuck: And your career track isn't, isn't computer science, like, you know, innovation or something of that, of that nature. Like, right? Like, what are you doing? You're providing a tool that's accessible to people and for people and it's open source. So can folks all over the place kind of come in and understand what's happening here and give you valuable contributions?

That's, that's valuable. I get that. What about Counter Strike though? Like, so you're really good at Counter

Strike?

[00:55:24] James: I would say I'm pretty good at Counter Strike. I'm not like, amazing. I get schooled by ten year olds

all the

[00:55:29] Robbie: Oh,

who doesn't?

[00:55:31] Chuck: That's just getting older.

Like, yeah,

I, I, like tried Fortnite like twice, got smoked by some kids who hadn't hit puberty for sure, and I was like, nah,

[00:55:41] James: Yeah. Yeah, we um, Yeah, Fortnite, yeah. We played, uh, PUBG more than Fortnite

back, my, my, crew and I. But, uh, one of my co founders and I play Counter Strike together and he's better than I am, uh, for sure. But, we, we still have fun as, you know, I'm 35, so, get on there and there's a bunch of, like, Teenagers playing, but it's fun.

It's hard. I don't think the age has slowed me down though, in Counter Strike. I think it's more that like, you know, every generation, kids get better and better at something. Like, I'm also like, I've been skateboarding my whole life. And nowadays, the kids that are skateboarding are instantly learning 360 flips.

Instantly. And they are so technical and so balanced and composed, that like, back in the day, that was just never a thing. And kids get better and better at things. It's not that I'm slowing down. It's that the kids have time and commitment and exposure to these hobbies that they just invest so much more time into.

[00:56:39] Chuck: The generation before unlocks some things and changes the boards.

I was, I was

[00:56:44] Robbie: videos that told you how to do it.

[00:56:45] Chuck: well, hell Yeah.

I didn't, I, I say, I skated in the late 80s. And so, like, you know, the stuff we are doing, you're like, hanging out with friends, you're watching, like, Palo Peralta, uh, Bones Brigade skate videos, and you're like, let's try and do that in the Midwest, even though they have all this cool stuff in California.

Yeah, so I, I, yeah, I like Access, and all that. My, my son is seven, and when he wants to figure out something in a game, he, he knows to go to YouTube and look up people, and they'll show him how to do it, and then he'll go back and do it.

[00:57:17] James: Absolutely. I tried that when I was younger, but the videos might not have been as good back then. Like, learn how to do a 360 flip, whatever. That didn't, I couldn't get it. Somehow these kids are doing it nowadays.

[00:57:28] Robbie: Probably TikTok.

[00:57:30] Chuck: did you skate with Theo when you were at Next. js?

[00:57:33] James: No, but I do have a special bond with Theo because of skateboarding.

[00:57:37] Robbie: Yeah, so I do want to ask one question that we ask everyone before we end here. if you weren't in tech, what other career would you choose?

[00:57:45] James: Oh, something automotive. I would probably want to go into like racing, be a race car driver. Literally, I, I, on the video game topic, I play sim racing games a lot, like iRacing. That's a,

um, I... My dad had race cars growing up and he's a mechanic, an old Polack, angry, uh, Ham's beard, you know, all that stuff. But, um, back in the day, it would have, it would have definitely been a racing or an automotive career of some sort.

Like, maybe on the engineering side. I love engineering, all of it. Uh, if not that, it would be architecture, but something around those lines.

[00:58:19] Chuck: nice. Very cool.

[00:58:22] Robbie: Alright, uh, before we end, is there anything you want to plug or mention that we didn't get to?

[00:58:26] James: Uh, well, we didn't mention the, uh, move for payload to Next. js, and

that's coming up quickly for, uh, for our product, and I'm very excited about it. It's going to be a big deal. Um, we'll be a true, like, Next. js CMS. First party, like, build your next app right next to your CMS in the same repo with all the, like, the app folder will have the payload endpoints and it will have your endpoints, and it's going to be a very cool thing.

I'm really excited about that. I did a proof of concept, uh, a couple days ago. And got all the hard parts done in like an afternoon. And we're probably going to release a beta for that in the next couple months. And when we do, we're looking for feedback. So if you guys want to give it a shot, let me know.

Um, it'll be functional programming at its finest.

[00:59:13] Robbie: Hey, I do think Next. js fixed a lot of my qualms with React. So like, I'll give them props, they are a good framework, for sure.

[00:59:23] Chuck: Yeah, meta framework rails. Not the framework, but

[00:59:26] Robbie: Yeah.

[00:59:27] Chuck: you some rails for guard rails. I should clarify that statement. Absolutely. Agreed. If I never write another saga or thunk

or reducer I'd

[00:59:37] James: God.

[00:59:38] Chuck: fucking fine with that.

[00:59:39] James: Oh God, perfect examples of words that I wish I didn't know the

[00:59:44] Robbie: Yeah. Anytime you see the word thunk, like I saw this recently cause NullVox wrote thunk in a like Ember add on he was working on and I went, bro, like I just see the word thunk and my eyes glaze over and I'm like, dude, no, yeah,

[01:00:00] James: Same with Saga, like all of those, just so much complexity for such a simple problem. I'm, I've never, ever built an app with Thunks or Sagas or anything like that ever, never needed

it.

[01:00:12] Robbie: yeah.

[01:00:13] Chuck: for You

I never made it. I was just forced to do it. Forced to change things. And I was like, why is this happening?

[01:00:20] James: Yep. Yep, for sure.

[01:00:21] Robbie: Yeah,

[01:00:22] James: that's the, the ask is to let me know what you think when we release these updates.

[01:00:27] Robbie: we'll definitely check it out. yeah. Anything else you want to plug before we end?

[01:00:31] James: Uh, no, thanks for the whiskey. I'm gonna have another glass.

Thanks guys. Thanks for having me. It's been a great time.

[01:00:36] Robbie: Yeah.

Cool. All right. Thanks everyone for listening. If you liked it, please subscribe, leave us some ratings and reviews. We appreciate it and we will catch you next time.