Sean C Davis 0:02
Welcome to another uptime FM episode, I am your host, Sean C Davis. And today I’m joined by Salma Alam-Naylor. She’s a software engineer, writer and live streamer extraordinaire, who also spends her days working in developer experience at Netlify. Now we’re going to spend most of the time today talking about a series of three blog posts that SAML wrote over the course of about six months or so last year. And each of these posts was they kind of built on each other to help developers try to choose the perfect JavaScript framework for their next project. Now, this is a topic I have so many questions about, so I’m not going to waste any more time. And let’s invite Salma on the show, Sam, thanks for being here.
Salma Alam-Naylor 0:42
Hi, Sean. Thanks for having me. Welcome to the stream. Everybody. I don’t know why I said that. Because I just normally do that every time I go live.
Sean C Davis 0:51
That’s like, I don’t know. It’s a perfect, perfect introduction.
Okay, so I was I was thinking about JavaScript frameworks earlier, and also how we always start with sandwiches, and I was like, well, maybe choosing the perfect JavaScript framework is like picking the perfect sandwich? I don’t I don’t everyone has a different flavor. I don’t know. Maybe it doesn’t work. But in any case, let’s start there. So tell me for you. What is the best sandwich?
Salma Alam-Naylor 1:16
I am not really a sandwich person. And this is a very difficult question to answer. Because it depends, which is gonna obviously be a theme of this stream as well.
So you know, a home homemade sandwich at home, if I was going to make a sandwich to go to a picnic or something. It would probably be egg mayonnaise, or tuna mayonnaise. But if I was going to on brown seeded bread, but if I was going to go out there was going to eat a sandwich out, it will be like, I choose like a fat sandwich. Like with cheese.
Stuff that’s dripping out of it. Loads of vegetables, but I didn’t know like, so much. Is there not like a thing here as much? I don’t think okay, you know, I do like the idea of a lobster roll. I don’t never had one.
Sean C Davis 2:19
But the idea of it sounds great.
Salma Alam-Naylor 2:21
Yeah. I mean, I like lobster. I like brioche like rolls or something in brioche is good. And any? I don’t know. I’m so sorry. This is a terrible answer to this question. But it depends.
Sean C Davis 2:34
That Okay, okay. I like it depends as an answer. Now. Let’s so if if you’re not really a sandwich person, then what’s what’s the like? Go to everyday food. You know, what’s the what’s your Yeah, what’s your classic? Like, I I’m going to eat this for lunch. Every day.
Salma Alam-Naylor 2:51
Every day for breakfast? I have an egg white omelet with cheese and mushrooms.
Sean C Davis 2:58
Hmm, okay. Okay
Salma Alam-Naylor 3:00
that’s my thing. It fills me up. It’s delicious. It’s not the easiest to make because of all the egg white nonsense, but
Sean C Davis 3:10
Are you like doing the you’re you’re actually cracking the eggs and making the egg.
Salma Alam-Naylor 3:15
Yes, crack my own eggs. Cut my own mushrooms are great. My own cheese, cook my own omelet, and I have it with a black coffee. And it’s lovely. That that’s it’s some it’s funny because like, my go to food. It depends. Like, it depends. I like to cook but I also like to eat fancy food, like so me and my husband. Whenever we have like a special occasion. We’ll go out for one of those like Michelin star tasting menu, things with the matched wines and stuff. So food, food is good, big part of my life when when I have the time, but day to day, it’s like same stuff. Let’s let’s have some pasta. Let’s have an omelet. So I like to make soups, homemade soups as well. You know?
Sean C Davis 4:04
Okay, it depends.
Salma Alam-Naylor 4:06
It depends.
Sean C Davis 4:07
It depends. All right. So with that, I feel like yes, that that might end up being a theme here. Now. Okay, I came into, I think this whole conversation after reading the second blog post in that series of three, and that one was called I changed my mind about writing new JavaScript frameworks. And for those of you listening in, well, if you’re listening to the syndicated version, we’ll have the links posted. But for those of you live, you can find the posts on someone’s website, which is whitep4nth3r.com, where that A and E and Panther are the numbers four and three. That’s the best way I could come up with describing. So it caught my attention because I feel like I changed my mind all the time. I’m getting constantly new information. The scene is evolving, and then I’m changing the perspective that I’m looking at the landscape with. So I really I appreciated that post in that perspective. But it was the second in this series. So I feel like we should probably start at the beginning the one that was titled should I write a new JavaScript framework? So I think we should start there. Can you take us through? Like, what was your thought process? Why did you why did you write the post? And then of course, we’ll want to know, what’s the what’s the answer?
Salma Alam-Naylor 5:24
I wrote the post as a bit of a meme a bit of a joke. You know, in the JavaScript slash web dev community, that there’s a meme isn’t there, one JavaScript framework comes out every six seconds or something like that? There are too many JavaScript frameworks. You know, I’m just learning this one. How am I supposed to learn the next one? Why are you writing so many JavaScript frameworks? And so it was a play on that. Basically, it was a silly post, I was frustrated one day at something. I took it out on my blog. But silly, silly enough. Also, I built a website called should I write a new JavaScript framework got lol, I even bought a stupid domain for it. And it just had the word no on it. Because you know that, that? That was the meme. It was like, no, please, no more JavaScript frameworks, please just leave the ecosystem alone. Please stop. Please leave me alone. And then I changed my mind.
Sean C Davis 6:24
So somewhere between that post and the second post, yeah, you changed your mind. So what? I think that the way, you the way you described it in the talk you gave for Jam.dev A few weeks ago, was that a lot of it came out of some of those comments and natural conversations as a result of that first post, can you so can you tell us a little bit about the feedback you got originally?
Salma Alam-Naylor 6:50
So I actually so Ryan Carniato, the creator of Solid.jsworks at Netlify with me. And I don’t think I would have started talking to him. If I hadn’t made a tick tock about that initial blog post. I’m not on tick tock anymore. Don’t go and find me tick tock is somewhere I do not go anymore. But so Ryan reached out to me he’s like, and there was another tick tock as well about the solid Jas docs. And we got talking. And I’d actually never really spoken in depth to the creator of a framework. And I was very grateful for Ryan reaching out to me. And he gave me a whole fresh perspective and that he he’s not writing solid Jas just to write another framework. He’s writing solid Jas to solve some problems that already exist in the ecosystem, and to provide a better solution or an alternative solution to what exists out there and to challenge the years long as status quo, you know, that this framework is the best one to use this framework is the only one to use. And here’s an alternative way that you might want to build something or do something. And, and, and he also gave me a unique perspective, and that like, not every framework needs to be aimed at every single developer, either. Particular developers will want particular solutions to particular problems, and they might not exist, so why not go and create it if you have the means and the time and the space and the experience and the inclination. And so there was a lot of conversations with Ryan. And he helped me see a really different perspective. And obviously, like, it wasn’t serious that I was initially was like, don’t write any JavaScript framework, it was it was just a mean, but I actually really appreciated the fact that it kicked off all of this. And then and then the second thing was, I was trying to build something, a website that needed a particular combination of functionality. And it didn’t actually exist. At the time I was trying to build it, it does exist now. Since Astro 2.0 came out, I was looking for a framework that would offer me the ability to create a multi page application rather than a single page application. But at the same time would offer me the option to render my particular pages either statically or on the server. And at the time, I was writing these blog posts and looking into this, the only option was like all in on SSR or all in on static, or you’ve got a user react and build a single page application in order to get those those capabilities. So there was there’s there’s Ryan who is solving problems and building something and sharing his experience with me of what he’s doing. And then there’s also Oh, look, I have a problem that no One has solved yet at this point in time. And that’s why maybe if you do come across a problem, and you have the experience time inclination, why not do it, you know, you don’t have to market it to every single person in the world, it’s not necessarily going to be for every single developer, but it’s going to, it’s going to solve a problem for a subset of people. And, you know, I always say, in the work that I do, if I can help one person in anything I create, or do or talk about, then my job is done. And it was a success. So if someone’s building a framework, literally just to solve their own problems, then why not let them go ahead. And, you know, not every framework is for everyone, or every single situation, every single product, every single problem, and that’s a good thing. We need variety we need, we need innovation, and we need we need new solutions to old and new problems.
Sean C Davis 11:04
And so I as as, as you’re talking about that, like, Yes, I I totally agree and get that if someone wants to build their own framework, absolutely go for it, you don’t have to market to it to anybody, it’s kind of takes me back to my early days of programming. And all I worked for agencies, every agency, which was always building their own proprietary CMS, and it’s like, well, whatever, if that works for you, that’s great. You don’t have to solve everybody’s problems. But then there are some frameworks that are and maybe not to solve everyone’s problem, but for whatever reason, they, they, they get some attention in the community. And now we look at the ecosystem, and we have all of these things to choose from. And so I believe it was around that time of that second post that you started working on. WTF what the framework, right? And yes. So yeah, can you I’m curious to kind of set the stage there as well. Like, how what? How were you going about that trying to help? I believe it was to help folks navigate the ecosystem, right?
Salma Alam-Naylor 12:15
Yes, exactly. I receive questions, the same question a lot of time, like, what JavaScript framework should I use? What static site generator should I use? What tech should I use? I’m building this What should I use? And? I mean, as we discussed before, the answer is usually it depends. But I thought, Hey, maybe I can take a bit of bit of the legwork out of drilling down into the dependencies of this project. And I encourage developers to do it themselves. And I want to didn’t want to make it too, technically verbose. Right? I wanted to just try and strip it down to as simple as possible. And this was my initial error. But anyway, I wanted to ask two questions, to try and just filter down a list of frameworks. And the two questions were, what type of site are you building. And that tried to determine whether someone was building a content based site, which wouldn’t have been updated very often, which is generally what you would use a static site generator for or just, you know, pre render everything, whether they needed a dynamic pages every time for every user at request time rendered on the server, server side rendered site, or whether you wanted a combination of the two. So like, most of the content on the website would be static, but you needed some like dynamic server side rendered pages. That’s what I called hybrid mode. And then the second question was, I don’t know why I got I don’t know why this was the question. But I think it aimed to separate out what developers wanted. But I don’t know how it worked, really. But as it was, do you want to build a single page application, and JavaScript, so that separated the spars from the MPAs, because with a single page application, there’s the the implication that you’ll be managing state, you’ll be across different routes, you’ll maybe be managing a logged in state or some other stuff, maybe an E commerce car to wherever like, you know, an MPA is like an obviously, with an MPA with a multi page application. There are ways to manage that kind of state, but you’d need a back end for that. And that, you know, with session cookies and whatnot, so it aims just to separate the do you want to do an SBA or an MPA. And now here it is, here are all of the frameworks that I found that were eligible for this site, and I’ll tell you why they were eligible in a minute. And here’s a list of frameworks you could potentially use for your new project after answering two questions. And I made a little bit of effort to Identify like which ones had their own CLI which ones supported TypeScript, which templating languages. Some of them use, like, for example, Levante. You can use liquid and non Jackson, and that kind of thing. But it tried to separate them. And the issue is that actually, when you selecting JavaScript frameworks to recommend to people, you want to make sure that they they are of a certain maturity, generally, because I didn’t want to like be held accountable for someone using a product that wasn’t quite there yet. It couldn’t do exactly what they wanted. So I included frameworks on the site that were at least version one, which I don’t even know what that means anymore, but at least version one, and that they were being actively maintained, which meant that there was a commit, made on the framework repository in the last year when I started building the list. But there were only 23 frameworks on that list. Was it 23? It was 20. something
Sean C Davis 16:05
specific to the running with node, or was it any? Any server-side?
Salma Alam-Naylor 16:12
Yes,it was JavaScript. So I discounted ones that were like Python, PHP, anything like that. It was the it was tailored at the JavaScript ecosystem. Otherwise, there would have been loads and loads and loads and loads. And I didn’t want to confuse people because it was as a result of people coming to the JAMstack. Discord, and asking specifically, which JavaScript framework should I use? Not which site static site generator should I use? Or should I use WordPress or something else? You know, so it was it was locked down to JavaScript, and there wasn’t many. And also, I kind of realized that. So so what I realized through through building this is these are the wrong questions to actually ask people because these aren’t the questions that when I was a tech lead, all those years ago, these aren’t the questions that we started out asking when we were going to build a new product at the agency. You know, a client comes to us and says, We’d like you to build us this please. We don’t ask them. Do you want to build an SBA or an MPA? Like, that’s a silly question to ask. That’s ridiculous. So don’t know what I was doing. So useless, what the framework is useless. Because but it led me on that journey, right? To make me remember actually how to build a product. It’s not tech first, its problem. First, its outcomes. First, it’s data first, and you can’t you can’t make and this is a thing as well. And maybe I’m hopefully it’s encouraging people to ask different questions when they are starting a product. It’s not like, what JavaScript framework should I use? It’s like, Hmm, what problem am I trying to solve? How am I solve that with X, Y, Zed? And how could I achieve x y Zed with a particular tech. And that’s I think we have to shift the conversation, we shouldn’t be starting tech first framework. First, we should be thinking about the problems we’re trying to solve. And that’s basically, I come to this conclusion years ago. And it was nice to come to it again, on the whole journey, I guess, and it all started from a meme. But it was it was nice to go on the journey.
Sean C Davis 18:26
Because those questions it sounds like are like your first one or two questions might be the same. What are you trying to achieve? Yeah, I don’t know. How long do you have to learn? I don’t know. Do you feel like there are a few questions that you would start with that would be fairly similar. But then from there, it’s like, you can’t really even design this matrix of questions, because each one leads to a number of other.
Salma Alam-Naylor 18:54
I even experimented with creating a decision tree based
Sean C Davis 18:58
Ah, decision tree this is what I was, yeah.
Salma Alam-Naylor 19:01
But it’s impossible, it it, it would only ever serve to generalize, things that cannot be generalized. And every single product that you’ve built, even if it’s like, even if you’re building a landing page, that is like using a template, it’s still a completely different intent than if you’re creating a landing page from the same template with a for different product, because those products are going to solve different problems. There there is. So it’s Yeah, so what I mean what we can’t maybe I could create a decision tree, a question tree, you know, like all the different questions that you could potentially ask based on that, but like that’s kind of going into real like product design territory and product thinking territory, which reminds me of the old days of my tech lead days. But you know, I think and it was So it also brings to the fore the, the need to really talk to other people about what you’re building and to, to encourage discussion around what you’re building as well, and to get early feedback on what you’re building. And this has nothing to do with the tech, like building stuff actually is really nothing to do with the tech. Like, it’s funny. When I’m streaming. And I’m building something silly. Normally, someone will come in and say like, why not TypeScript? Why not tailwind? Why not? Why aren’t you using a state management library? It’s like, who cares right now? I’m having fun, and I’m prototyping something stupid, that is never ever going to be a proper product. So tech, actually doesn’t matter. It’s how you get from A to B. I mean, okay. In some cases, tech is gonna matter, because you can’t achieve. You can’t achieve some things with some tech. And I guess it’s all about learning and experience, isn’t it and about about just keeping an open mind and going on journeys. And like, you know, there’s, there’s a lot of people who get very passionate about particular tech, right, and they will try to find a use case for particular tech in every situation. But the point is that, that combinations of tech and combinations of the choices that you make within that attacker are all designed for a particular problem. And so there’s never one size fits all. It’s always It depends. Always it’s like sandwiches,
Sean C Davis 21:37
just like sandwiches. Yes. Okay. So you had you said 2023, was that the number of
Salma Alam-Naylor 21:44
I think I can’t remember, I think it was about 23, or something like
Sean C Davis 21:48
that. Okay, so you as a forgetting that project for a minute, and just like going back to your tech lead days, and you’re going to start a new project? I mean, are you going to? Are you going to actually consider it, like an even playing field of those 23 frameworks, like they’re all a possibility on a new project, or you doing something? Before you even get to that first question where you’re like, Nope, I’m choosing from five or something like that?
Salma Alam-Naylor 22:16
Well, I mean, you probably be choosing from even less, because if you’re working in a team that has worked together before, or has done similar types of projects before, you’re gonna actually be familiar with a particular stack, right? And, and you don’t necessarily have the time or the budget to learn a whole new stack. And it’s a privileged position to be in to be able to choose pick and choose exactly the stack that you want, at any given time. And I think we forget that a lot in this very early adopter innovator community that’s online is that some people just got a job to do. And they are prescribed that particular tech, right by the clients or by the situation or by the type of job they are doing and the type of experience they have, you know, if if every single developer on every single new project had to learn 567, new different tools, no one would ever get anything done. I mean, it’s great for their professional development. But you also have these constraints to think about as well. And so you know, people who are able to switch and change between all this different tack for different products. So experiment, very privileged, and very, it’s very exciting place to be, but it’s not the reality for a lot of people. And unfortunate, unfortunately. And so again, my tool only was kind of fit for a very small subset of developers in the world, really, who were in that position to be able to experiment and give the time to learning something new if they ended up choosing something new, as well. So there’s a lot more to consider other than just the tech, so you’ve got the tech to consider. But that’s not the first thing to consider, you’ve got the problem to consider. And you’ve also got the circumstances to consider as well, in which you are building the product. How long will it takes, how long do you have to build it? And where will it even be hosted? Because some clients come with a prerequisite that it must be hosted in a certain place? Can that hosting platform actually run your application? Can I host your application? Can it build your application? Does it work on Azure or AWS or Netlify or WsL or anything and does it have the right support and so many so many it’s it’s a minefield, actually, and I sometimes I regret heavily how I tried to reduce it minefield to a sunny meadow because it’s not a sunny meadow whatsoever.
Sean C Davis 24:53
Yes, yes. Totally true. Okay, now, coming at this from the Maybe the other direction here. So, again, again, going back to that point of, if someone’s just building a framework for themselves. Great. Go ahead, go ahead and do it. I’m curious how you feel about the idea of the framework itself. Like we’re seeing more of a push toward now there are there are frameworks doing this. But that, see, I’m feeling more of a push toward like native web components as an example. And we’re seeing some frameworks kind of build up around that. And actually, we had a comment earlier today. Someone had said, building your own framework is easier than ever with with vt. So lots of tools to help make custom frameworks but also kind of a push to going back to some of these native web technologies. Curious, how do you feel about the framework itself like is it is having a framework actually necessary for every project, especially maybe, for beginners, or people just starting out?
Salma Alam-Naylor 26:05
This is often regarded as an extremely spicy take. But one of my most popular blog posts that has been shared all over the depths of Reddit and hacker news is that HTML is all you need to build a website. Now, obviously, I’m not saying only use HTML, but actually, it’s all you need to get a website online. And a lot of the time when I’m prototyping something, building, you know, trying something out experimenting something with something, I will literally use index dot HTML, and a JavaScript file. Like I actually, I have a website that’s on line right now. Game of codes, party dot Netlify dot app is an HTTP status code quiz. And it’s all just one index dot HTML file and a JavaScript file and this little game, in maintain state, but I didn’t use a State Library. I didn’t use React or anything, I’m just using the JavaScript and it works. And it’s all I needed. And I could have, I could have, I could have used React, I could have used something else I could have use a view, but I didn’t because I didn’t need to at the time. And so I am the first person who will always say, you don’t need to reach for a framework straightaway. It’s sometimes, as I said before, the overheads of learning a framework can get in the way of you actually solving the problem and, and getting something out there. And, and I also am very, very passionate, I guess you could say about just deploying websites, get them out there, right? It’s so easy. You know, index dot HTML file a bit of semantic HTML, no CSS, no JavaScript, ship it, you’ve got a website, right? And it’s online. And it’s beautiful. And it’s wonderful. And people can visit it. And it’s exciting. And especially for beginners, right? I see a lot of people learning react first. Like, they’re not even learning HTML. First, they’re going straight into React and React is an abstraction. JSX is an abstraction of the web, really. And you you will do far better, you will actually probably learn react far quicker. And actually what you’re building if you started with HTML and the basics, and went into learn the fundamentals of how the web works, and how the browser works, and how the browser paints your page and a request, I mean, I learned it all backwards, right? I learned CoffeeScript before JavaScript, oh, yes, I remember CoffeeScript Yeah, I learned Sass before CSS and I did it all backwards, because I was learning on the job, right. And again, this is the whole thing about like, you sometimes just have to learn the tech that you’re using in your job. But I mean, I got into tech in a weird way, I didn’t start out on the road to being a developer, I just got into it fell into it learned on the job, build some stuff. But this is why you know, being I used to be a teacher in the UK as well. And so I’ve got like the pedagogy kind of theory, like drilled into me and how people learn and, and differentiating, like different types of learning and stacking theory on top of it. And, you know, if you know the fundamentals of the web, if you know HTML, you can just open up notepad, and you can write a website and then put it online. But if you you, it’s a little more tricky to just open up notepad, write some React code, although you’ve got to like compile it, you’ve got to compile the JSX to something that a web browser can understand. And there’s extra steps, right? You can’t just YOLO it. But you can go low, anything with just the web standards. And I think that’s what’s so empowering about like native web stuff is because it just works. And, you know, everyone hates Webpack. For example, web pack is a nightmare. No one wants to see a web pack error in the terminal when something goes wrong, because it takes forever to debug. And you got to get into all those weeds, right? Where if you’re first starting out, and you see Webpack, and, and VT potentially, and then Ovie is hailed as a big problem solver to all the things that Webpack gave us. But you know, like, get all of that out of the way if you want to just have some fun and learn. And yes, when you become more experienced, and you learn more, you learn more about the web, you learn how like React syntax, compiles and translates to the HTML in the browser, then great, go wild. But I’m a big believer in that you don’t always need a framework and off, I’ve got a lot of projects that are just framework lists, YOLO deploys, and there are some of the best things I’ve done. Because it’s, you know what, when I was learning web stuff, back in the day, when I was learning how to build websites, I had no idea what I was doing no idea, like I was writing jQuery didn’t even know what I was doing with Java, I would think I learned again, it was like CoffeeScript, jQuery, then JavaScript. And I had no idea what I was doing. But now, it’s so empowering to just open up index html, and write a whole website in it. You can write the CSS there, you can write the JavaScript there, you can write the HTML, and I can manipulate the DOM, I can manage state, I can do whatever I need. And and it’s done. And that is so powerful. And I would encourage everyone to do that.
Sean C Davis 31:58
I so I totally agree, agree in the power of that. And I think the one thing I want to point out is that you say, Well, you go from that to you just put it online, like it’s this trivial process. But really, 10 years ago, even just getting an HTML file online wasn’t a trivial process. And that kind of like nice plug for Netlify Netlify can handle these enterprise sites. But it also solves that problem so easily that it like lowers the barrier to entry to putting the most basic site online.
Salma Alam-Naylor 32:27
I remember. So when I was first trying to make my own websites after I started working in tech. And so I was working in PHP mainly at my first job, very obscure framework called Phalcon with a pH. And so I was like, I was trying to make my own website at home. And I was doing it in PHP, but I had no idea about like servers and Nginx. And there was this HTTP d.com. File. And like, no one has you know, and I’m a front end developer, I don’t want to worry about that stuff, right? Platforms like nullify take care of that for you just connect, you could, you know, you can connect it to your Git repository or version control. Or you could just drag and drop that HTML file into Netlify. Drop, and it’s done. And it’s there, and you’ve got a URL already, everything’s taken care of, and you can then send your brand new website, all of your friends and family and feel amazing. And I wish I had that when I was younger, and I can’t wait to see my son deployed his first website, his first html file, I cannot wait for him to do that. Because it will be like, I will be able to live through live that joy
Sean C Davis 33:41
just made this. Yes. Yes. I love that. Okay, now want to transition to our last section. But before we do one more question. So we’ve talked a lot about kind of navigating the ecosystem and finding the right choice. And one thing that I’ve struggled with is picking something with some with with maybe what I’m trying to like, what am I trying to say, in picking something that minimizes the risk of having to throw it all out and rebuild it in a couple of years. If I don’t have to, I might choose to do that for whatever reason. But I think we’ve seen this like, I’m gonna pick on next for a minute, this explosion of popularity for next because next can handle these really complex cases. But it doesn’t have a lot of opinions on how you handle whatever you’re going to do. And so you can kind of build simple sites with next also. And so I think it’s an easy choice for somebody like me to go into a project and say, Okay, I’m going to build this website for you. And it’s going to solve your basic needs today. But when you need authentication and to serve up 10,000 pages In five years, it might still be the right choice. And I’m, I’m curious to get your perspective on, how do you balance this choice? When making this choice? How do you balance the needs of today? versus, you know, what is going to happen in the future? Would you
Salma Alam-Naylor 35:20
wear the same jumper for 50 years? Just because it kept you warm? Or would you like to buy a new jumper and try out a new style because style changes, things change, maybe there’s this new sustainable eco wool, maybe there’s a new color that’s been invented, maybe there’s a new fit and a new style. And maybe I’m being a little facetious. But because it’s like, it’s quite an effort to like rewrite a whole big product, even though you know, it’s quite trivial to buy a new jumper generally. However, what I what I’ve seen what I’m noticing, and actually, this was starting to happen when I was a tech leader, a big ecommerce company, right. So everyone were at that time was like there was working in this big monolith. And it was a huge, bespoke, monolithic tech stack built on Java. And what they what the what all the teams were doing at the time was moving to very, in very early stages was moving to this like micro service architecture. Rather than working in this huge monolith, everyone was building their own service that was going to be split out. So rather than working, you know, calling, calling a file that calls that sum, the database inside the big monolith, you’re actually calling an API endpoint that’s going to get you the data for you. And it’s all going to live in different places. And so, what I would what I would suggest that when we’re seeing this, like, I guess it’s another plug for Natla fie and in the move towards like more of a composable kind of architecture for anything you’re building. And it’s kind of what started the jam stack off is that you don’t need to keep everything in one place, you can get your data from another place, you can use another service for authentication, you can use another service for your images, and etc, and plug it all together. And so what happens then if you are moving towards that kind of composable architecture and moving towards like, puzzle pieces architecture, when something does change, when something new comes out, when maybe one of your puzzle pieces isn’t fit for purpose, you can swatch which out just that puzzle piece, and you don’t need to rewrite your whole entire stack. And so it becomes like this system of like, tessellation, where you, you move that one out, you move that one in, you move that one out, you move that one in? And and I guess that’s where we need to go. That’s where we need to think so with something like you’re talking about Next.js, I you know, I would say like Next.js can do a lot, right? But actually, do you really need it to do everything. And I mean, I don’t want to hate on actually, yes, but you saw the big differences between Next.js 12 and 13, and how it completely rewrote the architecture of the app directory, right. And there’s a lot of people now that when they’re migrating from 12, to 13, they got a lot of different changes to think about. But if you just had a front end, abstracted from the API layer, and the auth layer and everything else, like you don’t need to worry about completely changing everything in your big, big, big solution, you can just focus on the tiny things and might even say that next year is so powerful, it’s kind of almost like a monolith these days, it’s an but I would always encourage people to think in smaller pieces in smaller chunks. And that way your systems become easier, they’re easier to scale, because you can just add a new service here, or you can just put that service somewhere else or you know, try out something you can experiment a lot easier when you’re when you’re using more of like puzzle pieces. So that’s what I would encourage people to do is like, don’t go all in on one bit of tech, and do your research to like pick and choose what different services may be easier to manage in tandem. When you’re in a bigger organization that does come with the problems of now I have to manage 100 subscriptions to different services rather than just one big monolithic kind of solution. But the benefits I think outweigh that when you can be more flexible with your tech and kind of be a little bit more future proof potentially in if your product or your business is going to evolve. You can evolve your tech a little bit easier if it’s made up of different pieces of the puzzle.
Sean C Davis 39:59
Yeah, I love that. I love the idea of you grab these tools that are useful to you. But super mindful of lock in and as much as you can keep your core functionality out of those tools, do it. I’m okay with that. This, this has been amazing. I feel like we could go on for hours and cadres, but I gotta gotta get it off somewhere. So let’s transition and I’m going to ask you a series of just nine quick short questions and answers to wrap this thing up. Sounds good. Okay.
Salma Alam-Naylor 40:33
Yes.
Sean C Davis 40:34
All right. So number one, I read that you’d spent some time pre maybe maybe pre coding as a music teacher. And I’m curious, what instruments do you play?
Salma Alam-Naylor 40:47
So when I was growing up, in my teenage years, I had three main instruments that I played in different bands and orchestras and stuff. Flute was my main one. And I also play piano and also play bass guitar. I did a little bit of saxophone dabbled in the saxophone, because it’s kind of very similar fingerings to flute. But that was my main and I sang a lot in choirs and stuff. See, before
Sean C Davis 41:17
you got to sax, I was like, well, those three are very different instruments. Yeah, yeah. That’s, that’s great. I tried the flute for a little while. And it didn’t it did not stick. That was that was challenging. Okay, number two. So you’ve got this. You have you have a great, I love your website, by the way. And I know you talked to we talked pre show that you’re tinkering around with a new one, but curious with the site that you have today. What stack Have you chosen to build it with?
Salma Alam-Naylor 41:49
So I’m currently using Eleventy, for the front end and Contentful for my CMS. And I’m using it’s hosted on Netlify. And I’m using a lot of edge functions to do some like server side at the edge enhancements to the site on particular pages. Now, what’s interesting is that this is the third iteration of my site. So far, the and I wrote up a very long blog post about why I migrated from a few different solutions. So I started back in 2020, using spelt and sapper that was before svelte kit came out and a way to like make it static. And then in 2021, it was next Jas. And I spent a year on that. And then when I moved to Netlify, in 2022, I moved to eleventy. And again, this is a testament to like keeping your, your, your bits and services in different places, because I’m still using Contentful, like the same data, the same content model, the same content, I didn’t have to migrate any of that when I moved from next Jas to eleventy. And moving from next Jas to 11 Ti dramatically increased the site’s performance because my, my aim was to remove as much JavaScript on the client as possible, just for reasons because I was on a big bandwagon of removing it for for performance reasons. And just can I do as much as I need with like, there’s a little JavaScript as possible. And actually, using Netlify edge functions, takes a lot of JavaScript out for things like localization and times and all sorts of like updating stuff according to like the time it is like edge functions they get. They get rid of all that JavaScript, which is on the client, which is great. So that’s Eleventy, Contentful. So am I using something else as well? No, I think that’s pretty much it. There’s no other services I’m using, I don’t think I do use a bit of cloudinary
Sean C Davis 43:56
plain JavaScript for you use no JavaScript
Salma Alam-Naylor 43:59
plain. So I when I, I went a bit rogue with Eleventy and because of my transition from Next.js to Eleventy, I use the JavaScript templating system in Eleventy not the Markdown nunchucks liquid. So there are some complications with that sometimes because it’s, it’s not the most supported way to do everything. I can still do everything I need to do. But it’s kind of a bit like on the fringe of how to use Eleventy, which is great. But I’m also using cloudinary for my dynamic OpenGraph images, which is great, great service. Yeah.
Sean C Davis 44:39
I love that. I can also speak to the it feels like with Eleventy there was so much more control over performance. It’s the only as far as I can remember, the only site with let’s say more than 100 pages that I’ve gotten to hundreds for performance scores, it’s been Eleventy. It’s like I got full control. I can do all the things which And
Salma Alam-Naylor 45:00
that’s it. That’s what I really liked about moving to Eleventy. It’s not unique in the fact that it ships zero JavaScript by default. But what it really encourages you to be intentional with the interactivity and the JavaScript and the things that you send to the browser, like I dramatically reduced the client side requests from an extra s AP to using eleventy. Because I am lit, I know exactly every single thing that I am sending to a browser on every page that you load. And that’s what’s again, it’s an empowering thing. Because you can be so intentional, that you know, you know, like, you know, like, if you have some like credit card debt, right, and you’ve got like a bit of debt, you’re like, Oh, it doesn’t matter. If I add a bit more. If I spend a bit more on my credit card, it doesn’t matter, because I’m already in so much debt anyway. So I spend I spend a bit more. But when you have zero debt, you are a lot more intentional about adding debt to that credit card, because it feels like I’m going down a rabbit hole, and I’ll just, it’ll just get worse and worse and worse and worse. And that’s how I felt with eleventy. It was like I removed all that. And I was very intentional about spending any more money.
Sean C Davis 46:14
Yes, I love that, that that such a perfect analogy. In fact, Bryan Robinson just commented that sound was analogy game is on point today. Yes, this is great. All right, let’s see how many more we can get in here. So number three, I also saw that you spent some time as a comedian and so maybe answer this as music or comedy. What What has been your most memorable performance?
Salma Alam-Naylor 46:48
It was probably my last or penultimate performance for good reasons. But actually, no, no, no, no. Okay. So, okay, I wonder how I can talk about this without saying a very offensive word. So, so it’s okay. Right? My comedy was musical comedy. And it was very dated. So like it when I was doing this, like 10 years ago. It was all the time, it was very British, satirical political, like it wouldn’t go down well, in the US, right. It was it was of a time and a culture and a place anyway. So I did it with a did it with a friend, like my best friend, we both both went to music college together. And we both did musical comedy together. I don’t know how we ended up doing it. But it was a joke that turned into a thing we did on stage anyway. So we had this song called nursery crimes. And we generally opened a show with it. And so it would start with my comedy partner talking about her fictional nephew, and how he, you know, his loving life. And it’s really, really great. And the first line I said in the show was very offensive to this fictional nephew. And in certain audiences, this line would go down very, very well. But we were playing to a very different crowd this night. And I said, this line, and it doesn’t make any sense me telling you the story when you don’t know what the loan is. But I lost the room on my first line. And we had to play for half an hour with no laughs and this is the thing with comedy, you really have to know the room and you read the room. And since then, I changed that line for every single room we played in depending on the audience and where we were and what town we were in, and blah, blah, blah, which was great, great lesson to learn. But I never Yeah, never forget that. Like, you gotta you got to be careful with with the, with how you read the room. And I guess, you know, I use a lot of the experiences from comedy and what I do now, and, you know, it was a great lesson to learn. I would encourage anyone to, to do some comedy, if you will lead to be in front of audiences, because it teaches you a lot.
Sean C Davis 49:12
Yes, yes. 100%. I haven’t done comedy specifically. But I’m just like, performing on a stage in front of people. Like, yeah, I’ve learned I’ve learned a lot, mostly, almost exclusively through all of the things that went wrong during
Salma Alam-Naylor 49:26
Exactly, exactly, yes. And it’s great. It’s it’s learning is good, right?
Sean C Davis 49:30
Thanks to exactly yes, yes, yes. Okay. Number four. So we’ve talked a lot about frameworks today. A lot of those are open source is this question a lot, and I was curious to see what you would how you would answer it. And the question is, what is your favorite open source library? Or could be the one you appreciate the most or use the most however you want to frame it.
Salma Alam-Naylor 49:56
No one has ever asked me this question and I have never ever thought about the answer. Sir
You see, Whenever anyone asks me like a question like, What is your favorite piece of tech? I’m always very reluctant to answer. Because I don’t like picking favorites because I like to think that every single solution, every bit of tech is valid for a certain kind of person. And I don’t want to influence people based on my opinions, so I’m going to say no comment, actually, Shawn,
Sean C Davis 50:31
I love it. Or perhaps it depends.
Salma Alam-Naylor 50:33
You Well, yeah. I mean, I, I didn’t even want to say it depends. Because I have literally I’d make a point not to have any favorites. And I don’t like to get like fanboy about tech, like, particular bits of tech solve particular problems. Everything is valid. Go wild. Have your favorite but don’t, don’t get silly about it. And so I feel like if I were to say I had any favorite, I would be breaking my own rules. So not even It depends. Just no comment. Thank you very much. Goodbye.
Sean C Davis 51:03
Okay. Love it. Love it. Number five. What is the prefacing this saying you do? I would imagine most folks here know that you are a regular live streamer. And we’ve talked about performing making mistakes doing that what is the hardest thing about doing a live stream successfully?
Salma Alam-Naylor 51:25
The fanboys. I think I deal with it pretty well now. But it used to get me really down. You know, I’d be just minding my own business, building something with the tech that I wanted to build it with at that time, and you get people in like, why aren’t you doing it this way? This is the best way to do it use tailwind? It’s always tailwind? I’m sorry, there are tailwind missionaries, going from stream to stream spreading the good word of tailwind. But it throws you off, right. Because you’re you think you start to doubt yourself like oh, yeah, why aren’t I using that? And then you have to remind yourself that No, I made a decision to do this. You can go away, you can go and spread your mission somewhere else, please. Thank you very much. But that’s the hardest bit. It’s like people telling you what to do. You’re in the flow, you’re solving a problem. And someone comes in and thinks they know best without even knowing, like the context. They don’t even know what problem you’re trying to solve. But they come in and push their tech on you. Which brings me back to the beginning of this conversation is that you can’t push back on people, you have to understand the problem before you can provide any solutions. And tech is not a solution. Implementation of attack is a solution.
Sean C Davis 52:42
Do you? Do you address them when they’re commenting? Or do yes, you ignore? Yes,
Salma Alam-Naylor 52:49
I tell them to go away and stop and think and think about their lives and think about what they’ve done and reflect on their bad behavior. And people will will. It’s funny, because people who are regulars in my stream will be like, Yeah, well, what the heck are you talking about? Go away. Can you see this woman is working, and she’s doing well and she’s fine. She doesn’t need you. Come back when you have something better to say. And it’s great fun. Like, it’s fun. Now, it used to not be fun, but it’s fun, because I know I’ve got a lot of people on my side. And I believe in myself most of the time. And it’s fine. But it’s funny, because I can go on a little rant exactly like this, and then they feel bad, don’t they? Then they then they then they run away with their tail between their legs. And hopefully they don’t do it again.
Sean C Davis 53:37
I love that. Okay, number six. What is your if any? What is your favorite music to listen to while writing or working? Yeah, it
Salma Alam-Naylor 53:49
depends as well. So I guess there’s a few genres that I will choose from depending on the type of code I’m writing or like, what do I need to do? So recently on my Twitch streams, I’ve been listening to like ambient tone or like meditation vibes. And that kind of like gets me in a nice calm mood. But sometimes on my own when or sometimes on stream as well I put like metal on sometimes I need like the speed of some metal to to get me through it. But then on other days I’ll need some EDM and some full on like hype music to like get me through it. Basically, I don’t really have coding music. I just have music that I want to listen to if I’m in a particular like space in my head, so that also depends I’m afraid
Sean C Davis 54:34
it’s more about it’s like more about mood than then activity I guess.
Salma Alam-Naylor 54:41
Yes, yes mood definitely mood and I’ll go through I’ll be in the same music mood for a few weeks. Currently, I’m on a on a folk fusion few weeks where like I really like like Irish and Scottish folk music, but like, kept up with a bit of like electronic stuff going on with it. I’m on that I’m in that mood at the moment.
Sean C Davis 55:06
Who’s, who’s a good artist in that genre? I don’t know anything about that.
Salma Alam-Naylor 55:11
Currently, I’ve been listening to a vowel toss, album on repeat, but vowel toss, they take existing folk music and remix it into some funky stuff.
Sean C Davis 55:22
Okay, I’m gonna, I’m gonna learn something new later today. Okay, number seven, what’s the biggest mistake you’ve made in your career?
Salma Alam-Naylor 55:35
Oh my gosh, like
Sean C Davis 55:42
I’ll tell you people go all over the place with this one. Some people are like, I deleted a production database. And we had, like, I didn’t treat this one person the way I should have when I was managing them. It’s like, I get all kinds of answers because I love asking this one.
Salma Alam-Naylor 55:58
Okay, I have a rite of passage, I was a junior Dev, I was building as part of a team that was building a new e commerce platform. And we had a number of test clients, but they had live sites, they were on the Live platform. I had root SSH access to the live server. And I was building a product image carousel, I needed some images in my local development environment. To build this product carousel. They were rugs it was a rug sight. So I SSH into the live server and I zipped up the images folder, I downloaded the images folder. And then I thought I need to clean up after myself. So I did RM dash RF, I m tab and first enter. Now you don’t need to dash RF, a zip file, do you know so I deleted the production images from the website, everything it was all gone. And that was it. And I we managed to restore most of them from some kind of backup or something. But I am always very careful when I use RM dash RF anywhere now because you can do some damage with that bad boy.
Sean C Davis 57:32
Yep, yep. Yeah, yeah. Been there. Yeah. I mean, not that exact situation. But I’m, I’m, I’m like a frequent. I hit ENTER. Before I realized how many times I had tapped. And I still do it today. I’d like something like that. It’s going to have to happen to me, for me to get control of the Tab key Tab. Tab slower. Yeah, it’s okay. Yeah,
Salma Alam-Naylor 57:56
yeah. But you know, rite of passage. Again, you learn from mistakes, and I will never forget it. And I will always have empathy for anyone who does it, because I think you have to do it once. In order to never do it again. I don’t think there’s probably anyone out there who has not done something similar, and has a story to tell, and is a better person for it?
Sean C Davis 58:18
Yep, yep. 100%. Okay, two more. Number eight, what is your most enjoyable non tech activity?
Salma Alam-Naylor 58:27
Currently, it is cross stitch, I am doing a very big cross stitch thing. But I started at big, it’s, it’s like, it’s big. It’s big. It’s bigger than the camera view. And I spend time on it every night. And it’s very enjoyable. And it’s something that’s not in front of a screen. And when it is finished, I will frame it and hang it on my wall. And I keep giving people updates on my progress on my Twitch stream actually. So if you want to see the latest progress, come and join me on Twitch. But that’s what I’m doing at the moment.
Sean C Davis 59:08
Are you are you is it something working? Are you working in something that you have designed? Or are you I don’t really I know the activity I don’t know how like the design or how it comes together.
Salma Alam-Naylor 59:21
So this is actually the first time that I’ve ever done anything like this and it was a New Year’s resolution to do something different and I bought a kit right so it comes with the design. It’s like a tattoo inspired design. It comes with all the world that you need. It comes with the canvas and the needles comes with a pattern. So I’m I’m I bought a kit and it’s that I’m gonna buy another kit when I finished this one.
Sean C Davis 59:43
Gotcha. Okay, okay. All right, here we are. Number nine. Last question. This is also one that I constantly ask because I get some really wild answers here. And so the scenario is that you can host a lunch or breakfast if you prefer with To anyone and that person can be alive or not alive. Who is that person?
Salma Alam-Naylor 1:00:15
My, my, my dad’s mum. My dad’s mum died when he was two years old. And my, my dad is Indian. So he grew up in India. And I don’t know anything about her. I’ve never seen a picture of her. My dad doesn’t really know anything about her. But I am nothing like my mum. So I want to know if I’m like my dad’s mom. And yeah, that’s it. It sounds like it’s a dark kind of theme to end this podcast on. But that is my answer.
Sean C Davis 1:00:59
No, I like that. That’s that’s a great answer. It’s a great answer. But yes, thank you very much. This was a fantastic show, I had a ton of fun. And as I mentioned earlier on, like we could, we could keep this conversation going forever. Have to wrap it up. So one last thing, before we go, go ahead and tell folks who don’t know you or don’t know how to get in touch with you how they can do that. And if you want to take a second to talk about anything else that you’re working on right now, go ahead.
Salma Alam-Naylor 1:01:27
So my handle, I guess you could say across the Internet is white Panther, white p four and three r. And I stream at twice a week on Twitch Wednesdays and Fridays, at about 12 noon, GMT every week. And I build websites, I build stuff, I build weird stuff. And I’m kind of going all in on Twitch at the moment. So everything like I’m doing is like pointing to my Twitch channel, I’m redesigning my website to turn into a marketing site for my twitch channel and blah, blah, blah. But also, what I’m doing on my Twitch stream is I’m building something called Panther world, I was very inspired by something I saw from an art streamer. And it’s kind of this whole thing that’s meant to like blur the line between me being online and offline and giving you like a world to like, be in and interact with, when I’m not streaming. It’s gonna take me I think, like a couple of years to build this. But I’m procrastinating from building Panther world by redesigning my website for the fourth time. But you can come and check it out at Twitch, TV slash white Panther. And I’ll be happy to see you there because it’s fun. And you can help me shout at all the backs eaters who come in and push their tech on me.
Sean C Davis 1:02:48
Love that. All right, thank you. And thank you to everyone out there in the audience. And those of you viewing later, reminder that these shows are recorded live on the first and third Tuesdays of each month at 1pm Eastern time in the US or 5pm GMT and then we later syndicate them on YouTube or you can get to any of the episodes, both past present future on CFE dot Dev. And that’s also where you’re going to find a new talk show from CFE dot dev called dev relish. It’s hosted by Brian Rinaldi and Aaron McHale staples. So this is, it’s it’s really interesting, they just launched their first first episode, I believe was last week. So there, check that out. Lots more to come from that show. And this one and I will be back on March 7, with Bekah HW who is the founder of virtual coffee and we’re going to be talking all about leading developer communities. So until then, from all of us at CFE dot Dev, thank you for joining us for this show. I’ll see you next time. Thank you so much.