
JavaScript Jam Open Mic with Pipedream
Hosts and guests discuss Pipedream, code automation, TypeScript complexities, and full-stack JavaScript frameworks in an open mic format
Episode Description
JavaScript Jam discusses Val Town, Pipedream, TypeScript's trade-offs, full-stack frameworks like Redwood and WASP, and welcomes a surprise Pipedream DevRel guest.
Episode Summary
This JavaScript Jam Live episode opens with the hosts—Scott, Anthony, and Ishan—highlighting their recent interview with Val Town's creator, which leads to a wide-ranging discussion about browser-based coding platforms. Ishan traces the lineage from AppJet to Glitch to Val Town, questioning why none of these "run code in the browser" tools have produced a category-defining company. Anthony speculates that developers gravitate toward purpose-built integrations on specific platforms rather than generic sandboxes. The conversation pivots to Pipedream, a developer-first integration tool, and a Pipedream DevRel engineer named Dylan unexpectedly joins after being alerted by his own company's social-mention workflow. Dylan explains how Pipedream differentiates itself from Zapier by offering open-source components and the ability to drop into custom Node code, and he previews an upcoming AI-powered code generation feature. The group then explores TypeScript's "Five Inconvenient Truths," with Anthony detailing frustrations around build complexity, file-type proliferation, and the lack of a single canonical TypeScript configuration. Nicky T joins to discuss WASP, a full-stack React framework with its own domain-specific language and a GPT-powered app generator. The episode closes with a broader debate about full-stack JavaScript frameworks—Redwood, Blitz, Sails, Adonis—and whether opinionated tooling helps or hinders developers as services like Stripe and Clerk continue unbundling traditional framework responsibilities.
Chapters
00:00:00 - Show Opening and Newsletter Plug
Scott kicks off JavaScript Jam Live with his usual welcome, inviting listeners and live attendees alike to participate regardless of skill level. He emphasizes the open-mic atmosphere and encourages audience members to request to speak. Anthony plugs the weekly JavaScript Jam newsletter at JavaScriptJam.com, and the hosts deal with technical difficulties getting co-host Ishan into the X Space.
After a few minutes of troubleshooting the co-host invitation system, Ishan finally joins and jokes about the asynchronous chaos of the process. The three hosts introduce themselves—Scott as technical community manager at Edgio, Ishan as VP of Product, and Anthony as developer advocate—and set the stage for the day's topics.
00:04:40 - Val Town, Pipedream, and Browser-Based Coding Platforms
Anthony introduces their recent interview with Val Town's creator Steve, describing the product as "GitHub Gist meets AWS." Scott draws a comparison to Pipedream, explaining how it differs from Zapier by letting developers write custom code for automation workflows rather than relying solely on drag-and-drop interfaces. He shares his personal experience using Pipedream for event automation with ClickFunnels.
Ishan broadens the conversation by tracing a historical lineage of browser-based coding tools, starting with Y Combinator's AppJet in 2007 through Joel Spolsky's Glitch. The hosts debate the distinction between platforms that recreate a full dev environment in the browser versus those that reimagine development as browser-first, and Anthony speculates that the category has struggled to produce a dominant player because developers prefer purpose-built integrations over generic sandboxes.
00:20:34 - TypeScript's Inconvenient Truths and Gradual Typing
Anthony highlights a newsletter article from the GitHub README project about gradual types and TypeScript, sharing his personal hesitations around fully adopting the language. He details the explosion of file extensions—js, ts, jsx, tsx, cjs, mjs—and the complexity of tsconfig permutations that create effectively infinite flavors of TypeScript depending on build targets and module systems.
Ishan walks through the "Five Inconvenient Truths of TypeScript" article, covering how TypeScript can't fully escape JavaScript's dynamism, adds its own complexity layer, isn't truly type-safe, comes in countless configurations, and is still worth learning despite all of this. The hosts reference their earlier episode with Josh Goldberg and discuss when TypeScript makes sense—Ishan favors it for collaborative or reliability-critical projects but sticks with plain JavaScript for throwaway side projects.
00:35:05 - WASP Framework and Its Domain-Specific Language
Anthony welcomes Nicky T to the stage, who has just finished streaming about WASP, a full-stack React framework featuring its own domain-specific language. Nicky explains how the DSL works as a declarative configuration layer where developers define their app's database provider, routes, and entities, drawing a parallel to infrastructure-as-code tools like Terraform.
The discussion covers WASP's GPT-powered app generator that can scaffold entire full-stack applications from a prompt, including React pages and API endpoints. Nicky and Anthony note the unusual absence of a package.json file, with everything running through the WASP CLI instead. They touch on the deployment story, currently limited to Fly.io, and acknowledge the project is still in early days with room for automation improvements.
00:41:40 - Dylan from Pipedream Joins and Demos the Platform
Dylan, a DevRel engineer at Pipedream, joins the Space after being alerted by his own company's social-mention automation workflow—a fitting demonstration of the product. He explains Pipedream's developer-first philosophy, distinguishing it from no-code tools like Zapier by highlighting its open-source component system that lets users fork, modify, and redeploy integration actions.
Dylan describes the most popular use cases on the platform, ranging from CRM automation for non-technical users to custom GitHub CI workflows and Shopify logistics integrations for developers. He also previews an upcoming AI code generation feature that has been trained on over a thousand API documentation sets, allowing users to describe desired integrations in plain language and receive scaffolded Pipedream components—though he cautions that hallucinations around API endpoint names still require developer vigilance.
00:53:03 - No-Code vs. Low-Code and the Developer Experience Debate
Bro Nifty steers the conversation toward the broader no-code and low-code landscape, comparing tools like Node-RED and Stackery to Pipedream and arguing that the ability to drop into actual code is essential for backend tooling. Dylan agrees, noting that Pipedream treats code as a first-class citizen while still offering pre-built actions for non-technical users.
The group discusses the tension between front-end low-code tools, which tend to be too restrictive, and back-end platforms that benefit from visual composition but need code-level escape hatches. Bro Nifty raises the idea of combining infrastructure-from-code tools like Wing Cloud with integration platforms, and Dylan acknowledges the ambition of that vision while noting that standardizing API integrations alone is already an enormous challenge.
01:04:27 - Full-Stack Frameworks: Redwood, Sails, Adonis, and the Unbundling Trend
The hosts and Dylan discuss the state of full-stack JavaScript frameworks, with Anthony championing Redwood as the closest thing to a Ruby on Rails experience in the Node ecosystem. They touch on Sails and Adonis as older REST-based alternatives and note that Blitz has fallen off the radar somewhat, with Anthony mentioning his connections to creators of several of these projects.
Dylan observes that the traditional full-stack framework is being unbundled by specialized services—authentication via Clerk, payments via Stripe—reducing the need for monolithic solutions. Anthony counters that highly integrated frameworks remain valuable especially for beginners who would struggle to wire together multiple services independently. The episode wraps with announcements about next week's guests, Tejas and Mark Erickson, and a teaser about React Rally.
Transcript
00:00:00 - Scott Steinlage
Welcome to JavaScript Jam Live. We do this every Wednesday at 12pm Pacific Standard Time. Welcome, welcome, welcome. If you're listening to this recording, thank you. Love you. If you're here live, thank you. We love you. All right, great. Good times. Yeah, I'm just gonna go ahead and start real quick. I just want to say, whether you're a beginner or you're an advanced user of the developer world, the tooling and everything else in this place, it doesn't matter. We want to hear from everybody, okay? Why? Well, that's because it brings more value to everybody, including yourself. So feel free to request to come up. We'll bring you up. We'd be more than happy to have you on. Great times, as always. And yeah, this is a very open mic kind of atmosphere, so it's just fun. All right, no need to get all serious up in here, although we get serious if you want to.
00:00:58 - Anthony Campolo
Why so serious?
00:01:02 - Scott Steinlage
So thank you all so much. Greatly appreciate you. I'm gonna go ahead and also tell you that if you have not subscribed to the JavaScriptJam.com newsletter, you're missing out. Anthony puts some awesome time into that every week and we send out a great newsletter. So feel free to go to JavaScriptJam.com, subscribe if you're not already, and join the other hundreds of others that already are subscribed and enjoy our newsletter every week.
00:01:35 - Anthony Campolo
All right, that's JavaScriptJam.com right there, right up on the Jumbotron.
00:01:40 - Scott Steinlage
On the Jumbotron, y'all. Just scroll up, you'll see this.
00:01:44 - Anthony Campolo
By the way, something that we should do when we go live is all three of us should just retweet the Spaces link, because then that will kind of boost it in the algorithm. Also, it looks like Ishan is on the struggle bus right now.
00:01:56 - Scott Steinlage
Yeah, no, I invited him earlier as a co-host and it didn't work, and now he's requesting, but I can't get him to come up for some reason. Yeah, so get out and come back in.
00:02:09 - Anthony Campolo
I'll send him a message.
00:02:10 - Scott Steinlage
Yeah, he should at least be able to hear me. Maybe not.
00:02:15 - Anthony Campolo
Yeah, if he's in like half-joined, half-not mode, he might not be able to hear.
00:02:19 - Scott Steinlage
Oh, he bounced.
00:02:22 - Anthony Campolo
Let's try this one.
00:02:23 - Scott Steinlage
Once he's back, we'll do intros.
00:02:25 - Anthony Campolo
He can now speak. But can he really?
00:02:29 - Scott Steinlage
I'm showing he's already out of the room.
00:02:31 - Anthony Campolo
Says there's an error adding him as a guest. Yeah.
00:02:36 - Scott Steinlage
Here we go. I can invite to co-host. There we go. Let's see what in the world. All right, I'll cancel my co-host invite, I'll re-invite, and hopefully it'll work.
00:02:49 - Anthony Campolo
There we go.
00:02:51 - Scott Steinlage
Jeez.
00:02:52 - Ishan Anand
Wow, that was.
00:02:54 - Nicky T
Wow.
00:02:54 - Ishan Anand
That was a struggle in asynchronicity. Even after I came up, it sent me a message saying your invite to co-host has been canceled. Everything was out of order. It was like you guys had accepted it before I acknowledged that I'd made the request. It was, yeah, welcome to... well, I guess I got a lot to deal with.
00:03:22 - Anthony Campolo
Yeah, I'm never sure whether the right thing to do is to actually send an invitation or wait for them to request, because I feel like that tends to make a difference.
00:03:31 - Scott Steinlage
If I send it right away before they request, there typically aren't too many problems.
00:03:36 - Anthony Campolo
But yeah, so we'll say this was Ishan's fault.
00:03:40 - Ishan Anand
Yes.
00:03:43 - Scott Steinlage
Welcome to X Spaces.
00:03:48 - Anthony Campolo
Nothing weird about that title.
00:03:51 - Scott Steinlage
Yeah, yeah, it's like X-Files, maybe like alien-type stuff.
00:03:56 - Anthony Campolo
What, aliens?
00:03:59 - Scott Steinlage
The X Files. Oh, this is crazy.
00:04:04 - Ishan Anand
That's a nice tie-in. Before we hopped on, in the previous meeting today, we were talking about the congressional inquiry into UFOs. So that's for the audience.
00:04:15 - Anthony Campolo
They walk among us.
00:04:16 - Scott Steinlage
Before we do that, I'm just going to make an intro here. My name is Scott Steinlage. I'm the technical community manager at Edgio, co-host of this here podcast. Ishan?
00:04:26 - Ishan Anand
Yeah. Hi, everyone. I'm Ishan, VP of Product at Edgio for the Applications Platform, which is a JavaScript CDN and security platform for web applications.
00:04:39 - Anthony Campolo
Yeah, yeah. Welcome back, Ishan. And my name is Anthony Campolo. I'm a developer advocate at Edgio.
00:04:46 - Ishan Anand
If you have not checked out our newsletter, go and subscribe to JavaScript Jam. Go to JavaScriptJam.com and subscribe to the newsletter. Anthony puts it out once a week. There are a couple interesting stories there. There are some things that I thought were interesting that weren't in there. But start with the story of the week. So I don't know if you want to cover that or talk about that a little bit and why you picked that as the story of the week. Did we lose Anthony? He's now listed as a listener.
00:05:19 - Scott Steinlage
What is going on? Hold on.
00:05:21 - Ishan Anand
Yeah, I know. There we go.
00:05:26 - Anthony Campolo
[unclear]. Let me do the co-host thing because I wanted to share the thing, and I always forget you can't switch Twitter accounts.
00:05:39 - Scott Steinlage
Oh yeah.
00:05:41 - Anthony Campolo
So I just wanted to go to the JavaScript Jam Twitter account so that I could pin that guy. Yeah, yeah. So we did an interview with Steve from Val Town. This is a pretty cool project, and so we have a YouTube video up, and I shared that in the newsletter and kind of highlighted it. So the way he describes it is it's like GitHub Gist meets AWS. And actually, Bro Nifty, shout out, was the one who got this interview in the first place. Steve was asking, hey, are there any cool podcasts that we could go on to show off Val Town? He was like, hey, you should go on JavaScript Jam. I was like, hey, that'd be cool. So, Bro Nifty, always a great advocate of the show and the pod. Really, really appreciate that. So we had Steve on and he was showing us the product. He says it's like GitHub Gist meets AWS. And actually, Scott, I think you mentioned Pipedream. I feel like that was kind of an interesting little comparison as well. You want to explain what Pipedream is?
00:06:54 - Scott Steinlage
So have you heard of Zapier, or Zapier, however you want to pronounce it? Everybody says it differently. Zapier, the French version. Welcome to Zapier. Just don't jump off the pier, okay? Anyway, so yeah, Zapier has all these connections, right, back and forth. Anthony's crying over there, not laughing. So you can connect and be able to link different services. For example, if you wanted to send an email out whenever somebody is added to a list inside of a database, Zapier typically would have a connection, most likely with that database or even Google services, or maybe it's an Excel spreadsheet that someone gets added to and then you want an email to go out to them. You can do that as well. I mean, there's all different kinds of things you can do, but it all connects through these APIs of these different services, right? And so Pipedream is the exact same thing, except it's more for the developer because the process of this, like with Zapier, you just go and you click a couple buttons and drag and drop.
00:08:24 - Scott Steinlage
And you say you want these things to connect and do this, right? So with Pipedream, you actually code in these processes. You put a schema in so that it'll do what you want it to do. And the cool thing is you can customize things a lot more inside of Pipedream, and they're a lot less expensive as well. Pipedream is just really cool. And they've made some advances with AI, which is another reason why I like them. And I was one of the first people to test out their AI process that they put together for using ChatGPT inside of the custom coding.
00:09:05 - Anthony Campolo
So do you use Pipedream for your actual work?
00:09:09 - Scott Steinlage
I have, yeah. Yeah.
00:09:11 - Anthony Campolo
What was your specific use case that you used it for? It's just one of those tools that is very, very generic, so I kind of don't even know what I would do with it.
00:09:20 - Scott Steinlage
Yeah, well, so Zapier.
00:09:23 - Anthony Campolo
Zapier.
00:09:23 - Scott Steinlage
I used that a million times over when I worked with ClickFunnels and any other clients that I had with any marketing stuff. I mean, it was always in use, for sure. But with Pipedream here recently, actually, I just kind of stumbled upon them. I don't even remember how now, but anyway, I stumbled upon them and I really liked what they had and the process and everything. And then when they started doing this AI thing, I'm part of their Slack channel as well, so kind of talking through, helping them get the bugs worked out on it too, which is kind of cool, being able to mess with it and be part of that. I guess it wasn't quite beta, but either way it was fun. And so I used it for, for example, when we're going to be doing some stuff with [unclear] Jam and one of these events that we're at, one of the many that we do. I was trying to get the speakers to say that they were going to do something with us. And so when I had a...
00:10:26 - Scott Steinlage
Actually, I created a ClickFunnels landing page. Instead of using Zapier, I used Pipedream to enable a trigger to be able to do some things automatically, automate the process, right? So anyway, I'm not gonna get too much into it, but yeah.
00:10:48 - Anthony Campolo
Cool. Yeah, it's funny, the way I first heard about Pipedream is I had a job interview there. This is back when I was working at StepZen. I was just kind of exploring different roles and seeing what was available to me. And they asked me to do a coding interview, which I totally failed, so I did not get that job. But they were cool people. This is 2021 Anthony. He did not quite have the skills to pay the bills at the time.
00:11:17 - Ishan Anand
Well, you know, I want to go back to Val Town for a second. I feel like there's this whole space of, you know, let me take a step back. There's a category of software that I think Val Town sits in that is occupied by a bunch of companies that have come and gone over the years. And it's always felt to me like this kind of thing should exist, and then I haven't seen one of them get super large. So the first one I can think of is this company called AppJet. Man, when did they come out? They were a Y Combinator company in, let's see what it says, 2007, right? And you go to a website, right? Yeah. It was this web-based application where you'd write your code. I don't remember what language they supported. I think they supported JavaScript, and you run your code in a sandbox, and you could just write your code and it would code, preview, publish very easily. And it was this idea of making it really easy for somebody to go and get started and run a program.
00:12:40 - Ishan Anand
And the other example I can think of, and there have been a bunch of them, is Joel Spolsky, famous for Joel on Software, creator of FogBugz and Stack Overflow and a bunch of others. He had a really good blog post, man, it must have been like five years after this, maybe it was 10 years, in 2017, saying it's really hard as a developer to download packages, and then to share that code and for somebody to run it is just a lot of work. And he's like, it'd be great if you could just go write code and just, bingo, you've got your API. And that became Glitch. And they actually pivoted most of, I think, Fog Creek to Glitch. Yeah. And Glitch was this, again, you can go in a browser and write...
00:13:34 - Anthony Campolo
I always think of Glitch as more like a CodeSandbox or a StackBlitz kind of thing.
00:13:40 - Ishan Anand
So tell me, do you think the comparison with Val Town and Glitch and AppJet and the rest of these is misplaced, or do you think...
00:13:48 - Anthony Campolo
Well, I think the question is, is this code that runs or is this code that renders into a browser window? Like, is it a script or is it a website? That's kind of the way I differentiate it. I haven't really used Glitch, so I may be incorrect that it's more like a CodeSandbox. Maybe it is more like a Val Town. I honestly don't really know.
00:14:09 - Ishan Anand
Glitch was more like a Val Town, is my understanding. You'd write your code, it would run on the server, and they would run it. It would basically be a really quick way. I mean, in their case, they're using GitHub Gists as, let's call it, the mental vehicle and positioning. But it's the same thing, basically. Let me go see what Glitch is like today. They got acquired, actually. Yeah, you get full-stack apps that sleep after five minutes. You had unlimited static sites, but you could write full-stack apps if you wanted to.
00:14:46 - Anthony Campolo
And that goes back to what I was saying. That's a website then, or it's something that has a front end. Because with Val Town, the code you write doesn't have a front end. It's like a Node script.
00:14:58 - Ishan Anand
I think with Glitch you could do an API as well.
00:15:01 - Anthony Campolo
Okay, so it's not like Glitch. It probably does both then. It's like a Val Town and a CodeSandbox, and you can do either because it's been around for so fricking long, probably, that they built in that kind of functionality.
00:15:11 - Ishan Anand
I mean, to me it's an important but also at the same time subtle distinction. You can return HTML or you can return JSON. Just give me a place to serve it. Yeah, you're right.
00:15:26 - Anthony Campolo
I guess for me it's a question of, is it running npm or Yarn under the hood? Is there a dev server? I think that's kind of the distinction I'm making in my head.
00:15:37 - Ishan Anand
And is your understanding, in the case of Glitch, there isn't, and Val Town, I have no idea?
00:15:43 - Anthony Campolo
I've never really used Glitch. Okay, with Val Town there is not, though. There's no dev server at this point, as far as I can tell.
00:15:51 - Ishan Anand
What do you mean by dev server, actually?
00:15:53 - Anthony Campolo
Like when you run npm run dev and then it kicks open your website on localhost:3000. That step does not exist in Val Town.
00:16:02 - Ishan Anand
I don't think so. Why am I struggling? There's no CLI, right? Exactly.
00:16:09 - Anthony Campolo
Whereas with CodeSandbox and with StackBlitz, there's a CLI. It's like a whole dev environment.
00:16:15 - Ishan Anand
Yeah. Okay, now I understand what you're saying. Okay, so there's two ways to go about solving this problem, that it's really hard as a developer to build your whole dev environment and then code, and then imagine you came back to it a year later and you're like, what the heck? And maybe you have to upgrade components and it's just a mess, or you have to share that to somebody else and they have to go down npm install and all that. So one solution is to say we'll give you a virtual sandbox, we'll give you a container, right, where you run the equivalent of Node or something similar to it, right? So StackBlitz is a great example of that, and they run that entirely in the browser. So the other way is to just give you an in-browser editor. And there is no... you're not exposed directly to Node and the npm ecosystem unless you really want to be. So Glitch and Val Town and AppJet are more of that latter category. So I think they're all the same. At least they're part of that category.
00:17:19 - Ishan Anand
They all meet that definition of there is no dev server. You're not in a true, call it generic Node development environment, is how I describe the distinction. Is that rephrasing accurately what you were going for as a distinction?
00:17:33 - Anthony Campolo
Yeah, yeah, that makes sense.
00:17:34 - Ishan Anand
Yeah. So if somebody came expecting to npm install, they'd be lost, in a sense. So these all meet that criteria. There is no... it's not a... maybe the simpler way to say it, as I'm thinking aloud, is one way to look at it is, let me just recreate your entire dev environment in the browser. Another way is to say, let me reimagine what the dev environment should look like, browser first. And I'd say AppJet and Val Town and Glitch are more of that latter. They're even less than a fiddle in some ways because some fiddles do give you access to npm if you want them. So what's interesting to me is there's this whole category that I've always felt should exist. And you can look at other things that are adjacent, like the Cloud9 in-browser editor, which is kind of more category one, shall we say, the recreate-the-developer-environment. But none of them have actually turned into their own large companies, at least that I can think of. And I've been kind of watching this space casually since AppJet came out.
00:18:46 - Anthony Campolo
So are you going to give Val Town a try?
00:18:49 - Ishan Anand
Oh yeah, I'll give them a test drive. And again, I feel like this whole category should exist, but it doesn't have a category killer, the king of its category yet. And I'm kind of curious from a product sense why that is. I'm curious if you have a read or a feel.
00:19:16 - Anthony Campolo
I would guess because it's such a generic piece of functionality that you can kind of do... because like what Scott was saying, there's things like just Zapier and then stuff like Pipedream. So I feel like people probably found platforms that allowed them to do self-contained functionality in a way that hooks it into their platform. Because also, if you think of the whole point of doing this, usually it's because you need an output somewhere. So if you need an output somewhere, it may be in Slack, and then you're just building integrations in Slack or in Discord and then you're working with these specific bots, a specific platform. So I feel like everyone has a bespoke way of figuring out the functionality they need to do. So they've been avoiding using a generic platform like this. And so it's been tough for the generic platforms to get the kind of uptake they need to become a market leader. That's my speculation. I have no idea if that's actually true or not.
00:20:18 - Ishan Anand
Interesting. Okay. Basically they're too generic, and anything that is custom-built for the purpose needs to be integrated into the job to be done.
00:20:30 - Anthony Campolo
That'd be my guess. Yeah.
00:20:31 - Ishan Anand
Yeah.
00:20:34 - Scott Steinlage
I remember how I found out about Pipedream.
00:20:36 - Ishan Anand
How did you find out about Pipedream?
00:20:38 - Scott Steinlage
Okay, so when I was building out that PDF reader with LangChain and ChatGPT, I discovered this guy who knows Notion really well. You've probably heard of him, but Justin, what's his name? Hold on. I think I have him in my bookmarks. I should, at least.
00:21:19 - Anthony Campolo
Just town.
00:21:23 - Ishan Anand
That's the type of joke.
00:21:24 - Scott Steinlage
No, it's not Justin at all. It's actually Thomas Frank.
00:21:27 - Ishan Anand
Okay.
00:21:28 - Scott Steinlage
Anyway, he's like this Notion guru and...
00:21:33 - Ishan Anand
Did we lose everyone?
00:21:35 - Anthony Campolo
I think... oh, that was weird. [unclear]. That may have been me.
00:21:41 - Scott Steinlage
Anyway, Thomas Frank, if you didn't hear me, he's like this Notion guru and he created this really cool thing where if you speak into your iPhone, in a note app, then it'll take that and transcribe it and then it'll put that into LangChain and ChatGPT and then, obviously, using something like Pinecone or whatever for your vector, it creates these awesome notes for you inside of Notion based on what you just said. So if you have this really cool idea, instead of typing it out as a note throughout the day, you can just talk into your phone and then it's going to create these amazing notes inside Notion. Anyway, he was using Pipedream for a lot of the connections and the webhooks and things like that to go back and forth. And that's how I heard about Pipedream.
00:22:36 - Ishan Anand
Interesting. I think we're at the halfway point. We should just remind folks that they're welcome to raise their hand at any point. We try to make this an open mic, and whether you're a beginner or an expert, we want to hear from you. Should we move on to any of the topics you thought were interesting for this week's newsletter, or was there anything that was on the cutting room floor that you thought you were going to include but you left out that you thought might be interesting or compelling to talk about here?
00:23:07 - Anthony Campolo
So there are some of the quick links that I thought were pretty interesting. There was an article that was on the GitHub README project called "TypeScript and the Dawn of Gradual Types: Why choose between static or dynamic when you can get the best of both?" And, you know, I didn't read this entirely front to back, but I kind of skimmed it, and I think the idea is pretty interesting. Because something I've always been told from people who are super into TypeScript, or people who are super into TypeScript but also are not fanatics about it and kind of understand the trade-offs inherent, they'll say, don't worry about migrating from JavaScript to TypeScript and literally typing your entire project in one go, because if you have a large enough project it's just kind of absurd. What you should do is have inferred types, and if they happen to not infer correctly then you can fix them on the fly. But this is a way that kind of allows you to scale your typing thing.
00:24:19 - Anthony Campolo
So I think there is kind of this idea now that we need to figure out a way to bridge the JavaScript and the TypeScript worlds in a way that doesn't just require literally every single JavaScript developer migrating their entire project to TypeScript in one go, because that's just kind of ridiculous. And there's some other stuff in here about, can we finally kill the build steps? Can we get some sort of setup that doesn't involve actually having a build step? And so there's just a lot of stuff in here that is things that I've been thinking about with TypeScript for a while, and it's nice to see a big discussion kind of around these topics. Because I get the benefit of TypeScript, but I've still been kind of hesitant to really make the full switch for a lot of the reasons that are identified within this post.
00:25:13 - Ishan Anand
And we should shout out Josh Goldberg, who did an episode with us on TypeScript. You know, they open the article with his, you know, about his experience with it. What were the reasons you feel that you haven't gone to TypeScript, though, that you were going to call out?
00:25:34 - Anthony Campolo
Yeah, so I would say build complexity is a big one, especially when you get into ESM versus CJS type territory. Because I don't know, I know you don't code as much these days, but within the last three, four, five years, we've gotten to this thing where you have js, ts, jsx, tsx, cjs, cts, mjs, mts. It is complete madness. It's the worst possible situation to be in. So that's gotta go. We gotta figure out something to do about this whole file-naming situation and file-type situation. So that's a huge problem. And then otherwise it's the tsconfig. Based on how you choose to configure your TypeScript, there are actually infinite permutations of TypeScript that exist. There is no one TypeScript, because it's like, is this compiling down to CJS or ESM, or is it compiling down to 2015 ECMAScript or 2020 ECMAScript? So there's all of these different permutations based on how do you actually build your JavaScript that just add so much complexity. And until you figure that out, there are no types. So there's all these steps involved before it even gets to the point where you can enjoy all the benefits that types give you.
00:27:06 - Anthony Campolo
And for someone who builds lots of small projects that need to be created from scratch, that is a huge, huge pain point. It's not a pain point if you're on a project that was set up five years ago and is just going to be the one project you're going to work on. So if you're in a big production app and that's the only app you ever work on, you'll never encounter this problem. But if you're a DevRel who spins up lots and lots of small projects all the time, you're always running into these things.
00:27:34 - Ishan Anand
Yeah, I actually really liked that article you included, which was the other one, "The Five Inconvenient Truths of TypeScript," which covered a lot of what you're talking about. Maybe we should enumerate them for the audience, because it's a short list, the five inconvenient truths.
00:27:52 - Anthony Campolo
Yeah, go for it.
00:27:53 - Ishan Anand
Yeah. So the first one was: TypeScript won't save you from JavaScript.
00:27:57 - Anthony Campolo
So true.
00:28:00 - Ishan Anand
Do you want to elaborate?
00:28:02 - Anthony Campolo
Just like, JavaScript itself is a highly dynamic, complicated language that's always changing and adding new features. So no matter how well you type it, next year they may add a new feature that isn't even typable in the first place, you know? So I feel like there's a kind of fallacy inherent that it is even possible to type all of JavaScript soundly. I don't know if that's actually true.
00:28:31 - Ishan Anand
Yeah. And I guess the way to say it, I think it is a great phrase, it's like you'll see the yellow patches shine through the blue coating of static types. At its core, it's still got the ugliness of JavaScript. Maybe it's another thing, it's lipstick on a pig. So it's not like you can leave JavaScript behind, is how he describes it. Number two is TypeScript adds complexity. So you can have this gradual approach, but you're still going to have a lot of complexity no matter how you do it. Now you've got a new set of concerns to think about. Number three was that TypeScript is not type-safe. Number four was what you just touched on earlier, which is TypeScript comes in many flavors. Which version of TypeScript, in a sense, or settings have you chosen? And he said TypeScript has so many possibilities. I haven't seen a single project that looks similar to another one. Every team figures out something different and uses a variety of tools to express themselves in TypeScript, and they all come with different features and trade-offs.
00:29:48 - Anthony Campolo
Yeah, and that is really the big thing. If there was a single TypeScript that was actually a language by itself that worked the same way every time, I would 100% switch to that and only write that. I would be totally bought into that. But like you just said, that's not the case.
00:30:07 - Ishan Anand
Well, as it says in this article, I can't take credit for it. But did Josh, you know, we discussed TypeScript with Josh. Did he ever touch on that at all? Because I feel like it's important.
00:30:19 - Anthony Campolo
I did, actually. I kind of asked about a lot of this stuff and yeah, he was saying there is no silver bullet. You kind of just gotta work with this stuff, and eventually you find configurations. He was like, you gotta settle on a configuration with your team, and that's just kind of what it comes down to. And so I don't know if this is something that can be fixed on an ecosystem level at this point.
00:30:45 - Ishan Anand
Yeah. So number five, let me go back to it, was it's still worth doing TypeScript, which despite all those issues, it's still worth it. Which, as I mentioned, Josh did a kind of crash introduction course to TypeScript for us. If you Google JavaScript Jam Josh Goldberg, you'll see TypeScript with Josh Goldberg.
00:31:12 - Anthony Campolo
I'll put that on the jumbotron.
00:31:13 - Ishan Anand
Yeah, let's put that on the Jumbotron. So despite all of the issues we talked about, it's still worth learning. So go watch that episode to get started if you haven't started to embrace and get on the TypeScript train.
00:31:28 - Anthony Campolo
So Ishan, I know this is not something you necessarily do, but if you were to start a new project today, would you start it in TypeScript?
00:31:38 - Ishan Anand
Side project, or am I working with others? Either? For a side project, it's a POC that I'm going to throw away, like I'm just experimenting, then I would do it in just regular JavaScript. So, for example, I have some automated tools I run that grab content from one place and put it into my RSS feed reader. Those I just write in JavaScript. There's no... and I'll just error check. I know what the errors are, like I don't have this field for the XML. It's fine, I'll deal with it. If it's something that I think will grow and will have other people working with it, then I would go towards TypeScript. I mean, I cut my teeth in strongly typed languages first.
00:32:31 - Anthony Campolo
Which ones?
00:32:32 - Ishan Anand
Well, very first, like Java, Pascal, actually.
00:32:36 - Anthony Campolo
Pascal? I never thought so. I've heard of Pascal, but I know so Little about it. I didn't realize that's a strongly typed language. Interesting.
00:32:44 - Ishan Anand
Yeah. Well, it's interesting because I took that class without taking the prerequisite, which was learning BASIC, and all the people in that class who had come from BASIC were all frustrated. They're like, why do I have to declare my variable? And I was like, okay, this is what it's asking me to do. I'm okay to live with it. So then I only went to JavaScript and dynamic languages, well, I guess shell programming as needed. But I like the idea of typing, and I think it's really important for the long-term reliability to be able to know very strongly what the thing is you're dealing with at various points in execution of the problem. Now, I was doing systems programming, so later moved on to C, and there you have to keep really tight reins on stuff, because C will let you read off the end of an array. You get these arbitrary pointers to memory, and so you have to be really super careful. And so for jobs like that where I feel like I need to be careful and things that I feel like are reliability-critical, then I definitely want to be working in a statically typed language.
00:34:01 - Ishan Anand
I'm not even sure I want to be working in a garbage-collected language if performance is really critical. No, I'm talking about systems-level performance. So this was like in audio where you miss a few milliseconds, you'd ruin the whole take.
00:34:16 - Anthony Campolo
When you worked at Pro Tools.
00:34:18 - Ishan Anand
Yeah, Digidesign. Yeah, exactly. So that's my answer. If I think more people would be working with it, or if I think correctness is critical, then yes, I would go to TypeScript. But for side projects, no. And it's kind of, you don't have to choose. You can start with JavaScript and then suddenly, like, oh, this might take off. Then you can maybe migrate the codebase at some point later on. And if I thought third-party contributions were important, then I might actually, you know, I don't know, I'd have to make a decision there. I feel like JavaScript is more accessible, but TypeScript makes it more maintainable.
00:35:05 - Anthony Campolo
By the way, I see someone just joined from Pipedream. Actually, just wanted to say hey, and you're welcome to come up and speak if you're so inclined. Otherwise, thank you for joining.
00:35:16 - Ishan Anand
Oh yeah, we were just talking about Pipedream.
00:35:19 - Anthony Campolo
Yeah, I imagine they probably have a Pipedream trigger to notify them anytime someone tweets Pipedream.
00:35:26 - Ishan Anand
So, well, again, for those of you who just joined, we're very much in open mic format. You can raise your hand. We're happy to bring anybody to the stage and change the topic at any point and talk about... looks like, is that somebody...
00:35:42 - Anthony Campolo
That's Scott. Oh, that's Scott coming back for some reason. Yeah. Also, hello, Nicky T. I saw you just had a WASP episode on your stream. Big fan of WASP, very cool project.
00:35:55 - Ishan Anand
You know, I saw somebody posting about WASP in a newsletter this week and you didn't put it in JavaScript Jam. I don't know anything about it. I just remember seeing the name. Do you want to just tell people?
00:36:07 - Anthony Campolo
Yeah, Nicky's joining right now. The cool thing about WASP is...
00:36:14 - Scott Steinlage
Yeah.
00:36:15 - Anthony Campolo
Oh yeah. So the cool thing about WASP is that it's a full... it's like it's the whole full-stack Jamstack thing. I would say back when I used to talk about full-stack Jamstack more, there was Redwood and Blitz and then, you know, Bison kind of. But WASP is the first project that kind of came after those that I think can still fit kind of into that category, which is they have a full-stack React kind of deal with an auto-configured Prisma backend, and they even go further by having their own DSL. And Nicky T can kind of talk more about that because he just got the whole download just an hour ago.
00:36:56 - Nicky T
Yeah, sure. Yeah, there's a few things to it. I was also on the stream. Oh, also, hey everybody.
00:37:05 - Ishan Anand
Welcome.
00:37:06 - Nicky T
Yeah, no, there's the DSL. So it was the first time I saw the DSL, the domain-specific language, and I kind of made a parallel, like were they doing something similar to infrastructure as code, kind of like Terraform or something? And it's not exactly like that, but Matija, who's one of the co-founders, said it's similar to that. But it's like, I see a few things in the project. Right now they're talking about full-stack web development, but I see the DSL could literally be used for building any web app. Right now they're focusing on React because they just want to get things in a really good place for one library. But after that...
00:37:57 - Scott Steinlage
I think
00:37:57 - Nicky T
They started off with Angular, they were saying, early days, and then they moved to React. But the DSL is interesting because you have a root node in the DSL, the app itself, and then you can have stuff that you define, like Anthony was saying. So you could say, here's my DB section and my provider. By default it's SQLite, just so you can get up and running really quick. But then you can say, oh, I want it to be Postgres. And then you have Prisma, like Anthony was saying. That's what they're sticking with for now because, like, I get it, they just want to build it out nice and solid. But it's not inconceivable to say, in future, like, oh, WASP, add Drizzle instead of Prisma, or add more database provider types.
00:38:49 - Dylan
Sorry.
00:38:50 - Nicky T
And it's interesting. It seemed a little odd to me at first because... well, the one thing that was interesting was they had this GPT generator web app. Now, I can link to that in...
00:39:04 - Anthony Campolo
a bit, but basically, yeah, we're likely gonna have a JavaScript Jam podcast interview with him about that sometime in the next couple weeks.
00:39:12 - Nicky T
Okay, cool. Yeah, yeah, do it up. So basically I went with one of the stock project suggestions for prompting GPT, and they're using GPT-4. And what it does is it generates the WASP file along with all the files. So, for example, it's React, so it's generating pages. It also is able to generate... we created a My Plants app where you basically can create plants, you can water them, and it generated the whole... all the APIs for that. Yeah, exactly. And then the weird thing, if you're coming from front end or Node or anything, there's no package.json. It's the main WASP file, which is...
00:40:00 - Anthony Campolo
Yeah, that super threw me off the first time I tried it. I was like, what do I do? There's no package.json.
00:40:07 - Nicky T
Yeah. Well, I'm curious about it because I wonder, because normally you have the package-lock.json to ensure that you have the same dependencies all the time.
00:40:17 - Anthony Campolo
Although I guess everything just runs through the CLI, so that is what understands whether you have the things you need. That's my guess, at least. I'll have to ask him about that.
00:40:26 - Nicky T
Yeah, no, you do pretty much everything through the CLI. So you do, like, WASP start to literally start the application. And you don't need to run the database if you just go WASP start, because by default it's SQLite. But if you start using Postgres it requires Docker. So then you do WASP DB start, and then you can also run database migrations. I think we only hit the tip of the iceberg, but I was curious too about the deployment story. So right now they can deploy to Fly.io. I think it's still a little clunky, the deployment story. Not in a bad way. It's just, it's still...
00:41:10 - Anthony Campolo
Yeah, you remember you were on my stream when I had Matija on also, and we were kind of struggling through the deployment step. We eventually got a static thing running on Netlify, and I assume all you really would need to do is just get the environment variable in there after that. But I think what they need is setup commands to kind of do all that stuff for you still.
00:41:34 - Nicky T
Yeah, there's still stuff they could automate, but early days. I see Dylan's got their hand up, so I'm...
00:41:40 - Anthony Campolo
Yeah, Dylan, welcome to the show. Go ahead and introduce yourself for our audience and feel free to say whatever you want.
00:41:47 - Dylan
Thanks, guys.
00:41:49 - Dylan
You were on the money.
00:41:50 - Dylan
I was notified by a workflow we have through Pipedream whenever we get mentioned on social, any social. It'll send a Slack message and give us details about it. So that's how I ended up here. And forgive me, this is my first ever... well, I guess you call X now... X Spaces kind of meetup. I've never actually used this app before, so it took me a minute to figure out actually how to raise my hand. You can't do it on web, you have to do it on the app.
00:42:18 - Anthony Campolo
Well, you made it. You do DevRel for Pipedream?
00:42:25 - Dylan
Yeah, that's right. I made all of their university course, like every single video, wrote a lot of documentation, and some features too, actually. But I'm on the DevRel side.
00:42:37 - Anthony Campolo
That's awesome. What were you going to say, Ishan?
00:42:39 - Ishan Anand
Oh, I was going to say two things. One is that problem where you cannot join a Space as a speaker from the browser is the gotcha that happens sometimes when we have an episode with a pre-arranged guest. Fifty percent of the time we're like, wait, make sure you're in the app. I think we even got some old episodes where somebody joined and they were trying to join from the browser. So that's a classic one. And the second is, of all the companies that should have an automation in place like the one you described, it makes sense that Pipedream does. So that's totally awesome that you guys have that. So that's all I was going to say. But maybe we should give him context while we were talking about Pipedream, and go from there.
00:43:23 - Anthony Campolo
Yeah, I mean, we were kind of talking about these different platforms that have self-contained runnable code snippets. And Ishan, you were kind of speaking about how you feel like this is something that you've been following for a while, but you feel like there hasn't really been an industry leader in it. But it seems like Pipedream is probably the closest thing to that right now, at least from my vantage. I don't know. I'm sure Dylan probably has a better read on the competitive landscape of the tool. But yeah, you should mention some of the...
00:43:59 - Ishan Anand
Yeah, let me clarify. So I was taking a much more expansive view of the category. So I was looking at things like AppJet and Glitch, which are like arbitrary, come here and arbitrary-run-code. You know, if there was an exception to my assumption that I haven't seen one of these like Val Town or Glitch or AppJet, for example, become massive categories... what Pipedream is doing, which is saying, hey, connecting the APIs is a well-defined task in a space, I think there's a lot of companies in that category. I would say I don't put Pipedream in that same category as the other ones. The other ones are more like come here and build your app, whereas Pipedream is more like come here and connect things, which I think is a different job to be done, even if they're still running arbitrary code that people provide. That makes sense.
00:44:56 - Dylan
Absolutely. Yeah. So some of those I think of as low-code or no-code app builders. But it's a full UI presented to an end customer or accepts end-customer credentials, et cetera. Whereas Pipedream is more like integrations. I struggle to come up with that definition myself, and I've been there for over a year now. It's like integrations as a service. But I find myself building full Slack apps, for example, because the UI is built by Slack, so it's all over API. You could essentially build form submissions, you could make interactions, et cetera. Whereas something like AppForge, for example, it's also Node-based, and I'm sure they're on Lambda too or some serverless platform, but they give the whole UI experience under your belt and you're basically building a web front end in addition to some serverless backend, whereas we really kind of focus on the backend and then having these plug-and-play connections to make it really simple. Because we all have to deal with OAuth heartbeats before refreshing OAuth tokens. It's a pain in the butt. So we manage that for you and you just worry about integrations.
00:46:13 - Dylan
It's kind of like our forte.
00:46:14 - Ishan Anand
Yeah, that makes sense and I think that's a really smart move. I'm kind of curious, what do you think are the most popular integrations people are doing on the platform?
00:46:28 - Dylan
Oh yeah, there's... I mean it's so interesting because we have these two separate segments of folks that are either non-technical but they're using AI and our pre-built actions and triggers to kind of have a Zapier-like experience. For those type of people you see a lot of CRM usage. But for the technical folks it's a lot of custom code and Slack and Discord, GitHub especially, like automating your GitHub CI easier than doing so with GitHub CI and doing YAML files directly. There's so many weird use cases out there, especially with ecommerce too, like managing your 3PL or your logistics provider with your Shopify account. Or even... a lot of people use Google Sheets as a database, so we can build on top of that. Yeah, it's just a very, very wide array of use cases, and I am surprised what people pull off with it all the time because I actually help with support as well. I'll get support tickets and get one-on-one with people and figure out what they're using it for. Nothing really surprises me anymore.
00:47:44 - Dylan
Yeah, it's crazy. That's the interesting part about working for an integrations platform, is you get to see... it's almost like working for an agency in that you see a ton of different use cases and not just one product.
00:47:57 - Ishan Anand
I noticed you have a ChatGPT connector. I'm sure that's probably getting some interesting use. And if there's anything you saw that was really interesting that leveraged AI and Pipedream that you could talk about...
00:48:12 - Dylan
Oh, there was one. He even did a GitHub repo example before we had a git sync feature. I'd have to look it up through our chat history. I mean, kind of to self-promote, but the...
00:48:28 - Anthony Campolo
What?
00:48:28 - Dylan
We have a chatbot. Sorry, this just comes to mind because we have a chatbot that runs within our public Slack, and that's powered by a custom embedding and it is aware of all of our documentation, and it can answer questions within Slack. That's all through Pipedream. There's no actual backend besides that.
00:48:53 - Scott Steinlage
Mario.
00:48:55 - Dylan
Yeah, it used to be called Mario.
00:48:57 - Dylan
That was the original name.
00:48:59 - Dylan
Yeah, back in the day. We've changed it to Pi due to branding collisions. I can't believe someone else uses the name Mario. I don't know. It's crazy.
00:49:09 - Anthony Campolo
What were they thinking?
00:49:10 - Dylan
I know.
00:49:12 - Dylan
Pipedream, pipes, Mario. But later we realized that was a bad idea, so now it's Pi. But coming up soon is a better integration that actually writes code for you. If I could share GIFs, I would here, but I can hardly join as a speaker. I don't think I can figure out how to share a GIF on this channel.
00:49:34 - Anthony Campolo
Yeah, the best thing is you could just drop a reply under the Space itself, like on the bottom, right? There's a way to do that. But while you're doing that, Bro Nifty, what's up, man? Did you have a question for Dylan?
00:49:49 - Bro Nifty
Oh, hey. Yeah, hey Dylan. You stimulated a thought while you were talking, and I remember working with Pipedream and it reminds me of other no-code or low-code tools like Node-RED and Stackery. And it seems like I have so many bookmark folders and so many bookmarks and different things and stuff. And it seems like a lot of my no-code, low-code stuff is related to backend, and it kind of seems like it makes a lot of sense. When you were talking, you were kind of making me think of something like a universal substrate for integrations, almost like when you get those in science class, those types of notebooks with the grid rather than just the regular notebook lines, like the grid, whatever that's called, you like make or whatever. I don't know. I'm going off in the deep end here, but I should terminate this in some kind of question. I was not able to get Stackery to work for me and I haven't really gotten deep into Node-RED, although it seems really kind of neat.
00:51:10 - Bro Nifty
And I've tried Pipedream and it did work for me. Out of all three of those, would you say no-code in general, in terms of... let's see, I don't know exactly how Pipedream works. Would you say it can be a good idea to let the developer get into the lowest grain, give them access to the actual code that the no-code tool is writing?
00:51:38 - Dylan
Yeah, absolutely. So we're kind of unique in that other platforms like Zapier or Make, I haven't used Node-RED myself, but those two come to mind because they're more established for no-code use. They do not give end users the ability to drop down into code. Whereas for us, that is the first-class citizen, code. But I don't know if you've ever used Pipedream since we launched version 2 in February last year where it says define component within the code step. That is literally the same DSL that is powering the pre-built actions you use. And all of our code is open source, which is different from Zapier as well. You could fork our repo, you can make adjustments to someone else's action, redeploy it to your own. We have an open component system like that and we treat it as if, okay, pre-built actions are nice and convenient and you should be able to edit them. But the fact is APIs change, or maybe a developer has one opinion on how to integrate with an API and you use it differently. So we kind of give you the flexibility to do that instead.
00:52:58 - Dylan
Yeah, we're definitely developer-first compared to some other examples.
00:53:03 - Bro Nifty
That sounds amazing. Sorry if I cut you off.
00:53:06 - Dylan
No, no, go ahead.
00:53:08 - Bro Nifty
Oh, okay. I was gonna say, yeah, that sounds amazing. It probably might even be a good idea for marketing segments and stuff like that to distinguish yourself between developer-first or consumer-product-first or whatever. Like you're going for the end result or you're going for help to enable builders. Obviously, Pipedream, you are enabling the developer first.
00:53:28 - Anthony Campolo
Yeah, I remember the take I felt when I was interviewing there, that it was a pretty cool tool. It was something for coders. You could probably figure it out if you didn't know any code. But if you want to really get the most power from it, you'd be writing some Node scripts or stuff. But Nicky T, you've dropped something about Yahoo Pipes. I never heard of this. What is this?
00:53:54 - Scott Steinlage
It's older.
00:53:55 - Nicky T
It's from like the early 2000s. Sorry if there's a bit of an echo. My basement flooded and everything's empty now, so... But yeah, it was just this idea of literally you would see these little pipes connecting things like Super Mario and stuff, and it was really a way to create a workload to say, like, getting my data from here, going to here. And it had this whole visual aspect to it. And the reason why I dropped it is I was just curious if the name Pipedream came from something like that.
00:54:29 - Dylan
Wow, you have a really, really good memory. So yes, there is some connection. So the original team that built Pipedream is the same founding team that built a startup called BrightRoll that was acquired by Yahoo. This was a while ago, so there is some overlap with Yahoo and the Pipedream team now. They've worked together for 10-plus years now, so they might have had a small hand in Pipes. I've not asked about the history that much. I've only met in person a couple times. That's on my list of to-dos because I've noticed that as well, like people are mentioning Pipes. I never heard of it either. But yeah, there might be some history overlap there.
00:55:07 - Anthony Campolo
Okay, cool.
00:55:08 - Nicky T
No, I just didn't realize that. But it was just a project I remember from the early 2000s.
00:55:14 - Anthony Campolo
Yeah, that's awesome. Good.
00:55:15 - Ishan Anand
I remember Pipes from back in the day. Yeah.
00:55:22 - Anthony Campolo
Because they mentioned in the wiki that you linked to that the name was a reference to Unix pipes, like how you pipe one input to output kind of thing.
00:55:32 - Nicky T
Yeah, that makes sense.
00:55:34 - Anthony Campolo
Yeah.
00:55:36 - Dylan
Yeah, that's a good idea too. Going back to the other idea of the solvent. I mean, the name solvent is a great API connection...
00:55:45 - Dylan
kind of company name.
00:55:46 - Dylan
If you guys make your own, just take that one. Maybe kind of like mixing things together. It's common. My chemistry terms are out of date, but you know what I'm trying to say.
00:55:59 - Bro Nifty
Yeah, that sounds good. I work with a couple other tools. One is called Winglang and it's called Wing Cloud, and it basically writes your CDKTF code to build services. And I was thinking, I wonder if there could be some kind of overlap between... it's sort of like infrastructure as code, but they call it infrastructure from code, which is basically the same thing except it just writes your infrastructure code for you. Can you combine the app and the code together? It's kind of a novel thing. It's coming out pretty fresh. But I wonder if there's overlap between something like that, which creates cloud-native services, and something like Pipedream or one of these other backend no-code or low-code tools that will allow you to connect and integrate with other services that are not necessarily in AWS or GCP or Azure or something like that. I can't think of anything off the top of my head, but I wonder if there could be something that connects these two and allows them to work together. I was just kind of spitballing here.
00:57:06 - Dylan
Yeah, that's interesting.
00:57:07 - Dylan
Well, you could in theory try to do it. We don't have the actual running functionality open-sourced, but I suppose you could use that tool that you mentioned. SST is another one that kind of is. It's more front-end framework-focused, but I guess you could combine that.
00:57:26 - Anthony Campolo
Yeah, we've had Dax on the show quite a few times. Yeah,
00:57:32 - Dylan
Yeah, something like that. But I have to admit, integrations alone is a huge, huge problem. Trying to create a standard API that can be mixed and matched with any service is hard enough. And then trying to layer on top of that a framework to orchestrate your infrastructure, that would be impressive to handle both at the same time.
00:57:57 - Bro Nifty
Yeah, almost like if somebody were ambitious enough they might just kind of pick a lane and be really opinionated and decide to put those layers together in a very specific fashion. And you could maybe even create a meta-framework that allows people to do various concoctions off of that. And just because you want to pick and choose your integration... everybody wants payments, everyone wants storage, everyone wants a CDN.
00:58:25 - Anthony Campolo
Yeah.
00:58:26 - Bro Nifty
So I don't know. Yeah. You know, auth, payments, CDN, storage, everybody needs all that. It's universal, I think. So I don't know, I'm just... that's all, that's all for today. It was nice chatting.
00:58:42 - Scott Steinlage
Awesome. Dylan, real quick, I just want to go back to what you were about to talk about earlier, which was the generate beta for generating your own code within the custom code portion of these different things. Because I have messed around with Pipedream and I am a part of the beta user process there and I have helped to see some of the... and just look into some of the things that are going on there. Anyway, it was fun to mess with. I don't know if you want to get into that a little bit. I think you were hinting at it earlier.
00:59:16 - Dylan
Yeah, I was actually working on it today, helping with the UI part. It's very close to being released, well, this new update, and we'll be able to share more there, but it is a different AI than what's powering Pi. We don't have a brand name for it yet.
00:59:33 - Dylan
I'm not sure if we will make one, but it's more tailored specifically for code, so it won't produce any general Pipedream answers. Like if you ask Pi, for example, what is a source, Pi will give you a layman's-term definition of a source and how to build one with links to the documentation. Whereas this particular feature only knows about code and it's already been trained on all of the API docs that we connect to. So all the thousand-plus services that we already have integrations for, you can ask things like... today I asked it, I said, make me a Front action that will update the tag of a conversation based on these three attributes. And I listed what conditions should trigger a tag in Front, which is like a customer service email system. And it built that code for me in the Pipedream format. And you can run it now. It hallucinates, of course, from time to time about API endpoints that don't exist. It sounds really nice, but sometimes it can miss. But it's a great kind of scaffolding to not worry about how to authenticate, et cetera, and finding the basic API route format...
01:00:47 - Dylan
Like the other API routes are formatted as. But playing with it kind of speaks for itself. I definitely encourage you to try it out. Make a new Node.js code step. Just look on your right. It'll say edit code with AI or create with AI. Generate with AI.
01:01:01 - Dylan
Something like that. Something AI-related.
01:01:04 - Scott Steinlage
Yeah, super cool. I really loved it because I was trying to do... I was trying to create a Google Calendar event where the trigger was basically if a single row was added to a sheet, then I would want it to get values in the range. And then I wanted to update the event attendees for an event that I had scheduled in the calendar and add these people to the event on top of it. And there was something with the one that you guys already have in there for that event, and it wasn't going to do what I needed it to do exactly. So I went the route of using Node, and I was messing around with it, and then literally you guys launched your beta. I was like, oh, I'm going to try this. So I started messing with the AI part of it too. And it was pretty cool how it wrote it out for me. And there were a few things I had to change and things like that.
01:02:08 - Scott Steinlage
But it was pretty cool. Yeah, it's awesome. I love what you guys are doing there and kind of ahead of the game, I feel like, with some of that going on there. So that's cool.
01:02:17 - Dylan
So cool. Yeah. Sorry you had to go through the pain of reading...
01:02:21 - Scott Steinlage
Oh, no.
01:02:21 - Dylan
API docs. It was fun, though.
01:02:25 - Dylan
The worst API documentation I think I've...
01:02:27 - Dylan
read in a long time. It was fun, though. Hard to understand.
01:02:32 - Scott Steinlage
That's cool.
01:02:33 - Dylan
That's cool.
01:02:33 - Dylan
Yeah, I experienced the same thing where it gave me the wrong app name. For example, it said Front and not...
01:02:38 - Dylan
Front app, which is the correct app name in our system.
01:02:42 - Dylan
So it's like you have to be diligent still. You can't just be that lawyer that submitted his arguments to court using ChatGPT. I'm not sure if you guys saw that.
01:02:50 - Scott Steinlage
Oh, my gosh. I read about that. Jeez.
01:02:53 - Dylan
It's not like that. You can't just run...
01:02:54 - Anthony Campolo
[unclear].
01:03:00 - Dylan
Yeah, but it's definitely a head start. I mean, it gives you a great head start. And soon you'll be able to edit code from existing code with AI. So you can start with something you've already written, like a long code component, and then just ask it to tweak, make small tweaks to it, add a prop, conditionally send something, et cetera.
01:03:22 - Scott Steinlage
Yeah, that was one problem I did have too, with it saving what you already had. Like, if you had to open up the generate box again, it wouldn't save anything you had in there prior. And so then you would lose a lot of the prompting you had and stuff like that, the memory, you know.
01:03:36 - Dylan
Yeah.
01:03:37 - Dylan
Yep. That's part of the feature update — there'll be threads, so it'll remember conversations, just like ChatGPT does.
01:03:48 - Dylan
That's the big update. Yeah, we're trying to figure out the...
01:03:52 - Dylan
UI part because it can be confusing.
01:03:54 - Scott Steinlage
When is this launch happening?
01:03:57 - Dylan
It was... we were aiming for end of week, but based on the complications we came to with the UI, it might end...
01:04:04 - Dylan
up being pushed to next week.
01:04:06 - Scott Steinlage
Okay. So we should have you guys on JavaScript Jam. We have a formal video podcast as well, if you want to do that. We would love to do that with you guys.
01:04:13 - Dylan
Yeah, that'd be great.
01:04:14 - Scott Steinlage
Cool.
01:04:15 - Dylan
I'll be... just DM me and I'll set that up. Sounds good.
01:04:18 - Scott Steinlage
Yeah. I'm in Slack. I pinged you in Slack.
01:04:21 - Dylan
I haven't opened Slack yet.
01:04:22 - Dylan
I'm trying to use this stupid phone.
01:04:24 - Scott Steinlage
No worries, dude. Not a problem.
01:04:27 - Ishan Anand
Awesome.
01:04:27 - Scott Steinlage
Yep. Cool.
01:04:29 - Dylan
But have you guys tried... I'm just curious, have you tried any other integration platforms? Any ones like this one called n8n? It has popped up in my feed a couple times. I tried it once but I couldn't figure it out.
01:04:40 - Scott Steinlage
Any.
01:04:41 - Dylan
Any n8n users or developers here?
01:04:46 - Bro Nifty
That sounds familiar.
01:04:47 - Anthony Campolo
What did you say it was called?
01:04:49 - Dylan
It's called n8n, n8n.io, n8n.
01:04:54 - Anthony Campolo
Oh, I feel like I've heard of that, but no, I've not used it. We were kind of talking about, have you heard of Val Town? That was kind of the impetus for this discussion in the first place.
01:05:05 - Dylan
Ah, yeah.
01:05:07 - Dylan
They've blown up on YC lately because I think they're a new YC batch. I see them on Hacker News all the time. They're making videos.
01:05:16 - Anthony Campolo
Yeah, we had the creator on. We do a video podcast as well. So we had him do a demonstration, which we featured in our newsletter, which we talk about in this Space. So that's kind of where we're at. Yeah, that's why we were talking about similar things, which is how Pipedream got brought up. So funny how that all works out.
01:05:36 - Dylan
Yeah, yeah, yeah. I can't even keep up. I've tried a bunch. One of my favorites now is AppSmith for making UIs. But keeping up with even just the...
01:05:48 - Dylan
integrations, no code tools out there, it seems like there's a lot happening.
01:05:52 - Dylan
Airplane.dev is another one I've tried. That one's a bit more like DevOps. You can build a container, for example. But I found it to be like... it actually has a React UI layer to it in a way. So you can create UI, but it doesn't have the integrations part as deeply as Pipedream does or as wide...
01:06:16 - Dylan
as Pipedream does.
01:06:19 - Dylan
But they're all kind of like admin
01:06:22 - Dylan
builder tools in a way.
01:06:25 - Dylan
Like admin building is totally separate from integrations.
01:06:29 - Dylan
Backend tooling.
01:06:34 - Bro Nifty
Yeah, yeah, Dylan, the Airplane, I checked that out. I haven't gotten that far into it, but I've been meaning to look into that. Yeah, there's definitely a very big difference between the front-end low-code stuff and back-end low-code stuff. I feel like the front end really is too limiting and locks you in unless it's something like Codux where you can drag and drop and it writes the code for you, or Builder. Builder does the same thing where you can drag and drop or click and edit right there on the interface and it actually updates the code side by side or whatever. If it's that, then that's great. But anything more restrictive than that is absolutely no-go. I can't do that on the front end. But for the back-end stuff, it depends. And if it lets you drop into the actual code and lets you edit at the code level, and if there's a two-way binding between the code and the UI, that's really the best of all worlds. Then you can kind of standardize on some patterns and then create some customization.
01:07:40 - Bro Nifty
Sort of like even something as complex as, in our realm, as complex as it gets would be Kubernetes, I would suppose. It has everything standardized, but you can create a custom resource definition and extend and do Go to your heart's desire. And I think the same kind of thing... and there are services like Humanitec that build on top of that where you can do the visual editing and composing and stuff. The composition step and getting the visual representation of the resources and their linkages and how those mappings are defined in some kind of window, that's the hard part because it's the mental model of being able to... nobody can keep all those variables in their head simultaneously. You need some kind of visual representation, and seeing it all in code, it's going to be lines and lines and lines. Because there's so many lines of code, there's no way to keep track of all that. So visual is the only way. So I hope I didn't ramble too much and I hope I made my point there.
01:08:41 - Bro Nifty
But yeah, I just wanted to chime in. Front end, back end, totally big difference. Front end is mostly too restrictive. Back end is definitely the way to go for no-code. But you got to be able to drop into the code. That's it.
01:08:54 - Dylan
Yeah.
01:08:54 - Dylan
It's funny, it seems like tooling depends on your preference. Like if you really like the control of the front end, you're going to be using a service that builds APIs out for you. But vice versa, if you're more of a backend-comfortable person, you might just be trying to drag and drop UI components and call it a day, like AppSmith, for example. I wonder though, if you guys had to gauge your current development stack, what percentage of it is low-code tools or no-code tools versus actually operating a framework or writing little Node.js apps? Where do you think you're at, like 50% no code...
01:09:33 - Dylan
50% code?
01:09:35 - Dylan
Do you think it's changing and trending
01:09:37 - Dylan
in one direction or another?
01:09:40 - Anthony Campolo
I'd say it kind of depends on what you're building. Generic answer. But for me, as someone with a blog, I have a framework that's a static site generator, Astro. And so I write everything in Markdown or I can make some Markdown HTML, just turn it into HTML, and then it kind of does whatever it needs to do. I'm not really using a whole lot of no-code tools right now, but that's because, like I'm saying, I'm just publishing content, you know.
01:10:07 - Dylan
Oh, okay. Yeah. For that case, that makes a lot of sense. I mean, my blog is still written on Jekyll and there's no reason for me to play around with any deep cut.
01:10:17 - Anthony Campolo
You know, I actually know the creator of Jekyll.
01:10:21 - Dylan
That's awesome.
01:10:24 - Bro Nifty
Isn't the Jekyll guy the one who... he's the Redwood...
01:10:29 - Anthony Campolo
Tom Preston-Werner. Yeah. Creator of Redwood, creator of GitHub, creator of TOML. Yeah. He's a good friend to have.
01:10:40 - Dylan
That's quite the resume.
01:10:42 - Bro Nifty
Yeah, it's pretty neat when your username is the first one on the GitHub user list for the API.
01:10:49 - Anthony Campolo
Yeah. If you hit the GitHub API user list and ask for the first 10 users, he's the very first user ever.
01:10:58 - Dylan
That's awesome.
01:11:00 - Dylan
Redwood is one that's been interesting to me, but I haven't had a chance or a reason to actually do a hello, you know, like a starter project on it.
01:11:07 - Scott Steinlage
Give him a reason, Anthony. Give him a reason.
01:11:10 - Dylan
Because it's the best thing ever.
01:11:13 - Anthony Campolo
Yeah. I would say the reason is if you want to build a full stack and you're craving that Ruby on Rails experience and you just can't get it from JavaScript, then Redwood is your framework.
01:11:26 - Dylan
Remember Sails? Sails was supposed to be that.
01:11:30 - Anthony Campolo
So we actually... the person who has now taken over Sails, Kelvin, has been on the show a couple of times to talk about Sails. Yeah, Sails seemed to never quite get there in terms of the community or the front-end integration. I feel like they didn't go deep enough into really making it work with things like React and Vue. You can get it to work, but there's not a good path there. Whereas Redwood, it's front end, it's back end, it's full stack. You got your React app, you got your GraphQL. We'll do that all for you from a single command. You got your app set up kind of deal.
01:12:08 - Dylan
That's awesome. Yeah, my original background — probably like most of you guys — was RAD frameworks like Laravel, Ruby on Rails, and I just haven't seen that come up in the Node world quite yet. And Redwood seems to be the closest thing yet. There was another one I can't remember the name of off the top of my head. There's Redwood...
01:12:26 - Anthony Campolo
Create T3 App and WASP, I would say. And then Blitz, which has kind of fallen off the radar a bit.
01:12:32 - Dylan
I know the guy behind Blitz. He lives in Ohio here with me, so I see him around.
01:12:36 - Ishan Anand
Oh, cool.
01:12:37 - Anthony Campolo
Yeah, you know Brandon? Yeah, Brandon's a very good friend of the show as well. Yeah, we know all these people. So we're pretty plugged into the JavaScript framework world. That's kind of our scene.
01:12:46 - Scott Steinlage
He's at that conference right now.
01:12:50 - Anthony Campolo
Awesome.
01:12:51 - Bro Nifty
Sails... one thing about Sails. Yeah, I did land on Sails one time when I was deep in the guts of self-hosting Supabase, and it was the admin interface for managing the reverse proxy, Kong, reverse proxy gateway mesh thing, whatever. So it gives you basically an admin dashboard to manage Kong and all your integrations for Kong. So yeah, usually in order to set yourself apart in this industry, because there's so many, you have to have a killer app for something and then everybody's like, oh, shiny. But not a lot of people are managing Kong, so probably not a lot of people are landing on Sails.js. I personally have not used Redwood either, although I'm really excited to try it, hopefully in the near future. So I'm definitely going to check that out. And I do want to check out Sails a little more too, because Mateo was at a Sails conf or something like that, and he was raving about it. So whatever he thinks is pretty much golden in my books.
01:13:50 - Anthony Campolo
Really? Okay, cool. I didn't know that.
01:13:52 - Dylan
Yeah, awesome.
01:13:54 - Dylan
Adonis was the other one. I couldn't remember the name. Adonis was another one.
01:13:57 - Anthony Campolo
Yeah, yeah, yeah, yeah. We had the Sails creator on. Sails and Adonis were kind of what I think of as the more old-school, REST-based full-stack JavaScript frameworks. Because that's where Redwood is a little different, is that it uses GraphQL. So if you're not super into GraphQL, that can be a sticking point for some people. But I would caution people that it makes GraphQL way better than you would expect if you had frustrations with GraphQL in the past. Redwood is designed to solve those specific frustrations.
01:14:31 - Dylan
Okay, nice. Yeah, that's probably the main sticking point. I'm a progressive kind of guy, like, give me the simplest Express-type thing and then build on top of that until I need to wipe it with a real framework. But yeah, it's kind of funny. It's almost like DHH talking about when he was first building Rails. They're like, okay, our SQL... it wasn't Basecamp, our SQL server is getting to the point where you do sharding, but the acceleration of memory, how cheap memory was, eventually they just leveraged AWS to keep leveraging up the instance size so they never had to shard. And I feel like that same kind of thing is happening to JavaScript, or not JavaScript but full development frameworks, and parts of the apps are just being chunked away. You used to have to write authentication by hand. Now that's optional. Used to do payments... well, deeper payment integrations. Now Stripe is doing more and more subscription management, for example. It seems like the full-stack framework is becoming de-bundled into services if you want to, so you don't have to reach for a full-stack framework nearly as much anymore.
01:15:43 - Anthony Campolo
That's definitely true. Yeah. And then as long as you can figure out how to piece all that together, you're good. I would say the real value, I think, for someone like Redwood, and this seems kind of intuitive to people because it seems like such a complex bundle of tech, but I actually think a full-stack framework like that is really good for beginners. Because even integrating something like Clerk and then Stripe, it's easy for a developer, but if you're a total beginner, even that is still pretty, pretty complicated. So I think that's where the benefit of a full-stack framework comes in, where it's like, if you're someone who has been using no-code, low-code, and you're like, I want to get into coding, but I really don't know how, that's what I recommend. People check out these highly integrated full-stack frameworks because they can be really valuable. And if you're someone who can code really well, it can still be valuable for you there. But I think that's something that I try and push. I learned Redwood as someone who really had very little coding experience. I was able to get up and running with it and have a full-stack framework in a way that I couldn't have done without it.
01:16:46 - Dylan
Wow, you are blessed. I mean, you get the best top-notch tech experience. You didn't have to deal with PHP 5.6 like us old people do.
01:16:55 - Anthony Campolo
Yeah, I definitely lucked out there.
01:16:59 - Dylan
That's so cool. Yeah, I think... I mean, my Next.js is one of my longest-running apps now and it's not opinionated enough for the full-stack portion, and I'm kind of missing that integration and that whole opinionated, give me your opinion on everything. Let me just build stuff and not worry about wiring up yet another validation library or replacing Formik with something that's now maintained because Formik is no longer maintained, et cetera. Those days are kind of missed in the Node world. I don't think they ever happen in the Node world, now that I think about it. It's always changing so fast.
01:17:35 - Dylan
There's always different packages and frameworks and stuff.
01:17:38 - Dylan
We just need a... we keep on telling ourselves, like, yep, Node's gonna get to a point where it's gonna be a stable framework. It's gonna be the one winner...
01:17:46 - Anthony Campolo
and then everyone's gonna move to Deno or Bun. Yeah.
01:17:51 - Dylan
And the wheel reinvents itself once again. It's definitely the most innovative language. I think they're changing a lot.
01:18:00 - Anthony Campolo
Yeah. Well, thank you so much for joining us, Dylan. We do these every week at the same time, so if you want to come another time, you're totally welcome to. It's really great having you here with us.
01:18:09 - Scott Steinlage
Yeah.
01:18:10 - Dylan
Hey, thanks for letting me talk and letting me join.
01:18:12 - Dylan
Apologies for the hiccups trying to join. Just trying not to be rude. Never used this before, but thanks.
01:18:18 - Anthony Campolo
No worries, you're chill. You're all good.
01:18:20 - Scott Steinlage
Yeah, I hit you up in your DM on Slack there. And Anthony, now we can talk about scheduling something out for the future for a video podcast together, and maybe something sooner than later so that we can get it pushed out before, maybe a little bit after launch or something. I don't know.
01:18:36 - Dylan
Okay. Yeah, yeah, yeah. I will check my Slack and we'll get in touch. But thanks again, guys.
01:18:42 - Scott Steinlage
Awesome. Thanks for having me, bro. Appreciate it.
01:18:45 - Dylan
See ya.
01:18:46 - Scott Steinlage
Awesome. All right, y'all.
01:18:48 - Dylan
All.
01:18:48 - Scott Steinlage
Well, thanks so much. Remember, we do this every Wednesday at 12:00pm Pacific Standard Time. We greatly appreciate everybody here who joined us today. If you got any value from everybody that was speaking and you're listening to this recording, please click on their face and follow them. Because guess what? You're probably gonna get value from them in other places. We had some really cool conversations today, and I really appreciate all the effort everybody put in. It was just so much fun. That's it, y'all. That's it for this week. Next week, though, we're gonna be having... let's see, what is that? Is that August 2nd?
01:19:17 - Anthony Campolo
We got Tejas and we got Mark. We got the two dudes who do the things with the stuff.
01:19:28 - Scott Steinlage
Yeah. Hey, Mark Erickson. Yes. So don't miss out on that. We're gonna have a great time. We're gonna be chit-chatting a little bit about React Rally. Yes, React Rally. If you haven't heard of that or gotten your tickets, go to React Rally and check it out. Just type in React Rally. I'm sure you'll find it. But yeah, Tejas and Mark are going to be speaking there, and we're going to be having them on the show to just have some fun and chit-chat about what's up with the things and the things that they talk about and that they do in the things. So it's gonna be fun. All right, y'all, thank you so much. We love y'all. And we'll see you in the next one.
01:20:11 - Anthony Campolo
And check the links, because I'm gonna put a link for the alien thing at the end, in case anyone cares.
01:20:17 - Scott Steinlage
Oh, yes, the aliens. It's real. X-Files.
01:20:21 - Anthony Campolo
It's a thing.
01:20:40 - Scott Steinlage
Aliens. This is not a recording. We are taking over the world. Aliens.