All the Frontends, Onboarding Nova, and MySQL Stuff

January 27, 2022

We're wrangling multiple frontends all at once, trying to onboard Nova users, and Aaron did some fun MySQL stuff.

Transcript

Aaron
00:00:00 – 00:00:07
Okay. We're recording. Colleen, you're, you're not at home. Looks like are you at co working space?
Colleen
00:00:07 – 00:00:14
I am. I joined a co working space because the January blues were getting me down, and I needed to get I
Aaron
00:00:14 – 00:00:18
heard that. Yeah. I heard that on software social this morning.
Colleen
00:00:19 – 00:00:33
Oh, yeah. Yeah. So I figure step 1, I know 3 people here at this coworking space. I use the term no loosely, like I've met them once. And so I decided to join to literally just get myself out of the house.
Colleen
00:00:35 – 00:00:38
Yeah. So So this is why my mic doesn't sound as good though. Sorry about that.
Aaron
00:00:38 – 00:00:40
How often are you planning on going?
Colleen
00:00:41 – 00:00:42
Three times a week.
Aaron
00:00:42 – 00:00:43
Oh, nice.
Colleen
00:00:43 – 00:00:44
As it visits to my schedule.
Sean
00:00:44 – 00:01:01
I had the co working space pre pandemic, and that was a significant, like, mental health plus. Though I didn't know anybody in the co working space very well. I mean, eventually I got to know people a little bit, but it just helped to have people around. You know?
Aaron
00:01:02 – 00:01:02
Yes. Yeah.
Sean
00:01:02 – 00:01:30
So I had this, like, community in our b biz Slack, but just being at home plus that was not enough. And then I got the co working space, and I was like, I think what's going on is I've tricked my brain into thinking that I'm hanging out with my friends all day because I got enough interaction in b biz, and then I had, you know, human bodies around me. And I used to I you kinda get that at coffee shops, but you get sick of working at coffee shops. Like, you just want your own
Colleen
00:01:30 – 00:01:30
Yeah.
Sean
00:01:30 – 00:01:40
You know? Like, I had my own desk, so I could and also having my own desk and office was brilliant because I could also walk there. So it was like a 15 minute walk. I did my work there. It was not at home.
Sean
00:01:40 – 00:02:07
So even if Beth was at home for a while with the kid or whatever, I could just leave. And then walk back and the buffer between like, I'm the anti commute, but, like, having, like, a little break in between was good for separation between, like, work and personal life. Yeah. Anyway, the the the mental health benefits of the co working space were significant. I'm looking forward to getting that started again at some point.
Sean
00:02:07 – 00:02:07
Yeah.
Colleen
00:02:07 – 00:02:36
I I think so the only downside is there's a wait list for private desks. So I'll have to see how that goes in terms of, like like, sitting in the chairs that aren't quite as comfortable. But I agree, I'm also anti commute, but on the way here, I listen to startups for the rest of us and, like, you know, got in the headspace, and it's only 12 minutes. So it wasn't like it's eating significantly into my day, and it still kind of gave me an opportunity to separate them. So I think my energy feels really good today.
Colleen
00:02:36 – 00:02:37
I think it's gonna be really good.
Aaron
00:02:37 – 00:02:39
Or you have a lot of happy beer today?
Colleen
00:02:39 – 00:02:44
Or I had or the coffee is free. It's hard to say. It's hard to say.
Aaron
00:02:44 – 00:02:50
Sean, is this co working space that you were at the one where they actually thought you were a company that was preparing for an alien invasion?
Sean
00:02:51 – 00:02:52
Yep. That was the one.
Aaron
00:02:54 – 00:02:55
I was
Sean
00:02:55 – 00:03:09
there for years until I finally figured out one day because people started sending me emails to, like, alien conspiracy stuff. And I was like, oh, that's really cool. Thanks. Wow, interesting. Thanks for sharing that with me.
Sean
00:03:09 – 00:03:28
And I'm like, why do they keep sending me this stuff? And then it finally dawned on me that because somebody asked me the thing that well, somebody eventually just asked me. They were like, so your company's name is Planning For Aliens. Like, so what do you do? Like, do you have you know, they're literally asking me, like, how I'm planning for aliens.
Sean
00:03:28 – 00:03:48
And and if, you know, like, if I run a podcast about that or because they because they would see me go record in this room. One time I'm in there recording in this room, and one of the guys comes by and is, like, doing, like, fist pumps in the air at me. And I was, like, oh, Kabal. He's really excited for me for this for this podcast.
Aaron
00:03:48 – 00:03:49
Big alien fan.
Sean
00:03:49 – 00:04:00
Yeah. I think he was just being real supportive of my conspiracy theory podcast. I mean, it's through years. I lived I worked there for years. That's what they thought.
Sean
00:04:00 – 00:04:01
It's like, okay.
Aaron
00:04:03 – 00:04:09
That is too good. Well, Colleen, you wanna keep going? What's going on with me?
Colleen
00:04:09 – 00:04:26
Yeah. Sure. So let's see. So the plan this week. So last week and the week before, I've spent a couple weeks kind of figuring out as we've discussed doing the nested filters, and so that worked as kind of an MVP in order to show them what I was working towards and what we were building.
Colleen
00:04:27 – 00:05:05
And so the next the plan for this week is I'm gonna actually pull out that stuff, create a filter condition, and then we're also as Aaron and I had a chat about this, but we're gonna have filter condition and we're also gonna filter refinements. And hopefully, the structure of that is gonna be kind of similar to the way we're able to do refinements now with just a few tweaks. So that's the goal this week, and that's a pretty, I mean, that's pretty it's a pretty big change, but now that I know how to do it, I don't think it will be super super time consuming. So that's kinda what that's what I'm doing on my day job. So for my night job this week, I want to work on that repo I pulled out for Jesse.
Colleen
00:05:05 – 00:05:26
I wanna get that working in a sample rails app with the front and back end. So that's my night job. I think that's gonna be the challenge there is just, the way we're stabilizing and the way we're pushing and the way we're managing the blueprint on the front end and turbo, and the Ajax request for sending the back end. When I pulled that out, it didn't pull completely cleanly. So I wanna get that working.
Colleen
00:05:26 – 00:05:40
I think that's the first step. I gave myself, ask myself, whatever, 2 months to kinda have this ready to go. I think that's realistic. And so first step is pulling it out, see where I am, and then go from there.
Aaron
00:05:41 – 00:05:50
And the 2 month time from Jesse on the sorry. Go ahead, Aaron. I was just gonna say the 2 month timeline is the one that you gave to that 1st Rails person that you reached
Colleen
00:05:50 – 00:05:50
out to.
Aaron
00:05:50 – 00:05:51
Ben. Okay.
Colleen
00:05:51 – 00:05:57
Yeah. I told Ben 2 months, and I think, you know, I think that's realistic. And I think,
Aaron
00:05:58 – 00:05:58
I
Colleen
00:05:58 – 00:06:07
I think it'll be good. Like, I think it's gonna work out. So really it's I mean, as Sean told us 2 weeks ago, but he's right. Like, it's kinda done. It's not kind of done, it is done.
Colleen
00:06:07 – 00:06:15
I need to revisit in line errors because there's something funky going on with relationships. How are you guys doing inline errors? Are you just with your
Aaron
00:06:15 – 00:06:16
In what regard?
Sean
00:06:16 – 00:06:24
Aaron gives me Aaron gives me, so it's a a reason components. Right? Because it's a view Right. Front end. So we just have an errors prop.
Sean
00:06:24 – 00:06:25
Do we just get the errors?
Colleen
00:06:25 – 00:06:28
Okay. You just get the errors. Yeah. Okay. Yeah.
Colleen
00:06:28 – 00:06:28
I haven't
Sean
00:06:28 – 00:06:29
had time
Colleen
00:06:29 – 00:06:47
to look at it. Yeah. I haven't had time to look at it, but what's happening is something weird is happening with the hot wire and the net. It only happens on relationship attributes, but something kinda funky is happening with errors. But that is going to I'm gonna look at that again probably next week.
Colleen
00:06:47 – 00:07:06
But that's the only thing that's a little dicey, on what we have. But otherwise, we're ready to I mean, ready to ship. All of the big pieces are done for rails and hot wire. So I just need to figure out how to pull them out, separate them a little bit from forcing the stabilized URL, to give the user more options. But, yeah, that's kind of the immediate what is this?
Colleen
00:07:07 – 00:07:09
I'd say rest of January plan.
Sean
00:07:09 – 00:07:16
Yeah. I'd say that sounds that sounds awesome. I'm psyched. Did you get any feedback from Jesse? Like, he looked at it, evaluated it.
Sean
00:07:16 – 00:07:19
Did we actually, like, close that loop?
Colleen
00:07:19 – 00:07:32
Yeah. It didn't work for his use case because they're doing this user specified JSON, and so, that's the feedback. They're having other issues, it sounds like, that are closer alligators to the boat.
Sean
00:07:32 – 00:07:34
Oh, so he stopped working on that.
Colleen
00:07:34 – 00:07:51
Yeah. Basically, they shelved it. It it wasn't because it they didn't think it was good software, Just they were having some kinda other issues, and, our thing our refine didn't, like, immediately slot in with what they were trying to do on the front end, and so they kinda took a different direction.
Aaron
00:07:52 – 00:07:57
Yeah. I think it was there is 2 things. I think it was the front end. They wanted to use their own custom thing. Yeah.
Aaron
00:07:57 – 00:08:02
And then the second one was the user defined JSONB stuff in Postgres.
Sean
00:08:03 – 00:08:04
Okay. Makes sense.
Colleen
00:08:05 – 00:08:05
Yeah. Well,
Aaron
00:08:05 – 00:08:12
you sound a lot more chipper this week, Colleen. So I'm I'm happy that co working space and coffee and whatever it
Colleen
00:08:12 – 00:08:18
is is cooking in. Yes. A plan. I like to have a plan. I like that I have a plan now.
Colleen
00:08:18 – 00:08:28
I know what the rest of the month holds, from a work perspective. I mean, as long as the children stay in school. We're just all doing the best we can. Right?
Aaron
00:08:28 – 00:08:35
Yep. Cool. Anything else you want to talk about? Sean, what's going on with you?
Sean
00:08:36 – 00:09:30
So we got I talked with Neil yesterday, so he's, you know, ongoing, getting things up and running the way he would like it. So the sort of broad themes that I'm getting are, which is helping me prioritize is, and this is also the same feedback from you and you trying to essentially do a highly customized version of our front end in Nova, is that the efforts right now should be work focused on customization. So the the theming stuff is good enough for now, but it's gonna need to be improved soon. The ability to eject from our components exists, but is limited and is not fine grained enough. So we'll we'll put some effort into that.
Sean
00:09:30 – 00:09:54
Sounds like Jeff is gonna be working on that. And then, so we'll put a little effort into that and we'll be able to test it out with Neil and you on Nova. So we'll be able to see if that API feels good or not, if it works. So that's perfect actually. And I think that that's probably in terms of business objectives and goals.
Sean
00:09:54 – 00:10:40
That makes the most sense because I suspect that I think from when we think about marketing for this that we're gonna need to work on the I think the concept is easy to understand, and I believe that we'll be able to show that like immediately. But then I think the first thing that needs to happen is we have to overcome the objections, which there will be plenty from developers. That's what I think. Like, I think that we need to overcome the objections and customization, like fine grain customization is a way to check that box and overcome, objections. And I'm thinking about it when I pick tools in the past, it's been the same thing where it's like, okay, maybe that's not exactly what I want, but Oh, look, I can do my own thing here and tweak it.
Sean
00:10:40 – 00:10:59
So it's fine. It makes you feel better about the purchase and then you can just, and then you can just go from there. Also to that end, still think that this is just a stray thought. We don't have to follow this, but that the, that overcoming objections will be like our primary thing that we got to do with marketing. So it'll be like there are docs, there are features, yada yada.
Sean
00:10:59 – 00:11:20
But also I still think that a big thing we could do for that is let them just use the package before they buy it to make sure that it works. But I just keep wanting to bring that up and so we can keep that in our minds and revisit it and see if that starts to make sense to you guys or if it doesn't. But either way, just want to bring that up. So, yeah. So all of that stuff is really like aligned and makes sense to me.
Sean
00:11:20 – 00:11:42
And I like the way we're spending our time and money right now on the front ends on that stuff. So then that's all like, actually Jeff is going to be working on that. So I'm freed up from that. So then I'm working on the marketing stuff. So I'm doing the, I am using remix, which is a react framework to build us a little blogging platform.
Sean
00:11:44 – 00:11:59
That I'm hoping I could turn into a little bit of content marketing. We'll see. That should be an opportunity, so it won't be won't be wasted. And then the next step there is really trying to get landing pages. So there's 2 landing pages that we need.
Sean
00:11:59 – 00:12:15
1 is like kind of just a homepage, which is less important. And the other one is the for now. And the other one is the, the product landing page for Refine specifically. So I've enlisted Zach Goldie to help me. He's the guy that's in our B Biz channel who does landing pages.
Sean
00:12:16 – 00:12:28
I mean, I always get good feedback from everybody in biz, and usually that's what I do is just drop it there. And also I don't suck at landing pages, so but it it'll be more efficient to work with him.
Aaron
00:12:28 – 00:12:31
And he's primarily copywriting. Is that right?
Sean
00:12:31 – 00:12:41
Yeah. That's what he does is landing pages mostly. So so we're gonna have a meeting. I'm gonna explain the business to him and we'll figure it out that it's going to cost less than $1,000. It'll be like $500 or something.
Sean
00:12:42 – 00:12:54
That's like special discount for us. So if anybody else wants to hire Zach Goldie, it's going to be way more because he's super expensive and awesome. And worth it. Yeah. So that's so that's that step.
Sean
00:12:54 – 00:13:26
I think, with him, I started thinking about he has this quadrant system, which is super cool and interesting, but how you could think about where your customers are at in the buying process for your landing page. Because like I know I feel like I know our audience because I'm gonna be writing this for developers. That's my audience. But developers are at different stages in the buying process and like, where should we focus? So what I was talking with him about is like, and he has this brilliant quadrant, which is super useful to understand it.
Sean
00:13:26 – 00:13:59
But for us, so I think that we have lined up for us, like for the next several months, at least enough people who are already into like eager to buy a quadrant, which is like, you know, we don't need to tell them what it is. We don't need to, like, tell them why they should have it. They're already, like, lined up and ready to buy. So I think for a while that we'll have enough we'll be able to sort of, like, get enough, you know, traction from that for a few months. But then like we talked about million times, it's like, okay, well then what?
Sean
00:13:59 – 00:14:12
Right? Because like, then what do we do? So I want to start working on that bet. Like I'm gonna start placing bets on like what I think it will be now. That way we can have something, seeds planted basically for when we get there.
Sean
00:14:12 – 00:14:42
So that would then put our marketing copy in a different quadrant of like where people want to buy. At least I think This is my theory, that will be in the quadrant where they they are low intention, but like familiar with the problem. So basically, like, they'll see it and realize, oh, I didn't even I didn't even realize that I could have that. And so and then they could see it and then it slots in their mind of like, oh, yeah, we could drop that in this place on our app. We could drop that in this place.
Sean
00:14:42 – 00:15:05
Developers don't have to write this. Like, so I think, I think that's the, that's the sort of target I'm gonna go after. And then the copy will be for that purpose because I don't think I need to placate the people that are already gonna buy it. Like, we'll put it we'll make it obvious and, like, here's the docs and here's what it does and, like, here's how you can go buy it. Like, that'll be at the top.
Sean
00:15:05 – 00:15:24
Like, here's what it is. But then it's gotta go into more to like show people like where they could use it, how they could use it. So then, so then that'll become like the, the sort of like core of the strategy for anything that I'm gonna do marketing wise for the next, like, couple of months. So that's what I'm doing about
Aaron
00:15:24 – 00:15:27
that. Which quadrant? What are the axes on the quadrant and which
Sean
00:15:27 – 00:15:34
Let me bring up this quadrant because I've I'm like blanking on it. Hang on. 2 seconds. All right. Here we go.
Sean
00:15:35 – 00:15:50
So at the so there's 2 axes. X axis is on the left, unfamiliar. On the right, experience. Meaning, they're unfamiliar with this type of product and what it does. On the right, it means they're experienced.
Sean
00:15:51 – 00:16:04
Meaning, oh, yeah. Like like, our main client, they already have literally written this. So they know what this is. They know about, like, buying components and using them. They're actively looking to switch.
Sean
00:16:04 – 00:16:12
So so that's one of the quadrants. But anyway, the other the y axis is at the bottom, no intent and at the top actively searching.
Aaron
00:16:12 – 00:16:13
K.
Sean
00:16:13 – 00:16:31
So the eager first time buyer is unfamiliar because they've never used this before. They've never used a component like this before, and they're actively searching. Meaning like, yep, I'm ready. I'm ready to go. So like that's that's most of our people are there right now.
Sean
00:16:32 – 00:16:52
There's other ways to frame this. Like I've been thinking about it. We could say that most of our people are actively looking to switch, meaning they already have something that they wrote themselves and they're like, okay, this is garbage and I want to swap it out. So I think we have people in both of those quadrants. Does that make sense?
Sean
00:16:52 – 00:17:16
So those are both on the actively searching side of it and both on the unfamiliar and experienced side of that. Mhmm. And then the quadrant I'm looking at is the unfamiliar and and no intent. Meaning, I didn't even know that I could do this in my app. So that's the that's the quadrant I'm thinking of thinking of right now.
Sean
00:17:16 – 00:17:25
Still got a conversation with Zach and I may change that and may sort of like reframe how I'm thinking about it. But that was like looking at that quadrant, I was like, oh, I think I want that.
Colleen
00:17:25 – 00:17:41
So is that content like is that content like you would do a case study where a company was like, oh, we implemented this and it saved us number of dollars or saved us x amount of time or we gained like, how do you even reach those people?
Sean
00:17:41 – 00:18:02
Well, I think I've my hypothesis for this is that, like, our thing is really straightforward. So, like, okay. Example, there was this there's this other component tool. There's a lot of these coming out now, by the way. Most of them are they own the platform versus I like ours is tightly integrated with the the back end.
Sean
00:18:02 – 00:18:08
But anyway, so there was this other component thing that came out. I think it was called command bar.
Aaron
00:18:08 – 00:18:09
Command bar? Yeah.
Sean
00:18:09 – 00:18:11
Yeah. It's not
Aaron
00:18:11 – 00:18:11
a great tool.
Sean
00:18:12 – 00:18:25
Yeah. Yeah. Yeah. So I was definitely in the never even considered solutions before quadrant of that. Like from my from my full time day job, looking at our product, I'm our product manager.
Sean
00:18:25 – 00:18:36
I'm looking at our product. I'd literally never considered this before. I saw the demo on the I looked at the homepage. I saw what it did. And then I was, like, immediately transferred to, like, oh, okay.
Sean
00:18:36 – 00:18:44
We should use this. And then the same thing for my boss. Like, he saw it and he was like, oh, yeah. We should use that. All it took was, here's what it is.
Sean
00:18:44 – 00:18:57
And then you're like, oh, yeah. Dot. Like, it has a slot in my brain. I just am like, this is gonna solve I automatically could see, like, this solves a lot of problems for us. Like, the better solution for us would be way more investment into designers.
Sean
00:18:57 – 00:19:13
But instead, you know, our app is complicated, so we can use this command bar thing to, like, give some of our power user shortcuts and, like, make things clear in different context. Anyway, I had a slot for this in my brain, but I didn't even know there was a tool. Right? Does that make sense? Yep.
Sean
00:19:13 – 00:19:30
So all I had to do, I saw the tool, connected the dots. Their landing page was good enough to, like, connect the dots for me for that. I think ours is the same. As soon as people see, see this, you can't help but see all the places where you could just use this. Like, I, that happens all the time to me now.
Sean
00:19:30 – 00:19:40
So I'm like, and the only reason you wouldn't is because it's costly. Right? Like it costs a lot for developers. So I think that that's kinda all we need to do. And then it's a matter of how do we get in front of people?
Sean
00:19:40 – 00:20:00
And the other piece is integrations. So because, like, overcoming objections is like like I said, I think it'd be our main challenge. And the main the main objections are gonna be like, will this be customizable and work in our situation? And if there's an integration for the thing that you already have, that's yet again another another way to overcome objections. And then also it's the same thing.
Sean
00:20:00 – 00:20:16
It's another marketing channel. So, like, because we can, you know, we could partner with people and we could so there's there's opportunities that way. So, yeah, like, that's what I think. It's gonna be integrations and then just really clearly showing what it is. And then probably I'll find some ad bias that I can do.
Sean
00:20:17 – 00:20:21
That'll be experimental. Right? Like, we'll have to figure out what works for us.
Aaron
00:20:21 – 00:20:23
This stuff is so exciting.
Colleen
00:20:23 – 00:20:24
It is.
Aaron
00:20:24 – 00:20:34
I feel like we've been working on the technical stuff for so long that hearing you talk about how we're gonna market it and find people is pretty exciting for
Sean
00:20:34 – 00:20:41
me. Yeah. It's it's a really good next step. So so there's that update. We can talk more about marketing.
Sean
00:20:41 – 00:20:52
I should give, like, the technical update. The because we have oh my god. So the front end challenge is significant. Right? So we have I was talking with I think it was Jeff.
Sean
00:20:52 – 00:21:01
That was somebody about, oh, no. No. No. It was the other it was the other guy from that that consultancy that you connected with, Aaron. Mhmm.
Sean
00:21:01 – 00:21:36
And, you know, everybody's he had a he had some thoughts about how I could provide different front ends or whatever. I forget what exactly his his solution was, but it didn't it didn't factor in the the fact that we have essentially, you know, a big o event squared on our front end in terms of, like, maintenance work. So, like, it's it's absurd. Like, we are rapidly approaching, I think, 5 different front ends that we're supporting. We got Hotwire, React, Vue 2, Vue 3, Nova.
Sean
00:21:36 – 00:22:14
That's why I'm like, we gotta rein it in on the front end stuff because the complexity there is significant. But anyway, so but to that end, I did some work to get us in a monorepo with Vue 2 and Vue 3, and it is like 99% there. I'm pretty sure, like, our app will be able to work in both and we won't have to do a separate branch, which will be a significant reduction of, like, maintenance headaches for us for the next couple years. And that's the thing. We gotta think about it because, like, the Vue 2 thing is gonna be around for a while, and I can't imagine trying to maintain 2 branches for the next 2 years, like for this, it's just be ridiculous.
Sean
00:22:16 – 00:22:37
So, and then the, I figured out how to get the ARM workspaces thing set up. So we got a monorepo, which means Dave can put his stuff in there too, and we can start like taking advantage of all that stuff and share tests and types and all that stuff, which will be, which will be good. But and then the Hotwire thing is just its own red headed stepchild. I have no idea, you know, what we'll do there, but,
Aaron
00:22:38 – 00:22:46
Good luck, Helene. Just I'm just gonna throw that over to you. I'm just I don't know. She'll figure it out. Yeah.
Aaron
00:22:46 – 00:22:46
So that's
Sean
00:22:46 – 00:22:48
the that's the front end of it.
Aaron
00:22:48 – 00:23:02
That seems massive. And you think Dave will be able to get the React stuff in the same monorepo? Because I know he had some ideas about sharing stuff across, React, Vue 2, and Vue 3.
Sean
00:23:02 – 00:23:06
Yeah. Yeah. That's that's the point. Yep. Totally.
Aaron
00:23:06 – 00:23:27
That's awesome. I'm super pumped for that. So now we've got Dave working on React, Jeff working on Vue 23, Sean, you're working on on marketing and Vue stuff, Colleen's on rails. I'm on Laravel and Nova. Like we're really, we're, we're really doing the thing here.
Colleen
00:23:27 – 00:23:28
Yeah.
Aaron
00:23:28 – 00:23:30
Need more customers. We need more customers.
Colleen
00:23:31 – 00:23:31
Yep.
Sean
00:23:32 – 00:23:51
The, like, I don't think we should increase the surface area of anything that we're doing until we have more customers. Like I'm okay with the Nova thing because it's an integration and it fits into that whole scheme that I was talking about with the marketing side. And I think that the maintenance for Nova will be less, so it's just an upfront cost.
Aaron
00:23:51 – 00:23:52
Mhmm.
Sean
00:23:53 – 00:24:06
Hopefully. Yeah. But yeah. It's like, alright. Really, what we should do is, like, get in more customers and let them, like, give us the work that we need to be done.
Sean
00:24:06 – 00:24:10
Like I have a bunch of front end stuff that's prioritized thanks to Neil and thanks to
Aaron
00:24:10 – 00:24:10
Right. You
Sean
00:24:10 – 00:24:26
know, well, you're kind of our Nova customer, so Right. And so and these are basically customer number 2, dogfooding our own thing. So that's super helpful, but we need more. Then it's time, I think, to pull in pull in more people. Although, it's like yeah.
Sean
00:24:26 – 00:24:35
It's time. But also, like, I know exactly what they're gonna need, and they're gonna need this customization stuff, and we don't have it yet. So it's like, I can't. I have no bandwidth. You know?
Sean
00:24:35 – 00:24:46
Like, I've gotta once I get this view 2, view 3 done, which is still not done, I probably put 80 hours in the last 2 weeks into it. Like, just absorbed me completely.
Aaron
00:24:48 – 00:24:49
So it's Oh, gosh.
Sean
00:24:50 – 00:25:00
Yeah. But you know what, man? Like, I'm gonna be like a library package maintainer now for the next couple years. So I need to actually know how that shit works. So it was more learning curve than work.
Sean
00:25:00 – 00:25:20
Because I've gone, I've spun through a couple different branches, couple different attempts, couple different things and all of every time I'm learning a new thing. And so I think I'm finally like up to date with like the latest of what I should be doing. But yeah, that whole ecosystem is, oh my God.
Aaron
00:25:20 – 00:25:26
Yeah. That's a real indictment on the JavaScript ecosystem or the JavaScript packaging ecosystem. Yeah.
Sean
00:25:26 – 00:25:30
It's going good places. It's headed in the right direction, but
Aaron
00:25:30 – 00:25:35
it is not. Do you think the Vue team is doing a lot of that? The Vue 3, Vite Well,
Sean
00:25:35 – 00:25:45
Vite's awesome. I guess I guess that's coming out of that. I think the Vue 3 ecosystem looks a lot better than Vue 2 ecosystem, for sure. Also, because it looks more react y, so I'm biased.
Aaron
00:25:45 – 00:25:46
Yeah. I know.
Sean
00:25:48 – 00:26:19
The the I'm trying to not let myself get sidetracked saying why I like React. Stop. But, yes, it's terms of, like, the packaging system. So we finally have a standard, which I think everybody will move towards, which is ESM and like that. And then like the whole build step as well, because that's basically what makes Vite work is that module system.
Sean
00:26:20 – 00:26:57
And then Yarn, I believe at the moment is doing the best work in terms of figuring out dependency trees and, like, managing your your packages. So, like, what you get with Laravel or what I get Python, Rails with my gems, and how they keep track of dependencies, we'll get that pretty soon here, with, with yarn probably first. And then, like, it'll basically in another 5 years, it'll feel like an actual package manager. But that's just the pace of standards, you know?
Aaron
00:26:57 – 00:26:57
That's just
Sean
00:26:58 – 00:27:00
but then the benefit is it's standard. So
Aaron
00:27:01 – 00:27:01
Mhmm.
Colleen
00:27:02 – 00:27:02
But, yeah,
Sean
00:27:02 – 00:27:13
it's pretty glacial pace at the moment. Because it's crazy, like, the future is here. Like, yarn has this thing. I forgot what it's called, like, plug and play or something, but this is totally different. There's no node modules folder.
Sean
00:27:13 – 00:27:38
It's all it basically solves every problem, and nobody uses it yet because, like, there's everything's gotta catch up to it. You know? And, like, I don't even know if that'll be the thing that wins. But, like, the point is the future is already here. It's just you can't the gap between now and there is is large and it's, like, community driven, not really, like, there's no benevolent dictator of JavaScript.
Aaron
00:27:39 – 00:27:59
I do feel like this is high leverage work. Like, getting this set up is going to pay off for a long, long time to come. Like, all this work you've done getting 23 set up with the monorepo and hopefully React soon is gonna make every other change going forward just, like, 10 times easier to maintain.
Sean
00:28:00 – 00:28:21
I mean, I hope I'm not gonna lie to you. I think there's a risk that, like, like, it's a it's a question of how how much machinery and apparatus do I set up versus how much? Like, most of the time, my choice would be just to go with the simplest tooling possible because you know what you're getting into. Right? So maybe there's some, like, small headaches.
Sean
00:28:21 – 00:28:25
It's not as clean. It's not as nice. It's not as organized. You know? Okay.
Sean
00:28:25 – 00:28:42
Fine. We don't get the mono repo. And so, like, we've got types in 2 different places, and that's a pain. Most of the time, it makes sense, I think, to just deal with that pain and just do the the simplest possible thing. Or, like, to have 2 branches and just deal with the pain of 2 branches for 23.
Sean
00:28:42 – 00:29:12
The thing is I like I'm I don't know. It's tough. Like, I've learned enough now about the packages that I think that my assessment is we're safe to do this monorepo thing and that the pain of we will be continuous pain, like making it work continuously. But I think that it will be less than the continuous pain of dealing with multiple front ends because we're not done with adding the front ends. Like it's it's already significant.
Sean
00:29:12 – 00:29:26
So we already just need we need the tooling. So I'm just I'm guessing that this is right, but, you know, it could just be, like, 2 months from now, we're like, alright. This is too much of a headache. Like, f it. Like, eject from this and just branch it.
Sean
00:29:26 – 00:29:49
It could be. But my guess right now is that it's worth it. I think that the main thing that that will that will 100% take away from this is as a team, we now have significantly more knowledge about how libraries and packages work, which we had like none before. So I think that's probably like of the things that 100% we could take away from this, we'll have that. And that will be good.
Sean
00:29:49 – 00:29:55
But I'd say like 80%, the, the, the monorepo thing works out.
Aaron
00:29:56 – 00:30:08
Well, it seems like a safe bet, safe calculated bet for now. So, Dude, 80 hours in 2 weeks on top of full time job and family, that's a whole lot.
Sean
00:30:09 – 00:30:21
Yeah. Yeah. I'm definitely reaching the end of my end of my go crazy time here. Yeah. But, you know, got a few more weeks to push through here to get us to Laracon and get that stuff all set up.
Sean
00:30:21 – 00:30:37
But and and also it's like because I also know, like, hey. If I don't get the customization stuff working, we can't really onboard. The only customers we can onboard are the ones that are willing to be like, yep. Exactly as it is is fine, and I don't need to make any tweaks other than some style sheet changes Right. Which is not many, I think.
Aaron
00:30:37 – 00:30:38
Right.
Sean
00:30:38 – 00:30:42
So or maybe it's more than I realize. I don't know. I kinda guess probably not.
Aaron
00:30:42 – 00:30:54
I think probably not unless we're talking about Nova. Because if Nova Nova. They don't I mean, they just go with the style that Nova gave them. So they would do that for us too. Yeah.
Aaron
00:30:55 – 00:31:00
Okay. I can I can start talking about Nova now unless you have anything else, Sean?
Sean
00:31:00 – 00:31:01
Nope. Go for it.
Aaron
00:31:01 – 00:31:47
So I did talk with Jeff yesterday, about the kind of the stuff y'all had talked about, with regard to NOVA. And we decided he's gonna move forward on making the customization stuff easier. I think after you and I talked about it, that's where we landed. So Jeff is going to start working on the Vue stuff, making the customization stuff easier, which will make the Nova package less to maintain, because I can use more of the default view 2 package and then just change the stuff for Nova. But what we're gonna do is he's gonna move forward, and I'm gonna move forward, without his stuff.
Aaron
00:31:47 – 00:32:39
So neither of us are waiting on the other, and my implementation can help guide his. And when he's to a spot where he thinks it's ready, we can roll his back into Nova, and then I can I can just delete all of the the stuff that I copied over? So the benefit there is, he can get up to speed without feeling any pressure from me, because he's not he's no longer hold or he won't ever be holding up Nova. So having had that conversation, I'm gonna be pushing Nova over the finish line, hopefully, this week, and reach out to the people that or a couple of people that I know want Nova and try to get them onboarded into our Slack. So that is that's my plan with Nova.
Aaron
00:32:39 – 00:32:59
It's probably, I don't know, it's probably 95% of the way there. It works. There are just a few more visual things I need to change to make it look right. And then there are things that I'm not gonna do right now. Like, I'm not gonna offer a way for them to save filters, because I can do that later.
Aaron
00:33:00 – 00:33:18
And it's, it's in the URL, so they're, they're still directly addressable. If If you wanna save a filter, you just have to copy it and send it to your friend or whatever. So I'll work on, you know, stabilizing to the the the to the database at some other point. Not concerned about that now. So super close on that, which is good.
Aaron
00:33:18 – 00:33:48
And I think we can get a ton of feedback on the Laravel stuff from Nova people. So we'll get outsized feedback on Laravel and minimal feedback on the front end, while we know the thing on the front end that we need to be working on. And so we're not getting a bunch of feedback on the front end that we already know we need to change, if that makes sense. So that's my plan. What I did this past week, however, was none of that.
Aaron
00:33:50 – 00:34:13
I so I took a day of PTO on Friday. Took a day of PTO on Friday. Today is Tuesday. And I helped, I had my first database performance consulting engagement, and it went great. I was just like thrilled to death about it.
Aaron
00:34:13 – 00:34:30
It's one of those things where I've done it so much in my life that I feel confident, but then you go to a client and you start thinking, wait a second. Am I going to know what to do here? Or am I just going to totally embarrass myself? Turn the line.
Sean
00:34:30 – 00:34:33
It's beginning of every single client project for the rest of your life always.
Aaron
00:34:33 – 00:34:36
Okay. Great. Perfect. I look forward to that feeling.
Sean
00:34:36 – 00:34:43
Because it's like the project starts and you're like, oh, what have I gotten myself into? Well, I always figured it out before, so here we go.
Aaron
00:34:43 – 00:35:06
Yep. That is exactly that's exactly how I have felt about other things, but this is a new a new domain for me. So this is somebody that, tweeted a while ago, hey, I need help with my SQL and Laravel. Does anyone know anyone? And a third person recommended me and said, you should reach out to Aaron.
Aaron
00:35:06 – 00:35:17
And so we set it up and it was great. This past Friday, we got on a screen share. He's in the UK. So I woke up. I started my day working with him at 6 AM.
Aaron
00:35:17 – 00:35:29
So I started early and he stayed a little late. And we were on a screen share from 6 AM to 2 PM. And he gave me his top. Yeah. It was a full, it was a full 8 hour.
Aaron
00:35:29 – 00:35:53
Yeah. He gave me his top three issues. I had the repo set up locally and also had access to their staging database. And so he gave me his top three issues, and then we would go silent for, you know, hour or 2 hours, and I would come back with what I found and thoughts I had on fixing it. And I was able to fix them all, fix all 3.
Colleen
00:35:53 – 00:35:54
Oh, that's awesome.
Aaron
00:35:54 – 00:36:27
Yeah. Queries went from 30 seconds to 30 or 300 milliseconds. So pages that would not load at all would just totally time out, work great now. And it was it was like the perfect engagement that I would like to do in that it was my SQL and Laravel and the fixes were across my SQL and Laravel. Some of them were fixed just by changing some ORM patterns in Laravel itself.
Aaron
00:36:27 – 00:36:47
So I didn't have to touch any indexes or any data at all. I just looked at it and was like, ah, this, you know, this ORM method is actually not super efficient. If you do it this way, it'll just work. And it did. And then some of them were, okay, we need to add an extra composite index here or add a virtual column and then index that and it'll just work.
Aaron
00:36:47 – 00:36:59
So it went great. I was thrilled. He was thrilled. I left feeling super pumped. I was gonna have a big old drink, and then I realized I'm not drinking this month, so that was a bummer.
Aaron
00:36:59 – 00:37:20
I made a tea like an idiot. But it was great. And I'm I was just thrilled to death because it makes me, you know, it makes me feel really confident. So I would like to do more of those just one day kind of Laravel MySQL performance engagements. Let me come in.
Aaron
00:37:20 – 00:38:03
You show me the sticky spots and I'll help you fix them because that is like, that's what I have bandwidth for. I can't take on, you know, 2 week consulting agreements right now because I've got, you know, I've got full time job and everything going on. But I think if I can start to build up this kind of client base slash reputation, this will help at some point in the next, who knows how many years this will help ease me out of full time employment. So that's kind of my thinking right now. Another benefit of that is I learned a ton about what Laravel developers are struggling with in terms of the database layer.
Aaron
00:38:04 – 00:38:37
So this guy that I was working for, super smart, great Laravel developer, but had just hasn't had a lot of database experience. Like, he understands it. He just hasn't done a lot of it before. And so that was really helpful for me to see that, you know, very, very smart application developers just don't have a lot of experience sometimes with the database layer. And there are a lot of things that I can do, to educate application developers on the database layer.
Aaron
00:38:37 – 00:39:16
And one of them I spent after so I did this thing on Friday and then I spent the entire weekend, literally all weekend except Saturday morning, because Jennifer went to the spa on Saturday. So I was, I was single parenting on Saturday morning. So I spent all weekend writing this MySQL article about, like more efficient pagination. So, you know, when you use offset limit, the further you go into the record set, the slower it gets. That was one of his issues was he was reaching page, you know, whatever, hundreds of pages deep in his, in his pagination and the request would time out.
Aaron
00:39:16 – 00:39:37
And so I was able to come up with a kind of sneaky way to fix it. And then I spent the whole weekend writing an article about this sneaky MySQL way to fix this kind of pagination and published it, published it. I'm not I'm not a journalist. I posted it on my blog on Monday morning. So yesterday morning.
Aaron
00:39:38 – 00:39:50
And so far, it's gotten like a 180 retweets, which is insane because it's a blog post about my SQL pagination. So
Colleen
00:39:51 – 00:39:51
Yes.
Aaron
00:39:51 – 00:40:35
So, it makes me feel like there's a real opportunity here, for us because our thing is so database specific. Like we are providing application code, but it's very heavily reliant on some database knowledge. And we're baking a lot of these best practices in, but the shape of people's data is still gonna dictate a lot of the performance. And so I think there's a real opportunity for us here to be perceived or actually be, database experts that will help kind of our reputation all in all. So I did that.
Aaron
00:40:35 – 00:40:56
And then at the end of the article, I put a a reform form. It's just a sign up form for, MySQL for developers course that doesn't exist, but I wanted to gauge interest on it because it's something I've been thinking about for a while. And I got several 100 sign ups for Wow. Yeah. Yeah.
Aaron
00:40:57 – 00:41:41
For this for this MySQL course. And so and then then several people, specifically it was in a long Twitter thread, and it was the last tweet, and several people specifically pulled the last tweet out and retweeted it specifically saying, like, go Aaron's doing a course. You need to go sign up for this course. So, yeah. So I'm thinking that could be, that could continue to be a good niche for me as the Laravel MySQL guy that bolsters our hammer stone marketing efforts and simultaneously, provides an off ramp for me at some point in the future.
Aaron
00:41:41 – 00:42:04
I don't think that's soon, but at some point in the future. So trying to, like, keep all of my, all of my circles overlapped as much as possible in building this universe of Aaron's expertise slash ways that he makes money. And I think it the picture is starting to become a little clearer for me.
Colleen
00:42:04 – 00:42:07
Great. Nice. Sean, I think you're muted.
Aaron
00:42:08 – 00:42:09
I think you're muted.
Sean
00:42:09 – 00:42:14
I think yeah. Like, if you wanted a consulting biz, like, it's seems like it's there. Write a book. Launch your consulting biz. Yeah.
Sean
00:42:14 – 00:42:18
Seems like it's there. Write a book. Launch your consulting biz.
Aaron
00:42:18 – 00:42:37
Yeah. Yeah. I'll be curious. I I I talked I talked some numbers with Jennifer and tried to figure out, like, how much could I do day like, what what's a day rate that I could command at some point? How many days a year would I have to do that?
Aaron
00:42:37 – 00:42:51
And is that viable? Like, could I find that many? I think the answer now is no, but I don't think the answer in 6 months is no or in a year is no. And so that's kind of what I'm working towards, I think.
Colleen
00:42:52 – 00:42:59
Yeah. Well, as supplement too. Right? Wouldn't it be cool if you could quit your job and work on Hammerstone and consult to cover the gap in your income?
Aaron
00:42:59 – 00:43:01
Big time. Exactly.
Sean
00:43:01 – 00:43:06
And especially if you structure it the way you have, which is that's a really focused engagement that you did.
Aaron
00:43:06 – 00:43:07
Mhmm.
Sean
00:43:07 – 00:43:10
And it's not, like, staff aug.
Aaron
00:43:11 – 00:43:11
Mhmm.
Sean
00:43:11 – 00:43:28
It's because the issue with consulting is if you if you don't do like, what you're doing is the way to do it. So you'll end up with very specific high leverage engagements with clients that you can bill a lot for. And, like, per hour basis. Right? It'll feel it'll be a lot.
Sean
00:43:28 – 00:43:47
But, like, per value that you're bringing to the table, it won't be it'll be Right. Fine. Right? And and then it's 1 and done, and you can say yes or no. And you can add as many or as few as you want to your plate because you're also doing all the work that you need to do in order to have you've laid all the bricks already for having, like, bunch of leads, so you'll be good to go.
Sean
00:43:48 – 00:43:52
But the danger would be if you land in, like, a staff aug situation
Aaron
00:43:53 – 00:43:53
Yeah.
Sean
00:43:53 – 00:44:21
Where then that just you think like, oh, yeah. I'll just do consulting for a few days a week, and then that just sucks my energy from me. And, you know, the only thing that you could do is yeah, Colleen. The only thing that you can look out with is, like, actually, I fired Dave at my day job, and I think that he's well, maybe he's he'll tell me otherwise, but, like, I don't pressure him at all. He does, like, whatever hours he wants to work.
Sean
00:44:21 – 00:44:44
Usually does, like, day or 2 a week. I give him stuff that's totally asynchronous, not like on our time pressure schedule as much as I can. And he jumps into bugs and stuff every now and then, which is very, very helpful. But that is, like, I'm sure enough to pay his bills, and then he gets to work on his software product on the side, which is not quite paying the bills yet. Like, the in the staff log sense, it's like the only situation you could where that works.
Sean
00:44:44 – 00:45:05
And that's almost he's getting that because I know cause I get value from him at that level. I have stuff for him to do at that level. And also I know, like, if I want a guy like Dave, which I do because he's awesome and real good at his job, then the only the only way I can get him is to to to do that, like, for for a longer than, you know, short duration. Anyway.
Aaron
00:45:05 – 00:45:45
Yeah. I kind of thought, back to early, early MicroConf days when Patrick McKenzie would talk about his engagements, And his basic deal was he would come in and do, like, marketing tests, optimization, that kind of stuff. And I remember him talking at MicroConf, like, in 2012 about how he come he would come in for a couple of days or a week, and then that was it. Like, he would just come in, do the thing that they were asking for, and then be gone. And he wouldn't, you know, he wasn't sticking around for 2 months to implement all the tests or the a b stuff.
Aaron
00:45:45 – 00:46:13
And so I thought, like, I remembered that story. And then I thought about my reality in my life with everything that's going on. The big factor was the full time job. Like, I can't I can't rightfully take on, you know, a 6 week engagement because that's gonna bleed over into my full time job too much, and that's just disrespectful. It's just wrong.
Aaron
00:46:13 – 00:46:38
So for the one day or the 2 day engagements, I can simply take PTO as is my right. You know, it's my PTO to do whatever I want with. So I take a day off and instead of just relaxing, I can do a high leverage engagement, get in, get out, and everybody's happy. So it's kinda the parameters that I'm working in. And I feel like it's working, you know, I've done one, but that one worked really well.
Aaron
00:46:38 – 00:46:51
So let's see if I can pull that off again. But beyond that, I don't think I have anything else. Larry Con is still a couple of weeks away. I'm getting that. I'm getting the talk shored up there.
Aaron
00:46:52 – 00:47:18
Unfortunately there's a bit of coding I have to do with that because I'm introducing a new ability with sidecar. That is going to be really cool, but just needs a little bit of coding to, to work. But, yeah, still burning it at both ends, but not for much longer. I think it's totally worth it right now, but at some point, at some point, I'm gonna run out of steam. And hopefully that's after February.
Sean
00:47:18 – 00:47:21
I'm there. I'm there, man. I'm there.
Aaron
00:47:21 – 00:47:22
Yeah.
Sean
00:47:22 – 00:47:25
It's different than burnout, but I am, becoming tired.
Aaron
00:47:26 – 00:47:40
Yes. I agree. I am becoming tired as well. It is easier, I will say, with a, not an end, but a drop off insight. February 9th is going to be a drop off, in terms of back pressure.
Aaron
00:47:41 – 00:47:45
So that'll be good. I can make it, I can make it that long. Anything else?
Colleen
00:47:45 – 00:47:46
Nope. All
Aaron
00:47:46 – 00:47:47
right. We'll call it there.
Me

Thanks for reading! My name is Aaron and I write, make videos , and generally try really hard .

If you ever have any questions or want to chat, I'm always on Twitter.

You can find me on YouTube on my personal channel or the Try Hard Studios channel.

If you love podcasts, I got you covered. You can listen to me on Mostly Technical .