skip to content
Podcast cover art for Prisma with Austin Crim
Podcast

Prisma with Austin Crim

Austin Crim from Prisma shares his journey from COBOL to modern web dev and explains how Prisma simplifies database management for JavaScript developers.

Open .md

Episode Description

Austin Crim from Prisma shares his journey from COBOL to modern web dev and explains how Prisma simplifies database management for JavaScript developers.

Episode Summary

Austin Crim, a Technical Support Engineer at Prisma, joins the show live at Remix Conf to talk about his unconventional path into web development — starting with learning COBOL at his dad's recommendation, working at a 130-year-old financial institution, and eventually teaching himself React before landing at Prisma. The conversation moves into a thorough Prisma 101, covering how the ORM lets developers interact with databases using type-safe, auto-generated TypeScript clients instead of raw SQL. Austin breaks down the distinction between Prisma Client, Prisma Migrate, and Prisma Studio, and explains the Prisma Data Platform's role in solving serverless connection pooling through its data proxy. A spirited discussion follows about database choice — Postgres, MySQL, MongoDB — with Chris admitting he just wants things to work without needing to become a database administrator. The hosts and Austin then pivot to Remix, discussing why Prisma sponsors Remix Conf, how Remix's server-first model pairs well with Prisma, and how frameworks like Remix, Next.js, and Redwood each occupy distinct niches. The episode closes with Austin framing the JavaScript ecosystem not as a pendulum but as an upward spiral, with Prisma still early in realizing its long-term platform vision.

Chapters

00:00:00 - Introductions and Austin's Background

The episode opens with playful banter about Prisma's logo before the hosts introduce Austin Crim, a Technical Support Engineer at Prisma who also dabbles in developer relations. Austin shares his unusual entry into programming: his father, a retiring COBOL developer, encouraged him to learn the language at a community college in Iowa, leading to an easy hire at a large financial enterprise where some code dated back to 1968.

After a couple of years working with mainframes, Austin taught himself web development starting with React, transferred internally to a Next.js team, and eventually discovered Prisma in his spare time. Inspired by content creators like Wes Bos and Kent C. Dodds, he became interested in developer relations and joined Prisma about seven months before recording. The hosts marvel at his journey from granddad technology to the cutting edge of the JavaScript ecosystem.

00:06:42 - DevRel Inspiration and the React Learning Landscape

Austin describes how getting involved in Tech Twitter exposed him to educators and content creators who were shaping the next generation of developers. He gravitated toward video content and was excited to learn that companies actually pay people to do developer education work. The conversation shifts into a broader reflection on learning web development today versus a decade ago, with Chris noting how much harsher and more fragmented the landscape feels now compared to the WordPress era.

Austin shares how doing Wes Bos's JavaScript 30 course revealed fundamental JavaScript capabilities he had never encountered while writing React professionally. The hosts discuss how React has become the default business framework — drawing comparisons to jQuery's former dominance — and debate whether the ecosystem is finally diversifying enough for alternatives like Svelte and Vue to gain real enterprise traction.

00:11:36 - Prisma 101: The ORM, Client, and Migrate

Anthony asks Austin to give the definitive Prisma explanation for newcomers. Austin describes Prisma as a tool that makes databases easy, functioning as an ORM layer in Node.js projects that replaces raw SQL with type-safe, auto-completed queries generated from a schema language. He explains how Prisma can generate a schema from an existing database using DB pull, making adoption straightforward for teams with legacy infrastructure.

The conversation unpacks the often-confused distinction between Prisma Client — the query interface used in application code — and Prisma Migrate, the CLI tool for generating and applying schema migrations. Anthony reflects on how Redwood abstracted both pieces so thoroughly that it took him a long time to understand they were separate. Chris then brings up Prisma Studio, leading into a discussion of the broader Prisma Data Platform and its role in the ecosystem.

00:16:44 - The Data Platform, Connection Pooling, and Serverless

Austin introduces the Prisma Data Platform, which includes a hosted version of Prisma Studio and the Prisma Data Proxy. He explains the fundamental serverless scaling problem: while compute can scale infinitely, traditional relational databases have connection limits. The data proxy solves this by handling connection pooling transparently, giving developers a single connection string that manages everything behind the scenes — a feature especially critical for Cloudflare Workers and edge deployments.

Anthony emphasizes how significant this is, recalling that Redwood apps in production frequently hit this exact limitation with no turnkey solution available. Austin notes the proxy was still in early access at the time of recording and encourages listeners to try it. The discussion touches on how Prisma communicates with edge runtimes via HTTP through the proxy, opening up new deployment possibilities that were previously difficult or impossible.

00:19:37 - Database Choices and the Paradox of Options

Chris reflects on the challenge of choosing between database providers and types when you're not a database expert. The conversation explores practical options — Railway, Heroku, PlanetScale, Render, DigitalOcean, and SQLite — with Austin emphasizing that nobody will go wrong picking Postgres. Chris candidly admits he doesn't know the meaningful differences between Postgres, MySQL, and MongoDB, and questions whether that's even his job to understand as someone who just wants to store data reliably.

Austin explains that Prisma supports multiple providers partly to meet enterprise customers where they already are, since large organizations rarely have the luxury of starting fresh. The hosts discuss database administrators, scaling concerns, and how developers often won't know they have a problem until things start failing. Austin points to emerging managed database companies as evidence that the ecosystem is maturing toward a future where databases are as hands-off as compute already is.

00:29:22 - Migrations, Type Safety, and the Prisma Workflow

Austin explains the distinction between relational database migrations — where schema changes require explicit SQL transformations — and MongoDB's schema-less approach where data structure is more flexible. The conversation evolves into an appreciation of Prisma's type safety, with Chris describing how defining data at the Prisma schema level and propagating generated TypeScript types throughout an application has become central to his workflow.

Chris highlights how tools like Redwood leverage Prisma's generated types to automatically scaffold GraphQL APIs and typed components, dramatically reducing boilerplate. Austin notes that the auto-generated TypeScript types work even in plain JavaScript projects through VSCode's built-in TypeScript support. The discussion also touches on enterprise adoption, where Prisma can inspect existing databases and generate schemas, making the transition feel almost too simple — prompting Chris's memorable reaction that it seems too good to be real.

00:34:23 - Remix Conf, Framework Comparisons, and SSR

The hosts ask Austin about Prisma's relationship with Remix. He explains that Remix's server-first model, where front-end and back-end code are co-located in single files, pairs naturally with Prisma queries — a workflow reminiscent of Next.js's getServerSideProps but taken further. Chris shares that after attending the Remix workshop, he can see a specific place for Remix in his business alongside his existing Next.js and Redwood setup.

Anthony offers a nuanced take on how Remix pushes the React ecosystem forward through its reliance on web APIs and leaner JavaScript delivery, while Austin asks the Redwood hosts about their framework's SSR plans. Anthony explains that SSR narrowly missed the Redwood 1.0 release due to competing priorities like TypeScript support, but is expected to be among the first post-1.0 features. The group agrees that framework diversity strengthens the ecosystem and that each tool should maintain its distinctive qualities rather than converging into sameness.

00:46:26 - The Future of Prisma and the JavaScript Ecosystem

The conversation wraps with a philosophical question: is the JavaScript ecosystem stabilizing or still in flux? Austin offers the metaphor of a spiral rather than a pendulum — technologies may revisit familiar patterns like server rendering, but each pass represents genuine improvement. He points to CSS as evidence that things have gotten meaningfully better over time, even when paradigms circle back.

From Prisma's perspective, Austin frames the company as still at the beginning of its long-term vision. The data platform represents the future, with connection pooling being just the first of many services Prisma can offer by leveraging its deep knowledge of users' data models and access patterns. The hosts close by collecting Austin's social handles and thanking him for being one of the show's first in-person guests, recorded live at Remix Conf.

Transcript

00:00:00 - Austin Crim

Chris, what is your favorite food from the UK?

00:00:02 - Christopher Burns

I think that's a very biblical question.

00:00:14 - Anthony Campolo

Austin Crim, welcome to the show.

00:00:16 - Austin Crim

Chris, thanks so much for having me.

00:00:18 - Christopher Burns

Thank you for being here.

00:00:19 - Anthony Campolo

You work at Prisma. Remind me again, what's your specific title?

00:00:23 - Austin Crim

My current title is Technical Support Engineer.

00:00:25 - Anthony Campolo

Right. And you were saying it's kind of like half support, half devrel kind of stuff?

00:00:29 - Austin Crim

Yeah, I have dipped my toe in the devrel side when my coworkers need help.

00:00:34 - Christopher Burns

Your first question always is, remember, Prisma is a 3D triangle logo. The 2D one is a different company.

00:00:41 - Austin Crim

We have had to answer that question unironically. We've had people open GitHub issues about our logo and say that it's not a real prism, it's a pyramid. So I closed those with extreme contempt.

00:00:53 - Anthony Campolo

That's absurd. And not the least surprising.

00:00:56 - Christopher Burns

It really depends if they're like, "I'm a graphics designer," or, "I'm just a guy who wants to be right," you know? But logos are artistic, and all the basic shapes are out there now.

00:01:08 - Austin Crim

They're out. They're done.

00:01:10 - Anthony Campolo

Yeah. There aren't that many. All right. This episode spun out real quick.

00:01:14 - Christopher Burns

We're going to get on track. The track is coming, you know.

00:01:16 - Anthony Campolo

Okay, so we are here together at Remix Conf. You're recording with us in person, in the flesh. I'm looking at you not through a screen.

00:01:24 - Austin Crim

You're looking at me very seriously, very deeply.

00:01:27 - Anthony Campolo

Which is great because you and I know each other through the lunch dev server.

00:01:30 - Austin Crim

Yes. Shout out lunch dev.

00:01:31 - Anthony Campolo

Yeah. And you are someone who has been working at a company that Chris and I know quite a lot about. We have both been using Prisma for over two years, Chris, probably even longer. So we'll be asking the tough questions. No, not really.

00:01:46 - Christopher Burns

The tough questions: did you know what Prisma was when it was called Graphcool?

00:01:51 - Austin Crim

I've heard of ancient days where we were called Graphcool, and we were some kind of hosted GraphQL service, but we try not to talk about that anymore.

00:01:58 - Christopher Burns

Yeah, it does.

00:01:59 - Anthony Campolo

Confuses people more.

00:02:00 - Austin Crim

Exactly.

00:02:00 - Christopher Burns

I do feel like in a startup, five years is like, you should talk to someone who's been at the company for five years. Like, I've seen some stuff, and we were different back then.

00:02:09 - Austin Crim

Yes, that's extremely true. You can tell right away who the people were that were there from the beginning, because they have kind of a battle-scarred look to them, for sure.

00:02:17 - Christopher Burns

We thought GraphQL was everything, but then we found out about this thing called REST and we were like, we could support that too.

00:02:25 - Anthony Campolo

So we'd love to hear about your background, how you got into coding, and then how you found yourself at Prisma specifically.

00:02:32 - Austin Crim

Yeah, for sure. I took kind of a winding road into the software engineer role that I'm in now. But it really starts with my dad telling me I should learn COBOL.

00:02:41 - Anthony Campolo

I wish my dad told me that.

00:02:43 - Austin Crim

And for once I listened to him and I had to tell him he was right because I went and I learned COBOL in a couple of years.

00:02:48 - Anthony Campolo

You learned COBOL as your first programming language. Are you serious?

00:02:50 - Austin Crim

My first programming language was COBOL.

00:02:52 - Anthony Campolo

You're definitely gonna be the first guest that has ever said that.

00:02:55 - Austin Crim

Yes. Yeah.

00:02:55 - Christopher Burns

I have only heard that government institutions in America use COBOL.

00:03:01 - Austin Crim

Totally true.

00:03:02 - Christopher Burns

Cobalt.

00:03:03 - Austin Crim

Cobalt.

00:03:03 - Christopher Burns

Cobalt.

00:03:04 - Anthony Campolo

A handful, probably not many.

00:03:05 - Christopher Burns

And I hear that the companies that still use it in good old America pay a lot of money for people who can write it.

00:03:13 - Austin Crim

Absolutely. And that's why my dad told me to learn it, because he had been doing COBOL for like 40 years and he was retiring.

00:03:18 - Anthony Campolo

He said he had insider knowledge.

00:03:19 - Austin Crim

He said, I'm retiring, and so was everyone else. And there's still a lot of COBOL out there. So I actually listened to him. I took his advice this time. I learned COBOL in a couple of years and got an internship and got hired right out of school to do COBOL. The interview process was basically, do you know COBOL? And I said yes, and they hired me.

00:03:35 - Anthony Campolo

Did they make you do Fizzbuzz in COBOL?

00:03:37 - Austin Crim

Nothing.

00:03:38 - Christopher Burns

What's your experience?

00:03:39 - Anthony Campolo

They took your word and believed you? Yes.

00:03:42 - Christopher Burns

What's your experience? I've got 40-plus years of family knowledge of COBOL.

00:03:46 - Austin Crim

Exactly. It's in my blood.

00:03:48 - Anthony Campolo

So when you say right after school, like high school?

00:03:50 - Austin Crim

Yeah. Good question. I went to a community college that taught COBOL, one of the few institutions in America that still teaches it. I went to Indian Hills Community College in Southern Iowa.

00:03:59 - Anthony Campolo

Shout out. That is such a fascinating background. Oh my God, it is.

00:04:02 - Austin Crim

It is very nontraditional, but in some sense it's very traditional.

00:04:05 - Anthony Campolo

Well, you went to school and you studied computer science. Kind of. You learned a programming language. I mean, that's great, I guess.

00:04:11 - Austin Crim

So, yeah. Straight out of school I got hired at a very large financial organization. Of course, they have COBOL there. It wasn't uncommon for me to open up some code and see that it dated to 1968. So I did that for a couple years, as long as I could take it. But while I was doing that, I taught myself web development in my spare time. So I started to learn React. React first, of course, because that's how you learn web development nowadays.

00:04:33 - Anthony Campolo

That's true. That's how I did it.

00:04:34 - Christopher Burns

Yeah, it was like, you're sick of going into the attic and blowing off the cobwebs, you know.

00:04:40 - Anthony Campolo

Cobwebs on the code.

00:04:40 - Christopher Burns

So you just keep going.

00:04:43 - Austin Crim

Going into the mainframe room and kicking the server a couple times to get my code to compile. So I taught myself web development in my spare time. I was actually able to transfer internally to a team that had a Next.js application, full-stack Next.js. So I went from COBOL to Next.js. Did that for a couple more years. From there, I discovered Prisma as well in my spare time, and really fell in love with the product and saw that they were hiring. And I've been at Prisma for about seven months now.

00:05:07 - Christopher Burns

I feel like you've been through a lot of pain going from COBOL, you know.

00:05:12 - Anthony Campolo

Did you ever create a React front-end for a COBOL back-end?

00:05:16 - Austin Crim

You know, I haven't yet. But what's crazy is...

00:05:19 - Christopher Burns

You could probably do a good job.

00:05:20 - Austin Crim

Cloudflare Workers supports COBOL. Wow. Look it up. It's true.

00:05:25 - Anthony Campolo

They support a lot of languages. Doesn't surprise me.

00:05:27 - Austin Crim

I have written a COBOL Cloudflare Worker in my day. But yes, I have seen a lot. I eventually got sick of looking at the green text on a black background on my computer screen. So yes, I transitioned to more modern stuff and now I'm at Prisma and I'm having a great time.

00:05:40 - Christopher Burns

You've gone from granddad technology to baby technology. You've gone all the way through the lifespan.

00:05:47 - Austin Crim

Exactly. And in terms of companies, my previous company was about 130 years old and was very large. Then I came over to Prisma, and I was employee number fifty-something, and they've been around for five years. So I've seen both ends of the spectrum for sure.

00:06:01 - Christopher Burns

And which one scared you more?

00:06:02 - Austin Crim

That's a great question. I think actually the older enterprise scared me a lot more because there were hundreds of years of knowledge I didn't have, unknowns, and everything.

00:06:12 - Anthony Campolo

Yeah. Now you got five years of 10,000 GitHub issues.

00:06:16 - Christopher Burns

Exactly. But you find that older companies have really massive silos of learning, so as soon as someone leaves the company it's like, well, that's $1 million of revenue lost because that spanner broke over there and we just don't know how to touch it.

00:06:30 - Austin Crim

Yep, that's exactly true.

00:06:32 - Christopher Burns

But now we live in the modern world with TypeScript and communities and openness to communicate and say, if it's buggy, that's fine, just fix it.

00:06:42 - Anthony Campolo

Yes. I'd be curious, what is it that drew you to transitioning into more devrel kind of stuff?

00:06:48 - Austin Crim

Yeah, absolutely. So while I was at my Next.js role, I was working there. I started to get involved in Tech Twitter. For better or for worse, I started living on Tech Twitter and saw a lot of really cool people doing awesome projects and sharing about them and writing articles, doing video tutorials. I went through Wes Bos's JavaScript 30. I did Kent C. Dodds Epic React. I saw a lot of really smart, knowledgeable content creators out there doing a great job educating the next generation of web developers and technologists, and I thought it was so cool to be able to not only share your knowledge with such a wide base, right, but you're having a huge impact on the next generation of people that are coming in with video creation, writing articles, things like that. And then I found out you could get paid to do that. Working at a company, you didn't have to go independent, like the two of them. So I think that's definitely where it sparked my interest.

00:07:33 - Anthony Campolo

And do you have some content you prefer, like do you like written content, video content? What's kind of your niche?

00:07:38 - Austin Crim

Personally, I like video content a lot, but like anything, it totally depends on the person. I think it's best to have a mix of both. There are a lot of different styles of learning out there, but I personally gravitate towards videos.

00:07:49 - Christopher Burns

I find it really interesting because I started coding WordPress, PHP, JavaScript, CSS. When I was 15, I'm now 25, so I've grown up with it. Like, wow. All the way through my teenage years to adulthood. But like, what you learn today is so much more distinctive. But it's also so much harsher at the same time, if that makes sense. Like back in the day, you just booted up WordPress and, you know, made a theme and that's well done. But now it's like, you know, what's your favorite JavaScript framework? You know, you use CSS and JS or CSS like, you know, and I find that for me personally, I really respect what Kenzie does and what Wes does. But I find it personally so hard to watch them sometimes because I kind of know it, but I feel like I'm so stupid to be like, I know this. Why am I watching this? To like, relearn it?

[00:08:41] But I feel like I could really do with relearning some of these things, like the core principles that have been updated since I was like a teenager, if that makes sense.

00:08:50 - Austin Crim

Yeah, 100%. In my personal journey, like I said, I started learning React and then went backwards from there. Wes Bos's JavaScript 30 was super eye-opening for me because I was coding React in my day job, and I didn't know JavaScript fundamentals, right? Which is totally fine. I had a job, and I was doing fine at my job, learning React and doing it that way. But it was...

00:09:11 - Anthony Campolo

Then one day you saw addEventListener and you're like, what?

00:09:13 - Austin Crim

Yeah, totally. I had no idea JavaScript had all these different capabilities, you know, interacting with cameras and audio and all the stuff that it pulled in from jQuery.

00:09:22 - Christopher Burns

I was about to say, you're just so glad you missed jQuery. That's what I mean. I grew up with jQuery, like jQuery was everything. The thing is, I did take a break from web development and moved to app development with React Native, and then I came to React. So I used React Native first and then came to React. It's such an interesting framework because everybody, you know, no matter who you ask it can come across as a hostile framework. Why do you want to learn React? Svelte is so much nicer and it's so much easier. And Vue and all these others.

00:09:47 - Anthony Campolo

Things like Svelte are big.

00:09:48 - Austin Crim

Svelte guy here.

00:09:49 - Christopher Burns

Yeah. And they're great, you know, but it does seem like React is still the framework of business, and I would love to see that change. Like, I would love to see us have more and more options. And I think we are getting closer to that by every day that passes, because building things that are unique. This 'only runs in X' is becoming less and less a thing because X runs it, then Y makes it, then Z makes it, and it's now industry standard.

00:10:17 - Austin Crim

Are you saying React is the new jQuery?

00:10:19 - Christopher Burns

I wouldn't say it's the new jQuery. I would say it's the new Ember.js. Yeah. You know, a terrible comparison. No. Maybe not. Maybe you like Backbone.

00:10:30 - Anthony Campolo

It's closer to Backbone. Actually, as a technology, in terms of where it sits and its influence in the industry. jQuery is actually a really good comparison, because it's something that has become the de facto way that a lot of people learn, that a lot of people create web applications that are probably going to have downstream effects, that are going to get fed back into JavaScript. I think it's a good comparison, actually.

00:10:51 - Christopher Burns

Yeah, it actually is, thinking about it. And not just like you've asked me this question. Now say an answer as fast as possible. No, jQuery.

00:10:58 - Anthony Campolo

That's what podcasting is.

00:10:59 - Austin Crim

I came here for the hot takes, right?

00:11:01 - Christopher Burns

No jQuery.

00:11:02 - Anthony Campolo

We had a whole conversation on hot takes yesterday.

00:11:04 - Christopher Burns

Yeah. No jQuery. But I think it's that thing that I kind of pushed jQuery out of my brain and just never remember writing those dollar signs. Like, what's a dollar sign? Someone said that was currency to me one time. You know, to me it's just a jQuery operator.

00:11:21 - Austin Crim

In the UK, did you use jQuery with like the pound symbol?

00:11:27 - Christopher Burns

No, actually we use the dollar symbol. It was like, why is there a dollar on the keyboard? Oh yeah, jQuery. It's always been there.

00:11:36 - Anthony Campolo

Okay, let's bring it back to Prisma. So we've had Prisma as like a background topic throughout the entire history of the show, just because like me and Chris use it so much, but we've never really had someone on to just like give the Prisma 101. So if you were asked by someone who has never even heard of Prisma, how would you describe it to them?

00:11:54 - Austin Crim

So Prisma's goal is to make databases easy for everyone, right? So if you've heard of an ORM, it's an ORM. That's how we're positioning ourselves now.

00:12:02 - Anthony Campolo

Today it's an ORM.

00:12:03 - Austin Crim

Yes.

00:12:03 - Christopher Burns

Exactly. Six months ago. That's another question.

00:12:06 - Austin Crim

Yeah. If you haven't heard of Prisma, it's the layer that your application code uses to talk to a database. And we try and make that really easy for you. So in a relational database world, you'd use something like SQL to write your statements and retrieve data from your database. You write data back. SQL is a really powerful language, but it's also easy to mess up, and it's not always the easiest to read and write.

00:12:26 - Anthony Campolo

It's also not a standardized language. We say SQL as if it's a single language, but different databases that have SQL don't actually have a specification. There's technically a SQL spec, but it's incomplete.

00:12:38 - Austin Crim

Yeah, that's totally true. So a tool like Prisma is something you would install into your Node.js project. You'd use it to interact with your database, right, so you could write queries in a way that's a lot easier to comprehend. Prisma also offers type safety out of the box. So using our schema language, the Prisma schema language, which you can either write from scratch or auto-generate from an existing database. Prisma knows about all your data types, right? It knows about all your data, and from there it can generate a TypeScript library that gives you all the autocomplete and type errors for your queries right there in your editor.

00:13:07 - Anthony Campolo

So I just learned something there. I didn't know you could take an existing database and then generate a Prisma schema from it. I've never done that before.

00:13:14 - Austin Crim

Yes. Yeah. Prisma DB pull.

00:13:16 - Anthony Campolo

Okay, I have done Prisma DB pull, but I just never thought, yeah, that's exactly what it is.

00:13:19 - Austin Crim

It is, right? It goes out and it reads your database schema and it generates the schema file for you.

00:13:23 - Christopher Burns

Yeah. And I think this is really interesting because Anthony and I refer to it as Prisma 2 all the time, but it's not actually.

00:13:29 - Anthony Campolo

Only you say Prisma 2. I never say two.

00:13:32 - Christopher Burns

Fine, I say Prisma 2. But that's because I knew it at Prisma 1. Yeah, and the thing is, it's really interesting because Prisma 1 is Prisma 2, but the combination between the function and the ORM has been separated, and now the functions are like, anyone can do that.

00:13:48 - Austin Crim

Yeah. So we've mentioned Graphcool and Prisma 1 now. So we have those done, out of the way. We don't have to talk about it anymore.

00:13:53 - Christopher Burns

And I love Prisma. Prisma 2 is my favorite thing ever. In terms of a technology, it's a technology that I don't think I could work without in almost every single project I work in now, I just get it. And one of the things that I always say to everyone that I speak to at Prisma is that I don't care about databases. I don't want to think about them. I just want the data; everything else, manage it for me. I want to live in a world where I just hook up to a pipe and get everything I want, push everything I want, and never have to worry about anything ever again.

00:14:25 - Austin Crim

Exactly. Yeah, that's the goal. And I think that's a pretty common sentiment among developers. And that's why Prisma is sponsoring conferences like React and Remix Conf, where there are a lot of front-end developers. I myself consider my talents mainly in the front-end realm. Right? So maybe don't tell my bosses I said that, I'm not in love with database management or anything like that. And that's why I was drawn to Prisma in the first place, because it made me feel like as a front-end developer, I didn't have to shy away from the database side anymore.

00:14:50 - Christopher Burns

We love the front-end, but Prisma makes us appreciate the back-end by doing less of it. When you say, oh, I need to build something, you know the back-end might take me an hour or two, but the front-end is going to take me two days. And then it actually works out that the back-end function took you 20 minutes because, you know, using Prisma and a CRUD generator, probably you tweaked it to what you need, but the front-end is going to take you two weeks. And I think there's a lot of love-hate with the front-end. I have it myself. But Prisma just simplifies most things when it comes to reading and getting data. The best thing about Prisma, Anthony, you know it's coming, is TypeScript.

00:15:31 - Austin Crim

Absolutely.

00:15:31 - Christopher Burns

I just love it.

00:15:32 - Anthony Campolo

Before we get into TypeScript, though, that was a great Prisma 101.

00:15:33 - Christopher Burns

Before we get done, I just love it.

00:15:33 - Anthony Campolo

We can get into TypeScript, though. There was something that is always left out when I hear people explaining Prisma for the first time. And this confuses people so much, which is that Prisma Client and Prisma Migrate both get bundled into this term Prisma. And so what is the difference between those two things?

00:15:52 - Austin Crim

Yes. I was hoping to get to that, for sure. So Prisma Client is what I mentioned before, right? That's the ORM you have installed in your server code that you're using to interact with your database via queries. Prisma Migrate is primarily a command-line tool that we use to help you generate migrations and apply schema migrations to your database. As I mentioned earlier, you can also pull schema changes from your database.

00:16:13 - Anthony Campolo

And this especially confused me, as someone who was introduced to Prisma through Redwood, is that Redwood would auto-generate all the Prisma Client stuff for you, and then bundle the Prisma CLI with the migrate functionality into Redwood. So it was completely abstracted away from me, both parts of Prisma, and then combined into this larger bundle of Redwood. So it wasn't until I ripped out Prisma and worked without it, and then used it with other frameworks and went through that whole journey that I actually figured out it was these two separate things that were being referred to as Prisma. Yeah.

00:16:44 - Christopher Burns

You've missed the third thing, the little old Prisma Studio in the corner.

00:16:47 - Austin Crim

That's where I was going.

00:16:49 - Anthony Campolo

Yeah. So then Prisma Studio is another thing that the data platform is kind of like three and a half things. It's basically Prisma Studio in the cloud, is that correct?

00:16:57 - Austin Crim

Yeah. So the data platform is kind of our grand vision of how we're going to monetize. And right now if you go to Prisma Cloud, you can sign in to the data platform. And there'll be a few things there for you. So one is the hosted version of Prisma Studio, like you mentioned, Anthony, where you can view your data in a GUI. Basically, you're looking at your data in a graphical way. We also have what's called the Prisma data proxy that you can access through the platform, which is our kind of managed solution if you're using the ORM to handle the connection pooling problem for you. Right. So a lot of people are building on serverless backends now using serverless functions, things like that, where your functions can scale infinitely. Essentially the problem is if you're using a traditional relational database, they have a limit on how many concurrent connections they can have.

00:17:37 - Anthony Campolo

The database is not infinitely scalable.

00:17:39 - Austin Crim

Databases do not scale infinitely. Exactly. There are some bespoke solutions for this already, in the connection pooling world, like pgBouncer and some other things. What the Prisma data proxy is doing for you is saying, here's a data proxy connection string, and we're going to handle that for you from now on, no matter what your database is, you just connect to us through the proxy and you can scale your backend, connect as many times as you want, and we'll handle the connection pooling basically from here on out.

00:18:02 - Anthony Campolo

And that's huge. Like one of the largest problems for Redwood apps that were in production was that they would eventually find out about this serverless limitation, and they would have to figure out a way to implement it themselves. And then there wasn't a turnkey solution for it. And then they had to do all this crazy stuff to actually figure it out and get it to work. So that's massive. And I think that's like something that people really need to know about.

00:18:22 - Austin Crim

Yeah, we're really excited about it. And as of recording, it's still in early access, but you can definitely go out and try it in your projects today, and we'd love to get your feedback on it.

00:18:31 - Anthony Campolo

And that's what enables Cloudflare to work with Prisma.

00:18:33 - Austin Crim

Exactly. Yeah. If you want to use Prisma with Cloudflare Workers, you would set up the data proxy, and then Prisma would communicate via HTTP to our proxy and allow you to use the client on the edge.

00:18:43 - Christopher Burns

This area is foreign to me.

00:18:46 - Anthony Campolo

Chris jumped ship from serverless.

00:18:48 - Christopher Burns

I jumped ship from serverless, but I think I tried serverless still in its infancy. I need to go back to it. And the thing is, I use a tool like Redwood where it can spin up everything that I needed to spin up. I just don't do it yet. It's kind of like one of these jumps. It's like, I need to go try my application with PlanetScale. Oh yeah, I use Prisma, and Prisma is also supported in PlanetScale. Yeah, but actually like booting up a PlanetScale account, running the migrations just to test. It's like, I'm sure I have the capability to actually test it and run it, but when you're trying to do 20 other things that are far more important, it's kind of like, this is good enough for right now, and I'll wait until it's on fire to go do something else. One of the best ways to migrate, like when you're a really small bootstrap company, is to rely on the tools and really say, like, I know what I'm really good at and I'm just going to find tools that they're really good at.

[00:19:37] And that's how I have managed to get so much developer scale in Everfund with so little manpower, you know, using Prisma as much as possible, using Redwood as much as possible, using things that reduce the burden on myself. And yeah, all these things are so cool. Like, I really want to try out Cloudflare Workers and Prisma on that. And I just feel like I need to just sit down and try it, and then I'd probably be like, this is the best thing ever. I'm going to convert everything. But then I'm not spending time doing what I need to do every day. So I feel like that there will be a moment when it'll all line up and I think it's coming.

00:20:12 - Anthony Campolo

An Everfund skunkworks group.

00:20:15 - Christopher Burns

Well, that as well. But I think the day will come where we have, you know, a serverless database with serverless edge functions potentially on Deno or Cloudflare Workers with, you know, a front-end on Netlify and then put them together and you maybe have full distribution around the world. I think that day is coming. I don't think we're there today, but there's so much I want to speak about when it comes to Prisma as a real long-term user. And I think the biggest thing is migration. I've been to other companies who have had loads of users, and I've spoken to them and they're like, yeah, we have a team of five people who work on the Postgres database. And I'm like, what are the five people doing on the Postgres database? They're like, well, someone's actually got it right. It's like migrations. And we'll test them out. And also we run like four database branches. And also we check everything, you know, validation, all these things. I'm like, is Prisma hiding stuff from me?

[00:21:09] Will I get to this level, or will I just keep relying on Prisma to make sure I never get there? That feeling of, what do you do in the company? I'm the Postgres guy. I know everything about Postgres.

00:21:20 - Austin Crim

Yeah, totally. Database administrators have been around for a long time, right?

00:21:23 - Christopher Burns

But they do.

00:21:24 - Austin Crim

They do excellent work coming from someone that's worked at a really large enterprise. Utmost respect to the DBAs out there, like pour one out for them.

00:21:31 - Anthony Campolo

Chris has zero respect for DBAs.

00:21:33 - short split/interjection

No.

00:21:34 - Christopher Burns

It's not that I have zero respect. I have never worked at a big company. I left university college and started my own company. So this is experience that I'm almost jealous of. To be fair. You know what I mean? Like, I wish I was in a big company to understand how different my company is and how I'm doing these things. And a big thing about scaling my company is, do I need a database administrator or is that just Prisma now?

00:21:58 - Austin Crim

Yeah, you've touched on something really interesting: especially with the advent of serverless, people that are bootstrapping new companies, or even newcomers to the field, deal with a lot of managed services. Their compute can be totally managed now. Like they don't even have to worry about installing Linux on a server or whatever. And databases have kind of been lagging behind, right? There have been managed databases, but trying to pair them with a serverless back-end hasn't always been the easiest. You've seen a lot of database companies start popping up recently, right? Like you mentioned PlanetScale, we have Prisma. We are not hosting your data. That's in my contract. I'm supposed to put that out there. Prisma is not hosting your data and we're not interested in hosting your data.

00:22:30 - Anthony Campolo

Yeah. I am curious for you if you want to spin up a project or if you're doing demos or any of that kind of stuff. Are there certain databases that you like to use or database providers that you think work well with Prisma that you would recommend to people who are like, okay, I have the question. Like, what actual database do I use?

00:22:45 - Austin Crim

Yeah, definitely. And developers nowadays are spoiled, right? We have so many good options.

00:22:49 - Anthony Campolo

We are, man.

00:22:50 - Austin Crim

It's great, isn't it? It's awesome. And half the time you don't have to put in a credit card or anything. But yeah, for my own projects, like, actually if you go through the Prisma data platform, you can provision Postgres straight from our UI through the project creation flow as well as a Postgres database on Heroku. We offer those two options straight from our UI. Yeah, we use OAuth to provision a Postgres instance on your Heroku account, and the same for PlanetScale. Two really great options right there. I use Railway a few times and yeah.

00:23:14 - Anthony Campolo

You do?

00:23:14 - Austin Crim

I do. I know Anthony's a Railway fan as well. That's right. You can get Postgres, MySQL and Mongo on Railway I think.

00:23:19 - Anthony Campolo

Yeah. And Redis.

00:23:20 - Austin Crim

And Redis. Yeah. So that's another great option. You can get started for free. I think Render has a couple options I've used before. And then of course I feel like SQLite has been making a big comeback. So if you're able to use SQLite, feel free.

00:23:31 - Christopher Burns

I run my database on DigitalOcean. There you go, there you go. Like a classic provider. It works. And that's all I can say. Like it works. I have a Postgres database, but my big question is about choice. This touches on what we were just talking about. The choice is too much. Because when you're not an expert, what do you pick? I hear these buzzwords of NoSQL and SQL, but I've also been told Prisma was gonna handle it all for me. So who should I provision and what should I provision? I do bring this up. When I was in the Prisma 1 days, I used Mongo. In the Prisma 2 days I use Postgres, but now Mongo support is in Prisma 2 and I'm like, I don't even know why I'd swap and I don't even know why Postgres is better. And you know, I'm sure you could tell me like the 20 reasons Postgres is better. But also, is it my job to know, like I'm just a user who wants to store my data somewhere, and I'm expecting it to always be as fast as possible?

[00:24:32] What do I pick? And if the answer is, well, if you're running an e-commerce service, you should be running MongoDB because you have a lot of data and it's like, yeah, but which one should I just use to run a to-do app? You know what I mean? It's like such a hard decision. And I think this with most things is like it's amazing. We've got so much innovation and we have tools that help migrate these things. But when the choice happens, it's like, what choice should I make? And with Prisma. Previously, on Prisma 2, it was like, well, Postgres is what it is, and MySQL. And it was like, why should you pick Postgres or MySQL? And I'm still like, I don't even know. I hear there's different types. I hear Postgres does more, but I also just use it for Prisma.

00:25:13 - Austin Crim

Yeah. I think what you said earlier was really important where you said you have Postgres on DigitalOcean and it's working. That's the biggest thing right there. If you have something that's working, go for it. And if you're starting a new project, no one's going to get in trouble for picking Postgres. Exactly. For sure. And I think the reason that Prisma in particular, we've prioritized supporting lots of different database providers and kind of the early days is because as we start to reach more developers that are at the medium to larger enterprises, they're not going to have that choice to grab a database provider from scratch. So we want to be able to meet them where they are. And a lot of large enterprises have MySQL and Postgres, SQLite, lots of things like that. So in your situation, use whatever works and keep rolling. And if you run into issues, that's when you can dig into.

00:25:49 - Christopher Burns

Exactly. And it's like that thing about people that are like, I'm running a database today. It needs to scale across three continents and be microseconds. And, you know, it's like, yeah, but your customers also probably don't really notice, like at the end of the day, like, cool, you can pull the tech card out to your tech friend saying, you know, this database is across three continents and it's distributed. And you know, I did this all myself. I'm not using a provider, you know, I know how to do all this stuff. As we said earlier, DB managers, what was the job role? I totally forgot database administrators. I would take off my hat. You probably have done an amazing job for the last 100, like, 100 years. 20 years.

00:26:25 - Anthony Campolo

Database. Not quite 100 years old.

00:26:27 - Austin Crim

They're not all that old.

00:26:28 - Christopher Burns

Well, sorry. Sorry. 40 years.

00:26:30 - Anthony Campolo

Relational database was invented in the early 1970s by Codd.

00:26:34 - Christopher Burns

So 50 years. Okay. 50 years and it's like, will there be a job for them in the future? 100%? Will there be a job for them in the past? 100%. And the thing is, it's that thing of like, you don't know a problem until you're there. Like my perfect question when it comes to databases is, okay, I'm provisioning a new database. Which tier should I pick?

00:26:53 - Austin Crim

That's another one of those questions where if you start to hit issues with your database, like scaling, that's a great problem to have, right?

00:26:59 - Christopher Burns

What issues am I going to face when I'm scaling a database?

00:27:02 - Austin Crim

It depends on your provider. Typically the more traffic that you're going to get, that's where the tier limits are going to come in, like your reads and writes, your operations that you're hitting. And like I said, if you're hitting those upper limits, that's a great problem to have.

00:27:12 - Christopher Burns

And how am I going to know that I'm hitting them?

00:27:14 - Austin Crim

Things are going to start failing or slowing down significantly.

00:27:17 - Christopher Burns

Exactly. And I think that this area, we've almost hit perfection in the migration. We've almost hit perfection in the studio. In this area, there's still so much innovation to come. And that innovation is going to help everyone across the board. It's like accessibility, you know, we say we add accessibility to help certain areas that need it, but actually it makes it easier for everybody, like subtitles on movies. I watch everything with subtitles, but I find it much easier to understand. And it's like the thing of by making this functionality available to everyone, like, oh, your DB functions have gotten slower, maybe you need a higher tier, you know, instead of all that guessing work and that thing of like a DB administrator would be like, that's the answer straight away. But if you are treating it almost as an API endpoint, you'd never understand. You'd be like, why has this gotten slow all of a sudden? You know, why is this slow for my customers? And I think there's so much innovation still yet to come from this area.

00:28:13 - Austin Crim

I think you're totally right. And that's why we've got our eyes open on the new players in the field like PlanetScale, CockroachDB, Cloud Zeta, a lot of those places that are trying to say, we're going to totally manage your database for you, you know, click this button and connect and never think about it again. And I think once those things have started to get a little bit more time, we're going to have a really great experience up and down the stack as devs have gotten spoiled, haven't we? We've gotten really spoiled.

00:28:35 - Christopher Burns

Yeah, I think we've got really spoiled. But then we're gonna get to the point. It's like everyone says, we do the same things, but this one says they're on MySQL and this one says they're on Postgres. And this guy over here says Mongo. And back to the choice.

00:28:48 - Austin Crim

I think you should get a database administrator on the podcast next.

00:28:51 - Anthony Campolo

I mean, I could tell you the difference between all three of those. You just don't actually want to know the answer. You just want to continue to be ignorant about it.

00:28:59 - Christopher Burns

Ignorance is bliss, but also not bliss. But that's the thing. It works. It works, okay? I could be chasing 5% performance by swapping it, but Prisma does a good enough job that it just kind of works great. Something I did want to tackle and talk about is migrations. Is that an SQL-specific thing? Can you write migrations on Mongo, or is it specific to SQL?

00:29:22 - Austin Crim

Yeah, that's a great question. So in your typical relational databases, your MySQL, your PostgreSQL, they have a defined schema, right, where you're telling exactly what fields and what data types are going to be in each table. Like I have a name and it's going to be text and it's going to be this long, and you have to set that up in your database, and it's enforced at the database level. And Prisma helps you out with this. If you ever want to change those things, that's where the migration comes in, where instead of a name, you want a first name and a last name. When you're changing these fields, that's when you have to write a database migration where you're writing SQL to redefine the structure of your tables and your databases. That's only relevant for relational databases. Mongo does not have a schema that's enforced at that level. So you can basically put in whatever data you want to put in. And people think that's really great for some use cases. And sometimes it gets a little messy.

[00:30:04] It depends on what you want.

00:30:06 - Anthony Campolo

But you will have something called collections, which they're like a named entity within your database. It just doesn't have a schema.

00:30:14 - Austin Crim

Yeah. Good point.

00:30:15 - Christopher Burns

Yeah. And you know these are great questions. And I think there are multiple ways of holding data. But I think when we talk about the benefits of it all is that type safety is one of the biggest things that I think that's amazing about Prisma is that not only do I know that everything that I'm inputting is in the correct fields. It also tells me if that's not in the database. And I think that one of the weirdest things about it all is that we've become so dependent on it so fast. It's like as soon as you use Prisma, you're like, oh, it makes sense. Like Prisma is the first thing you define. You define your database, the types, and then you push it forward, you know, then the API is defined on the Prisma where clauses or you know, what you're trying to put in and forward. And it's only recently that I've started designing an actual REST API where I've started at the other end. So I started at the OpenAPI schema going, what does this API need to look like first, because it's a much more structured data is like, you know, every single core is much less CRUD.

[00:31:17] It's more like this needs to do a function and do 20 things in the background. And I think it's such a weird way of looking at getting and putting data somewhere that you can work on both sides. What I thought was really good that you mentioned earlier, was that a lot of enterprises already have loads of databases in the world, you're not going to get them to do a massive thousand database migration to Postgres because, you know, you've said Postgres is the best. So that's when you say, okay, we're going to meet you where you are. We're going to bring your database into Prisma, do the inspection, and then we're going to create the Prisma Client. And then every migration from now on you're just going to make it through Prisma. It kind of seems so stupid. Like it can't be real if that makes sense.

00:31:58 - Austin Crim

We might have to put that on our website. That's a testimonial right there.

00:32:01 - Anthony Campolo

So stupid. It can't be real.

00:32:02 - Austin Crim

It can't be real. But it is. I'm here to tell you it is.

00:32:05 - short split/interjection

But it is.

00:32:05 - Christopher Burns

It's because I've been using it. But like when I try to explain to everyone, it's like, okay, so they're going to generate some code into a client, you're going to put your data into the client and it's going to appear in your database. It's like, yeah, but that's not what it's like. No, that is, you're used to it being a lot more complicated than that. But this is like what it is in Prisma Land. And we love it here.

00:32:26 - Austin Crim

Yeah, we do. I do love it in Prisma Land. And I like what you mentioned about how you start defining your data at the database level or at the Prisma level. And we know about all your types and your types kind of propagating from there. Right. Like I think that's a really fun use case. And like when developers are first trying out Prisma, they love that so much about like the automatic generation of TypeScript types. So when you run a query, you know exactly what you're getting back. You know exactly what you have to write back to the database. And you can use those generated types anywhere, right? You can import the types on the back-end. You can bring them to the front-end if you want to use them up there. That's one of the killer features for sure.

00:32:58 - Christopher Burns

And what's really good about this is that when we had Orta on who was on the TypeScript team, he was saying, because TypeScript has been such an investment by Microsoft that it's bleeding into JavaScript. So even if you don't use TypeScript when you're in VSCode, you still get the type safety of TypeScript. Not necessarily. I don't write much actual JavaScript anymore. I haven't written a JavaScript file in donkeys, but I think it passes through. Right?

00:33:23 - Austin Crim

Yeah. As someone who still writes JS files, don't get mad at me, Chris. I still write JS every once in a while.

00:33:29 - short split/interjection

What do you mean?

00:33:30 - Christopher Burns

Mean? I just write TS and write any for everything.

00:33:33 - Austin Crim

But yes, the TypeScript support is still really good, even if you're using regular JavaScript and VSCode. All the autocomplete and red underlines and everything are still there for you.

00:33:40 - Christopher Burns

Yeah, and I really like it. It's so repeatable that no matter what the object is, you know it's going to be typed in a very specific way. And that makes tools like Redwood so much easier to generate all this code for you. Like, yo, we know the props. We know the database at that level. Then we're going to convert that and create a GraphQL API automatically. That's something that Redwood does really well, and it does all the heavy lifting. Like I said earlier, when you predict, "Oh, writing this whole back-end is going to take a day, and the front-end is going to take a few days," actually, because all the CRUD is now so easy to do because we know the types, the front-end is still much longer. And that's a bit of rambling.

00:34:23 - Anthony Campolo

Let's talk about Remix Conf.

00:34:24 - short split/interjection

Yeah, let's do it.

00:34:25 - Anthony Campolo

Yeah. So we're here at Remix Conf. What is your experience with Remix? Why is Prisma interested in Remix?

00:34:33 - Austin Crim

Yeah, so I'm a big fan of Remix. I've been following it for a little while now. I wasn't an early access supporter, so I have to confess that.

00:34:39 - short split/interjection

Don't worry.

00:34:40 - Christopher Burns

I wasn't evil.

00:34:41 - Anthony Campolo

I was. I got a discount for this conference.

00:34:43 - Austin Crim

Nice. I've used it in a few small side projects, and I've really enjoyed it so far. As a long-time Next.js user as well, they're both great tools. I don't want to get into any hot takes right now.

00:34:51 - Christopher Burns

I love Next.js. I love it. I wouldn't say I love Remix, I'm starting to be very interested in Remix. After attending today's workshop, I think that I've been burned and scarred by Gatsby to like, you know, most people that have been around for a little bit of time. I don't want to die on any hill. I'm happy to embrace any framework that can make my life easier.

00:35:11 - Austin Crim

Any framework that supports Prisma, right?

00:35:13 - Christopher Burns

Prisma and TypeScript.

00:35:14 - short split/interjection

Specifically.

00:35:15 - Austin Crim

So specifically, why? Why is Prisma interested in Remix Conf? We are sponsors here at Remix Conf. I think they've been positioning themselves as more of a center-stack framework, which I'm not totally sure what that means, you could ask.

00:35:27 - Anthony Campolo

Ken was on the episode and already explained that. So we'll point listeners to that one.

00:35:32 - Austin Crim

The link will be in the show notes, right?

00:35:34 - Anthony Campolo

That's right. Yeah.

00:35:34 - Austin Crim

But yeah, in your Remix app, you end up writing a lot of server-side code, a lot of back-end code, and a few of the Remix folks are big fans of Prisma. And if you've been to the Remix docs, you might have seen an introduction to Prisma in there. So we have a good relationship with Remix folks. They like to use us as their ORM layer.

00:35:51 - Anthony Campolo

And it's worth mentioning they were originally giving you the ability to add Prisma kind of with instructions in the docs, and then now they have what are called Remix stacks, which are predefined stacks that are more similar to what you would get out of the box with Redwood. And you can just like fork a repo, and that already gives you Prisma and like an opinionated deployment provider as well.

00:36:12 - Austin Crim

Yeah, that's a great callout and a super easy way to get going if you're interested in Remix and Prisma. But I think Remix and Prisma are a really great combo. Remix as a framework kind of allows you to move fluently between your front-end and your back-end code. You have everything co-located in one file, so in your server code where you're doing your queries with Prisma, you can fetch some data that gets passed to your front-end and you can render out that front-end all in the same file, right? And that's just a really good workflow. It feels really good. It's something that Next.js kind of started in the JavaScript world with getServerSideProps.

00:36:42 - Anthony Campolo

There's also something though that we've had, like Rob Cameron would say, that's just ColdFusion, baby.

00:36:46 - Austin Crim

Yeah, exactly. And I'll defer to the old heads on that one to tell me where that started. But it's a great developer experience. Right. That gets further amplified by the combination of bringing in Prisma, because then you're not having to write your lengthy SQL queries right next to your React component. You just pull in Prisma and you make it happen.

00:37:02 - Christopher Burns

The more that I explore Remix, the more that I can see a very certain place for it in my business, I don't think it needs to be across the board. I don't think everything needs to be across the board. I think if we use one technology for everything, we lose a lot of the benefits of the innovation between all the frameworks.

00:37:19 - Austin Crim

Yeah, and I'm curious for your two opinions as a couple of Redwood fanatics, how have you found Remix so far? Have you used it? Have you enjoyed it? What are your thoughts on how it compares to Redwood?

00:37:29 - Anthony Campolo

I think I've probably used it a little bit more than Chris. Not in the sense like I've built, you know, huge production apps, but just that, like I've spun it up. I've deployed some like simple apps, I've built some stuff, like with Step Zen, I built some stuff just to kind of try it out and see what it's like. That's what I do with pretty much all these frameworks. I just go through the docs and build a little Hello World example just to kind of get a sense of, you know, what is it and how does it sit next to other frameworks. So certainly not a Remix expert by any stretch of the imagination, but I think it's really cool. And there's a lot of things I like about it. There's a lot of things I think Redwood could take from it in terms of it leans more into web APIs. Like I said this on the episode we recorded yesterday, which is that it's using fetch and things that are compatible with the browser and doesn't really require a compilation step.

[00:38:15] Like, I imagine there's probably still transformations that are happening since React at the end of the day, but it is thinking more about how do we actually just create a framework that can just kind of work and we don't need this, like huge kind of build tooling associated with it. Like it's not there entirely, but it's a lot closer to anything else in the React world right now. And then it also leans more into avoiding JavaScript, not necessarily through like partial hydration. It has kind of different ways of achieving that, but the same idea of how do we ship leaner, more performant apps, it's really great for that. And then it has like really clean APIs, and now they're doing a good job of giving you more built out stacks because they were referring it to kind of like a full-stack framework for a bit, and then kind of changed their verbiage to like a center-stack framework, which I think was a good move because full-stack is like such an overloaded term. Now, there's a huge bugaboo with me on this podcast, talk about all the time.

[00:39:07] But, I think Remix is very cool, and I think that it is definitely pointing towards a different type of framework in a way that makes Next feels a little more old school, because it's innovating specifically in the same space, but doing it in a way that pushes us forward in like clear, measurable ways.

00:39:26 - Austin Crim

Yeah, I think that's a great perspective. And as a long-time user of Next.js, I worked on Next.js in production for a while, and now I've built a few things with Remix. So I have another question for you Redwood folks. When is Redwood going to support server-side rendering?

00:39:37 - Anthony Campolo

As soon as possible, hopefully.

00:39:39 - Christopher Burns

Wow, I can see both sides. Anthony, you have a lot of time to spin up a lot of frameworks, so you know a lot about this more than I do when my frameworks have always been more, I would say battle tested than the ones I've used. Most frameworks that I've actually used, I've actually pushed to production.

00:39:55 - Anthony Campolo

He put them to the test.

00:39:56 - Christopher Burns

I put them to the test. I go, "That looks good enough, I'm going to try it." I really do. So I have obviously tried lots of PHP frameworks in my time. I did Gatsby and Create React App. Next.js, I'd say the most time I've spent with React frameworks has been Gatsby, Next.js, and Redwood, and the order would be Gatsby, because I've spent a lot of hours in Gatsby. When you built everything, everything was in Gatsby, you know? Then I'd say Redwood in second place and Next.js in third. And I think that when it comes to Redwood, they do the server right. I think that's completely right in the GraphQL perspective. GraphQL to Prisma is perfect, in my opinion. I will hand on heart say it's perfect, and I think when it comes to the front-end side of Redwood, there's a lot to gain and a lot of inspiration that could be taken from Remix.

[00:40:59] I'm very unique in the Redwood community because I have a Next.js app as well that speaks to my Redwood app, so I use the benefits of Next.js. I think Next.js is quite performant personally, but I already see the limits of Next.js performance on a mid-scale project. A website, say an e-commerce store, gets 1,000 products. That's a thousand pages, and that all takes time to build. And you could say, yeah, but we're moving into this world of SSG on demand, so you never have to technically rebuild it. And then we're kind of sounding a bit like, well, isn't this just a server-side framework with a bit of static code? To get to the point that I'm trying to make, I think Next.js is really good in this area, but I'm starting to see the limits of performance and the reasons why. I think Remix has a really good shot at being an alternative performance path. Not necessarily better, but I think they're still going to have their pros and cons at scale.

[00:41:56] And personally, I could see Remix replacing the Next.js side of the company over time because I used to think ISR was the right choice in terms of wanting Open Graph on things that can be generated by our customers. But actually, why couldn't it just be server-side rendered every single time? And if it's done fast enough, then that may be the ultimate solution. And, oh wait, we sound a bit like PHP.

00:42:29 - Austin Crim

Does Redwood do static site generation?

00:42:31 - Anthony Campolo

Yeah, so we have Prerendering, which is kind of like the equivalent of you can think of static site generation. And then to answer your question about supporting SSR, this is something that SSR is a topic that has just always really confused me. I've always had a really hard time understanding exactly like what it is, what makes it different from other things. And it's like to me it's like Redwood has a server. Why can't you server-side render if you already have a server? But I think what people mean when they ask this question is there going to be an SSR convention in Redwood that actually makes it simple for you to do and is just like built in? It's kind of like a turnkey solution. So it's been one of the most requested features we have by far. And the only reason why it's not in 1.0 is because, you know, it's slightly less important than TypeScript. TypeScript took like over a year to get. And so there's a couple of things that just people were insistently asking for that were just slightly more asked for than SSR, so it didn't quite make it.

[00:43:24] And we ended up kind of going down this whole route of having to change our server, and that kind of diverted a lot of time and resources. So we ended up putting out 1.0 without SSR, which may have been an ill-advised decision. But at the same time, it's almost certainly going to be one of the very first things we start working on now that we're past 1.0. And, asterisk, Redwood 2.0 is already out, but that's just because we have a very small breaking change that SemVer kind of requires us to do a 2.0 for. It's something that's going to be worked on very soon.

00:43:54 - Austin Crim

I was just going to say, I imagine Tom is pretty strict about SemVer, right?

00:43:57 - Anthony Campolo

Yeah. Listeners who don't know, Tom invented SemVer. He wrote a blog post that kind of laid out why SemVer should be a thing.

00:44:04 - Christopher Burns

And I think it's really important to go back to my point of picking the right framework for the right choice. Like I said really early on, Redwood, I know, doesn't have SSR, but the dashboard that I've built with it doesn't need it. Everything's behind a private route. It's got to be user-authenticated. Is that required? No. But when I did need it, I reached for a framework that had it. And what made that easy with Redwood was the GraphQL server, because it can communicate with anything. I think there's so much room for both frameworks to learn from each other. I do not think for one second they should merge into a convention, because you want uniqueness. You want to say this one is categorically different from this one. So when the situation comes that you need to pick one of them for a specific reason, you can say, "I've picked A because it matches these, where B just didn't quite do that."

00:44:57 - Austin Crim

I think that makes a lot of sense, and one of the reasons I'm a big fan of Remix as well is they're revitalizing the concept of server-side rendering first and being like, "You're going to need a server at some point. Let's just start there," as well as what you mentioned, Anthony, about the reliance on web primitives. Again, Remix folks would say, "You don't even need static site generation. You should just render everything on the server and then use cache headers to do the static part of it." That does make sense from a technical aspect, but as someone who's used static site generators a lot in the past, they are much easier than spinning up a server and learning how to configure cache headers on my personal website.

00:45:30 - Anthony Campolo

Why even use a framework at all? Why don't you just write the entire thing from scratch? You know.

00:45:34 - Austin Crim

On my personal website, I was trying to use cache headers for my index route for the main page of my website, which didn't change, and I had a typo in my cache header for over a year and it wasn't working. Like that's an issue. You know, that's an issue. And I think their point is well taken that from a technical perspective, SSR with cache headers can be equivalent to SSG. It's just not as easy as running npm run build and going from there.

00:45:57 - Christopher Burns

The concept you have to think about is what's more scary: a machine that I run once and it gives me what I need, or a machine that is constantly running, waiting for what I need. Like I was saying, it really depends on the use case where you think one will be better than the other. And I think that use cases are the most important thing. Like when I think of Prisma, I jump to a dashboard or a SaaS app. I don't instantly think of e-commerce, you know, because for e-commerce I'm going to use something like Shopify. Right tool for the right case.

00:46:26 - Austin Crim

Yeah. And I think what you mentioned earlier, Chris, is important too: each framework retaining its distinctive qualities. And I think that's a benefit for the dev ecosystem as a whole. I think it makes sense for the frameworks to be pushing each other, from a technical aspect, in a direction that's better for users and developers. But in the same breath, I am excited by the concept of Redwood supporting SSR in the future. Full disclosure, I've never used Redwood in my whole life, so Anthony's probably going to get me on a stream at some point to try it out, but you're...

00:46:54 - Anthony Campolo

Gonna love it, dude.

00:46:55 - Austin Crim

I think so. I mean, it sounds great. It sounds great.

00:46:58 - Christopher Burns

Honestly, Redwood was the thing that made me jump from Prisma 1 to Prisma 2, because obviously Prisma 1 got deprecated, but I was like, it's running right now. Like, leave me alone. Like, I know it's coming, but it's like, I'm going to have to throw it out. And yeah, that was a massive migration over. I will not lie. And it was a necessary migration. But the grass is greener on the other side, and I'm always glad of the choices that I made. But at the same time, I do hold up my hands and say there was nothing stopping me from making a bad choice. I just made the right choice, luckily, in terms of choices of frameworks.

00:47:33 - Austin Crim

I think I can say for the near future we're not going to have any more major changes in the Prisma world, at least for the time being.

00:47:39 - Anthony Campolo

Yeah, let's hope not. Then just one last thing I want to say about the SSR stuff is, as Chris said, he's already using Next.js and Redwood together. So there's nothing stopping you from using an SSR framework with Redwood today, right now. That's just an important callout: if you want to do a full Redwood stack, then you will not get SSR, but you can get SSR with a Redwood project if you just use an SSR framework. And I think that's a nice compromise for now until it's actually built into the framework.

00:48:06 - Austin Crim

That makes sense.

00:48:07 - Christopher Burns

Exactly. And the best thing about it is you can shamelessly rip off someone else and just say, thanks for doing it Next.js, but we're gonna do it as well. How about that?

00:48:18 - Anthony Campolo

We should start wrapping this. We've been going for over an hour, so.

00:48:20 - Christopher Burns

Yes. One of the last things that I want to ask about Prisma is that is this only the start or are we coming to the like, the end? I think it's a really great question because what is the end? You know, we want to wrap this up, but like, are we at the start of the JavaScript still or at the end, like we seem to have done a full circle from let's go from server generate everything to client to back to server in five years. Are we going to go back or are we just going to say this is now the standard? We tried it out, we put on new clothes and we didn't like it. This is now the standard. Are we coming to like JavaScript just being stable?

00:48:55 - Austin Crim

Like, it's a great question. And I like to think of it as not a pendulum swinging back and forth, but a spiral, right? Things might come around and around certain methods and methodologies, but we should be getting better and better as things go on. And I think anyone that's been around the industry for any amount of time would say that things are significantly better now than they were. I mean, ask anyone that wrote CSS 15 years ago, are things better now than they were? And I think they definitely are.

00:49:18 - Anthony Campolo

Yeah. They didn't write CSS. They battled CSS back then.

00:49:22 - Austin Crim

Totally. I think from a Prisma perspective, even though the company's been around for over five years. And as we've talked about, we've been through a couple iterations. We'd like to think we're still at the beginning of what the capabilities are and what the end vision is. So I mentioned earlier that Prisma data platform, that's really the long term vision for Prisma. If you're a user of the ORM, we want to be able to provide lots and lots of value for you through the Prisma data platform. So we've already talked about the connection pooling problem, but we have as many ideas as we can come up with problems to solve for people that are using the ORM. So if you're an ORM user, we already know about all your data. We know what it looks like, we know how you're accessing it through the ORM. So from there, the possibilities are basically endless of what we can do for you.

00:50:02 - Christopher Burns

Awesome. I think that's a great quote to leave this episode on.

00:50:06 - Anthony Campolo

Well, first though, we need to get your socials. So if people want to find you online or find Prisma, where should you direct them?

00:50:12 - Austin Crim

Yeah, absolutely. So I'm on Twitter a bunch, way too much, at Crim underscore codes. Crim underscore codes. Find me on there. I have a blog that I don't write enough on, and find Prisma at Prisma.io. Go through the getting started guide. If you have any questions, reach out to me.

00:50:27 - Christopher Burns

Yeah. Thank you for being one of our first in-person guests ever.

00:50:32 - Austin Crim

It's an honor to be here. Thanks so much.

00:51:04 - Christopher Burns

And, yeah, you're gonna have to learn Redwood sooner or later. It could be a standard we don't know.

00:51:12 - Anthony Campolo

Awesome. Good.

00:51:13 - Austin Crim

Cool.

On this pageJump to section