The Changelog: Software Development, Open Source - Actual(ly) opening up (Interview)

Episode Date: July 1, 2022

Adam and Jerod are joined once again by James Long. He was on the podcast five years ago discussing the surprise success of Prettier, an opinionated code formatter that's still in use to this day. Thi...s time around we're going deep on Actual, his personal finance system James built as a business for over 4 years before recently opening it up and making it 100% free. Has James given up on the business? Or will this move Actual(ly) breathe new life into a piece of software that's used and beloved by many? Tune in to find out.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome, friends. I'm Jared Santo, and you are listening to The Change Log, where we feature the hackers, leaders, and innovators of the software world, almost 500 of them at this point. This is episode number 495. On this one, Adam and I are joined once again by James Long, who was on the pod five years ago discussing the surprise success of Prettier, his opinionated code formatter that's still in use to this day. This time around, we are going deep on actual. That's James's personal finance system he built as a business for over four years before recently opening it up and making it 100% free. Has James given up on the business? Or will this move actually breathe new life into a piece of software
Starting point is 00:00:48 that's used and beloved by many? Stick with us to find out. Oh, and Changelog++ members, stick around even longer. This episode has a bonus pre-show with Ab and I. It's about 25 minutes of us hanging out and chatting before we hopped on with James. Quick shout out to Fastly. Everything we do here at ChangeLog is fast because our partners at Fastly serve it up super fast everywhere on earth. Check them out at Fastly.com.
Starting point is 00:01:15 Okay, James Long on the ChangeLog. Let's get into it. This episode is brought to you by our friends at Influx Data, the makers of InfluxDB. In addition to their belief in building their business around permissive license open source and meeting developers where they are, they believe easy things should be easy. And that extends to how you add monitoring to your application. I'm here with Voychek Kajan, the lead maintainer of Telegraph Operator for Influx Data. Wojciech, help me understand what you mean by making monitoring applications easy.
Starting point is 00:01:50 Our goal at Influx Data is to make it easy to gather data and metrics around your application. Specifically for Kubernetes workloads where the standard is Prometheus, we've created Telegraph Operator, which is an open source project around Telegraph, which is another open source project that makes it easy to gather both Prometheus, we've created Telegraph Operator, which is an open source project around Telegraph, which is another open source project that makes it easy to gather both Prometheus metrics as well as other metrics such as Redis, PostgreSQL, MySQL, any other commonly used applications
Starting point is 00:02:15 and send it wherever you want. So it could be obviously in FluxDB Cloud, which we would be happy to handle for you, but it could be sent to any other location like Prometheus server, Kafka, any other of the supported plugins that we have. And Telegraph itself provides around 300 different plugins. So there's a lot of different inputs that we can handle. So data that we could scrape out of the box, different outputs, meaning that you can send it to multiple different tools. There's also processing plugins such as aggregating data on the edge so you don't send as much data. There's a lot of possibilities that Telegraph could be used to get your data where you are today. So we've permitted metrics, but you can also use it for different types of data. You can
Starting point is 00:02:55 also do more processing at the edge and you can send your data wherever you want. Wojciech, I love it. Thank you so much. Easy things should be easy. Listeners, Influx Data is the time series data platform where you can build IOT, analytics and cloud applications. Anything you want on top of open source. They're built on open source. They love us. You should check them out. Check them out at InfluxData.com slash changelog. Again, InfluxData.com slash changelog. So, James, the last time we had you on the show is 2017. That episode was called The Burden of Open Source. In your blog post announcing open sourcing of Actual, which we'll talk all about today,
Starting point is 00:04:00 you talk about the magic of open source. I thought, well, there's a little bit of a yin and yang right there maybe we just start right there and see what happens yeah it's been i mean it feels like a long time ago but uh and so you know opinions can change um you try closed source for a while and you know you sort of you you sort of see the more the more nuanced take about it so what do you want to know about it? Well, it sounds like you're ready to give it another shot with this project. Last time you were talking about Prettier and the success of Prettier,
Starting point is 00:04:35 perhaps the surprise success. And of course, I think that leads to the burden to a certain degree. But I think open source can be both magical and burdensome at different times, even the same project. So I don't think they're necessarily antitheses, but it's interesting that your perspective has perhaps changed. Maybe let's just start with actual, what it is, when you started building it. We know that we're here to talk about the open sourcing of it, and so there's a long story from there to here.
Starting point is 00:05:02 So let me just give us a little bit of that understanding, and we'll go from there. Okay, sure. Yeah. Actual is a product that I built. It is a personal finance manager. And so you kind of just the typical things where you import or add your transactions and then it provides a way to budget and check your finances. The original goal was to be just a super powerful tool built for personal finance geeks in a way, or people who just like to manage their finances in a more detailed way. The primary method of budgeting right now is something called zero-based budgeting, which is a pretty detailed way to budget, which is where you actually track things down to every single dollar. And then if you overspend in one category, you have to sort of make up for it in the next month.
Starting point is 00:05:49 And so the overarching goal was not only to be, because they are people who, users are very detailed people, typically they also want powerful reporting and ways to get insights from their data. And so the original goal was to have this whole thing and um the other big difference here is that it's actually a local first app so it's an app that you can run on your computer all of the data is local the big benefit for that was in theory i should be able to build a whole reporting mechanism that you can actually do
Starting point is 00:06:21 custom queries and uh just dig into your data a whole lot more than you typically could on other apps because other apps, they're just more constrained by their server. They're running all of their clients' queries on their server so that you can't do certain things. So in theory, you could even custom, if you wanted to, you could write a custom SQL query, which sounds super geeky and it is super geeky.
Starting point is 00:06:42 But if you can do that, then you can build up higher level things that aren't as complex. But like, it was a cool idea from the start to be like, hey, what if I could actually just like write SQL queries against my personal finances? And you can still technically do that today. It was a lot more work than I imagined.
Starting point is 00:06:58 And so I never really got to the point where I was able to figure out the user experience of how to do that. It is still a potential avenue. So it never fulfilled that vision quite as much as I wanted to. But that user experience of how to do that. It is still a potential avenue. So it never fulfilled that vision quite as much as I wanted to. But that was kind of the original vision started it around, I started hacking on it just for me probably around 2016 was using it in a very limited way for a couple years. And then as I built it up, I sort of got to a point where
Starting point is 00:07:21 it was like, hey, I've always wanted to launch a product. I have this thing. I might as well use this as the thing that I experience a launch. And so I launched it, I think in January, I believe it was 2019 on Product Hunt. It got number four of the day. It got a decent amount of users there or like interest. I think I got 30 users and it was very bare bones at that point. And then over the years, gradually gained a couple hundred more users. And over time, up until the open source, I was at a point where I had a small but decent income stream. And you worked on it solely for a while, right? And then eventually you took a job at Stripe. That's right. Yeah, I was doing in 2017, end end of 2017 i left mozilla and i was working for
Starting point is 00:08:07 myself for doing consulting um and i worked part-time on actual for about a year or two and then most of 2020 i worked full-time essentially on actual and that was just the point where it just wasn't making enough money like i i you know we'll go into this more i'm sure but i just didn't realize how hard like you always know it's hard to bootstrap something but you you know there's there's always it's always surprisingly harder than you think it's going to be and it was just like my family was thinking about moving and it's like you know moving there's a lot of costs and there's just like i have i've got three girls three kids to take care of it it's just like it comes a certain point when it's it's just like where I have, I've got three girls, three kids to take care of. And it's just like, it comes to a certain point when it's just like, where do my priorities lay?
Starting point is 00:08:47 And also, even for me personally, working alone is just not, it's not the healthiest way for me to grow. And so when it came down to it, I just realized that I had this opportunity at Stripe and it was kind of hard to turn that down. And so I worked for Stripe and then it actually became a side project for a couple of years. Yeah, going alone is challenging, man. It's a challenge for sure. What is it that made you look at budgeting? Were you like just manage your own budget? And you're like, let me, I've got some ideas
Starting point is 00:09:16 and you started hacking on it. And next thing you know, you've got something that seems like a product that could be a product. And then you sort of got bit by the passion bug. You're like, man, I can actually solve this problem for other people. Is that a version of story or is that is that way off it's not too far off i was frustrated around the time that i started this in like 2015 2016 with not feeling
Starting point is 00:09:35 like i had a good understanding of of of my finances about just like you know i thought i had you know saved up enough money for this thing. But like, when I look at my big account, why don't I have as much as I thought? And it's a surprisingly hard, like you think you could just manage your transactions and then categorize them and then like, look, and then like, there's your answers, but there's enough complexities, especially, I guess, especially as you have anything complex, like if you have a mortgage or you have some kids or you're married or you just have you have one thing that like is um like a reoccurring bill that you just don't think is like
Starting point is 00:10:12 as high i i don't know like there's things with like reimbursements like you bought a hundred dollar thing off amazon but then you returned it like where does that money go back into there's enough things that add up to this like vague buffer of like things that is a mismatch of expectations in your money and so i i think i was frustrated at like i kept just like watching my bank account and thinking i had certain amounts of money but then when i actually really sat down to break it down it's like oh i actually have to pay this bill next month with this much which means i don't have enough now to do this other thing. It's a surprisingly hard problem, which is, I think, why a lot of people just don't really budget.
Starting point is 00:10:52 And they just kind of do spend and then they watch their bank account. And so I think I am a very detail-oriented person. And so it's like, for my personality, I did want to just know more. And I think that was the crux of it. It's like, I was frustrated at just like not knowing. That combined with, I typically have a high bar for software. And so kind of that typical developer thing where I go and I use a bunch of apps
Starting point is 00:11:18 and I just don't like most of them because just you log into Mint and it's terrible for all sorts of reasons um i think it's even gotten worse since then now it's just like super simple ads everywhere lots of bad things um and it works for some people totally great i'm not putting down any other people's usages of mint or ynapp or anything that totally great um i did try ynapp for a while i did like so this was actually before it's funny i think this was a year or two before ynav actually came out with their current version
Starting point is 00:11:50 which is on the web uh back then it was actually their primary app was their desktop app which was ynav 4 which is now there's like how do you say this is it ynav you need a budget y n a b dot com yeah so this this is a different tool that has a similar zero-based budgeting philosophy that has roots in some of Dave Ramsey's envelope-style budgeting type stuff. So this is the primary product in this space for zero-based budgeting.
Starting point is 00:12:20 But their current solution is a web-based solution. There was a whole phase of YNAB before this where it was just a pure local app and there's a whole bunch of people who just like love that app and actually still to this day have like hacked up the app because it's like it doesn't work anymore on like it's not supported it doesn't work but you know as things happen with software there's like passionate, dedicated user base that's very niche. And they've hacked it to get it working
Starting point is 00:12:48 on the latest Macs. But I used it and I did learn about the zero-based budgeting philosophy kind of through this. And I did like that. But the app itself just left a lot to be desired. And it got even worse when they released their web version
Starting point is 00:13:00 because they ditched certain features that I thought were ridiculous. It was this oversimplified, felt like a, honestly, to me, it kind of just felt like a toy, like very colorful in the wrong ways, cartoony, almost just kind of cartoony. Yeah. And it's, you know, it's totally fine if you like it. But for me, I was, it was a response for like, I want something that like I can
Starting point is 00:13:22 use really elegantly and it feels beautiful and it does have a very high bar for user experience but it's also powerful and lets me open up the features and like really just like write SQL queries against my data and like that kind of a thing just doesn't really exist and not even just for budgeting in most software world or most apps that balance is like typically not a very common one i use a to-do list app called things if you've used that before i'm a user it's a fantastic app right it's a delightful user experience that is like a very good example of just like on the mobile app and on the desktop app it just has all these really really great interactions it took me a while to start using it when i first used it I had that same reaction where I was like, this is beautiful, but it's
Starting point is 00:14:07 just too simple for me. Like it just doesn't, I can't really like do like, you can't even do filters where it's one tag or this other tag. If you click two tags to highlight those two tags and filter by those, it's always and. So you can't say personal or house you have to say personal and house it sounds like a simple example but that's kind of the no that drives me nuts and lots of different applications i'm always like give me my or come on i need an or exactly yeah and when you're running through an app like that to like test it out you're kind of like ah this
Starting point is 00:14:39 is too simple now i've eventually fallen in love with it and like it was and that simplicity does have its benefits and i actually like to use it all the time now but for budgeting my i had that initial reaction of like i really want to build this myself because also i really want to just force myself to learn like everything about this and just like think deeply about it so i just wanted to think deeply about it so you had incumbents like mint aaron patzer if i can recall correctly like forever ago was on the web 2o show jared before my day on that podcast as a matter of fact we got an email recently from aaron wanting to come on founders talk so it'd be interesting to go back and talk about mint and his journey to where he's at today i was a mint
Starting point is 00:15:19 user back i mean right when it very first launched before they they got bought by it, was it Intuit that owns them? Yeah, yeah. And for me... Noah Kagan, he was famous for the original growth marketing of Mint and things they'd done to get it to its user base and whatnot. But it was an incumbent. I mean, it's been out there for, I'm guessing, 15 years. Just guessing. A long time.
Starting point is 00:15:41 That's probably about right. At least, right? Yeah, I mean, a long time. And it's still alive. It might be dead alive, but it's dead to some, dead to James. Just litter with ads now. Well, I think their innovation was you don't have to enter your things yourself, right? I mean, most of us, that's where we fail at budgeting.
Starting point is 00:16:00 It's like, I'm not going to go enter all my transactions. I may be able to do it for a little while, but eventually I gonna fall off the wagon and then it becomes useless and so mints like hey we'll do it for you it's like push-ups you know do those things every day no maybe no days hopefully maybe i mean you have to because you're not going to go back two weeks and enter all those transactions yeah yeah exactly so you give up and declare bankruptcy that was mint's deal that's what really put them on the scene. And then they started just layering on upsells and other things. I eventually was like, I'm done with Mint because it got yucky for me as a user.
Starting point is 00:16:34 But it seems like, James, your audience for actual is pretty niche-y. I mean, people who really sweat the details of user experience plus people who would see the value in local first, and then that desire to be able to, maybe it never was actualized, pun not intended, the ability to run your own SQL transactions, or queries, but that desire of that
Starting point is 00:16:58 would attract me to a tool. It seems like that's a small subset of the people who need budgeting, which is darn near everybody. Yeah, so my pitch is, not pitch as much, It seems like that's a small subset of the people who need budgeting, which is darn near everybody. Yeah. So my pitch is not pitch as much as just like my, I'm just going to throw this out there. I don't think it's very niche because those properties are, they have second order effects, I guess, which is the, which are much more apparent to the user. For example, local first, the app is just fast by default. I mean, it's no question.
Starting point is 00:17:30 That is like, that's the first thing that everybody always says when they try the app. It's just like, they feel it. They feel their local, they feel their data sitting right there on the hard disk. And I don't have to think about it. I don't have to optimize. I can run a hundred queries
Starting point is 00:17:43 from straight from the front end, not even in the backend. So there is kind of a front end and like a server process running but that process is all just like a local process i can run queries send them to the server and i can fire off 100 from the front end and you don't feel that at all and that whole that just it it's one of those things that um just changes the whole experience of the app like there's no like you do a bulk edit of you know your 3 000 transactions in an account because you're doing something crazy and you're really restructuring things. And you bulk edit things to add a note to these 3,000 transactions. So you select them all and press N and type archived. It happens in 200 milliseconds.
Starting point is 00:18:21 Whereas you go to any other app and there's this huge cliff of anything that's outside of the ordinary workflow that they've like specifically manually optimized suddenly you hit that like oh it has to span their like five database clusters and it takes you'll see the loading spinner for like i mean in gmail you archive a thousand messages and you archive them and you see it spinning for like 10 seconds and then like the ui doesn't really like respond right you have to refresh the whole page for to actually see the properly updated state it's totally broken yeah so i would say there's like all these second order effects which are the things that sell the app to the primary user because um it's that and also the
Starting point is 00:19:01 beautiful user experience which you know i designed a lot of this app. I got a lot of feedback from designers. So I wouldn't say it's like it's not close to things quality, but I think it's there. It's there enough to where users tend to still mention this, that it's just a nice app. I don't want to be the there's other budgeting apps that just like throw hundreds of numbers at you on a screen and you know there's all it's very complex this is a complex app but it tries to do that philosophy where it's a discoverable and it's it's simple at first it looks simple i mean that's that's that's another thing that people say about the app is like it just looks so simple at first i thought that this
Starting point is 00:19:41 was just going to be like not interesting of an app but turns out you can actually edit rules and do complex rules and like you kind of can like unpeel the layers um that shows off too like that plus the fast is a really deadly combo i mean it's a really really powerful powerful thing so um the thing that i think i would love to take actual if if somebody was going to do this is to um focus less on the zero-based budgeting. And if any actual users are listening to this, don't freak out. Like that's always going to be there. But there's totally capability for this to be a more generic transaction management tool,
Starting point is 00:20:17 which you don't have to be writing those SQL transactions or queries because there's a whole kind of other spiel about that where like the one percent power users can be doing building a lot of cool stuff that benefit the rest of the audience right so I think a lot of this does not have to be niche in my opinion I think if like if I was really passionate and not a little bit burned out I would go get VC funding and like build this out into a proper product and I think it it totally has to mark... People say there's no money in budgeting apps, but like you said, everybody needs a budget. In the last two years, I've seen four tools launch, and now they have a lot of users,
Starting point is 00:20:54 and they're making decent money. It's totally a viable product space. Well, everybody needs a budget, but not everybody knows they need to budget. I think as we get into an economic downturn, I think budgeting suddenly becomes more and more popular. Could be a good time for you, James. And I definitely understand where you're coming from
Starting point is 00:21:11 with saying the things that you push are not the local first in terms of it being a nerdy thing that nerds like, but you push the performance. You promote the fact that this makes it super fast, super simple, and privacy focused. Those are things that I think the general public are all interested in. So in your post you say it's hard to build a product,
Starting point is 00:21:33 but it's harder to build a business. You worked on it for many years. It's not like actual, this is not a funeral arrangement. The thing is living on, it's living on open source. But you're not going to pursue it as a business for yourself anymore. You don't, you're a little burnt out. You're not going to go the VC route.
Starting point is 00:21:49 What were the hard parts in the business? What made it burn you out? What made it not hit that hockey stick growth that people desire, you know, when they go out to turn a side project into a business? I've always said that I actually like marketing. And it's true that I think I still do like doing that. I like having exposure.
Starting point is 00:22:09 I like going on podcasts like this. I like talking at conferences. I like even just paying for marketing and paying for promoted tweets and stuff like that. All that stuff is very interesting to me. But I think it was hard because I'm doing a novel product where it is local first.
Starting point is 00:22:24 That requires a pretty significant where it is local first. So that requires a pretty significant investment on my part technically. And so I can't just fall into the happy path where Oz or a Heroku-like thing is taking care of a lot of stuff. I can't use an existing framework because it just is incompatible with everything that I'm doing, which is local first. So unfortunately, that did require significant investment, which because it's hard to context switch, I ended up focusing more on the tech side of things and less on the marketing.
Starting point is 00:22:53 And so I think that's one thing where I fell down, where I wasn't spending time getting and actually selling to users like I should have been because it's hard. I think I learned early on, I felt like I couldn't, I couldn't go and talk to users and sell them on it because it wasn't really good enough yet. And I think that's a very common pitfall that a lot of new entrepreneur type people fall into where
Starting point is 00:23:15 it's like, I don't like, how can I publish a landing page and get emails when I don't even have a screenshot of the app yet? Like, I remember thinking that, and now I'm just like, that's, that's the stupidest thing I ever thought. Like just pitch the idea you like write some text and you describe what it should be and then you have an email page and if people are interested then they'll sign up for it uh that's all you got to do like it's not that hard so i i overthought a lot about that i thought i needed much more weight behind like a sale than i needed to have um at the beginning and therefore i deferred the marketing and the sales um plus with the investment of tech required it's just very distracting and i just easily fell into the tech part of it more sure well we all understand that engineering it's the
Starting point is 00:24:01 fun part and you can get yeah knee deep and sometimes neck deep and that's not even talking about the business side which i think you i think you're maybe pointing to more which is what was hard about that which is i was stubborn and i really wanted to prove that i could build mobile apps as well and so not only did i have to implement a authentication flow and a subscription management system and deal with all of that stuff, I also had to use iOS and get my apps in their store. And then they are forced you to use their subscription system.
Starting point is 00:24:32 And so I had to set up that whole thing and just manage all of that. That is a ton of work. Like don't downplay, like if you're thinking about building an app, like you got to figure out how to streamline that stuff or find somebody else to help with that. Because that is dealing just with all of that. that's the business side of it that is really
Starting point is 00:24:48 really time-sucking well speaking of i guess being such a burden how how long did it take you to get more people on the team and describe how your team has ebbed and flowed to from inception to now more people on the team for actual there hasn't really ever been a team. It's been, so, you know, over the years, I would tell people all the time, like my biggest problem is I need to find, I need to figure out how to involve people. And I never really figured out how to do that.
Starting point is 00:25:20 When you're bootstrapping, you can't pay people, right? So I had had there were many there was like four or five times where i tried out a contributor model where people were just interested people would ask a lot actually how can i help like contribute and so i bring on some people and then obviously as just you know a free contributor they do a little bit of work and then they just kind of fade away which is just how it is and then at that point it's just like it's something even else more for me to manage like right helping them get it yeah getting it running sort of mentoring them and helping them and then
Starting point is 00:25:50 it's just like an extra thing on top of everything else i never figured out how to get past that threshold i did there was one success which was earlier this year a couple months before i open source as i was trying to scramble and sort of solve this, I brought on I finally found a good service who helped me find a personal assistant or like a virtual assistant who helped manage support. And she was amazing. And she I was feeling very guilty because I had I think 200 unread emails that I hadn't just lost track of it over a month or so at that I hadn't responded to in like two over a month or so that I hadn't responded to. In like two days, she brought that down to zero, just answered everything and categorized everything
Starting point is 00:26:32 and just really cleaned it up. And then at that point, she would take on support and that was a huge help. And so that was good, I think. And it's not like development where it was super, super expensive. Like I think you can find places to pull off and get help that isn't going to drain your whole finances
Starting point is 00:26:50 like hiring another developer or something. Well, especially when you are a developer and you love that part. The first move is to hire the not that part, the other parts. The things that you aren't as good at or the things that you don't like to do. And it also is a bonus in the sense of if support is what you need to help with, generally salaries or pay for support agents lower than developers, et cetera.
Starting point is 00:27:18 Works out. On the sales side, it's interesting because what you have is developer friends and audience. You have respect in the developer community. There's really cool tech inside of here. I've heard you on a podcast or two over the years talking about some of the stuff you've built inside Actual or for Actual.
Starting point is 00:27:37 Really cool things in there. You have Twitter followers. You do well on Hacker News, et cetera, when you write. But in terms of finance, you're nobody in that world. I think so, I'm just assuming. You mentioned Dave Ramsey. It seems like a lot of these products or software services that are successful are kind of attached to a guru
Starting point is 00:27:59 or a personality or some sort of a program. Like Suzy Orman helps people with finances, Dave Ramsey helps people, I'm sure there's other people. Suzy Orman helps people with finances. Dave Ramsey helps people. I'm sure there's other people. Yeah, Suzy Orman, doesn't she help people with their finances? Sure. And so I wonder, like, on the marketing front, if something like that, or did you try anything like that?
Starting point is 00:28:17 Like, what if we could get attached to some sort of a bigger rodeo show and that they sell the idea? Because you almost have to be like, here's why you need budgeting and maybe this style of budgeting and by the way actual is the best way it's super fast it's privacy focused that could be like a a sales funnel but it's hard to get that thing going unless you want to become you know a finance superstar or something right well i think you can i think there's opportunities to not become one like that because that is probably like a lifelong type or not a lifelong but like one stage of your career like a decade but you could like one thing that i should have done more is
Starting point is 00:28:55 reach out to people like that like there's popular blogs that people read that aren't dave ramsey famous but you don't have to be dave ramsey famous to really give a good kickstart for product for like a product uh uptake in in sales uh but there's a lot of blogs that i could have been reaching out to um developing those relationships but again that's just like a very sales thing that was it just anything that took more than a couple days which is very hard to context switch into because that means that I'm putting the product down and it's not getting features for a month or two. It's very hard to context switch between development and all of that other stuff
Starting point is 00:29:36 because you've got to be on top of that sales, developing those relationships with those bloggers to get featured. It's just hard to do it. Did you ever feel like the product's not good enough? So that old saying, if you're proud of your first release, it was too late kind of a thing.
Starting point is 00:29:51 And I wonder if your desire to keep doing product versus going out and switching to the sales context is because deep down you're kind of like, it's not good enough yet, or I'm not happy with it. Oh, totally. Yeah, that's what I was mentioning earlier, where even just feeling like I couldn't put up a landing page
Starting point is 00:30:07 without a screenshot, that's ridiculous. You don't need to have that already to sell. You can sell somebody with an idea without, the feature doesn't even need to be there yet. People do sales all the time, say, hey, we're going to build this incredible feature, here's how it's going to work, it's going to be amazing, and it's not even built yet, which can be a problem.
Starting point is 00:30:25 But you can totally make sales that way. And I should have embraced that more. I do think that there was a point when I really should have and could have switched to that. I think it's, I was somewhat aware of a lot of this stuff, even in that moment.
Starting point is 00:30:39 But there, one thing that I would say is if you were building a product or doing, if you are trying to achieve anything, try to do it quickly and make quick decisions and move fast, because not just so that you will like make progress fast. But when something kind of slows down, like if I was a year into actual when you've been doing something for a while, it's just it's really easy to just keep that pace it's really hard to like i don't know like if i have like a problem on my house like fixing a toilet that's been broken for a year there's something about the like psychology of it that's like i'll fix it next week it's already been a
Starting point is 00:31:17 year i'll fix it next week whereas if it broke yesterday i'll probably go out to lowe's this weekend come back it's a 15 minute fix and i'll fix it right there's some psychology there that's interesting where if you aren't acting on things fast they just sort of become this pile of responsibility behind you that you just sort of ignore um i think that's one thing that sort of happened to me at least it's like i've already been working on this for so long let's just keep building a couple more things you've got me thinking about that the broken window theory but i can't remember if that's the exact application of what you're talking about or if that's slightly different but the idea there at least the start of the idea i can't remember the end the start of the idea is if you got a broken window you can fix it right now because if you leave that broken window broken i think it's
Starting point is 00:32:04 a signal and's a signal, and maybe a signal to the outsiders that no one's taking care of this house or something. But also it's kind of like, then the next thing breaks, and you're like, well, the window's already broken too. It's kind of like, well, I'm already not taking care of this. And so, oh, here we have neglect accelerates the rot
Starting point is 00:32:21 faster than any other factor. That's Jeff Atwood talking about the broken window theory, so I found it a little bit. So there's a little bit of that going on there. Definitely understand how that is. It's a metaphor that leads to the disorder, essentially. Like if you have a broken window here in this house, well, then your neighbor's going to be okay with their lawn being not so good.
Starting point is 00:32:40 Your neighbors don't want to deal with their landscaping, so you don't. And so it's almost like osmosis in a way. You sort of do things based upon other things happening around you. But it's disorder that happens because of other disorder. It's kind of like that. Similar, I would say. I mean, you're talking about procrastination because of the burden and weight. You start to get – you've got a snowball coming down the hill at you, and you feel like if I could just keep running, that snowball will never hit me. But it's getting bigger.
Starting point is 00:33:11 There's 200 emails sitting there, but okay, I've got to plow through this. I would suspect it's easy for us to speculate and theorize why, all the ways you could have done different things. But it seems to me, and maybe you can clarify this, is that you were alone too long in a very useful application. And had you gotten not just users or more users, but belief in the financial and business ability of what you were building, because you can build a product, you can build an app, but that is not a business. and it's not venture capital. It's not investment. It's not whatever. You were solo bootstrapper too long and you sort of maybe got in the weeds.
Starting point is 00:33:54 That seems to me, hearing so far of your story, it seems like that's where you're at and you kind of got too far in the alone weeds and you couldn't, you didn't find a healthy path to a success, in quote success, to get to that next step, which is financial viability of the application, being able to hire people, et cetera, et cetera. You were alone too long. Would you agree with that?
Starting point is 00:34:20 I think so, yeah. I mean, I think that's aligned with everything that I've said so far. Just general thoughts about, I mean, I think that's aligned with everything that I've said so far. Just general thoughts about, I mean, honestly, I think one thing that I learned too was that I don't think I want to be a CEO of a company. Like, I wish I had found the perfect thing that could have happened. And I did try. It's hard when you're distributed and you're not, I'm not, you know, I'm not in a city that's San Francisco or New York.
Starting point is 00:34:47 I'm not going to meetups locally that I'm meeting a lot of like-minded people. And then COVID happened too, where it's like I wasn't even going to conferences anymore. The best thing that could have happened was finding a co-founder that would have become a CEO-like thing. Like it could have been,
Starting point is 00:35:01 it could have still been a developer, but still somebody who was still very critical and very like in a positive way, very critical about what we're working on and helping shape the business and that would have solved the loneliness problem it would have solved the like i don't actually want to run a company right like i'm i'm happy being super involved and being making critical decisions and and shaping it but at the end of the day, that's not my strength when it comes down to it. So I think part of it was like,
Starting point is 00:35:30 even if I magically could have gotten the number of users where I could have started hiring, I'm not somebody who wants to be hiring people and then only managing them. I want to be a tech lead. I want to be, you lead i want to be you know i i'm i i manage pretty complex things at stripe that like require cross-organizational efforts and i'm i love working with people but at the end of the day i'm not i'm not a manager i'm not a ceo like personality i think
Starting point is 00:35:57 that's also when it comes down to so it's it's not even that it's like a problem that i couldn't solve i think it's just like a problem that it's not, that would not have worked out regardless, unless I had, I think the only thing that could have happened is if I had found a good co-founder that solved that, that role. But finding co-founders is incredibly hard, right? People that you can trust and actually do that. So unfortunately that didn't. And so open sourcing, that's when it really came down to it, you know, it's kind of the only path that I saw that didn't. And so open sourcing, when it really came down to it,
Starting point is 00:36:26 it's kind of the only path that I saw that made sense. This episode is brought to you by our friends at Square. Square is the platform that sellers trust. There is a massive opportunity for developers to support Square sellers by building apps for today's business needs. And I'm here with Shannon Skipper, head of developer relations at Square. Shannon, can you share some details about the opportunity for developers on the Square platform? Absolutely. So we have millions of sellers who have unique needs. And Square has apps like our
Starting point is 00:37:08 point of sale app, like our restaurants app. But there are so many different sellers, tuxedo shops, florists who need specific solutions for their domain. And so we have a node SDK written in TypeScript that allows you to access all of the backend APIs and SDKs that we use to power the billions of transactions that we do annually. And so there's this massive market of sellers who need help from developers. They either need a bespoke solution
Starting point is 00:37:34 built for themselves on their own node stack, where they are working with Square Dashboard, working with Square Hardware, or with the e-com, what you see is what you get builder. And they need one more thing. They need an additional build. And then finally, we have that marketplace where you can make a node app and then distribute it so it can get in front of millions of sellers and be an option for them to adopt.
Starting point is 00:37:55 Very cool. All right. If you want to learn more, head to developer.squareup.com to dive into the docs, APIs, SDKs, and to create your Square Developer account. Start developing on the platform sellers trust. Again, that's developer.squareup.com. So you say that open sourcing was the only choice you had left, but what about sell? It's valuable. You've got a lot of years into it. You've got paying customers, maybe not that many, but you've got a great looking business for somebody who could be a CEO and be a salesman.
Starting point is 00:38:41 Why not just sell it? I did think about that, actually. I actually reached out to one or two companies that have bought other respected companies that I know of from people that I respect as well. So I knew that they would give me a fair assessment, even though I hadn't really heard of them before. I knew that their track record was pretty good.
Starting point is 00:39:03 The first one responded like incredible like that day i think and it was like you know you're not making 10k arr and so we're not interested yet like that's kind of the baseline that that we have gotcha and i think i never heard back from the other one i didn't pursue it super strongly because it just would have really had to been the right fit and i also think that once i mean maybe this is me selling it short but and maybe i should pursue it further but the local first architecture and all of that kind of a thing would i think that would make it hard to sell i think once a company was starting to do due diligence it required like
Starting point is 00:39:40 it's something it's something unlike they've ever seen before and i say that like in a good way but also in a way that's like it would be hard for them to maintain it like i was already starting to get i i got a couple comments about when i was talking to people about selling it that were sort of implying i don't think it's out of question but um yeah yeah yeah can you unpack why that is i mean what makes it such a unique piece of software why it's harder to maintain it's because it's just the local first aspect of it where it's not a mac os app built on mac os apis where it's technically mac os native apps are local first right they just do yeah they're built against those apis it is a cross-platform local first api that works on the web as well um require getting that
Starting point is 00:40:26 to work required significant investment and like novel um research requiring like new ways of doing things so absurd sql is a whole nother thing that we could talk about which is like a sub project that spawned out of this which is like another really big innovation in the open source world which i haven't really had time itself to manage because of actual. And, you know, that's another reason for open sourcing actual is trying to get back to something like that. But like, that's a whole nother project that I think could be a whole nother podcast on. But those ground, like, to be honest, somewhat groundbreaking innovations to like, use SQLite in a persistent way in the
Starting point is 00:41:06 browser but it stores the file chunks in index cb and it actually blows away index cb's performance it's a significant undertaking i mean we're dealing with like writing c code to optimize file disk access so that it works better with index cb um so it's not something that's a typical sas app that a company is going to come in and buy and then suddenly like let's ramp it up to you know to get 20 000 users and just like scale it out in all of the ways that were normal that were that we're used to so um i see so because of the technical innovations and maybe lateral moves that you made technically to achieve things. It's not that it's just prohibitively expensive to host and maintain,
Starting point is 00:41:50 but to actually build upon from where you are requires a certain skill set that most companies either don't have or don't want to hire for. Totally. It's actually the most scalable architecture you could possibly have because you don't even need a server. That's what I would expect.
Starting point is 00:42:04 I would expect it would be cheap to host. But development is expensive. So unfortunately, that is the cost there where they probably require very highly skilled developers to actually really be able to dig into the hard parts of this. Well, then they just hire you. No, I mean, that's fair. You've got to sell that idea.
Starting point is 00:42:23 I don't know, it seems feasible. I think somebody saw the vision and the potential, even though the user count is low and the money coming in is low. And so if they're hyper-focused on ARR, which I think a lot of SaaS investors are at this point, they're just like, here's your numbers you got to hit and we got too many opportunities
Starting point is 00:42:38 so we're not going to even take a look at you. But I think the right person with the right business already who could see that vision and then realize, wow, this is almost like an untapped thing that just got burnt out because one guy has been doing everything and he's been neglecting the sales and the marketing and the business side, but he's available for contract or whatever. I don't know. I feel like you could probably get a sell, but that would be itself a whole nother undertaking that would make you have to ignore the product. Right. Yeah. Well, I mean, mean if that's like a if there's an end in sight like i think that's okay i think i
Starting point is 00:43:10 could have done that but i i still think that one downside is that like i had built up i think i could have sold i think it would have to like i'd have to swallow some pride because um it is one of those things where like when you do things solo you can build up a lot of like very personal relationships with your users and there's a lot of trust there there's a lot of things and so like there is another aspect where of like i bet if i had sold it would have been even more like there's a lot of people who reacted to open source where they are worried about like not being able to set things up themselves and totally makes sense because they're not technical users but they're happy for that direction i think if i had sold
Starting point is 00:43:47 it would have been like a very similar response from a lot of people where they're going to leave the app but it would have been like an angry response which i mean honestly like a lot of apps do that that's just things change and things things happen um but i think it would have i think there's a lot of trust in there that it's like i, that I've been saying I'm in it for the long haul and then you turn around and sell it. Which, you know, it's, it would have been my right to do,
Starting point is 00:44:10 to be honest, but still would have pissed off a lot of people and I didn't really feel like dealing with that. And I, honestly, I don't think it would have sold for.
Starting point is 00:44:17 That might have been the humbling part, right? It's like the price that you would have had to receive is probably not worth the sweat equity that you have in it. So it wouldn't have felt good
Starting point is 00:44:25 to have like this small exit plus maybe alienate some of your most loyal users i understand why that is not the best route and so open source is the path that you chose and then of course that's like the opposite of alienation it's like inviting everybody in, right? To a certain degree. I do have the ones that don't want to set it up and can't code and all that. But instead of spending your goodwill with a sale, you're almost like buying goodwill with open sourcing because now you're just giving a gift to the world.
Starting point is 00:44:56 How many users are you talking about here? You said 10k ARR, which is annual recurring revenue. So that's less than 10k in a year. Not 10k a month. It's less than 10K in a year, not 10K a month. It's less than 10K in a year. Oh, did I? I meant to say MRR.
Starting point is 00:45:10 Did I say ARR? You did say ARR. Sorry about that. Yeah, their requirement was at least like 10K MRR. Okay, so that's monthly recurring revenue. Okay. So what was your user account roughly? It was roughly 800.
Starting point is 00:45:23 Okay. I mean, that's respectable. Is that paying or is it all paid or is it freemium? No, those are all paid. Yeah, I don't have a free plan. So those are all paid in $800. So, you know, $3,200. Revenue, profit, or the cost of the business was really only a couple hundred dollars total.
Starting point is 00:45:39 So about $3,000, which wasn't, you know, it's not a bad side income stream yeah and another like i guess i'm thinking of people listening who are people sort of like me five years ago thinking about getting into development and like wanting to launch something out and thinking that they can make money one of the big shifts that i really have this really drove this whole experience really drove home for me just how different money is when you think about it from a business perspective i mean money is just entirely different from it like making three thousand dollars a month when i tell like my friend that they're like dude that's awesome like they're thinking of their you know 7k a month salary it's like you're almost making half of what
Starting point is 00:46:16 i make but when you think about that as a business income stream like suddenly i have to hire one developer even just part-time like there goes almost all that money not like that that's not even enough to hire a developer part-time like somebody who would be really skilled enough to work on actual and so money from a business perspective if like you know having to like set aside twenty thousand dollars to you know invest in development for a couple months like if you're a business and you can't afford that like that's a huge problem but 20k for personal you know if i'm about to buy something for 20k i agonize over that for a week for weeks i hate buying cars because they are so freaking expensive but like 20k in business money is is
Starting point is 00:46:56 nothing right i mean for most businesses that shouldn't be anything if you're doing it right so that it's been a big it's so like 3k you know a lot of people were like dude you're giving up three thousand dollars a month to me it's just like you don't understand like that the burden because like i was lonely and i really the next thing i really needed to do was either find a co-founder which i can do or hire somebody else for to help development like properly hire don't outsource steal some cheap labor like properly hire somebody to help development and like three thousand a month is not anywhere close to being able to hire somebody out. So it's just, you're kind of stuck in this awkward, this awkward middle phase, which I think happens with bootstrapping, right? You got to really bear it through that awkward phase where you make enough money to,
Starting point is 00:47:37 to get to the point where you can start hiring out. What about the 800 that you got? So what did you do to get them? I mean, what was the hard path today, the 800 people? Was it, you said no marketing or how did you get the 800 people? And what would it take to like 2x that, 3x that, 5x that? Like how hard was it to get that number? It was, I mean, I launched in early 2019 and I had like 30 to maybe by the end of 2019, I had like 100 people. So it was a very slow path for the first couple years, because I really was just building up the product, which, you know,
Starting point is 00:48:10 probably wasn't the best path forward. Eventually, I did start doing just lightweight marketing in the form of just content marketing, like I would just write blog posts, I would just write, I was just start talking more, right, I'll just get getting more exposure. And so that's uh that plus word of mouth where people would discover it and because they would see that it's a super fast app that's like surprisingly good compared to a lot of other things out there then it was just word of mouth marketing in a lot of ways which is you know the best and most powerful form of marketing even though it can be the slowest once Once I reached about 150, 200, then I was a slow, like every couple of months was another, you know, like 50 or 100 users.
Starting point is 00:48:49 And then it just sort of, it's a very, very slow ramp up. So this was very word of mouth, very organic growth. This was not like we marketed, we did Facebook ads. And so therefore we got a thousand users, which wasn't the case
Starting point is 00:49:01 because you got a hundred. But you know, you got a certain number of users because of certain output. You put out X and in comes X. This was organic growth. Mostly organic growth. I mean, I don't know if you would consider this organic growth, but another example is
Starting point is 00:49:14 going back to Absurd SQL. When I launched that, which got a ton of attention, that was a hugely successful launch. And actual was the implementation. This was the production usage of it and so that was a another bump so just things like that where it's just marketing via stream like other projects that get you know number one on hacker news for a whole day were you close to users at all did you talk to a lot of users yes i i had a slack um that was pretty active and now i've moved to discord when i open source it because Discord is just way, way better.
Starting point is 00:49:46 But I was pretty close to them. Like I would Slack most, or I would sit in the Slack and like every now and then it would be more and more active. And I would usually respond to email. Would you hear stories though? Would you hear like, this is how I'm using it. This is how I changed my budget.
Starting point is 00:50:00 You know, wow, Mint has great potential, but it just is X, Y, or Z wrong for me, and Axial is better, or YNAB was X, and this is better, or every dollar has a good possibility, but it's just too clunky, which I find that. I love the concept of every dollar, which is Dave Ramsey's application, kind of goes back to Jared's seller acquisition kind of thing. I'm asking these questions because I feel like, and I'm not in the weeds with you,
Starting point is 00:50:27 but just on the outside looking in to some of the things, if you got to 800, which is a pretty respectable number, with no money spent in marketing really, just effort and showing up, what if you did a little bit more on that other front, which is more storytelling of your user base and things like that? Could you have gotten to 3,000 users or whatever number that was double or triple that to give yourself, I guess, not just more money, which is a resource, but just almost the belief that what you're putting out there is changing lives?
Starting point is 00:51:04 Because I think my hypothesis in this space, this budgeting space, one, it's psychological. People do not like the budget. So when you talk to anybody about budgeting, it's almost like dogma. It's almost like religion in a way, even. It's like, whoa, hang on. You're talking about my money. What do you want to know about me? Are you trying to sell something to me?
Starting point is 00:51:21 So everybody has a different way they think about money and they think about budgeting. And so it's almost like counterculture to even talk, safer things in their life, buy a home, build a pool, buy a bike, buy a truck, whatever, buy these things you want to have in your life. You want to do these things, but nothing out there really offers you. And here's this thing that has this potential. And I see it as like a really good potential. You just need some more support to get you to that next big win, that next gust of wind to get you through the choppy waters and out to sea yeah i i think it's just the loneliness problem like if the i think there was almost such a point where like the thought of having 3 000 users or 800 like i just literally cannot support that by myself you need a co-founder because even if you got,
Starting point is 00:52:26 because you could have went out and maybe raised $5 million or $15 million, especially last year. Now it's probably harder. But money was cheap last year. But even if you did that, you wouldn't have that partner, right? Because you don't want to be a CEO or a manager. And that's what you would have to become with the money.
Starting point is 00:52:42 But if you had somebody who would do that, that would really what it was. Right. Lack of co-founder. Boom. Yeah. I think that's what you would have had to become with the money. But if you had somebody who would do that, that would really what it was. Right. Lack of co-founder. Boom. Yeah. I think that's what it was. And so here's the thing.
Starting point is 00:52:53 Here's why open sourcing really was the right move. And I'm like, this is, I didn't know exactly what to expect, but when I sat down and I talked to a couple companies to sell it, it still didn't sit right with me for the reasons we already talked about. I just felt like it would have been kind of a sour ending to this large project that I've been working on for a long time. And I like, I knew I didn't want to do that. I just really felt
Starting point is 00:53:12 like open sourcing was sort of like fulfilling the promise that I was telling people. It's like, I'm in it for the long haul. Like if something doesn't work out, then, you know, there's a potential for open sourcing it. And I, after doing that, I mean, honestly, it's been better than I could have ever expected. There's, I got way more attention. I don't like, it was number one hacker news for that whole day. I did not expect that at all. I didn't really, I didn't even know hacker news
Starting point is 00:53:36 would like really care or know what actually even was. But I guess it is, I built up enough of an interesting product. And there's the Discord has like, you know, it's got 600 users. People joined it that first day. 600 new people in your Discord the first day? Well, I was number one on Hacker News for the whole day, you know. So it got 15,000, 20,000.
Starting point is 00:53:59 But here's the thing. No, there's a really interesting model here, has potential of yeah this open source model um and i so i haven't turned off my servers yet like i i still have you know it's down you know 50 100 people left and so i have down about seven that's what i was gonna ask is like why not open source it but also just like keep building the business side because it's yeah i mean so that is a totally potential option. It's not something, I think, back in February when I was really digging into this
Starting point is 00:54:30 and starting to build out the open source version, I was pretty burned out on just the whole, I just want my time at night back because I have a full-time job too. Totally understandable. Even when we give you this feedback, I want you to understand we're not coming at you. We're empathetically talking with you through your journey. So do not feel like we're calling you out or saying you did wrong.
Starting point is 00:54:51 By no means. Everybody's journey is tough, and you made choices. I would say more than anything, Jared and I are trying to encourage you through the process. I see so much possibility, but you've been through the thick of it. Encouraging analysis. Yeah. So I just want you to understand that. And the listeners, too, to understand that, too, that we're not coming at James by any means.
Starting point is 00:55:09 Yeah. Well, that's what a lot of the, not a lot, but some of the Hacker News comments was like, dude, this guy's got balls. He dropped $3,000 a month on the floor. And it's just like, I read comments like that, and I feel like they don't, that goes back to the business money versus personal money type thing. But I do think there is some truth to some of those comments where there probably was potential.
Starting point is 00:55:30 If somebody was able to join me or figure out how to do this, make this work, then there is possibility that there was some other outcome where we could have grown this into something and it could have been good. But I do think that there is still, I think it's probably even better now than it could have been because there is this, the trust gained from having this open source model is huge. And so now it's like this very potent app of like very novel, very privacy focused. Now it's open source, that component even builds even more of the trust in
Starting point is 00:56:06 the privacy focused aspect of it which honestly i think this i think this whole world is going to move to at some point i think that it's also positioned in a point to where whenever we switch even more to privacy focused stuff as people are getting more and more allergic to everybody spying on each other especially with their finances that like this is a product soup so well positioned to counteract that like all it takes is one bad post for mint or ynav you know about them doing something bad with your data and actual b by the way when i open source actual um or so no this was before i open source actual this is a little bit of a rabbit trail but wine one of the reasons why i got 800 users i was about 500 back in november i think it was and ynav nixed their grandfathered plans
Starting point is 00:56:52 basically increasing the cost of ynav for all of these long-term loyal users they increased the price for them uh by 100 it was going to be twice as expensive for them because they were getting like a grandfathered price and it pissed them all off. They had a huge ton of people left YNAB around that time and there was a post on the YNAB subreddit about YNAB alternatives and
Starting point is 00:57:15 actual ended up being the top one, the number one YNAB alternative in that post, which is really cool. That was a cool, I gained 300 users from that within like a month or two. So that's another like, just need to market this probably a little bit better. But so there is still this potential for this open source model, working it really well, where you have this open source model, but you still have like open sourcing is great.
Starting point is 00:57:41 And being able to run it on your own server is great. But it is still something you have to manage and do and it's just kind of annoying um so we could still provide a hosted option and then the open source version just becomes a funnel into that hosted option um and from all of this visibility that i've gotten there's actually one or two people that i'm talking to who potentially could be a co not co-founder but like some sort of partnership role where they are interested in taking on more of that business part and then they get some of the profit and it just becomes like a mutual and so there's hope so like that i think is a very positive thing that came out of open sourcing is that just like the exposure and yeah people kind of being surprised
Starting point is 00:58:19 that it wasn't doing better and so they were interested in being involved to help make it better it's by no means the end of actual it's just kind of like a new beginning and it's opened up huge opportunities. That's spectacular. And it makes sense especially with this kind of app because it's such a mainstream potential user base.
Starting point is 00:58:37 That the further and further your app moves away from developer land in terms of the target audience like it's not a dev tool, for instance, the more you being open source for most people doesn't matter to them at all. They're like, oh, that's cool. Maybe they're like, oh, cool, so I can trust it.
Starting point is 00:58:54 But they're never going to be like, well, then I don't have to pay for it because I can self-host it. There's millions of people that will never do that. And they're not on Hacker News' homepage. So you expose it to those people, then they are you know early adopters and the ones that will self-host and stuff and so you're not getting them as customers but as it spreads through that mechanism yeah more and more of those people are not going to be running their own instance now maybe you'll have somebody stand
Starting point is 00:59:21 up their own instance say hey we also self- hey, we also host actual for $2 a month. Then you've got to make moves, probably. Yeah, and that is an interesting potential possibility, I guess. Talking to people about partnerships or do we want to have an official hosted version. Open-source version is a little bit risky because somebody could technically go along and do that. We talked about like licensing issues.
Starting point is 00:59:49 Maybe there is a license that could use to prevent that. But really when it comes down to it, after talking to people, there's not really, I think you burn more goodwill with weird licensing issues like that than trying to prevent that. So I think the best thing to do is just to get out in front. And if we're going to do that,
Starting point is 01:00:04 then we just need to do this sooner rather than later and prevent some side company from trying to take this and do that. But yeah, I think the good news is that I think that even though people might not really care about the open source aspect of it,
Starting point is 01:00:21 it's just an interesting model for me because a lot of developers are happy. I guess it's it's just an interesting model for me because uh a lot of developers are happy i guess it's it's interesting to talk about now contrasting this with the prettier kind of to loop it back all the way to the very beginning where when i was talking about prettier before i was a little bit angry at open sourcing and the entitlement of developers and users of that kind of a thing. But with actual, I'm sitting here now and I'm getting developers who, for some whatever reason, they care enough about it that they're happy to do free work for the app. And there's this potential to have a hosted version of it, which makes money for it. And so now it's like a lot of the development
Starting point is 01:01:03 burden has been lifted from me. And if I have a partner who is going to take some of the business burden too, it's like takes burdens from both fronts. And now like, so even if the user is not directly care about the open source, it still benefits the app because there are features that developers will come in and just implement for the app and the users can end up just getting them for free. Even if like, I would have never thought of that feature, right right so the open source is still beneficial for users too so to summarize you were you didn't want to grow because you couldn't support it personally as a solo founder you would love to keep doing it but that is you want to get your nights back you couldn't do that because that would require growth and growth means you solo still yes you
Starting point is 01:01:43 need more users but you can't get more users because you won't work on more users because it's like this cyclical thing happening here. What you really need is, is just really a co-founder to be in the CEO type role or that leader role and let you be in more of a CTO tech lead type role where you can oversee product and, you know, obviously be joint on company decisions and things like that. Doesn't mean you take a backseat by any means.
Starting point is 01:02:11 This is a lot like the story of InfluxDB. Paul Dix, that was kind of similar to what he did there. I don't know the exact story because I've had Paul himself on Founders Talk yet. But I did have his CEO now on the show, and that was quite an interesting story. Paul founded the company along with another person I can't recall the name of, and in many ways, Paul helps lead in a lot of ways the direction of InfluxDB, the product direction, et cetera, and permissive relations, open source, deeply rooted in open source. But he's in the CTO role and not in the CEO role.
Starting point is 01:02:50 And I think the point of encouragement I would give you is that you can still build whatever this is, even if it is open source, and still be successful and not have to be the CEO, not have to be the one who is in that manager lead role. You can still be in a lead role, but on a more product and technical focused role rather than the CEO, how does the company have finances and win in the marketplace role, which I think is more in line with the CEO role. It's kind of, CEO kind of does a lot of those things, but if you have a CTO, which is pretty often as a CEO, you let them handle a lot of those technical concerns and issues and you deal with different burdens.
Starting point is 01:03:29 But it's possible. I still think there's a lot of possibility for you. Thanks. Yeah. And it's something I'm still interested in. I think I was more burned out, like I was saying back in February. But now seeing just such a huge response to the open sourcing it is it's very encouraging so that that provides a lot of like a chance to sort of not just give it
Starting point is 01:03:53 all up i guess which i don't think i was ever going to do totally but i think i was feeling that a little bit earlier but now it's certainly like there's something here when you deprecated the mobile apps which is like a big portion of the user experience right like you basically cut off two of the legs if it's a three-leg chair stool you know that's two of the legs that's a lot and it's yeah it's it kind of sucks because i wish i had the courage to just do that two years ago because as much as i am just a really stubborn person and just really wanting to prove prove myself in some way and like i really do enjoy doing like ios not as much android but just like native apps uh i think it's they're really valuable and i do enjoy
Starting point is 01:04:37 but i should have just done that because it was such a huge i mean they're just they're written in react native and they use the same back end so like all of the logic is shared across them but the uis are are unique and they're different and i it was just like such a that was a bad decision um because that was not a good time investment and being in in the app stores i have a lot of gripes with app stores now too with like mobile development stuff because like apple i was pushing out an update to my app to just as for a simple bug fix um that was around the time apple was now requiring all users to use their subscription model and they rejected my app because they said yeah you're not using our
Starting point is 01:05:15 subscription model you're using stripe and i didn't even like have a i didn't even have the ability to have users subscribe on the mobile app. Like you don't, you could only log in. They changed their rules to be more strict. And so you literally, if you use a thing that requires a login, you have to use their subscription service. And so I ended up setting all that up. I don't know why I did it. And I, I did all that work and I got it working and it's fine. It's a whole different sign in subscription flow. It's just like pain in the butt. So cutting that off that really like i should have done it two years ago and i could have gotten maybe i could have gotten a better balance of work life stuff because that would have been able to you know just not as much work basically
Starting point is 01:05:55 but now it's like yeah again open source so there's some development help if i'm able to find people to help with the with the business and now we can ditch the mobile apps that's a much better balance like that is that feels a lot healthier but yeah so and i just investing in making the mobile or making the the app itself responsive and so you can actually load it in safari on the mobile app or something like that because um and then focusing on focusing on desktop as a primary experience probably and then the mobile app would just be, you can see a lot of the reports and see your budget and stuff like that, but there's probably going to be features that you just can't do there. But make it work on web.
Starting point is 01:06:43 This episode is brought to you by Honeycomb. Find your most perplexing application issues. Honeycomb is a fast analysis tool that reveals the truth about every aspect of your application in production. Find out how users experience your code in complex and unpredictable environments. Find patterns and outliers across billions of rows of data and definitively solve your problems. And we use Honeycomb here at ChangeLog. That's why we welcome the opportunity to add them as one of our infrastructure partners. In particular, we use Honeycomb
Starting point is 01:07:10 to track down CDN issues recently, which we talked about at length on the Kaizen edition of the Ship It podcast. So check that out. Here's the thing. Teams who don't use Honeycomb are forced to find the needle in the haystack. They scroll through endless dashboards playing whack-a-mole.
Starting point is 01:07:24 They deal with alert floods, trying to guess which one matters, and they go from tool to tool to tool playing sleuth, trying to figure out how all the puzzle pieces fit together. It's this context switching and tool sprawl that are slowly killing teams' effectiveness and ultimately hindering their business.
Starting point is 01:07:39 With Honeycomb, you get a fast, unified, and clear understanding of the one thing driving your business. Production. With Honeycomb, you get a fast, unified, and clear understanding of the one thing driving your business, production. With Honeycomb, you guess less and you know more. Join the swarm and try Honeycomb free today at honeycomb.io slash changelog. Again, honeycomb.io slash changelog. And by our friends at MongoDB, the makers of MongoDB Atlas, the multi-cloud application data platform. Atlas provides an integrated suite of data services centered around a cloud database designed for scale, speed, and simplicity. You can ditch the columns and the rows once and for all and switch to a database loved by millions for its flexible schema and query API.
Starting point is 01:08:22 When you're ready to launch, Atlas layers on production grade resilience, performance, and security so you can confidently scale your project from zero to one. Atlas is a truly multi-cloud database. Deploy your data across multiple regions simultaneously on AWS, Azure, and Google Cloud. Yes, you heard that right. Distribute your data across multiple cloud providers at the same time. The next step is to try Atlas free today and have a free forever tier. Prove yourself and your team that the platform has everything you need.
Starting point is 01:08:50 Head to mongodb.com slash changelog. Again, mongodb.com slash changelog. so let's nerd out a little bit on some of the tech you have inside of this project because hey it's all open it's all out there it's all there to be seen and heard although absurd sequel is not in the actual org it's on j longster so we'll make sure to link to that one separately but that seems like a good place to start because this is like a separate project like you said actual uses it and it starts off the read me this is an absurd project so you touched on it but give us the more of the deep dive what is this thing why is it absurd why did you build it yes it's absurd because the
Starting point is 01:09:45 web storage apis are just absurd and this adds on additional layer of absurdity it's because essentially i really wanted to use sqlite in the browser and so to do that you can use in a web assembly compiled version of sqlite and so there's this big binary blob that you can download, and it runs just fine. The problem is that it doesn't persist. And so in SQLite, usually it persists. It knows how to persist to disk by writing out individual small chunks,
Starting point is 01:10:17 usually on the size of like 4K blocks. And so as the data changes, it writes those blocks down into the disk. The recommended way that I've seen before to persist sqlite databases before is to actually just write the entire database to like index db and so you're literally if you have a 10 megabyte database every single change you're writing down an entire 10 megabyte string like encoded string it's totally ridiculous and horrible like it's just not that's just not going to work and so the absurdity comes into play because the way that this works is it hooks into sqlite's
Starting point is 01:10:54 apis to write things down and it basically captures those requests it basically acts like a file system so sqlite tells the file system to write down these 4k blocks and then the file system goes and says okay i'm going to go and write them down on your hard drive well with absurd sql what it does is it takes those blocks and writes them down into index cb and so if you look in index cb in actual you'll see just and use you look at that database you'll just see a bunch of pages meaning like each row or not not, each row is a is a is a block. And so there's each row of a 4k binary, like array buffer. And so it's absurd. The one level of absurdity is that it's translating SQL light, which is this normal database thing into index DB.
Starting point is 01:11:41 There's another another level of absurdity where there used to be this thing called web SQL, which actually was SQLite provided as a web API. So you could literally run like SQLite SQL queries directly in the browser. And that was like another alternative to index DB, index DB one out. So unfortunately, we need to do this weird hack where we stored in index DB. Now the absurdity goes even deeper, most browsers use sqlite internally to implement index cb and so technically speaking when you're using absurd sql to like store the sqlite data in index cb what's happening is that it's storing it in index cb in these individual blocks index cb is then taking that and cutting it up differently and putting each of those blocks and different things inside of a SQLite table on your local machine, which then that actually gets cut up differently and ends up in your hard drive in a totally different way. There's like four different layers here that the web browser is forcing you to go through instead of just opening a direct SQLite file on your local machine and letting SQLite optimize against the pure
Starting point is 01:12:45 raw file access. Wow. Do you know why IndexedDB won out over WebSQL? The biggest reason, I think Firefox was, or Mozilla was a big pushback or a company that pushed back. I think Safari might, no, I think Safari was one of the ones that embraced it i can't remember exactly but i think mozilla was one of the main ones that pushed back for with the reasons that the apis were would be determined by sqlite like sqlite would be the referenced api for a web api and that was concerning because they didn't control the web API, essentially. Like when you run a SQL query and give it to WebSQL
Starting point is 01:13:31 and it gives it directly to SQLite, browsers can no longer tweak the API, change the semantics and do things and control it in ways that would be better for security. Like say there's a security flaw or there's something that they find problematic with how it plays with the browser. They have no control over that.
Starting point is 01:13:50 And so I do actually understand the reasons. I think it's... An alternative would be to subset SQLite and say here is our allowed list of keywords that you can use with SQLite and we'll pass all those directly through. But these are the ones we don't support. Maybe that would be an option.
Starting point is 01:14:07 Something, I mean, there could be more nuanced problems where it's not even just keywords, but it's just like you do a select with an inner join in a specific way that it ends up hitting some flaw in the whole system. But another way could be to fork SQLite, right, and do stuff like that. Have a SQLite-esque API.
Starting point is 01:14:26 Right, and it's something that they control, but it's still, I think basically, if you look at any web API, you can go and hit a formal spec for that API. You can go and see in this massive HTML document, they all look exactly the same. They all have the table of contents. They all have exactly the same spec format. have the table of contents, they all have exactly the same spec format.
Starting point is 01:14:46 This did not fit that mold at all. This doesn't have a spec. The implementation is the spec. And so I think web APIs tend to be kind of allergic to that kind of stuff because it didn't go through the web standards process and so it just isn't as vetted. And so I think there's some fear for that because when it really comes down to it, if they embrace this and it really came to be
Starting point is 01:15:12 this big thing and this big standard API, but there ended up being some pretty critical security flaw, I mean that could be a pretty big problem for the web. That could be a death of the web type situation well they could just patch it like they patch any other security flaws in the browsers right well it's but what if like there it could be something intrinsic in how sqlite works because sqlite was not built with the browser in mind right so there just tends to be i i don't know, I think I get the fear I think it's unfortunate that there wasn't a more involved attempt to reach that need
Starting point is 01:15:50 I think it's unfortunate that IndexedDB was the solution, I think, essentially I don't know what the better solution would be but it's unfortunate that it just died without really trying out the things that we're talking about Well it seems like it's never too late to add. Like, IndexedDB is going to be there now. And it's there. But local storage is also there.
Starting point is 01:16:15 And so maybe at some point they revisit and say IndexedDB is clearly insufficient for developers' needs based on the absurd things that developers are doing in order to have an API that is useful and malleable and desirable in the browser. Hence, look at James Long's absurd SQL project. Maybe it's time to give them something else. I don't think it's too late for that.
Starting point is 01:16:41 I think, obviously, the original VHS versus Betamax is over and IndexedDB won. It looks like back on Can I Use WebSQL database, Firefox never supported it. Safari had support for Safari 3 through 12 and then they took it out. So not sure of the story there. And everybody else seemed to support it.
Starting point is 01:17:04 It still does, it looks like like just can't count on it being there so okay absurd sequel i guess but the moral of the story is it's still faster than index db isn't that what you said earlier in the show is that's the crazy part yeah those this was one of those things that uh was like a rare combination of events that like i i implemented it to do to get to a certain need and then it like just there's these other compounding factors that sort of played out which was surprising in a very very good way the reason is because index db is just very very slow that's like one of the critical problems with it when you're doing like more than a couple reads
Starting point is 01:17:40 and writes it just gets very very slow especially in certain browsers. I think Chrome, I can say this with confidence, actually, Chrome was one of the slowest ones. It was pretty bad. You can use transactions and you can sort of manually optimize it, but it gets very difficult to optimize, especially when you're doing things at the application scale. And so with SQLite, what it does is because it's writing down these 4K blocks, when you make a bunch of writes, 4K is actually a lot of data. And you can do a lot of updates into a pretty large, like you can update thousands of rows in SQLite. And it will end up only having to write to like two of those 4K blocks.
Starting point is 01:18:20 And so what you end up with at the file system, or not at the file system layer, but at the browser layer at the index DB layer is two rights. You write these two 4k blobs and like actually writing those 4k blobs, or writing one 4k blob is fast. It's like something about the actual overhead of a right in index DB that is really really really slow like writing 4k that amount of data is totally fine that's like it's the same as writing like two bytes it's just something about the actual write call and the transactional semantics and all of that is just really really slow so if you update a thousand rows in absurd sql and just use sqlite you automatically get that batching down to just two index cb writes instead of doing a thousand indexed EB writes, which is just like incredibly slow, unless you do it in a super specific way. But that means that your entire app,
Starting point is 01:19:13 if you're writing it against indexed EB, has to be aware of these like very specific pitfalls of performance. Whereas with Absorbed SQL, you get all of these improvements for free. So you can just do as many writes and reads as you want to. And it's just super, super fast. For reads, it's the same thing. You can read 5,000 rows and it ends up only doing three reads.
Starting point is 01:19:35 If you look at the graphs on my announcement post, it was insane when I actually benchmarked it out. The performance of SQLite just grew as a huge like curve and then like the like if the y axis is the milliseconds you'll see index cb is just like this small blue line as the rows are getting larger at the very very bottom but index like sqlite is still going all the way up you ever talked to richard hicks about this stuff sorry richard hip i haven't they actually just released some sort of like in browser thing um and they were saying it's just not the same use case, and absurd SQL is a great way to persist it. But I should reach out now that it's kind of a proven project.
Starting point is 01:20:11 Yeah. Well, worst case, he's just curious. He was talking about the test suite. That's another thing I was thinking about with actual. Did you include the test suite with the open sourcing of actual? Because part of the beauty of, you know, if somebody grabs actual in the future, open source-wise and tries to beauty of, if somebody grabs Actual in the future, open source-wise and tries to use it,
Starting point is 01:20:28 if they don't have your test suite, then in SQLite's case, then that's the cream of the crop. They're running lame. The massive test suite behind the scenes. Yeah, it's an interesting model. Do you have a test suite? Actual does have a test suite.
Starting point is 01:20:41 I always got to clear that, just in case. Yes, totally. It doesn't cover everything, especially at the UI layer. It doesn't cover most of the stuff. However, I literally took the folder actual and I removed a bunch of the tracking and subscription code,
Starting point is 01:20:59 but I actually published pretty much the folder as it is with all the test suites and everything like that. Oh, wow. All right, so that's Absurd Sequel. Links in the show notes. What else are you proud of in terms of actual technology? I think there's a lot of things I'm proud of technically. I mean, the whole local first thing is pretty novel
Starting point is 01:21:19 because I think Absurd Sequel is really one cool thing to come out of this. Another thing which I haven't really spun off as its own project or anything like that just because i don't really i'm not super interested to do that is um the syncing engine and so you mentioned hearing me on some other podcasts that's probably what i was talking about which is uh there's a whole because it's local first you still want the ability to have your data on different devices and like automatically have it backed up in a way so that if you just like drop your computer and it breaks, you don't want to lose your data. I think that was one thing I ran into early on, which is like, man, this local first step is so cool, but it really sucks that like, if I drop my computer, like it's just gone.
Starting point is 01:21:57 Like that's why the internet and the cloud came to be such a compelling platform. And so I was talking to some friends and I was looking into it a little bit and I almost didn't get this to work, but I landed on an architecture that ended up working really well where all of the changes happen locally, but they go through this system using something called CRDTs
Starting point is 01:22:18 that it's a pretty elegant solution to this whole problem where it can sync these CRDT messages around and everything always syncs up to the latest version and it can sync these CRDT messages around and everything always syncs up to the latest version and it's a whole custom syncing layer and it works pretty well. So I'm pretty proud of that. Why are you not interested in extracting that?
Starting point is 01:22:34 Just too ingrained? It's kind of ingrained. It would take some work to extract it out and I'm also not entirely sure what I would really get out of it. I think that there's such a small amount of people that... Another H round another hacker news round yeah another project to support so i think there is at this so i started that probably three or four years ago and there are other projects a project called yjs which i would recommend linking to if you can it's another crdt
Starting point is 01:23:01 implementation um that there's other more mature projects there's that and there's auto merge which is another part i think there's a third one too that i forget that i would push people towards using i just don't have any interest in like competing with those ones but like now that i've already ingrained it into actual and it works pretty well like i'm not i'm not interested in switching mine to others but i wouldn't recommend sure you know i'm not i'm not going to tell people to use mine when there are these other more mature ones out there. Comments on React Native.
Starting point is 01:23:30 It's like you're using React Native. I am using React Native currently for the mobile apps that are, that are going away. I think a lot of my problems with it are just Facebook's management of it because it's very driven from internally. They, they develop react native for their stuff and then they sync out the changes to the open source world and it makes the whole open source world feel kind of like a second class you know citizen it's a little bit weird to me there's a company called expo that like does a lot of tooling and and libraries around react native
Starting point is 01:24:01 a lot of that work is really really really great it's a little bit weird to me though that a lot of that's even required like i like to use things at its core like i like to use it like straight out of the box because that's just usually that's the most supported method um but like expo is kind of the most supported method now for react native and it's a little bit weird to me that like a third party is the most support in fact i think if you go to react native docs expo is like the thing to get started. And I don't really understand why they haven't merged yet. And I assume it just because of,
Starting point is 01:24:32 they don't want to be part of the Facebook org and all that kind of stuff, you know? So I think there's just like, it feels messy. It feels like I'm not sure who is what, which libraries to use. There's like a react Native reanimated library, which is an amazing animation library
Starting point is 01:24:47 that fixes a lot of problems with React Native's built-in animation library. But why do I need to use an entire replacement for the animation system? And I feel like I have to glue together a lot of things to get it to work well. And so that's kind of annoying. But it's a pretty good,
Starting point is 01:25:04 I'm very excited for the React Native rewrite that they're doing. They're actually rewriting like a lot of the core components to fix some of the pretty core problems with it. And so I think there could be a good feature for React Native, but I'm a little out of it.
Starting point is 01:25:21 I haven't really used it for the last year when I kind of stopped working on the mobile apps. Well, your desktop app is built on Electron, and you want it to be fast and simple and privacy-focused. There are alternatives upcoming around Electron. I think Tori is the one that people are talking about today. We haven't really looked into that much, but Electron's awesome. It also can hog resources. I'm curious if you've thought of if you've done any workarounds
Starting point is 01:25:49 or if you've thought of trying out something and the newer crop i think there's tori's the one on top of my head but there's two or three kind of like we are cross-platform desktop frameworks that are not electron it's kind of what their pitch is. And curious thoughts there. Sure. I haven't experimented with them a ton. I'm super interested in them. Tori, Tari, however you say it, I have a lot of respect for it. I know people who rave about it that I respect. And so that typically is like a signal for me that I should look into it.
Starting point is 01:26:21 But I just haven't had the time to really look into it. I should be relatively painless to port actual over actual already is works on the web and so it works in most browsers and so if it's something that's using like the local version of the browser should be totally fine i'm not embedding and assuming electron specific version of the render is is there i don't do a ton of like desktop integration i don't do a ton of like desktop integration. I don't do a ton of like really weird native API usage of Electron. Most of the app is pretty isolated in the web view. So the one thing that I do use is the backend process. When you call fork on Electron,
Starting point is 01:26:57 it actually forks a native node process. Like it's as if you ran node from the command line. It's just, it's pure node. Like there's no UI. That is what the back end runs which is really nice because i just have a pure isolated node process so i'm curious how tori solves that or how i would do that there if i can spawn like a node process for the back end then i'm good but i haven't really had a chance to look into them a ton cool that's a show we should also do. Adam, we're talking, what shows should we do? I think a Tori show at this point
Starting point is 01:27:27 would be on point. That's all for me. Any other cool tech in there, James or Adam, anything you've been holding back, questions to ask him? Just to mention on, or a note on Tori, we had a really good episode with them on GS Party, then rebroadcast
Starting point is 01:27:44 it on a changelog from 1Password. And then they're actually a premium sponsor of Atari, so that's interesting. 1Password's a sponsor of Atari? Yeah, they're a premium sponsor. There's two tiers, just sponsors and then premium sponsors.
Starting point is 01:27:59 Aren't they on Electron? Are they built on Atari now? I don't know, maybe there's something happening there. Okay, interesting. Any technological innovations that we haven't uncovered or just hiding in an actual source code waiting to be found? There's probably other stuff in there. I think the syncing stuff and Absurd SQL
Starting point is 01:28:17 is really the two groundbreaking things, I think, that are most interesting. Well, the source code's open. So go out there and dive into it. Check out what James is up to. I'm sure he's accepting contributions. What's your call to our listener if they're interested?
Starting point is 01:28:34 Is it the open source side? Is it encouragement? Is it check out Absurd Sequel? What should they be doing to connect with you and connect around this project? I think the easiest thing is discord so if you uh i guess we can maybe add a link to the discord in the show
Starting point is 01:28:50 notes it's probably the easiest way sure to i don't have like a clear page to to just say right now which has has the discord link we'll link to actualbudget.com which will link to most things is slack is listed in your community section. So Slack is... I got so burned out, y'all. I haven't even updated it to Discord. Just quit updating links and stuff. We'll go direct to Discord as well. We'll have all the links.
Starting point is 01:29:15 I mean, if you go to actualbudget.com slash open source, that does have a link. That's my open source post that does have a link to Discord, which I will make sure is updated to the latest one but that's probably the best place to that's where the community is very very active there and that that's where i haven't been as i just moved literally in the last like two weeks and so i haven't really been involved there much but i do usually dive
Starting point is 01:29:37 in there every couple days and sort of just like involve and like talk to the community and so that's where you can ask people you know how can i help like what's the community. And so that's where you can ask people, you know, how can I help? Like, what's the status of everything? I really would love soon help just maintaining the GitHub project itself, you know, just setting up everything, setting up web hooks, making sure actions work, just things like that, because there's actually a bunch of PRs out there that I haven't had time to really manage. But we really really manage. But I need help setting up just a whole contribution process for how you block PRs on reviews and things like that. So if you have a lot of experience with that, that's probably the most needed.
Starting point is 01:30:15 But I would say jump into the Discord if you're interested at all. And there's a lot of really active people there to help get started. Cool. One correction you said, slash open source. It's slash open dash source so if you're listening and you went there and it 404s that's why we'll put a link in the show notes to open dash source james so you're taking a break for a bit you think you're gonna take a break for a bit what's a good hypothesis of what you might do in the near future as it relates to
Starting point is 01:30:43 actual are you breaking are you you getting back with family in time and getting your evenings back like how you feeling you know i think the open source scene uh or just all of the attention that it got from that was pretty encouraging like i think if i'd open source it and all of my just existing users were like oh that's cool um and then they started using the open source version i'd probably eventually you know not do much um but i'm kind of i'm re-inspired a little bit so i i think i might um i'm we just moved and so i'm focusing on on all that right now i think i'm just finding better balance and uh we'll just i kind of see my role right now as sort of a project maintainer just like helping helping people get PRs in, answering the questions,
Starting point is 01:31:27 and just kind of helping the project along. And then if there's a business partner and if one of those people work out, then we might have a hosted plan coming out soon that will continue that on in a different way. It will look the same as current users, but it'll be a whole new stack where it's hosted somewhere else. That is a potential opportunity. But right now, I mainly just see myself as a project manager
Starting point is 01:31:49 to help unblock people who are interested in helping get things done, just helping get PRs in, basically. So that's the near term for now. But right now, my job and my family and my nights do come first. So there'll be weeks where I don't do much, and that's okay. That is okay. Good for you, man. That's good.
Starting point is 01:32:09 The one thing I think I want to give you a pat on the back for is prioritizing your priorities, really. So often do we just pursue things blindly in some ways because we're passionate. We like complexity. We like to do clever things. We like to innovate. We love to pursue the dream of something, right? But you got your family, you got your girls, as you mentioned in the show, and making sure that you're the James,
Starting point is 01:32:37 you need to be the daddy, you need to be for them is the most important thing in the end. Finding that balance is really the most important thing. And we want you to have that. We want you to have that balance and go back and get that balance. And if the passion bug gets you again, we want to encourage you in that path too and figure something out. We think there's a lot of opportunity here. Jared and I know we're asking lots of grilling questions about where you've been, choices you've made and whatnot,
Starting point is 01:33:02 but we just want to be a source of encouragement for you that when and if you pick the ball back up, we'll be here to say, you can do it. Well, cool. Well, thank you. I appreciate that. It means a lot. And thank you for coming on the show and answering all our questions and exposing the world with your code and all the cool stuff you're doing with Absurd and actual server and just your journey.
Starting point is 01:33:26 We really appreciate you sharing a lot with us. So thank you so much. Yeah, thanks for having me. I enjoyed it. It was good. All right. That is our show. Subscribe now.
Starting point is 01:33:37 If you're new, head to changelog.fm for all the ways. Long time listeners, do us a solid and share the changelog with your friends. That's the best way people find out what we're up to. In fact, I'll cut you a deal. Email a personal recommendation to three friends and bccjared at changelog.com I'll send you a free
Starting point is 01:33:58 pack of changelog stickers. That's a win, win, win. With win, win, win we all win. Changelog++ members, stay tuned for your bonus pre-show backstage conversation. We discuss so many things. The market downturn, layoffs, collectibles like Ken Griffey Jr.'s Upper Deck, Rookie Card, the insanity of modern-day shipping fees, money for nothing by Dire Straits,
Starting point is 01:34:17 cringe laughing at comedians, and so much more. If you're not a member yet, there's no better time to join. Learn more at changelog.com slash plus plus. Thanks again to our partners at Fastly for having our CDN covered, to BMC for these dope beats, and to you for listening. We appreciate you. That is all for now. We'll talk to you again on the next one. Outro Music

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.