Join us as we share what it's like to build and launch a bootstrapped startup while working for yourself full-time. Benedikt is working on Userlist, and Benedicte is establishing herself as a Gatsby expert and developer advocate for hire.
Welcome to Slow and Steady, a podcast where you get to follow along as we build products in public. Each week, we'll give you an honest peek into our lives as our struggles, our wins, and everything in between. I'm Benedicte, and I'm feeling relaxed.
Benedicte:And I'm Benedicte. Today is September 5th. This is episode number a 188, and I am feeling focused.
Benedikt:That is true. You you showed up late because you were so focused on your code. Right? So
Benedicte:so focused. I was late. And because I was doing these focus sessions with my my group, and we were doing, like, 50 minutes breaks and then 50 minute 50 minutes and then a little break. So we did 3 of those, and that was done. And it was about, I guess, an hour until our scheduled time.
Benedicte:And I says, oh, I'm just gonna look a little bit more on this framer integration code because it's, like, so long off. And then the next time I look at Clock. I'm like, oh. Yeah.
Benedikt:That's how it happens. But it's usually a good sign because that that That means you've been properly focused. Right? So you
Benedicte:Yes.
Benedikt:Like, in the zone. In
Benedicte:the zone. Yes. I don't know if I've worked it out, but I got working code, which is good.
Benedikt:That's at least a good start. And also it's just like this it's it's just this recording. I feel like it's more I've missed demos with customers this way.
Benedicte:Yes. I
Benedikt:was like, oh, they are waiting for me for the past 20 minutes. Yeah. That's impressive.
Benedicte:So I it yeah. That is yes. It is very I've also missed some meetings in the past. And especially because it's like, okay. I'm gonna have these focus sessions.
Benedicte:We we all of us in the focus session, we put our phones into another room. Mhmm. And, like, we turn off all of the distractions because we're gonna do this 50 minutes of, like, super focused time, and then you kind of forget to turn all of those crutches on again because it's kinda nice. Yes. It's kinda nice Yes.
Benedicte:With Slack closed and with, like, your phone in another room and you get into the groove. But then having To then remember to put those back in place when because things you know, you have other obligations, and and you need those reminders, The little things and and whatnot that that you kept out of the room.
Benedikt:Yeah. Like, we We are offloading so much stuff into our phones, like calendars and to do lists and stuff like that. And then we just put them away. So, obviously, all the notifications and reminders about calendar events and stuff like that are gone, Which is convenient, but also a problem.
Benedicte:But that is the problem with the phone being everything. Like, I'm getting more and more I don't know what to do because it's like you need it for those things because that's where, you know, where, yeah, where your reminders are and often where, Yeah. Important stuff is happening, but then you also have all the crap. And it's hard to be able to keep, You know, the needed the needed parts and not be distracted by the the other parts. Yeah.
Benedicte:Because it really does help. Like, the the lady that that runs these Focus session says that as long as your phone is in the room, you are actually spending precious, like, focus brain energy on thinking about the phone. It needs to be out of the room. They've done research. It needs to be out of the room to not distract you.
Benedicte:If it's next to you, you keep looking at it. And then if you just put it in the room but, like, close ish, Your brain is still, like, wondering what's happening over there in the phone, wondering what's happening over there in the phone. So at least the research she cited is that you need to get it out of the room. We don't have any rooms, but I put it in the kitchen area, which is The other side of the house, at least, before we can we actually lose that connection where where we're, like, I'm consciously checking the for the phone Mhmm. Interesting.
Benedicte:We're working. Yeah.
Benedikt:And one thing I did over the last a couple of years. It's like just being very strict about which apps and which tools and services are allowed to send notifications. And I feel like that removed a lot of the anxiety of, like, having to check it because unless I unlock it and open an app, I don't Unless it's important, of course, I don't see anything on the home screen and stuff like that. And usually, when I work, I have my phone right next to me. And More often than not, I forget to check it.
Benedicte:So Maybe we're different.
Benedikt:Yeah.
Benedicte:Because I have also turned off all notification. I get, like, PTSD when I'm with people who have their notifications sound on. Like, this summer, I would have to ask I was like, can you can you please turn off The sound on your phone because we're, like, sitting here enjoying, you know, the summer, and it says, like, ding. You know, like
Benedikt:Ding. Ding. Yeah.
Benedicte:Ding. Ding. Ding. And they're just, like, sitting there talking. I'm like, what kind of person are you?
Benedicte:Like, aren't you being stressed out by this? They're like, oh, I'll just read it later, but I'm like, yeah. That's not the point. I am getting stressed out
Benedikt:Yes.
Benedicte:Over your pinging.
Benedikt:Yeah. I noticed, like, something similar ish. Like, my parents both are, like well, preface this with I I think since I had my iPhone for the last, I don't know, 15 years or so, it's always muted. Right. There's like, I don't I don't know why there is a switch on the side to switch it from muted to unmuted because If it was for me, we could just glue it to mute it all the time.
Benedicte:Yeah.
Benedikt:But my parents, they both have their phones unmuted all the time. And they also come running. When it makes a sound, they wherever they are, they come running and check it, which is insane to me.
Benedicte:It's like a house phone you carry with you.
Benedikt:Sort of. Yeah. Which is also, like like, these days, It's a weird concept to me that people can call you, and it would just disturb you in whatever you're doing. And you'll pick it up, and they will talk to you for an hour.
Benedicte:Well, the thing, I I would have agreed with you, and I still but I have to keep my phone on because of responsibilities in my life now that I can't get out of, which is super annoying because then especially since the people preface, my mom is Alzheimer and lives with us and has home help. And the home help calls from any number. Like Right. It It looks like sales calls, but I have to take them in case there is an issue. I don't always take them, but, like, often, it's, like, important stuff.
Benedicte:And often they also call to, like, discuss future plans, and they don't make a meeting. They just call you when they have time because they're overworked, obviously down at the office. So they just call you and, like, oh, we think maybe we should up the amount of help or rethink this or that. And that happens, Like, synchronously, like, if you don't pick up the phone, it might be 3 weeks until they have time to do that again and, like, offer you the more help. And That is super annoying because that has really ruined some of my focus because Yeah.
Benedicte:The phone has to be on, and then somebody else calls. Or I get these, like, lost calls from unknown numbers, And I have to make time to, like, call them back and see if this is is an and half of the time, it's like some call center. Because when you call back It's, you know, it's just that, like, call center vibe where it's like they just hang up on you or, you know, you can't, like, call back. But sometimes it's really important. So I'm having a hard time, like, figuring out, like, my new because I used to I mean, my mom also.
Benedicte:This is the best thing though Regarding her Alzheimer's is that she has never ever had her audio or sound on on her phone, and she has never ever picked up the phone really because she's, like, one of us. Like, she was a tech person, which is really fortunate now because otherwise, she would be like a prime, you know, person to call to scam.
Benedikt:Mhmm. Yeah.
Benedicte:But she doesn't she still does not pick up her phone because now she She's I she actually had done it so little the last couple of years that picking up the phone was one of the first things that she forgot how to do. Like, I would sit with her, and the phone would, like, have the not audio because she or the sound was off, but you could see On the screen that somebody was calling, and she's like, oh, somebody's calling. And I'm like, yes. Maybe you should pick it up. She's like, yes.
Benedicte:And then nothing happened. Then I thought, well, This isn't too bad because yeah. Then I don't have to worry that she's getting scammed by, you know, one of those, Typical scams that, older people fall for. So true. Yeah.
Benedicte:There's a good pros and cons of a lot of things.
Benedikt:Yes.
Benedicte:But it is interesting that she just that's one of the first time things she forgot. So, Benedekt, when you you're gonna forget how to pick up the phone because you you never do it.
Benedikt:Yes. That that's I'm sure that's going to happen eventually.
Benedicte:So what have you been doing when you've not been vacationing?
Benedikt:I have only been vacationing for the last couple of weeks, so nothing, I guess. Yeah. No. I mean, I had a great time on vacation. Overall, it took 3 weeks off.
Benedikt:And within those 3 weeks, we spend 10, 11 days, something like that, in a camper van, doing a trip through Sweden. And we really unplugged, literally. Like, we we never plugged in the the camper van to, like, get electricity. And sometimes where we stopped and and spent the night, there was no cell reception as well. So There was no way to check emails.
Benedikt:So that was kinda nice. We enjoyed it quite a bit. But, of course, it also meant that, a lot of work was left, undone or, like, not finished. And that's why I'm mostly keeping the last few days. Basically, I'm back to work.
Benedikt:Yes. Since yesterday and the last 2 days have been, catching up on things, working through my email inbox, working through my to do list, Stuff like that. So,
Benedicte:Are you working through them or just, like, marking them and do archive?
Benedikt:I did a lot of like, When we had cell reception, I did a lot of, like, e email inbox maintenance, I guess. Like, I didn't really work on stuff, but Everything that was not important went to archive right away. So yesterday morning, my email inbox was only stuff I had to take care of. So, yeah, that's what I did. If I
Benedicte:don't do that I I just declared bankruptcy.
Benedikt:Yeah. If I don't do that, yeah, bankruptcy would probably be the way to go. Yeah. Anyways, it was a nice was nice 3 weeks went over super fast. I feel like The good thing was, like, in the last couple of days before the end of my vacation, I was actually looking forward to coming back to work, Which I feel like is a good is a good sign then, yeah, you're again, like, excited about the work you're doing, and that's, I guess that's the purpose about the vacation.
Benedikt:How
Benedicte:long did you feel like it took you to relax, or was it just like day 1? Could you have been asked for Lex if there was no electricity on day 1? Would that have been okay, or did that, like, feel less and less Excited and dizzy as the time went on.
Benedikt:That's a good question. I don't I don't I don't know. I can't I can't really tell. Yeah. I guess, like, if there was no, like no Internet for the entire 11 days or whatever.
Benedikt:I think that would have been anxiety inducing. But having to Having a way to, like, at least check-in from time to time and see that everything was running smoothly, that that helped me not care. Well, does it mean I didn't care? I kinda cared and checked, but then seeing that everything was fine allowed me to not Worry about it for the rest of the day. And we're actually we were hiking a lot and, like, driving a lot, so I literally didn't have the time to pick up my phone and check it for most of this, most of the trip.
Benedikt:So, Yeah. I think it worked out nicely.
Benedicte:Yeah.
Benedikt:What was nice though is, that There were actually some problems, but I didn't notice, at least some of them, because the team, handled them On its own, like Jane and Michael and, Leo basically handled all of her customer support. And, Jane even committed some changes to the code and, fixed the bug on the front end, without me realizing. Like, I only noticed that When she told me yesterday, I was like, wait. What? You did what?
Benedikt:You you committed code? And I was like, oh, what happened? Like, unchecked. And Yeah. And it was, like, just typos, like, of of 2 labels were flipped, basically, and didn't make sense in that order.
Benedicte:Mhmm.
Benedikt:But, Jane and Michael found that through a customer support request, discussed it, Decided on a solution together and then implemented it and shipped it. And I I didn't And
Benedicte:you were hiking?
Benedikt:I I was hiking, and I didn't I didn't notice even like, I didn't notice the conversation in Slack. I didn't notice the customer support ticket. I literally only found out about this when she told me yesterday, and that's that's awesome. I love it.
Benedicte:I feel like this This merits, like, one of these stickers that that was gonna be on our start up sticker board.
Benedikt:Right. Yeah. Like I mean, it's similar
Benedicte:doing work, and you're not even, like, noticing. Like, it just got fixed.
Benedikt:Yeah. It's It's amazing. I feel like it's similar to the first, the 1st sticker we wanted to do on, because I had a similar situation in the past. But, Yeah. Anyways, it's long story short, it's always exciting if stuff happens without you noticing, I guess.
Benedikt:Unfortunately, and I'm starting to wonder if this is like a pattern, But, like, we had 1 big issue while I was on vacation, and it actually happened in the very 1st few days, where we had problems with larger broadcasts. And, Yeah. It was super weird. Like, 1 customer at some point complained that they scheduled a broadcast And it got sent. But then looking at the numbers, it was basically sent twice.
Benedikt:So every email was sent 2 times, to every recipient. And obviously, that's that's not good. And we had no idea why. Like, it didn't make any sense. Looking at the code, it looked like It was fine.
Benedikt:Like, there was no obvious reason why we would send it twice. Granted, there were also no, Like, no protections in there. Like, it was possible to send a broadcast email twice to a recipient. So, like, the 1st measure I did on one of the early days of my vacation was, like, going on, like, Add some checks that if there's already a message to this user from this broadcast and don't send another one, Which at least helped to, not screw up that hard again. But, And we thought that, like, that's all.
Benedikt:Like, we have no idea what the root cause is, but at least we we have a way to prevent it from happening. And that was fine. It didn't happen again. But, a few days later, the same customer complained, that one of the broadcast wasn't sent at all. So,
Benedicte:we're like, we fixed it. Yeah. We we we didn't anything.
Benedikt:And then it didn't send anything, but, like, broadcast weren't broken per se. Like, other customers have any problems. Even that particular customer didn't have prod problems with all their broadcast. Like, they have been sending more, And some of them went through fine, but then there was 1 that's in twice and then one that didn't send at all. And that was When that happened, I took like an entire afternoon out of my vacation and I actually started debugging and, like, looking into it.
Benedikt:And, we did some head scratching and researching and stuff like that. And we noticed, That at the time where the broadcast wasn't was supposed to be sent, there were Connection issues with our Redis database, where we, basically push jobs in to, Yeah. To to get a process and get a broadcast sent out. And, that was like a first clue of what was going on. We then still had didn't have a good idea of, like, what the problem was exactly, but we Assumed that it was related to maybe the the job that enqueues all the messages, Tried to send stuff to Redis and failed and then silently got killed or whatever and wasn't able to retry.
Benedikt:But it was hard to reproduce that and actually have, like, some proof. So what we did also to, like, not have to affect our customers that that much as, We added additional monitoring. So when we when we noticed that a broadcast was kinda stuck or, like, attempted to send but didn't actually send for several hours, we would get an alert and then have a way to look into it. And, but things were fine after that for a couple of days. I think almost 2 weeks.
Benedikt:And then during the end of my vacation in Sweden, we had a broadcast get stuck again. And I started looking into it, and, yes, it was Properly stuck. Like, the the job that was supposed to enqueue all the messages was had been run, but it didn't It didn't do anything from looks of it. Like, there were no messages queued. So I kicked it off again manually, and it then started sending and stuff like that.
Benedikt:But that finally gave me a clue of what was happening because that I was actually looking, Like, I was watching what was happening as I kicked it off again, and that made it clear that There was a mistake in the way we enque those jobs. And it's a little bit hard to explain if you don't, like, Know all the details about how sidekick works and sidekick batches works because that's the the the tool we're using for this. And, basically, we were trying to be smart about querying the list of recipients because we know, like, it's a large broadcast. This might be Hundreds of thousands of rows that return that are returned for the from the database of, like, potential recipients. So we were smart about Batching like that part of the process when we query the user IDs.
Benedikt:And then I assumed that En queuing the batches in Sidekick would also be, like, in increments of 1,000 or something like that. But because we we are using this batch concept inside Geek, And I only found out after reading the documentation again. It's like that that part where you anchor the jobs is atomic. So what I assumed was that it would just insert a 1,000 jobs and then continue to the next batch and and and so on and so on and so on. That wasn't happening.
Benedikt:Instead, it was, like, collecting all the jobs in memory and then pushing them all at once, Like, several 1,000 of jobs in one request to read us. And that was apparently
Benedicte:And read us, like, Oh, no. I can't handle it.
Benedikt:Yeah. Sort of. Yeah. I it was, that red has definitely got overwhelmed by the amount of Data it had to process. And the thing is, most of the time it processed it correctly, but the job on the other side Send the data to Redis, and then Redis was doing its job and didn't return in time.
Benedikt:Like, there was like, the job didn't get confirmation that it was properly Except so initially, when we sent the broadcast twice, what was happening was there was a time out. It It assumed that the work hadn't gone through while it actually was frozen. So retried, Did the stuff again and then cue to the 2nd time. So that's how we send it twice. And potentially, we could have sent it off more often than that, but, All good.
Benedikt:And, looking into it now, it's became obvious like that Collecting all that work in memory and then pushing it in one go just didn't scale. So, Today, I finally sat down and implemented a proper solution, and we now make sure that we send work into Redis in smaller batches. And, I I hope this fixes this issue. Yeah. I don't know.
Benedikt:Like, I could have sat down and fix this or, like, try to fix this during my vacation. But because it was only Like the band aids did sort of work for the 3 weeks, so I didn't feel like actually like taking a day out of my vacation Try and fix this because I know. I wouldn't have spent the time and energy and brain cycles on it because in the end. I want to take my vacation. Right?
Benedikt:So I don't want to sit in front of the computer for 2 or 3 hours to figure this out good. So I delayed it until today. And then Today, I implemented it and yeah. I fingers crossed. We we see in a couple of days, I guess.
Benedicte:But it wasn't like it was anything new you'd done right before vacation. So this had been in production for a
Benedikt:long time. This had been in production for a long, long time. And it hasn't been a problem up until my vacation.
Benedicte:Or it's you know, there might have been customers who just haven't
Benedikt:August Yeah.
Benedicte:And messed in and reported it. Or so it feels like when it's like mature decision to be like, okay. We'll just leave it as, You know? Or you did those little Band Aids because it's like it's been in production for so long. Is should I?
Benedicte:Yes. Should that take my vacation? Like, because it came up right now. And I think maybe I don't know if it was a couple of years ago, maybe you would have done a Had a different, I decided differently.
Benedikt:I have had some vacations where I spent an entire night Trying to fix stuff, but it was also a more pressing issue. I feel like this overall, while it sucked, I'm sure the fact that this 1 customer and, yes, we screwed up Big time, at least once with them. They understood. They did they didn't get super mad with us, And now we have a fix on platform. I say we have a fix in place, but I'm, I'm, I'm hopeful That is fixed.
Benedikt:Something broke. What happened? I heard some glass, Falling down.
Benedicte:Yeah. I heard that. It was it was from outside. So it's like, did somebody crash outside? But yeah.
Benedicte:I don't know if you that even if If you have
Benedikt:any breaking in. Somebody's
Benedicte:breaking. I don't know what well, somebody now just walked past with a broken phone, but I don't think that was a phone breaking sound. So
Benedikt:That doesn't sound like a phone breaking. Well, maybe they were listening and decided to smash their phone. Or someone like, maybe someone maybe someone in your house would got angry with their phone and threw it out a window. That might match.
Benedicte:That might match, but, like, there's no windows. They could have thrown it out. So I think somebody on this but it sounded like, you know, like a car, The glass that's in front of the lights Right. Like, something something like that. Who knows?
Benedicte:That's what I get for not closing the window. I also thought it was like it was felt like it was, like, right where I'm sitting. I was like, where what did I do? But it wasn't me. It wasn't me.
Benedikt:Good. Good.
Benedicte:I promised. I plead the shaggy defense.
Benedikt:Yeah. So I don't know. As I said, I don't know what it is, but it feels like why don't these issues always come up in my vacation? And it might be like That these issues come up all the time, but they don't annoy me as much when I'm on, like, when I'm not on vacation.
Benedicte:Yeah. I was just gonna say that you fix things on a regular basis, probably.
Benedikt:Yeah. But it feels like the major stuff always happens on vacation.
Benedicte:Well, you know, maybe the universe just wants you to not have vacation.
Benedikt:Yeah. Screw the universe.
Benedicte:Screw the universe. You took a vacation anyway. Good on you. See? Yeah.
Benedicte:Very good that you took the vacation anyhow. Yes. It was. Yeah. I have not had vacation.
Benedikt:You did not have vacation. What did you do? I did. I mean, I know you record an episode with Jeff, and, I enjoyed it
Benedicte:quite a bit. Somebody tweeted me that they they want an update in a couple of months. So whenever you take another vacation, I can have Jeff on to talk about how that is going. No. Sorry.
Benedicte:On the outside side, I am working on integration guides and integration code. So I think I talked about WeWeeb and I've said our last time we spoke, and I'm done with kind of the integration or not the guide there. And then they now wanna create a native integration, so we're gonna work a little bit with them. And then that's also interesting because you've been talking about, like, you know, Zapier and and stuff like that. We have a Zapier integration as well, I think.
Benedicte:But, you know, everyone does things a little bit differently. So, you know, you have to really understand The the other system kind of not just on a surface level, like, a little bit deeper to understand, like, how can this integration happen? But then you don't wanna spend too much time, like, becoming an expert in all of these other tools because there's so many other tools. But I think I did a good job with the Weebly webinar set integration. I think it's a good stepping stone for them to create a native integration because then we've kinda showed how How this can be a good integration.
Benedicte:And then now I'm working with Framer and etcetera. And Framer is basically React components that you Configure visually. And that's a little bit of and we want to be able to just drag on some login and sign up buttons. And then adding a script in a React component does not, you know, add it to the head, so then you get, like, flashes of I'm sad because we had this protection. Like, if you put the outset script in the head, we can kinda kick you off the whole page.
Benedicte:But if that script isn't in place until The component
Benedikt:Yeah.
Benedicte:Then is created, then we have an issue because then there will be a flash of content before you'd be able to, kick somebody off, Which is, like, basically React things that we've seen with React when we make React, applications as well. But there, we usually have more control for the head so we can, like, put things in the head. Yep. So I'm looking a little bit on how to do that. And and the the users may put Content into the head, but we, as a code component, I think they call it, the code component cannot put things into the head.
Benedicte:So it's like, The integration feels wonk where it's like, oh, drag this onto your beautiful screen, but then also copy paste this code into your head because we can't do that for you, Then we're basically just making boxes or, like, buttons, which they could have made with the regular UI. So I'm trying to figure out A way where this makes sense because we wanna be there in their integration, you know, marketplace. We want our logo there. So we need something. Even though I would say the better way of doing it would be with something called code overrides, but you can't distribute code overrides so then we don't get into the integration.
Benedicte:Right.
Benedikt:Can you can you maybe, like, do it the the The bad way and do it in the rec component and have a way to detect if the script is in the head. And if it isn't, then you do the stuff. Then you can maybe mention in your documentation, hey. If you wanna get rid of that flash, do like, copy this to this other place and then it's it's fine. Like, basically, make the component work sort of, but, like, not ideal and then just tell them what to do to make it work properly.
Benedicte:Yeah. So there's it's something like that that we that we are working on. And I think you are allowed to add little, like, Post it components or something when you add a code component that is, like, documentation that comes into the page with the visual code component that you're dragging on.
Benedikt:Mhmm.
Benedicte:So you can actually get that documentation, Like, as they like, very much in their face
Benedikt:Right.
Benedicte:Hopefully. So that's all that I'm I'm looking into now. But I managed to make it so that you can choose if you want a sign up button, a profile button, or a login button, and then you can override the label and then, you know, other things. But then there's also the issue if they drag on, like, 5 code components and configure them all differently, we have an issue. Because, like, if you, You know, if you configure them to different outside of instances, all of them.
Benedicte:Like, some it might work, but, like, there's some edge cases there that That is not great. So anyway. But that but it's it's fun, but it's also like, especially with Framer, which is so visual and Very much made for designers. I feel a little bit or it's like in that sweet spot between the signer and coders, I guess, but it's like a different mental model that, Yeah. You really need to kinda I need to get into that that model to, like, understand what we can do and how we can do it well.
Benedicte:So that's why I got so focused today because I finally, like, understood some key pieces of Framer. And, hopefully, that will make Make it possible to make this, code component, which is their way of integrating. But I really want them to have plug ins, Like, where you could, like, bundle a code component with some script in the head and some code overrides and, like, bundle it all together, and And you could, like, mix and match these different ways of having code, but they don't offer that yet. So
Benedikt:Well, maybe eventually.
Benedicte:Maybe eventually. I hope so. Like, sometimes I'm like, WordPress is pretty good. It you know, their the the plug in system, like, really, really worked even though people could make really, really Bad plug ins, of course. You can always make bad plug ins, but
Benedikt:Yeah.
Benedicte:It, it let you kinda do anything. So yeah. And then also on this side of work, I just had a little note here where I'm just noticing that, AI helping people to code and create stuff is is not super when you're on the support side because people get very, very far, and they have No idea what they're doing.
Benedikt:Yeah.
Benedicte:And when they send in support requests, and they've kinda created whole apps. I assume they they know how to code, But
Benedikt:they don't.
Benedicte:Created, like, a but they don't. Like, they created a whole Python app. And I don't know Python, but I know, you know, general codings. So I'm like, Well, you'll need to do x, y, and z and, like, add this type of code or check if, the user is authenticated before you allow them onto the page and stuff like that, like, in your code. And they're like, but exactly what code?
Benedicte:And I'm like, oh, okay. Yeah. I don't really know because I haven't written Python in 15 years. But, and then it so you realize after a couple of back and forth that, You know, that they've they have code in an app that they are distributing, or deploying in some way, but, like, They have very little knowledge about how the web works or, like, how things work around. And that's that's fine.
Benedicte:Like, we have a lot of no code customers, But then you kinda go into it, you know, knowing that they're not coders. But when somebody has deployed the Python app, like, in my head, I'm like, oh, you're a coder. And then my My answer is very different than if I Right. If you were a Webflow user, for instance. So I have to kind of make some checks with people before answering,
Benedikt:to kinda Maybe we need a new category like coder, no coder, and AI coder. Well, at some point, you don't reply with code and, like, suggestion code, but with a prompt.
Benedicte:Please
Benedikt:use your AI tool to, do this and that, and, then hopefully, it will do the right thing.
Benedicte:Not a bad idea because I could like, if I can Phrase it so that they can ask, how do I gate, Or, like, how do I make sure only authenticated users will have access to this Python page and framework x Based on a signed token from.
Benedikt:Mhmm.
Benedicte:Like, maybe you can get some good code out of that. Maybe. Yeah. Bad point, Benedikt. Not a bad point.
Benedicte:Like, I could, like, pseudo I pseudo code, and then I tell them to put it into their AI prompts.
Benedikt:Could could work, but Also could, like, do something totally wrong as usual with the 8 AI tools.
Benedicte:I mean, they're basically already doing a bunch of wrong things. As long as it looks like as long as it, is perceived as doing the right thing, I think they'll be happy. Yeah. That's also yep. I know that you also done a lot of support, and it is interesting, like, how, involved you should get in people's solutions.
Benedikt:Yeah. Yeah. That's a little bit of a challenge sometimes. Yeah.
Benedicte:Where it's like, I hear what you're asking, but you shouldn't under no Circumstances do that, but it is possible. But I don't wanna tell you how to do it because you should not do that.
Benedikt:Yeah. We had the customer, like, for our API to send data into, we have, like, a secret token that you have to, send with your request. And we had one of our customers, Like like, for 1, they are not a SaaS, at least on a traditional sense, but a, an Ios and, Mac application, I believe. So they they were also miss already misusing the system, sort of. And then at some point, they Pointed out that they are embedding that secret token in all the apps that they deploy and, like, roll out and send to customers.
Benedikt:And I was like, sure that works, but that's not a good idea. Because With the token, people can do everything on the API. They can change data, remove data, all of it. And I eventually when they realized that, they agreed that it wasn't a good idea. But, yeah, Sometimes, it's not as obvious, I guess.
Benedicte:No. But I know that this this whole, like, authentication Peace is really hard. It's and I remember being very confused by it. And, like, why can't I just, like, send in a comment, like, And
Benedikt:Yeah.
Benedicte:You know, and say it's from this user from from just any JavaScript on your front end. It's like, well, this is not a secure environment and all of that. And then and I think it's very, it is it's just it's one of those things. It's It's a hard concept. And as you and when you grasp it, it's it's quite e like, it's quite easy in a way or, like, when you grasp it, it sets.
Benedicte:Like, it's not something you forget. Like, you kind of the when the and when it clicks, it clicks. Right? But it takes a while for it to click, and I think you'll have to to experiment and, like, do Maybe multiple apps or multiple demos or multiple, like, things to make it click.
Benedikt:Yeah.
Benedicte:And not everybody has that possibility because often you only do odd ones. And then if there's there's no seniors around, then it's it might you know, you just solve it, and it seems to work, And you don't spot the the issues with it. Yeah. So and it's the same thing with these Zapier integrations because, I guess with your Sepio integration too, you'll add I mean, you add some kind of authentication or, like, secret in there. And then, Like, depending on how they hook that sap up.
Benedikt:Yeah.
Benedicte:You know? The secret is safe on Zapier, but The trigger triggering that action on Zapier can come from unsecure sources.
Benedikt:Yeah. Or you like, even if it's not unsecure, You could just, like, as well, just mess it up. Like, this happened to us. Like, she as as a company once with one of our sepia, setups where I think, like, it was our live, live streaming platform, like, Webinar platform that sends a webhook when when the thing is finished and, like, sends over the attendees. And there's 2 ways of sending the data.
Benedikt:1 is, Like individually and one with everything in 1, like in 1 batch. And I think at some point, Jane set it up to Send everything over, but accidentally chose everything in 1 batch. So at some point we send an email With all the recipients, in the two field,
Benedicte:which
Benedikt:is not a thing you should do. And I I wasn't even aware that our implementation of sending emails allowed that, like, on user list side. So we fixed That part and then also fixed the the the sap, obviously. But, yeah, things, Yeah. The the ways you can screw up without knowing ahead of time.
Benedicte:Yes. Exactly. And especially when you just add all these, like, services together, and you're like, it works. And if you don't have that experience, it's hard to, like, But how can this be misused? Or Yeah.
Benedicte:Like, what, like, what are some edge cases? Or, like, how is how is this secure? Like, it might not be things that you're asking yourself. And, also, for some customers, it's like it's not really you know, sometimes it's not that it's more important that it gets done, and then if somebody is misuses it, it's not a crisis. But sending emails, for instance, like, those things are like, you don't wanna be able to let some malicious actors send, like, a1000000, emails on a customer's behalf or, but, like, updating their preference for swag size.
Benedicte:I mean, it's like
Benedikt:Yeah. There's different levels of, to be honest in those issues.
Benedicte:So if you want, like, I have a Form that just, like, upstate the swag size preference, then who cares if it's, like, secure or SAP coming in? But But if it ends up triggering an email, like, yeah. That's something you wanna make. Yeah. You wanna make sure.
Benedicte:So I'm thinking a lot about that because I really I wanna make, like, a no Code authentication for no coders or something like that. Like, really explaining Simply, hopefully, or not simply necessarily, but, like, visually and entertainingly, kind of goes through some of these Concept so that when you copy a secret key into your SAP, you kind of Understand that, okay, now it's my responsibility that everything that comes into, like, this action also has the Authority to do the things it's trying to do and stuff like that. Yeah. That's further down the field. Yeah.
Benedicte:It would be a lot of fun to make, but, like, You know, sponsor me, and I'll make sure. But yeah. And then I'm also, like, grappling with the whole Gatsby is dead. Jamstack is dead. Like, everybody's mad these days about not mad, but, like, everybody's like, it's all bad.
Benedicte:And it's not, you know, it's it's, and it's not really dead, but you know how Twitter is. So I'm like I'm like Yeah. Do I wanna do I wanna still deal with these things? I don't have any answers yet. Waiting to see what happens with Gatsby.
Benedicte:Netlify is still saying they're gonna support it, and they still have a lot of enterprise users on it. So if they keep on supporting it for their enterprise users, that's kind of good. There would still be, like, interest in content and help and all of that around Gatsby. But if they're just faking it, then
Benedikt:That's a problem.
Benedicte:That's a problem. And then the and then the interesting thing about the whole Jamstack disc discussion is that what they did is that they closed their Discord. They closed the Jamstack Discord. And, like, Jamstack, the word was a marketing term from Netlify years ago, And the Discord is fairly new, so it's more so that they're, like, closing a free Discord that had, don't know. Like, who was supposed to handle that Discord from them?
Benedicte:Like, it's I don't know. It it feels like they're, yeah, they're closing down a forum, that I guess they did as a marketing attempt, but all that most of the conversation I saw there were, like, people learning to code, Which is, you know, a valid thing to support people learning to code, but maybe not in the Discord, run by a company that want enterprise customers. That that it's gotten, like, a whole story. And then I am seeing now, like, people are loving on, like, PHP and MySQL again. Like, Coming full circle.
Benedikt:Yeah. I mean, I've been in this, like, industry long enough that I I always think about this as a pendulum. Yeah. Like, it's basically just like moving from one thing to the other thing, back to the one thing, back to the other thing. Like, It's always in motion.
Benedikt:And, in the end, it doesn't matter. Like, it doesn't matter what side you're on. I think the most important thing is that you don't Try to follow the pendulum and just, like, switch around all the time. Just pick what you think is the right approach at this very moment and then Stick with it because, yes, it will not be the hot thing, for a while, but it will like, The pendulum will swing back, and suddenly it's a hot thing again. So
Benedicte:And I feel like JavaScript isn't going anywhere. So That's, I I think I'm gonna stick with JavaScript even though it would be fun to do PHP again. But I also feel the kinda whole There was a I in my latest newsletter, I shared a video, and now I don't remember his name, but we'll put it in the show notes where it's like, is Jamstack dead or Is it? And then he goes through, like, the architecture and really nicely explains, like, what was it trying to solve and, like, what was the premise in the beginning. And I feel like the last, Like, year end where both Next and Gatsby has been, like, fighting over who can do server side rendering and then deferred rendering.
Benedicte:And they call it all these different things where they're moving things back to rendering on the server. I'm like, this is confusing. Like, you were not this was not what you were supposed to do. You were supposed to generate HTML files and put it on this, you know, CDN somewhere, and that's it. And then they started trying to cater to the people who actually wanted something else, and it just became very confusing.
Benedicte:Yeah. And I see now with Next that I haven't worked with that much, but were you and I talked about that this before where You have the server code and the client code on the same page. And I'll tell you back to our auth conversation. That is that is not easy. Yeah.
Benedicte:You know? That like, this code is running on the server. So here, I can have my secret, but this code is running on client and it's in the same file, it's it's super confusing. And I think it's gonna be very, yeah. Think we're in a it's gonna be muddled for a long time, where, like, you know, if you've been in the industry really long and you have, like, very Good grasp of kind of what we're trying to do with server side rendering inside of the kind of the Jamstack paradigm paradigm.
Benedicte:I think you're fine, but, like, if this is how you're learning to create applications, I think it's gonna be it's super confusing.
Benedikt:Yeah. Yeah. I agree.
Benedicte:I don't know what to do with it, but it's it's
Benedikt:Don't, like, don't worry. It's just a phase where the pendulum is in the middle again. It was saw that isn't always working. Like, we need something more dynamic, and it was back again. And that's Yep.
Benedikt:Yeah.
Benedicte:No. It's not that, like, if you're gonna make a application such as userless. But doing kinda more DevRel type services now where we're, like, helping people make demos and stuff, People don't wanna make demos for the languages nobody are talking about anymore even though I think, though, they should because people are probably searching for it. Like, if your company has this, like, large Ruby thing going. They're not gonna suddenly, you know, use your tool with Next.
Benedicte:Like, that's that's not gonna happen. They're gonna use it in their tool, same as PHP, same with everything. But on the other hand, like, the numbers are much higher on videos and content that uses kind of these, like, latest buzzwords. So I kinda have to, like, figure out which ones I wanna at least, like, touch on because we see the same thing for, you know, etcetera as well. Like, people wanna use it with and then framework, And I need to kinda, like, look into them.
Benedicte:And I've been not looking into Next because I just despise Vercel's marketing and brand, and I'm Trying to been trying to stay away, but, oh, boy. I might have to
Benedikt:Yeah. I might I mean
Benedicte:I might have to go look at it.
Benedikt:He he used React in the past, and that's by Facebook. So
Benedicte:Well, that's true. That's true. And Netlify just Fired all of their DevRels, so I shouldn't like them anymore either. So maybe I should just not like any way of them, but learn all
Benedikt:What you should do is start your own framework, Obviously.
Benedicte:Obviously, I should create my own JavaScript Jamstack Framework. That's obviously what I should do. Yes. Definitely gonna do that. But on that note, I'm just gonna close it out because this is my newest idea because that's what I think is fun.
Benedicte:And I wanna make mixpod where you can take episodes from different podcasts and create a new feed like a mix tape, but mixpod.
Benedikt:Oh, interesting.
Benedicte:So if your company, a developer tool company, You know, we'd like to see that be made and sponsor me and the pirate family in making it. We would love to talk to you.
Benedikt:You should maybe reach out to Transistor. This sounds like that might be interesting for them. May maybe maybe not. I don't know. Who knows?
Benedicte:It could be, like, it could be for them. It could be one of those kind of side projects where it's like a marketing it's Marketing for their main product
Benedikt:Right. Yeah.
Benedicte:Could be. Yeah. But what would be even better is, like, get tech companies to sponsor me to build it And then sell it to to his sister.
Benedikt:Oh, smart.
Benedicte:That would be my dream come true, but we'll see. But I think it's wouldn't it be fun though? Mean, it didn't like, you can make, like, a podcast feed for your friend with, like, specific episodes on a topic, or you could make one for yourself or, like, oh, these are The episodes I've guest, been a guest on or I've appeared on or these are my favorites or, you know, like you did with a mixtape where you just, like, Copied or you recorded from the radio usually into a cassette, and then you gave it to a friend.
Benedikt:Yeah. But there
Benedicte:was a lot of, like, labor and love behind that creation.
Benedikt:It was. Yeah. Yeah. Sounds sounds interesting. I don't I don't wanna I don't wanna think about, like, copyright and and stuff like that, but Let's assume that's not a problem.
Benedikt:Sounds like a good idea.
Benedicte:I don't think it is as long as you point back to the original source because a regular podcast feed is just the RSS feed. So if you grab whatever is on for that episode and you use that in a new RSS feed, I am thinking it shouldn't be a problem as long as you don't change or remove any of the information that that comes with that With that, like, episode?
Benedikt:Maybe. I don't I don't know. Because in a way, you're, like, Repurposing the content and it show like, I'm assuming it shows up as a new podcast feed and
Benedicte:Yes. Would be a
Benedikt:US space. So Yeah. It's like yeah. Gray is sharing.
Benedicte:But that's but see, this is why this is why we're not getting paid users.
Benedikt:Right.
Benedicte:Because then you can do much more fun stuff. Anyhow, that's my latest idea. I just have to always have an idea going. But I mean, very good. I have not on it, but I have block the domain.
Benedicte:So Nice. You cannot steal
Benedikt:the That's always the first step. Like, why is it a main?
Benedicte:Always the first step. Always the Yeah. This got to be a long episode.
Benedikt:Yes. I'll see you in today, I guess. Yes. It was nice catching up, friends. See you soon.
Benedicte:Around the duabs.