Scott Keck-Warren
0:05
Hello developers, and welcome to PHP Architect Community Corner, where we have conversations with members of the web development community. I'm your host, Scott Kechtorn, and today we're having a conversation with Daniel Mendoza about the— his work at Storyblok and also his talk at JS Tech on using AI to learn. Daniel Mendoza is a senior developer relations engineer at Storyblok who blends technological know-how with a genuine passion for developer experience. He's loves sharing knowledge, creating helpful content, and being an active part of the developer community. Thank you, Daniel, for finding some time to talk to us today.
Yeah, thank you for inviting me. I'm excited.
Scott Keck-Warren
0:41
Yeah, absolutely. So can we kind of start out and talk about what Storyblok is? Because I started looking through your website and I have like a general idea, but it'd be nice for other people to kind of understand as well.
Yeah, sure. So Storyblok is a headless CMS, and if people aren't aware of what exactly that is, it just is a content management system that is decoupled from your frontend project, right? Meaning that it handles all of the content layer and then you consume that content via API. And yeah, we, but yeah, we've, we have a whole bunch of new features that are pretty innovative and awesome, I feel like, right? Flowmotion is one of the newest things that we've released, which is automation, right? It's built on top of N8N, so you can completely do like low-code automated workflows. And we've been doing a lot of cool stuff with that. We also just recently released an MCP, so you can go ahead and connect it to an agent and prompt to your heart's desire and do whatever you want with Storyblok. But yeah, I think we're really big on like DX and providing a good experience to the developers as well as marketers, right?
Scott Keck-Warren
1:55
So yeah. And so your primary, like your primary consumer or customer, I guess, is developers, right? So you're looking for developers to kind of like take this solution and use it for whatever they're doing their projects with. Is that a correct assumption on my part?
Yeah, I guess it's both. It's very like marketing forward, right? Because this is giving, empowering them to create the content and make those updates, make reusable formats for like campaigns and things like that, right? But it, We really try to like balance the— I feel like a lot of CMSs kind of pick and choose which one, right? Like it's more developer focused or more marketing focused. And I feel like Storyblok does a good, a good job and tries really hard to kind of do like a balance for both. But essentially, yes, especially what I talk about is always going to be more developer focused. But yes, we are very, very like focused on the DX and that is gonna ultimately be the right developers are ultimately going to be the ones building this project for marketers to use.
Scott Keck-Warren
3:02
Hmm. Okay. And then, so I just want to kind of touch back on like the headless CMS piece of this, 'cause like, that's like a term that, uh, I don't know when that came, I guess, but like, it's a, it's a newer term, right? It's not something that like has been here forever in our industry. And so, so like, what is the benefit of having a headless CMS versus something like WordPress? 'Cause like, for me, I'm, I'm a terrible, like, I just want it to work, right? I don't want to have to spend a bunch of time like building, consuming an API essentially. So what is, what is like the huge benefit to using a headless CMS as opposed to just like an integrated solution?
Yeah, sure. So there's different benefits, right? Depending on, on what your focus is. But there are a lot of different benefits. Like the first one is you just have complete control over your stack. So you consume that API, you get to do whatever you want for your frontend, and then you also get to control your third-party services, right? Like what e-commerce platform are you going to use? What personalization platform are you going to use? And so on and so forth, right? You get to kind of pick and choose what fits your needs, whereas Storyblok is really only that content layer for you. And then on top of that, right, since you do have those options, you don't get stuck in like vendor lock-in, for example, when you have these ginormous DXPs that offer all different types of features and offerings and you kind of sometimes just have to pay for everything and sometimes you only use maybe 1 or 2 of those things, right? So you kind of get freedom to pick and choose and pay for what you need with Storyblok as well as complete development freedom, right? You get to choose where it's hosted, what you're building on, so on and so forth. So those are the biggest benefits.
Scott Keck-Warren
4:47
Okay. And I think like while we were talking, it finally clicked for me 'cause I just like, I'm working on a project where we have an application, a software as a service application, and then there's also a blog that we maintain and like, If we, if I had used Storyblocks, right, then, then I could have like just consumed the API and just spit it out from the application as opposed to me creating a whole other thing for, uh, for, for the blog essentially.
Yeah, exactly. Yeah. And what's cool too is we actually have like, like I said, we're pretty big on developer experience, so we have multiple SDKs for like different frameworks, right? We have, uh, React, Vue, Nuxt, Astro. a regular JS client, a PHP client. We have a few more that are coming up. I don't know how much I can reveal as of yet, so I'm not going to say anything, but we kind of try to streamline the process, right? Where you kind of just go in, use one of our frameworks, and we take care of a lot of the nuances of actually connecting to Storyblok from your framework of choice. And you just create some client that we provide with that package, and you could just consume that content and— render it as you please. So it's basically just outputted as JSON. And a lot of the offerings within our SDKs also just kind of let you specify or map your component IDs from the actual CMS itself to your component names within your frontend project. And it'll just render them based on that map. So just like really, we try to make it as easy as possible for you to kind of get up and running.
Scott Keck-Warren
6:23
Hmm. Okay. And then do you guys have like a, like a boilerplate, like we could just go like, I just need something fast to get going? You have those kind of situations too?
Yeah. So we have blueprints and that's basically what that is, right? So we have like a bare bones one that's just kind of like some really minimal examples of blocks or components. So things like a grid, right? A feature component, a page. And then we have some other ones that are like a business template, which has some more complicated components like tabs and things of that nature. Um, and I know that there's a few more that are going to be coming soon. I just don't know when.
Scott Keck-Warren
6:58
Because I'm, I'm a terrible designer. Like, that's not my forte. And, and so like, usually it's just like, I would like whatever the starting thing is and they'll go from there. Um, so that's really helpful. And then, so the other thing that you kind of touched on is like, so AI is like this big piece, right? And so you guys have the N8N 8N Automation. But you also, you were talking about how you have an MCP client. And so can you kind of explain like, what are people doing with that? Like how are they interacting with the data through the MCP client?
Yeah, so we actually, we just released it, I think about around the same time that we released Flowmotion, which is about a month, not even a whole month ago actually. So I think we're still kind of gathering on how people are using it, but the way that So my primary job is creating content, right, for our users. So I've been doing a lot with the MCP based on what some of our users have been asking for, or like, how can this actually be beneficial to Storyblok users? And so one of the things that I'm actually working on right now, I have a lot of different things, but one of the— I have like 2 that are pretty exciting. So one of them is, mixing the tooling, the tools that we already have that exist in place with the MCP to create like a full automated process, right? So for example, our CLI, we have things where you can, right, create, push and pull component schemas, actual entries from your CMS or from your space, and you can sync that across different spaces. You can make migrations. So let's say you make a schema change. Usually, let's say you change a field and that field used to be text, now it's rich text. You have to completely— you have to create a migration script that alters that value to fit the new format, right? Because our rich text is not— it is not an HTML string. It's actually a JSON format. It's Tiptap's format.
Scott Keck-Warren
9:07
Okay.
So there's actually like quite a bit of transformation that goes on there, especially if you're not too familiar. So that's where like our MCP kind of comes into play with the help of an agent, right? It knows the structure of what the Storyblok rich text should look like, and it knows, so it can help you actually create that migration script for you to actually get that value to to sync correctly when you actually run that command. So just kind of mix and matching with our existing tooling as well as like an end-to-end workflow from Figma all the way up to an actual prototype within Storyblok and Next.js, for example. So that one is not a promise. I'm working on it and I think it's going to work, but yeah, so we'll see.
Scott Keck-Warren
9:59
That's, it's always fascinating to me, like how MCP allows us to glue all these things together. Like, I don't want to say seamlessly, but like, you know, it's, it's, it's the glue layer. Right. And so that's, that's a really, those are both really interesting use cases. Um, especially as somebody who's not a designer and who is terrible at front end stuff. I think I'll, I have to subscribe to the blog because that all sounds like it's really fascinating stuff to hear about.
Yeah. Yeah. This is working with the MCP is really interesting. I think also because right As a developer, you can't remember everything, but we work with so many different things, so we're constantly like revisiting documentation. It's like, oh, like what, what was that endpoint? Or like what, what were the parameters that it took? Or like what was the actual format of the parameters that were accepted? And so on and so forth.
Scott Keck-Warren
10:48
Mm-hmm.
And something like an MCP completely gets rid of that like nuance, right? You can just prompt it, tell it what you want. Tell it what you want to do, give it the value, and it handles the rest. So it's just like really nice. You kind of get rid of that, that extra step where you have to kind of remember or look things up.
Scott Keck-Warren
11:06
Yeah, absolutely. We'll be back after this word from our partners. Every app builds up technical debt over time. It's the unfortunate price that we pay for shipping new features and moving fast. When we build up too much of it though, it can start to impact how we work. Team velocity suffers, bugs become more frequent and take longer to fix, and everyone starts to get a little bit frustrated. The key to managing debt is to measure it. A credit score can help you understand how well you're managing your debt. And now there's a credit score for technical debt. Go to php-score.com to get a free technical debt score and monitoring for all of your PHP applications today. Head over to php-score.com and get control over your technical debt. And we're back with Daniel Mendoza. So the reason that you like, you're, you're on my radar is that you're going to be one of the talk, one of the speakers at JS Tech this year, and you're giving a talk. entitled AI Helped Me Learn Vue Through the Lens of a React Developer. And so as a backend developer who very lightly deals with the frontend, about half of that I understand. So can you kind of walk us through like what it is that your talk is going to be about and what people can expect?
I think what I really focus on is, and I don't want to give too much away, right? Because I want people to attend the talk, but essentially there has been, right? So much, the AI has completely changed like the job market or the job for developers in general, right? We're not, this was not the same job that it was like just 3 years ago even. And it's constantly changing. And that came with a lot of, right, kind of fear of like, am I gonna lose my job? Is AI actually gonna be replacing developers? and so on and so forth, right? Things like that where we're constantly asking those questions every day. Some days it's yes, some days it's no, some days it's, I don't know.
Scott Keck-Warren
12:56
Right.
And so the idea is to kind of not use AI to, in a way where it can replace you, right? To stay, make sure you stay relevant. Essentially, a lot of issues come from that came from vibe coding, right? Or just kind of Yeah, it's still called vibe coding. What a lot of the issues were like security issues, right? Because people either don't know what they're doing, like, right, you give some CEO or some marketer or just some random person the ability to create a project and they create a cool idea, but then they ship it to production without actually understanding what's happening in the background. And that's how you come up with all these security vulnerabilities and stuff, right? Like, for example, we would have when this was like a huge shift and there was all these vibe coded apps, there were these huge companies acquiring these vibe-coded apps, and then all of a sudden there would be like huge security issues, right? Like there'd be leaks or like information leaked or hacked and all that kind of stuff, right? So the idea is basically just to step away from that, right? That isn't how we should be using AI. We should be really using it in a way that does empower us as developers, but we should also— so we should be using it in a way that helps us understand what it's actually doing, right? So for example, if I'm going to create an app for— so this is said a lot now, I think, is like that languages are becoming irrelevant basically, right? Like you can basically, as long as you understand like the bear the concepts of being a— of development, of web development or backend development, whatever it may be, right? You can go in, use AI and create an application regardless of the language that it's written in. But there are still nuances, right? Depending on what language it is and what your knowledge is. So my— what I preach through this talk is kind of How can I actually, well, first off, you should understand what the agent, right, is actually producing. So you should understand the language. You should understand, right, the actual like concepts and patterns that it's making. And you should pay attention to those things, right? Versus like one of the biggest things is it creates a lot of technical debt, right? It's not going to reuse functions and stuff unless you tell it to, unless you notice these patterns. So really paying attention to what it's producing and just taking the time to actually understand what right language or what— this can apply to anything, right? So it can be React to Vue, it can be frontend to backend, it can be right, whatever, whatever concepts that you want to transition into. But the idea is to just first use AI to understand that concept before just stepping into it blindly. and what that process is. So this, this process was something that I did a lot of research in, right, based on some— so there was actually this University of Sydney, there was like a group of PhD students who did their whole thesis on the best way to use AI to learn, right, for them to actually like pass their— for like students to pass their exams and to like learn these concepts that they're going through. And so I kind of used that as my base and then a lot of other articles and also like personal preference and just things that I've gone through and kind of just tweaked it to my liking. And I've created kind of like a flow that works for me that I think would work for a lot of other people, especially developers, because I feel like a lot of us think alike and learn very similarly. So basically, Right. Just going through that workflow on how to learn with the goal and the kind of message that we should be using AI to, right, kind of understand what AI is actually doing. You don't have to— the days of like going back and just like reading documentation or going to Stack Overflow and stuff is kind of over. Right now we kind of have this tool, but we should be using it responsibly. Like we should, we shouldn't just be vibe coding, especially not as developers. Like we actually know what's going on. We should take ownership and pride in what we do still.
Scott Keck-Warren
17:36
Yeah. And I find like, so we just like, I mean, even in the last year, right, things have changed dramatically in our industry for this. And, um, cause I was, and I always find it like, I find like vibe coding to be like, that's what my boss might do, but like we're doing as developers, like AI-assisted development. That's like my, how I like try to like, like, you know, bridge that gap. Um, but the thing I love is like, I can give, you know, like my AI assistant, like, I want to do this thing and then it just builds a bunch of code and then it can go, it doesn't get like annoyed that I keep coming back and saying like, why are we doing it this way? Why are we doing it this way? Why is this like, so I, 'cause I want to make sure that I understand what it's doing. 'Cause like my name is going to be on that, you know, like when it goes into production and if I'm the one to blame, then I'm the one to blame, not them.
Scott Keck-Warren
18:21
And, um, so, so like, but that's always like the interesting thing to me too, is like, I can, like, I used to learn like new libraries using test-driven development. Like that was, I'm a big practitioner of test-driven development. And so I'd like go, okay, well, I have this library. Let me just write some tests to try and figure out how this thing works. Not even worry about like integrating it into my system. Um, and I do the same kind of thing now where it's like, okay, well, I'd like to do this thing. Can we like work through that? So that's, that's really a really interesting like concept, I guess, from my perspective. So, and so your kind of example is like React and Vue. And so like that's obviously like a frontend technology. So I, but I think like it sounds like this could be applicable to like anyone regardless of, you know, if you're a PHP developer or you're a JavaScript developer because like the language is less important.
Exactly. So my, the talk that I give, the example that I go through and what I'm, the workflow that I've created is learning Vue as a React developer, right? So that's, that's the example that— that's what I— that's the basically what I did for this presentation. And it's the example that I walked through the audience through. But ultimately, right, this workflow can be used across any concepts that you want to learn, right? It doesn't necessarily have to be a frontend framework or a language in general, right? It can be Anything pretty much, right?
Scott Keck-Warren
19:47
Finance, right? If I want to know more about finance, I can figure that out. Yeah.
Scott Keck-Warren
19:53
Awesome. So unfortunately I have to kind of draw this to a close for today. It was really nice meeting you. Is there anything that you'd like to direct our listeners to before I let you go for today?
Yeah, a few things. So one, Storyblocks, try out our MCP, right? We had an interesting talk on that and I really think people enjoy just using it. It's fun to just be able to tell an agent what to do and it kind of spins up actual content and then like a corresponding front end and stuff. So it's pretty cool, right? Just mess around with it. And 2, yeah, follow me on LinkedIn and go ahead and follow me on my blog. I've been lacking a little bit lately, but I promise I will be posting some more blogs soon.
Scott Keck-Warren
20:34
And I will put links for all that stuff in the description. So So thank you so much for finding some time to talk to us today.
Scott Keck-Warren
20:42
Thank you. I have to say another heartfelt thank you to Daniel for all of his time and also for you for listening today. If you're not already a subscriber, make sure you subscribe with whatever your preferred method is. We have this podcast available within an audio version on the PHP Architect website, as well as a video version on our YouTube channel. And while you're there, please make sure that you leave us a review or a comment. It does help boost our episodes. This is Scott Keck Warren for the PHP Architect Community Corner signing off and reminding you to keep listening, keep coding, and keep reading.