Burn it all to the ground
Hey, folks. So many of you responded to Clubhouse sponsoring this podcast that they sponsored another month. So it's it's official folks. We we are all using it now. And if you're not using it now, that means, yeah, you should.
Justin:You should try it out. Clubhouse.io/build. It is project management software for software developers. That's a delight to use. Check it out.
Justin:Get 2 months free clubhouse.io/build.
Jon:Hey, everyone. Welcome to build your SaaS. This is the behind the scenes story of building a web app in 2019. I'm John Buddha, a software engineer. And
Justin:I'm Justin Jackson. So, John, we are home from Portland.
Jon:We are home from Portland. How long ago is that?
Justin:How long ago was that?
Jon:What what day is it?
Justin:Today is May 6th.
Jon:May well, it's Monday. Yeah. It's been about a week or so. Man. It feels how does it what what does it feel like for you?
Justin:I feel I don't know. It feels like it wasn't that long ago. If you had asked me, I would've been like, maybe, like Okay. 3 or 4 days ago.
Jon:Okay. For me, it feels like it was about, like, a month ago. It must be the week I'm having.
Justin:Oh, man. So you've had a month's worth of stuff in
Jon:it just feels like it.
Justin:Yeah.
Jon:It's not it's not a great feeling.
Justin:Yeah. See, I got Maybe not
Jon:may I don't know. It's I don't know how long it feels. Maybe not a month, but, like, it I don't know. The you get back to the normal day to day, and you're, like, the energy gets sucked out of it sort of Mhmm. Mhmm.
Jon:I mean In a way that makes it feel really long.
Justin:Yeah. I think you had a hard time because you had take some other time off, and then you had this, and then it's just, like, you're coming back.
Jon:Yeah. There were some other things that kinda happened, at the normal job that sort of threw a wrench into things a little bit. So, yeah, it's been yeah.
Justin:It's been a time.
Jon:It's been a time. It's been a time. I think it's been a time.
Justin:You know, this is the it's a little bit unfair for me to talk at this point because right now things are just kinda okay. Meaning, I'm not like suffering right now. I think if I had no money, I would be in a lot grumpier. But Yeah. Right now, you know, I I have enough money to pay my bills, and there is something about that life that is very nice.
Justin:And actually, I think this is something that came up again. People were were we were talking about growth, like, how big of a company do you wanna grow?
Jon:Right.
Justin:And when people ask me that question, I'm always like, I don't know. Like, if if it could just be John and I, the rest of our lives, I'd be okay with that. And because it feels like if you grow, there's just complexity. All of a sudden, you need meetings. All of a sudden, you know, you have to hire people.
Justin:And and I'm not necessarily opposed to all that, but this life I have right now is pretty good.
Jon:Yeah. Yeah. I mean, it's it's definitely worth, considering and think about. Like, you don't necessarily yeah. It's you don't want it to change.
Jon:I mean, it's we obviously wanted to grow more. Mhmm. The question is how much?
Justin:Yeah. Obviously, in the beginning, everybody is everyone has this kind of picture of how they want it to be, and it is rarely that way.
Jon:Right.
Justin:But there is something about when you tip that scale, like, there's this this time where it happens where you, you know, you tip the scale and all of a sudden you have to grow your team. You have to grow the levels of management. You have to grow your processes. You have to grow, like, everything. And managing all that complexity is just it's just exhausting to me.
Jon:Yeah. Yeah. I think it can be. I think I think it may not be if you find the right people.
Justin:Yeah.
Jon:But yeah. I I I understand. Yeah. I see where you're coming from. I think it definitely could be.
Justin:And some of this is, my friend Paul Jarvis rubbing off on me. He's he's a bit he's the author of a book called Company of 1. And he has, you know, a lot to say. He basically is a a solo person company. And he he just says, well, this life works really well for me.
Justin:And so the idea of growing for growth, just for growth sake, is not appealing to him. And I think we would agree with that too. Like, the idea of just growing just to grow is not necessarily very exciting to us.
Jon:No. And I think, you know, we talked about it a little bit in Portland. But I think it's important to sort of keep in the back of your mind, like, what we're doing this for Mhmm. Why we're doing it. I don't think I don't think either of us are necessarily doing it for money.
Jon:Mhmm. Like, per se. Like, we're not doing it to get rich.
Justin:Yeah. Like, people like, we wanna get paid.
Jon:It's a thing we enjoy doing, and and we want people to use it and get some benefit out of it. Mhmm. And along the way, help us to, you know, pay our bills and be able to live our lives, but we're not grow this thing huge and go IPO or sell it to someone. Yeah.
Justin:Yeah. Now here's an interesting question. So I I texted my wife the other day, we just got a really big customer that is a really well known YouTuber.
Jon:He
Justin:has about 14,000,000 subscribers on his YouTube channel. And her and then I'm meeting on Wednesday with a big media exec from Okay.
Jon:One of
Justin:the world's biggest companies. And so, you know, I told her both of these things back to back. And she's just like, immediately, she's like, oh my god. You're gonna get like, the someone's gonna come and buy you. Right?
Justin:Like, that's her thought. And there's all the Spotify. It seems like every week, Spotify is announcing.
Jon:I suppose it's certainly that's still a possibility.
Justin:No. But here's the question. Because she's like so she said, so if someone offered you and John $5,000,000, like, 2a half each, would you take it? And I said, well and she's like, you wouldn't take 2 and a half $1,000,000? And I thought, well, I don't know.
Justin:Like, it depends on what came along with that. You know? Do I have to go work for somebody?
Jon:Right. Half of that's going to the government. You might have to go work for the people.
Justin:Yeah. And
Jon:So at the end of the day
Justin:Yeah. So what so okay. So that's the question. 2a half 1000000, what would you say? It's 2 or would you be like, yes for sure?
Justin:What what would your reaction be?
Jon:That's so hard. I don't know. I'd probably lean towards yes, but it wouldn't be an immediate yes.
Justin:Okay. Like, you'd probably take the money.
Jon:Probably.
Justin:I mean, this is what I said to her.
Jon:Oh, no. I don't yeah. I don't that's so hard.
Justin:Because I've
Jon:never I've never been in that position. I don't know. I mean, I've never done it to I've never built something and do that.
Justin:Yeah. It's hard. Isn't it?
Jon:I Yeah. So what is I don't yeah. I don't know. What did you say?
Justin:I reacted the same way. I said, in some ways, it's an unfair question because I've never been in that position before. And if someone offered like, that 2 and a half $1,000,000 for me is more than I've ever had in my bank account.
Jon:Right.
Justin:And, you know, in Canada Canada, what would my what would I get taxed on that? I'd like The
Jon:US is probably, like, 40%. It's a lot.
Justin:Oh, yeah. No. I think I think I would only I mean, that's a good question. But I think I would only get taxed 15% on that if I paid it out in Okay. Dividends.
Justin:So, you know, I'd lose 375,000. So still, you know, over $2,000,000. I've just never had that kind of money before.
Jon:Right.
Justin:And so I it's it is hard to think about it. But she's she was surprised by how slow I was to go, I don't know.
Jon:The thing I think about is, like, okay. So you get the money, and then what do you do?
Justin:Yes. Turn around,
Jon:and you would try to build something else. And if you like the thing you're building and you don't have any other ideas, then what like, what?
Justin:Oh, and this is what I said to her too, and she and she was surprised by this. I said, I actually think the ideal situation to be in is to be constantly working on something you love, and constantly making progress on something you love, but never getting to the end. And she was like, what? She said, that sounds terrible. I'm like, but that's life.
Justin:Like, when you when you have something that you love to work on and you're making it better every single day, And there's people who are using it. They get lots of value out of it.
Jon:Yeah. And you
Justin:get to wake up and do that every single day.
Jon:That's true. But there's also days where it's terrible and frustrating. Like, we can talk about it later.
Justin:That's a good set. That's a good segue.
Jon:It makes me think otherwise. So, like, yeah. That's that's a big difference. You know, I think, like, building software and let's say, another thing I enjoy doing, which is, like, baking bread. It's like you do the thing, and the bread is done, and then you eat it.
Jon:And that's it.
Justin:Yeah. But you're always gonna bake another loaf of bread.
Jon:That's true. And you're gonna try to work on you're trying to gonna try to, like, make better bread or whatever. But
Justin:Yeah. And and if you're and if you're making sourdough, that culture lives forever.
Jon:It's true. You don't wanna kill it.
Justin:So I don't know. I think I think I think making sourdough and making software is the same. I don't I don't think that metaphor works.
Jon:There was a book about that actually. No. Well, sort of. I think it was called sourdough.
Justin:Sourdough and the art of software maintenance?
Jon:It was a weird I we can we'll add it to the show notes. I think it was called sourdough. I read it. It wasn't great, but it was fun, and it was like this this girl that lived in San Francisco that started making sourdough, but, like, the sourdough culture, like, sort of came alive. And it was, like, sentient in some way.
Jon:It was pretty fun.
Justin:Okay. I gotta read this.
Jon:It was fun.
Justin:I would have never thought that there was, like, a sourdough, fiction.
Jon:But I feel like I think she was a software developer. I think I feel like there was some overlap with, like, making sourdough bread and being a software developer. I don't know.
Justin:So General Desk Dexterity, a robotics company in San Francisco burns out its bright young employee.
Jon:Yes.
Justin:And then okay. Yeah. I'll put this at sourdough, a novel. I'll put this in. I'll put this in the show.
Jon:I would say it was great, but it was fun.
Justin:Oh, this is awesome. So you you alluded to the fact you're not having the best week with Transistor.
Gavin:Well
Justin:Maybe tell us what's going on.
Jon:So one of the things we talked about, and I I had started in Portland was I forgot what kicked us off. I think it was the whole this thing with Luminary, which is this new podcast app that everyone's sort of, like
Justin:Angry about?
Jon:There's a lot of negative energy and feedback on it, which I, you know, I kind of agree with. Mhmm. They they had a a really bad launch week.
Justin:Yeah.
Jon:Anyway, there was looking into that, there were some stuff that happened with, like, how they ingest podcasts that they don't that they're not the creators of and how they sort of that feeds back to other platforms like analytics. They were sort of, like, hiding a bunch of information from these other platforms. And in that, we did some research into our analytics, and I sort of noticed a number of things. I think we had a customer that was like, why why is my, like, chart that says, like, other as the app that's being used to download it, why is it so big?
Justin:Yeah.
Jon:And it turns out we had, in our analytics logic, we're missing some, we're missing, like, removal of a bunch of bots and things that were, like, not legitimate downloads.
Justin:Yeah. So we needed to clean that stuff up. Right? Like, because people have listener stats, and we're doing the best we can to make those, as accurate as we can. Right.
Jon:And, really, the only information we have to go on is the IP address of the person at the time they download it and what what what they call the user agent string of the application or web browser that that is download that's download the application that's downloading the, at the m p 3, which is like you know, it's like Chrome version whatever on macOS or let's say, like, overcast on iOS or something like that. That's the use like, it basically identifies what's downloading it.
Justin:Yeah. And if you've ever worked in the email service provider industry, you know what it's like to have to constantly figure out where are these user agents coming from? Like, here's a new one. Someone starts a new email, a new email client, like superhuman or something. And they've got their own user agent, header.
Justin:Right? Yeah. And so then you have to somehow figure out who are these folks? And is there like there might be superhuman Android, superhuman iOS. Like, it can get messed.
Jon:Or there's, like or there's, like, superhuman indexer, which is, like, a bot that just runs the background index and stuff. Mhmm. It isn't an actual download.
Justin:Yeah.
Jon:So this list of stuff is always being updated. There's always new apps. We actually discovered a new one, which I maybe we can talk about and link to later, which is interesting. Mhmm. The, bullhorn.
Justin:Yeah. Yeah. Yeah. Yeah.
Jon:So so in this whole thing, you know, we found out that, like, our analytics were not as accurate as we wanted. And I wrote a bunch of code to, like, go through and sort of remove downloads that were basically they weren't really real. Mhmm. They weren't, like probably were not a person listening to this stuff.
Justin:Yeah.
Jon:And in that, so we have to, like there's a lot of just a lot of work to regenerate, and kinda, like, reindex all this stuff. Mhmm. And it takes a lot of time. And
Justin:Why does it take why does it take so much time? What what's involved in it?
Jon:So we have a table that, in our database, we use Postgres that tracks basically each download, each individual download that is legitimate Mhmm. Or we deem as legitimate. So we don't record ones that are, you know, a a bot or some other, like, obviously, unidentifiable source.
Justin:Yeah.
Jon:That that table is grow it grows every day. Right now, it's, like, 13,000,000 rows
Justin:Okay.
Jon:Rows all the time, which is which is big, but it's not massive Okay. Compared to other there's people that work with, like, much, much bigger datasets.
Justin:What's the biggest table you've ever seen?
Jon:This is up there. I mean, I generally haven't worked at companies that have, like, massive massive datasets like this. Mhmm. It's just that that was it's so frequent. The the rows of data are small.
Justin:Yeah.
Jon:But there's a lot of them. But with these database, like Postgres, which is our relational database, you have to you have to, like, add index indices and indexes to to to data so it can be looked up easier and, like, referenced quicker. Yeah. And I think there's just some intricacies with Postgres that I'm not entirely familiar with to speed up some of this stuff. So I think I'm missing it's probably a small change.
Justin:Like and what's the problem? Like, these things just take a long time to run? Or Well,
Jon:it's like yeah. It takes a lot of time to loop to loop through these datasets with different types of criteria. So you're basically saying, like, show me all the downloads for this episode or this show or, all the downloads between this date and this date. The database itself, you give it, you know, any other episode ID or a show ID or a range of dates to to look up, and it has to know how to find those rows of data and then add everything together. So it's either either there's an index in place that makes that faster, or it's like scanning every row, which takes forever.
Jon:In the meantime, there's other things happening in the app that's looking up data or or, like, inserting data into the database. Gotcha. And all these things sort of, like, they can, like, kinda pile up, I guess.
Justin:Yeah. And and there's some sort of queue or something?
Jon:There's a queue. Yeah. And along with that so we're basically looping through the downloads, like, re identifying them as a particular, like, application or removing it entirely if it's if it's something that we don't wanna keep, like a bot. Yeah. And then deleting the ones that we don't want.
Jon:And then on top of that, I have, you know, this other dataset that's basically, like, downloads per day per episode.
Justin:Okay.
Jon:That's sort of, like, a combine all of the downloads into, like, a smaller dataset that we can, like, add up and loop through quicker. But in looping through all of the normal downloads, like, in order to group those back together, you're basically, like, deleting more rows and adding inserting more rows. It's a lot of it's a lot it's like a lot of things at once. So a a friend of mine I I I asked some questions out, to, like, a friend of a friend who who knows a lot about databases. It's not necessarily my expertise, but, like, there's a bunch of different ways to go about.
Jon:There's, like, special databases just for, like, time series data Mhmm. That can do this stuff faster. I did update things a bit to, like, cache a lot of analytics, behind the scenes. So, like, kinda like preloading data for people.
Justin:Yeah. So what what questions did you ask the friend of a friend? Like, what are you
Jon:Well, it's like you can there there's ways to to have a database query. And then in Postgres itself, you can sort of run these queries that explain how the system itself is looking up the data. And if it's using an index that you wrote and how slow it's gonna be, and then people that are really good at this stuff can look at that explanation of what's going on and be like, oh, you're missing this thing, or you're I would do it this way. Like, change change around your database query, and, like, this will it'll operate differently and be, you know, put a 100 times faster or something.
Justin:Yeah. Yeah.
Jon:It's like, that's the crazy thing about this stuff is that when you're using something like Rails or probably Django or these other, web frameworks, they sort of obscure the actual database queries. And, like, you don't really learn the nitty gritty of how how these things operate. So, like, really small changes to how you query your data can make you can, like, you know, change things, like, a hundredfold.
Justin:Yeah. It can mess stuff up.
Jon:Yeah. Or or improve it.
Justin:Yes. Yes. Yeah. So the answer is we need to to, to shard the database.
Jon:Possibly. Yes. We
Justin:need Yeah.
Jon:It could be.
Justin:That's like a that's a typical business move. I I just I just threw in something I'd heard at one point. And
Jon:Yeah.
Justin:So the solution, why don't hey. Why don't you just trash hard on the database, John? That's a new character. That's that's management Bill.
Jon:Management Bill? Where is where is he from? Texas? He's from
Justin:he's, yeah, somewhere somewhere in the south.
Jon:Okay. So on the bright side, analytics will be much more accurate.
Justin:Yeah. And we might improve our database knowledge.
Jon:It's true. Yeah. You learn you learn some things along the way. I don't think it's necessarily, like it's not affecting the day to day on the site Yeah. Right now.
Jon:It's just more mostly frustrating for me. Yeah.
Justin:And and we're still collecting the right data. It's just that, Yeah. Yeah.
Jon:Yeah. We're not losing any data. It's all being collected. We're just kind of rearranging it.
Justin:Yeah.
Jon:Grouping things together in different ways.
Justin:Well, you know who doesn't have to worry about databases? Balsamic. Well, I actually, they probably have to worry about it now. But the original version of Balsamiq desktop app, you know, built in Adobe Air or something. Wow.
Justin:That's the dream. But, once again, they've sponsored this month of our show. But instead of doing an ad today, they want me to share some advice that might be useful. And actually, John, I think you might be interested in this. So it's something that Balsamiq's founder, my friend Peli, did when he first started.
Justin:And it's kind of a Jedi mind trick when you're thinking about whether you should quit your job and, like, go full time on a project. I know a lot of devs that are in this is this is a very common place to be. So he was in this position, and he was terrified. You know, he knows that 9 out of 10 startups fail. And he was pretty much convinced that if he made that jump to just focusing on Balsamiq, he'd be making a huge mistake.
Justin:But he still wanted to. So this is the Jedi mind trick. He reframed his definition of success. Instead of wanting to make a certain amount of money, he said, my goal is to spend a year or 2, if I can, learning as much as possible about what it's like to start a software company. Whether the company succeeds or not financially, I will have learned what to do and what not to do.
Justin:And this way, I can't lose. That was kind of a sign. And so it was reframing the goal in this way. That's what gave him the courage to acquit I think he was working for Adobe at the time. And so he was just like, okay, I'm gonna do this.
Justin:And then he felt like he could take on each new challenge as a learning opportunity. Not to like, as something to fear, but something to welcome. And this is actually, you know, stoic philosophy is really big right now. This is what the stoic philosophers call reframing the problem. It's like an ancient mind hack.
Justin:So folks out there, you can try it and tell Paldee if it if it worked for you. You can actually find him at balsamic.com/givingback/office hours. That's balsamic with a q. Or you can reach out to them on Twitter at balsamic. You know, tell them if this was helpful.
Justin:And I could see how it'd be helpful. I think, one one thing for for me though is that I'm like, this is like my hail Mary. This is like this is like my rocky moment. You know? I'm I'm old and haggard.
Justin:This is like this has gotta work or it's that's it. There's I'm I'm I'm, like, in Rocky I'm I'm on Rocky 5 of my of my series, you know. There's not too many more movies after this. Or is there?
Jon:There is. Well, there's yeah. There was.
Justin:How many Rotten movies is there?
Jon:Well Oh, wow. 6 plus Creed and Creed 2.
Justin:Oh, wow. Okay.
Jon:Was Rocky Balboa, which was, like, 6 when he's, like, super old.
Justin:Oh, yeah.
Jon:And then he trains this other guy. Then he In Creed.
Justin:Yeah. Then he then he he trains the son of Apollo Creed.
Jon:Yeah. Those are good movies.
Justin:Yeah. It's true. Okay. So he actually after Rocky 5, he had he had more in him.
Jon:Yeah. There's a lot of life left.
Justin:I mean, if Sylvester Stallone can do that since 1976
Jon:He's making he's making another Rambo movie.
Justin:Oh, yeah. That's true. He had he's making another Rambo?
Jon:He's making another Rambo.
Justin:Oh my
Jon:I mean, I was I never really got into Rambo, but I anyway, your your analogy is
Justin:Yeah. Yeah. It's it breaks down. There's still hope for me. Yeah.
Justin:Anyway, thanks to Balsamiq. And, k. Yeah. Anything else you wanna say about that? About all that database stuff?
Jon:We'll figure it out. Yeah. It's, it's an interesting it's like, I wanna learn more about it, but there are, like, DBAs, database administrators that, like, that's what they that's all they do. Mhmm. And there's I think it's one of the things about, let's say, being, like, a solo developer on a project is that you have to know such a wide range of things, but not necessarily be a mate, like, great at any of them.
Jon:Mhmm. It's it's empowering, but it's, like, once you get to a certain point, it's, like, really frustrating
Justin:Yes.
Jon:To not just be like, I wanna know all there is to know about this, but, like, there's books about Postgres that are, you know, 500 pages long.
Justin:Yeah. Like yeah. At what point do we just get someone in that can do this?
Jon:Right. It's like, who do I hire or, like, ask questions to Mhmm. That just they can look at a thing and just know the answer immediately.
Justin:Yeah. Yeah.
Jon:Exactly. Rather than me spending, you know, multiple days on it, which, you know, I'll come out learning something, but I would have learned the same thing having paid someone to tell me. Mhmm. Mhmm.
Justin:Yeah. Yeah. Yeah. No. That's a good point.
Justin:I think one of our superpowers and one of the benefits of building something in public is how willing people are to help. And so and I'm not saying we're gonna rely on this exclusively. We hire people. We hire Chris Enns to edit our show. We hired Adam Clark to build our marketing website.
Justin:You know, we we are fine to pay people for their expertise. But on on the other hand, we also get tons of great advice and help, like that whole user agent, repo that we found Yeah. That came from Dave Zohrab. Zohrab?
Jon:Yeah. Who we yeah. We can we can link to it. So people can just take a look at it. Yeah.
Jon:The the people at PRX, which is the public radio exchange in the I think it's in the, yeah, it's in part of the it's in the US. It's part of, like, public radio. They have a a GitHub repository that people contribute to and just, like, add new user agents and, like, identify, you know, apps that are places that might be bots or whatever. And it's like, I didn't know it existed. It's it was hugely helpful.
Jon:Mhmm. Yeah. I had been, you know, building something along those lines, but it wasn't nearly as, like, fleshed out or whatever accurate, I guess. So having having that be public is is kind of amazing.
Justin:Yeah. And super helpful. That's, Dave from Chartable that that let us know about that. So there there is kind of, you know, some people, you know, they're just really good at a bunch of technical things. And I think one thing that's been helpful for me is to realize I'm not gonna be good at everything, number 1.
Justin:I'm not gonna be good in the same way that other people are good. Mhmm. And number 3, my way of learning, my way of making progress is going to be uniquely me because I am different. Right?
Jon:Right.
Justin:And so, like, one of the things I'm good at is if I have a question, I will reach out into my network, and I will just ask everybody I know until I get some answers. And, you know, other people might be, you know, maybe they've read the 500 page post press book, and they can just do it themselves. And that's their superpower. But I think recognizing kind of what the unique attributes and characteristics of founder of the founders are, and then working within those things.
Jon:Right? Right.
Justin:Like, it's fine for you to say, I'm never going to be an expert DBA.
Jon:Yeah. Not my, not my goal in life.
Justin:Not your goal in life. It's
Jon:it I will say it's interesting to me, And, like, there's a there's a part of me as a problem solver, I guess. It's it's kinda similar to, let's say, like, dev ops or like setting up a infrastructure to, to like run the app in production. It's really interesting, interesting to me. And like, when I start doing it, I really wanna like, I I wanna do it right, and it's frustrating that I when I can't. Mhmm.
Jon:But I also kind of, like, have to, you know, know my limits and say that, like, this is not this is not my expertise. And And at a certain point, you know, like, we're like we said before, like, we we're not gonna necessarily gonna grow the company huge, but, like, yeah, there might be a point where we hire someone to do some of that stuff.
Justin:Yep. Exactly. Yep. Cool. So yeah.
Justin:That's it. And if you folks if anyone out there is, like, super passionate about post and, Redis and all that stuff, yeah. And you just feel free to to let us know
Jon:your ideas. Other suggestions for, you know Yeah.
Justin:Yeah. Exactly.
Jon:Databases that for, like, time series data and things like that?
Justin:Yeah. Yeah. No. Reach out. We are at transistorfm on Twitter.
Justin:One thing I didn't put in show notes, but I think I should mention is we got back from Portland. One of the things we did in Portland was I kind of bemoaned the fact that our marketing website is really, really slow. And I think, actually, our marketing website has 2 problems. One is it's not exactly set up the way I would like as a writer.
Jon:Mhmm.
Justin:And I think also, you know, when we launched Transistor, we still didn't really know what it was going to be. But now I think I have a better sense of that. And, you know, I want a writing environment and a publishing environment where I can really communicate. This is who we are as a company. This is who John and I are.
Justin:This is what we believe. These are our values. These this is the way we want to show ourselves. And I just feel like the way the website set up is just not ideal for that. This and and I'm not like super excited to, like, write new stuff for it.
Justin:I have been. But it it almost feels like I've been writing content just for the sake of writing content. It's like, it's kind of like, I never want to do, quote, unquote, content marketing. Like, I just want to write really good personal stuff that's helpful. And I don't want it to feel like it's bland or generic.
Justin:Or, yeah. You know what? You kinda get what I'm saying?
Jon:Yeah. Yeah. Uh-huh.
Justin:And so, and if you look at my personal website, justinjackson.ca, it is just it is that's like my ideal everything. My buddy Jack McDade built it for me it everything looks like it came out of a photocopier. I want the whole website to feel like a zine, you know, like an old punk rock zine. I love writing and publishing on that site. And when I write words on that site, all of the kind of stuff around it, like the design and the feel, and all these things that we think shouldn't matter, but really do.
Justin:Like, when I click publish, and I know that the design and aesthetic and everything is me. It just makes me feel like writing and writing a certain way. Does any of this make sense?
Jon:It does. Yeah.
Justin:Okay. So that's the first part. And the second thing that's been bugging me is that the site is just slow. So if you use Google page speed insights or whatever, I think our mobile score is like 23. And our desktop score is like 74.
Justin:And that's after I've done all of the stuff you can do in WordPress with, like
Jon:Yeah.
Justin:Caching and all that stuff.
Jon:Yeah. That was surprising to me. Even after all the caching, like, I I think it just is sort of a it's not necessarily because of WordPress, but I think it's just sort of, like, because of some of the plugins and all, like, the JavaScript they inject and these extra files that need to load in the background and, like
Justin:Yeah. And I think in some ways, the way WordPress is set up, the it loads everything on every page. So, like, there's certain assets that really you shouldn't only need to load on certain pages, but it's loading everything every single time. Every, you know, JavaScript library, every CSS style sheet. Even if, like, we don't need that style sheet for this page.
Justin:Doesn't matter. We gotta load it. And so, that that's been frustrating too because I'm I really think that search engine optimization is gonna be big for us. Like, having our website optimized for search. And Google said that page speed scores matter a lot.
Justin:Right. Yep. So and again, we could probably go down. Like, I think it wouldn't be as big of an issue. But on your side, you just don't really like working with WordPress.
Justin:You just,
Jon:I just find it easier and to it, to me, it's like really hard to edit the templates and the CSS and like to build the site we have now, I don't think would have been terribly difficult for me if it wasn't in WordPress, and we hadn't used this sort of, like, WYSIWYG editor. And it's like, I'm fighting with that, and I just wanna write some CSS. Mhmm. Yeah. Like, I I understand your viewpoint on a lot of, like, the SEO plugins that that do give you a lot of, like, helpful feedback.
Justin:Although, I I just had interesting interaction on Twitter where this guy, Brendan Hufford, that I know who's really good at search, says that that Yoast plugin I use, he says, none of those things matter. Like, like all those things that it has a little like a little green indicator that shows you, like, when you're in the sweet spot. He says, I don't think that stuff matters. And so there's there maybe what's been holding me to WordPress the the nice thing, as someone who has been in marketing, is that when you have a team of people and the developers build some bullshit CMS that's only they can edit, the marketers hate that. Because we we just can't get in.
Justin:We can't we can't do anything. And so WordPress is a system we know, and it's like easy for us to edit. It's easy for us to add functionality. And it often will free up a lot of developer time. But I think now, especially that my personal site is on statemec, which is a a Laravel based CMS.
Justin:I've kind of seen that there's something else that's possible.
Jon:Right.
Justin:And there's been a bunch of stuff that switching to statomic has been super nice. One is that it saves everything as a flat file. So, you know, if the database gets corrupted, all my blog posts aren't gone. They're all in these flat files that I can edit easily. You can back them up.
Justin:Every time I make change to the content, it it creates a, it it changes it in git. So I actually have a git history for all of my blog posts and stuff. Really helpful. And, yeah. So anyway, I, you had introduced me to this, CMS by your friend Scott Rodin called Vapid.
Justin:And so I I wasn't sure if we were gonna use it or not, but I thought when I got home, I'm gonna just start experimenting with it. And it was really interesting. I'll link to the video in the show notes. That's saas.transistor.fm/57 and, vapid.com. Vapid as in rapid, dot com.
Justin:Really cool idea. You actually kind of build your own CMS dashboard as you edit the HTML.
Jon:Yeah. It's a it's a cool idea. He did a he did a really good job with that. I actually I I talked to him after you recorded that video. Mhmm.
Jon:And he was like he he really enjoyed he really enjoyed doing it. He was like, that was that was great. He was like, you know, I got a lot out of it. You know, he's like, it's so much different, like, watching someone using it live. And, like, the thing he said to me was, so he has documentation about it, and you were, like, sort of going over the documentation, and he would, like, you know, tear it apart a bit or, like, ask questions.
Jon:Right? Yeah. So what he said is, like, he wrote the documentation as if someone would read it from, like, front to back. But the way you did, you were, like, jumping around, and, like, you you built it, and you were trying to build a site in such a way where you're just, like, searching through the documentation, like, kinda willy nilly, and, like, you weren't, like, reading it from chapter 1 to 10.
Justin:No. Yeah.
Jon:Yeah. I
Justin:mean, and that's kind of the the whole idea behind those is that I'm just an idiot, and I'm just trying to figure it out. And so I'm asking dumb questions that, you know, maybe someone more technical wouldn't be asking. But the benefit I did this for Jack at Stadamec as well. The benefit, I think, for them is that when you have the dumbest person on earth going through your docs, they just ask a lot of questions. And, you know, maybe you can edit some of those.
Justin:So yeah. I it was cool to check it out. The one thing I'm still unsure about for our site is that it I think it'd be really cool for, like, if you're building a site for client and you just wanted to build a really easy admin for them. I I'm worried about how, like, robust it's gonna be for us. And the other thing is you have to and maybe these won't be issues.
Justin:But all of the the you basically create these, these what does he call them? Like, you can create these sections, like, for blog posts, for example. And then those are stored in a SQLite SQLite database or something. Again, there most CMSs do this. They store, like, things like blog posts in a database.
Justin:And I know there's advantages to to doing that. But now that I've experienced this flat file thing, and just the peace of mind it gives me with knowing that it just publishes these as flat files. I every time I every time I update the HTML, I can just go and look at the HTML in a file and for the blog post, and it's all there. There's something about that. And it's very emotional.
Justin:It's not even like, technically, maybe it's the worst solution. But it's calming, you know? It's just like, okay. I know what's going on there. I know it's okay.
Justin:Everything feels okay.
Jon:Yeah. Yes. I think yeah. I I would agree with that. It's it's really hard to move data around when it's just, like, stuck in a database.
Justin:Yeah. And if you've ever had to to migrate a WordPress site from one place to the other, you just know
Jon:yeah. But it's been years, but I've done that.
Justin:Yes. That that is the so that's the one beauty part about statemix is, like, migrating sites is, like, so freaking easy. It is just, like, it's a huge weight off your shoulders. But anyway, Vapid, if you're you should check it out. It was blazingly fast.
Justin:And I could not believe actually, he did a bunch of things right, for any developers that are out there. Number 1, his command line interface, which I think a lot of folks don't think about the UX of their command line interface. So enjoyable to use. Like, his the the like, when you deploy a site, it doesn't give you pages and pages of garbage, which I know sometimes that's useful or whatever. It just, like, very clean, like, your site's deployed.
Justin:That's all I needed to know. I don't need to see anything else. Like, just thank you. And if there was an error, it just gave me the error. It was really, really fast if you use his hosting, like, amazingly fast.
Justin:There's so many really cool things about it that I I actually really enjoyed that again, if if I wasn't if Transistors marketing stuff wasn't gonna be so dependent on blog posts, I'd have almost been like, maybe we should
Jon:just Yeah. That's that's one of the things he mentioned too. He's like he's like, I don't I don't really think it's it's, like, the best option or a great option if you're gonna do a lot of blogging, which, you know, I know, like, you wanna do.
Justin:Yeah. Yeah. So So, anyway, check that out. I think my next and, oh, the other cool thing is that I, was also trying to rebuild our site with Tailwind. And, actually, one thing I will say about Vapid is that's the that's the furthest I've ever got by myself with no external help, like, no one calling me on Skype.
Justin:And being able to because it's so it's HTML. Like, it's all right there. It made it so easy to take a framework like Tailwind. I could have taken anything, semantic or semantic UI or bootstrap. But being able to apply those styles, and it's just reloading your pages locally for you, super quick.
Justin:Oh my god. It was just it was really, really fun. And it made me feel like I could tackle something like building a theme in statemic myself. And so that's what I'm gonna try next is, is that yeah.
Jon:So yeah. That we have, yeah. We'll try statamic and then, Gatsby maybe.
Justin:Try Gatsby.
Jon:There's a few options.
Justin:So Gatsby failed the Justin Jackson install test. I I tried I tried. I was like, no. It doesn't work. I had, like, a trillion dependency errors and
Jon:Okay.
Justin:Oh, but I'm not saying we shouldn't try it. I'm just saying, like, someone more experienced than me would have no problem with it. But I was
Jon:So should we, should we, let's say we launched officially in August
Justin:Mhmm.
Jon:Of last year, should we try to, like, relaunch a marketing site in August? Yeah.
Justin:That might be good.
Jon:Maybe, like, redesign it a bit? Yeah. Choose a platform.
Justin:Yeah. Totally. Get that
Jon:get that Google score up.
Justin:Yeah. Get that Google score up. And, yeah, I think my my goal is just to kind of learn and experiment a bunch. And then, eventually, I'm hoping you're gonna have more time to add your
Jon:Eventually.
Justin:Your your finesse to it.
Jon:Eventually that will happen.
Justin:But I need you to I want you to experiment with Tailwind when you get a chance. Okay.
Jon:Yeah. I mean, there's some other libraries I've been looking at. Bulma is one of them. Mhmm. Mhmm.
Jon:It's actually it there's a there's a web framework. Well, a web application framework built on Palma that has a bunch of components and uses Vue JS, which kinda wanna look into.
Justin:Yeah. Yeah. Experimentation, man. That's that's the name of the game. Alright.
Justin:Well, we're at 46 minutes. So I was gonna tell you folks about what I'm doing on Instagram, but we're gonna keep that for next for next time. John, we have outside of our regular sponsors, our advertisers, I should say. So Clubhouse and and Balsamic. Outside of them, we we have over, we're getting over $220 per month on Patreon.
Jon:That's that's awesome.
Justin:Isn't that crazy?
Jon:That that is crazy.
Justin:That is so nuts.
Jon:Yeah. So our goal there was to cover our costs for editing Mhmm. 4 4 episodes a month, which is $320, if my math is right.
Justin:Yeah. Something like that. Yeah. Yeah. So we're we are Close.
Justin:We are really close. So why don't you thank the the folks that support us on Patreon?
Jon:Alright. So we have, do we have one new person? Yep. Me. Last last last time.
Jon:Yeah. Miguel, Pedrafita.
Justin:Oh, yeah. What's it that? I love how you say it because I would have never I was gonna go. Yours is way better than mine. You got that Italian.
Justin:I think he's from is he Italian or I think he's from Spain. Anyway
Jon:Yeah. That's probably Spanish. So Miguel. Thanks, Miguel. Shane Smith, Austin Loveless, Simon Bennett from Snap Shooter, Corey Haines, Michael Sittber, Paul Jarvis, and Jack Ellis from Fathom Analytics, my brother Dan Buddha, danbuda.com.
Justin:Danbuda.com. What's that built in?
Jon:I don't know what he built that in.
Justin:Folks, you go check it out.
Jon:He did he did a lot of, React, and I don't know. It might be Gatsby, actually. Yeah. Actually, I think he's using Gatsby.
Justin:Really? He he figured it out. Hey.
Jon:He did. I should
Justin:just call him up. Oh, and he's he's hosting it on Netlify. I just fig I just looked into that too.
Jon:Yeah. Think it's Gatsby. Okay. Darby Frey, who we know.
Justin:Yeah. I got to meet Darby Frey in person.
Jon:Yeah. Samori Augusto, Dave Young, Brad from Canada, Kevin Markham, Sammy Schuichert, Dan Erickson, Mike Walker, Adam Devander, Dave Junta.
Justin:Junta.
Jon:Kyle Fox, get reward for dotcom, and our sponsors, Clubhouse and Balsamiq.
Justin:Okay. Junta.com. Does that what's going on here? Oh, junta.com goes somewhere. Holy junta.com goes to, like, some really crazy site in is this Japan or China?
Justin:Dang. Yeah. You folks, you should go. Junta.comj00nta.com. Uh-huh.
Justin:It might That's
Jon:not how you that's not how you spell his last
Justin:name. I know, but that's how I pronounce it. That's what I'm saying.
Jon:That's why
Justin:I think he should register it like that. I mean, he should register does he does he have junta dot, like, his actual ginta.com? I think he needs both is what I'm saying. He needs junta, the way I say it, j00nta.com, except he's gonna have to buy it off this Chinese gambling site. And then Junta, his own last name.
Justin:It's trying to connect, but
Jon:It's not
Justin:Dave, get on it, man. Get on it before we everyone hears about it and registers it
Jon:for you. Yeah. What is going on? Oh, they still have a Flash player.
Justin:Yeah. This this yeah. This site is did you enable that?
Jon:No. That that's this
Justin:site probably has lots of viruses, folks. Don't don't don't accept any Adobe Flash stuff here.
Jon:Something to do with the Ferrari. I don't know what
Justin:It's like a Ferrari and then an 8 ball, but the 8 ball's red?
Jon:Yeah. I don't know.
Justin:Alright, folks. We will see you next week.