Aaron
00:00:00 – 00:00:07
Okay.
Here we are again, all 3 of us.
Sean, welcome back.
Did you you saw Colleen last week.
Right?
Oh, yeah.
Yeah.
I was in the I was in her neighborhood, so we stopped by a coffee shop, did did a little bit of programming.
Aaron
00:00:16 – 00:00:23
And you came to the DFW airport, and you couldn't bring yourself to have, like, an 8 hour layover, So we could hang out?
Yeah.
I was just, just waving as I went by.
Aaron
00:00:30 – 00:00:32
How was the how were the travels?
Yeah.
So I, I was on the on the flight to Dallas.
I was in the middle of I, like, I drank a whole bunch of coffee, and then I decided to get some water to stay hydrated.
And then, of course, we hit really bad turbulence for the rest of the trip.
So my my bladder was like like I mean, I I barely made it.
Like, I was in agony by the time we landed.
And then I landed, and then, like, it was so bad.
Like, I went to finally go, and it just, like
Aaron
00:01:13 – 00:01:14
No.
I don't want it.
It was, like, nope.
No.
No.
No.
It was, like, nope.
Not you're still it's not coming.
It's, like, it decided I had, like, whatever muscles are keeping that from happening, it just decided, are you sure?
Are you sure it's time now?
I'm, like, not really sure.
Yeah.
So it was I went I went, like, 3 times at the airport because it's like at that much.
Anyway, yep.
So those The travels were good.
Yeah.
Colleen
00:01:42 – 00:01:43
Yeah.
Aaron
00:01:47 – 00:01:50
Well, welcome back.
Not not really the story I expected,
I mean, I think the last time that happened to me was I was, like, 15, and it was, like, the first time I ever had alcohol.
I was in Germany on, like, a a wine tasting tour.
And I had, like, a whole bunch of different, you know, white wine or whatever.
And then we got on the bus, And I didn't, you know, I didn't know that was a thing that could happen.
And the bus had bathrooms, but there were no they were shut down.
And, like, I had to go so bad that actually I made the entire bus, the entire tour bus had to stop for me so that I could go so I could go.
I was having I haven't thought of that memory in so long except for in Dallas.
I was I was reminded of that.
That's how bad it was.
Aaron
00:02:41 – 00:02:44
I'm glad you enjoyed Dallas.
It's lovely to hear.
Colleen
00:02:49 – 00:02:51
Okay.
What else is going on?
Aaron
00:02:53 – 00:03:02
I don't know.
I don't know what the smooth transition from that is, but, There's not really.
So the
we're working on just the final touches of getting the 2 things playing together.
Right?
So I just have Yeah.
On my side, I need to fix the thing because you you I think I understand the full story now.
What when it did happen was for the option condition, which is like this dropdown with the different choices that you could pick.
The, whether it's a multi select or not, we were sort of using hard coded clauses, which will make sense to people who end up using the product without the background.
It's kinda hard to understand what that means.
But, basically, we had sort of, like, hard coded some situations where you would end up with the multi select.
Didn't make sense, needed added to the configuration, and that ended up causing a few changes to the API, which is no big deal.
We just have to change the datas to make the test pass and then change some props.
So that way, we pass that stuff down everywhere.
Yeah.
So Taking But that's I
Aaron
00:04:02 – 00:04:20
think I think something that was, like, implicit, like, well, make it a multiple when it's one of these clauses and changing it to be explicit to say, make it a multiple when I tell you it's a multiple, like, back end's talking to front end.
I feel like that's kind of the the high level of what we're doing.
Yeah.
Like, if we're saying, hey.
Choose one of these things in this list, keyword being in, then it's like, oh, yeah, that should be a multi select versus just a single select.
Mhmm.
But their words could change, the clause ID could change, so whatever, there's multitude of reasons to not have that hard coded like that.
But, oh, it seems to be going good, right, on your end?
Aaron
00:04:43 – 00:05:12
Yeah.
It's going it's going great.
I have been working frantically this past week just on so I'm working on on, basically, on two fronts.
1 is Keith had a a, like, a, maybe or 7 bullet points of things that he found either confusing or missing, which is like, awesome, super great, Very grateful that he wrote them all up.
So I've been working on those things.
Aaron
00:05:12 – 00:05:42
And then on the other front, I've been integrating Laravel with Vue.
And so there's a whole set of there's a whole set of other things.
It's like, well, this needs to actually be tweaked now that I'm using it, you know, as a developer would be using it with the front end.
And so I've just been making tons and tons of changes.
And, you know, since you were gone last week, I was just kinda, like, just, you know, donkey stomping all over the whole front end, just making changes willy nilly.
Aaron
00:05:42 – 00:06:07
So sorry about that.
But, now we're getting, you know, we're starting to get it integrated and I'm super pleased with how it's going, but it it has been a whole lot.
I've probably got, I don't know, 30 commits to the Laravel 1 and maybe, I don't know, 8 or 10 to the Vue 1.
But I'm feeling really good about it.
I don't feel like there are any fundamental, like, fundamentally broken things.
Aaron
00:06:07 – 00:06:23
Like, we haven't messed up any paradigms.
It's just the last, like, little fiddly stuff that needs to be changed.
So I'm feeling, I'm feeling really good about it.
It's just a whole, it's been a whole lot this past week.
But it's the kind of work that, like I don't know.
Aaron
00:06:23 – 00:06:45
It's the kind of work that feels good, where you're not like it doesn't feel like a slog.
Because every time I, you know, every time I change something like this, I see it on the screen working.
It's not just like, you know, some other unit tests pass.
It's like, oh, I can click these buttons and suddenly it's working again.
So it's been a lot of work, but it hasn't been demoralizing like it has been in the past.
Aaron
00:06:45 – 00:06:46
So
That's actually one of the things they're trying to get us to do at work for working on product like features, etcetera, is prioritizing getting things hooked up to a UI as fast as possible.
Colleen
00:07:04 – 00:07:05
Yeah.
Yeah.
That's smart.
Because of that feedback loop.
Because even if you're gonna be doing a ton of work that's just API and that's, you know and in theory, you know, you should be writing tests and, like, that'll be what actually, you know, covers the the features to make sure that it's doing what you intended to do still for the human being that's actually writing it.
It's been so much more helpful to actually see things running and then also seeing things running equals Like we have another rule where when you release a feature, you have to write a do a demo video.
And the demo video, even if nobody sees it, every time, almost every time I find a bug or I find a thing where I'm like, that makes no sense.
And just that process of actually interacting with it is super duper.
Aaron
00:08:01 – 00:08:24
Yeah.
I like that.
Prioritizing for time to UI is not something I've ever done, but I think that's a very smart concept.
And for the demo video thing, I found the same thing, not with demo videos, but with writing the documentation.
I'd be writing something, and I'd find myself explaining it, like, over explaining it because it was confusing.
Aaron
00:08:24 – 00:08:34
And then just thinking, well, this is stupid.
I just need to I just need to change the implementation, so it's not hard documentation to write.
That's been extremely helpful for me.
Yeah.
That sounds like kind of the same thing fundamentally, which is you have to describe it to somebody.
Show somebody how it works.
Do it through the docs.
Do it through a demo video.
Either way, That for whatever reason, that going looking at the product through that lens shows more things than you were seeing before.
Aaron
00:08:56 – 00:09:09
Yeah.
Big time.
So did you get to work on piping all the stuff through last night?
And I think the last thing you might have is packaging.
Is that the last thing?
That's right.
Yeah.
So, no, I didn't get it done last night.
I got the tests running and then started working on that and then just watched some Seinfeld and went a bit.
And then
Aaron
00:09:20 – 00:09:21
Oh, nice.
Same.
Yeah.
It's on Netflix now.
Yep.
Beth and I are rewatching it.
It's fun.
Aaron
00:09:29 – 00:09:33
This show is hilarious.
Cullen, do you watch it?
I mean, I watched
Colleen
00:09:33 – 00:09:37
it, what, 15 years ago.
I like the idea of rewatching it, though.
Aaron
00:09:37 – 00:09:38
It's still so good.
Colleen
00:09:38 – 00:09:39
Still holds up.
Aaron
00:09:40 – 00:10:00
Still holds up.
And now watching it while simultaneously watching the new curb your enthusiasm as they release.
It's basically, I don't know if y'all watch curb, but it's basically Seinfeld, but a little bit darker.
I mean, it's, it's, it's the exact same thing.
Larry David is just twice as cynical as Seinfeld is.
Aaron
00:10:00 – 00:10:02
And, man, it's fantastic.
Yeah.
But you anyway, so Seinfeld aside.
Yes.
That's all I have left is to do the do the package.
Well, the package is done.
Right?
But it's just to it's just including this one.
I'm still I haven't looked at it yet.
That's still where I'm at.
Yeah.
Because I just have the one library I have to figure out how to exclude.
So I'll go back to that after I fix up your prop thing.
That way, you can keep running with that, and then I'll come back to that.
And this week is a little slower at work, so I should have some more energy in the evenings than normal.
So I think I'll actually get a few more things done.
Aaron
00:10:35 – 00:10:54
Very cool.
Well, welcome back.
I don't think you were here last week, but I was telling Colleen basically the same thing about how pumped I am integrating this stuff and how, like, how good it feels.
Like, we've we've got the thing, and I'm really very pleased with it.
Yeah.
It's awesome.
It's fun to be at that step.
So and then also Dave is working on the React side, so that's progressing.
It's looking awesome.
Dave and I think the same way about React stuff.
So that's I noticed that
Aaron
00:11:17 – 00:11:21
in the in the chat the other day.
You guys were totally on the same page.
Yeah.
Right.
Well, yeah.
Because there was the Vue thing.
Oh, yeah.
I can complain about Vue.
So what we wanted to do was, so what we let you do is provide the name of your component in the when you're creating the filter.
So if you don't provide it, tell me if this is right or wrong.
I'm pretty sure if you don't provide it, we just load ours.
If you do provide it, then like, say you wanted to have a custom date selector, you like your date selector widget better or whatever, you just write your own little component.
It's pretty straightforward.
We have a render as component.
You just build your own with use your own date picker.
You can use ours as an example.
You build it.
And then what we want to let you do is for you to just put the name of your component as a string in the filter on the back end, which is a common pattern in Laravel and like Nova lets you do this, etcetera.
So then in order for me to load your component instead of mine, in React, the so the first thing I thought was, oh, we'll just pass it down as props.
So you can provide your component as props, and it will just override whatever components we were gonna render.
That's the first thing I thought of in React because, like the other way to do it would be to like share a global namespace, which in fact is what turns out you have to do in Vue.
Like, because the Vue requires you to register the component.
You can't just dynamically load a component into a Vue component.
That Vue component has to know about that component before it can use it.
And so there's 2 ways to do that.
You can do it in the component itself, which is what I do for our components, And then you can also do it globally.
So the only choice is our users who have to register their component globally.
And then we we have now have to just prefix all of our component names with, like, refine because we're, basically, we're in the global namespace.
We don't want, like, to define the text input component when you probably wanna name yours text input.
Ours would not we would name it we named it text input or we named it data input, probably a common component name.
We would not conflict with your namespace as it stands because we're importing it locally and using it there.
But if we have to pull yours from the global namespace, which we do, we're effectively sharing that namespace with you.
So we have to namespace it.
And I'm annoyed by that because that's irritating because, like, have all this that's why we have import statements and, like, let us, like, not have to share namespaces with people.
But effectively, we have one global namespace with our particular library in Vue.
But, Dave and I both had the same exact thought on how we would do it in React.
And that's that's nice to know that we're easily on the same page with most of the stuff.
All this code I've seen so far is like check.
Looks good.
So Yeah.
That's going great.
Aaron
00:14:17 – 00:14:29
Yeah.
That was funny to me because I was I am not a React developer.
Never have been.
I'm very much a straight down the middle of you Laravel developer.
And so I was like, hey.
Aaron
00:14:29 – 00:14:50
Just register it, and it's available globally.
And you guys were both like, what?
So, yeah, that's, apparently a quirk.
But, yeah, it's weird that we're not in the global name space, but you could never override ours unless we change the name.
So you're right.
Aaron
00:14:50 – 00:14:58
It's like, well, we're we're not polluting the name space, but you can't you can't win.
We'll always win because we're the local import.
Yes.
We are effectively sharing the global namespace.
It's yes.
It's it's a little bit it's annoying.
It's not like ideal, but it's fine.
It's not it's really not a bad problem at all.
Aaron
00:15:11 – 00:15:16
I wonder if that's how Vue 3 is.
I would imagine that's probably the same in Vue 3.
Seems like a pretty fundamental change.
Aaron
00:15:19 – 00:15:20
Yeah.
That would be hard to
Although I was like maybe, maybe with the composition API, you could use a hook instead or something.
Or I was like, but how would that, that's not a complete thought.
I don't actually know how that would help us, but like sort of like, a, maybe that works differently.
It lets you connect differently.
I don't know.
But it's not anything that's worth solving.
It's easy enough to just do it the way we're doing it.
So.
Aaron
00:15:44 – 00:15:52
Yeah.
Cool.
Anything else on your side, Sean?
Nope.
Nothing nothing about that.
Aaron
00:15:58 – 00:16:00
Colleen, what's going on with you?
Colleen
00:16:02 – 00:16:04
Let's see.
Lots of You
Aaron
00:16:04 – 00:16:07
were burning the midnight oil last night, I think.
Colleen
00:16:07 – 00:16:24
Yeah.
I just I was in it, so I just wanted to keep going.
I mean, I've been in the front end for, like, 12 hours, and it's just I just wanna be done with the stimulus turbo stuff.
So I changed it.
So I've been working on the saved filter thing.
Colleen
00:16:24 – 00:16:55
So what I've done is I've created a saved filter drop down, and it's nested within a criterion.
So the safe filters are gonna be on a for now as, like, I as we discussed, like, just a proof of concept first step, the safe filters are gonna be in the blueprint per criterion, like the date like the refinements.
So they're gonna sit in a criterion, like the refinement, and execute that way.
Anyway, so
Aaron
00:16:55 – 00:16:59
The save the pointer to the saved filter or the entire blueprint?
Colleen
00:16:59 – 00:17:12
ID that no.
I'm sorry.
I'm not being very clear.
So the so what what's gonna happen for now is a user can go to product, make a complete, fully fleshed out product filter.
Then if they wanna go to contacts, they'll be able to add a save filter.
Colleen
00:17:12 – 00:17:23
So if they wanna say, I want all contacts with that have email address, Colleen, and, you know, meet this product filter.
Okay.
That's a bad example.
But
Aaron
00:17:24 – 00:17:26
And have purchased a product.
It's like a product called Lean's favorite
Colleen
00:17:27 – 00:17:27
Thank you.
Colleen
00:17:29 – 00:17:51
Yeah.
And have purchased a product filter.
So the product filter is then gonna present as a drop down in that single line item.
And then when it's sent back in the blueprint, it's going to be the ID of that particular product filter is gonna come back in the blueprint, and then the query will be executed as the query will be executed.
So it's like it's a lot.
Aaron
00:17:51 – 00:17:53
That's incredible.
Colleen
00:17:53 – 00:18:04
It's gonna be great.
And I feel like I'm so close, and I think I mentioned last night, I realized that I wasn't nesting because the way the input is coming in right now is the date refinement isn't nested in the
Colleen
00:18:04 – 00:18:05
input, but my tests have it nested in the input.
And you said that's what you have in view.
Colleen
00:18:05 – 00:18:25
Mhmm.
So And so I think it's gonna be really cool and it's coming together and I feel like I'm on the precipice of getting this all to work together.
So yeah.
Aaron
00:18:26 – 00:18:30
Having those saved filters is incredibly powerful.
Colleen
00:18:31 – 00:18:43
Yeah.
I think it's gonna be great.
There's still I well, yeah.
It's gonna be really cool.
There's there's a lot going on here, but I think it's gonna be it's gonna be really great, And it's super close.
Colleen
00:18:43 – 00:18:49
I don't know if I'll finish it this week.
I'm hoping.
But that might be a little ambitious.
So it might need another week.
But getting pretty close.
Colleen
00:18:49 – 00:18:52
So I think that'll be really neat.
Really fun.
Aaron
00:18:53 – 00:19:03
Cool.
Nice work.
Yeah.
We don't have that.
I have that, at work in the, you know, version 0, the original one, but we don't have that in Laravel.
Aaron
00:19:03 – 00:19:08
So I wanna pair with you for a little bit and figure out how you're doing that.
Colleen
00:19:08 – 00:19:16
Yeah.
Yeah.
Totally.
It should it should be really good.
So cool.
Colleen
00:19:16 – 00:19:17
That's what's up.
Aaron
00:19:17 – 00:19:20
Yeah.
What else?
Colleen
00:19:21 – 00:19:23
I mean, that's it.
It's a lot.
Colleen
00:19:23 – 00:19:37
Taking up I mean, there's a couple things that I've, like, I've experienced.
So what I think I'm gonna do is I'm going to for now, again, and I'm not really taking feedback, I'm gonna allow the developer.
Colleen
00:19:39 – 00:19:44
Just feel like I should preface that with this.
I'll take feedback next week.
No feedback this week.
Yes.
Take
Aaron
00:19:44 – 00:19:45
my answer off the air.
Colleen
00:19:46 – 00:20:20
So for now, I'm gonna allow the developer to specify the the relationship path to the saved filter.
And the reason I'm doing that is, at first, I thought this would be super cool if I could recursively, go through all of the relationships and find the path, But I'm finding that it's not as straightforward as I thought it would be.
And so that might be a future improvement, but for now, they're gonna specify it.
So they're gonna say, hey.
If you're searching contacts, I want contacts to be able to also search all the product filters.
Colleen
00:20:21 – 00:20:34
And then they would just just create the path.
So that's, I think, the the most efficient and easy to understand way to use them.
So I'm so close.
I really wanna get it working.
Like, it's like, oh, I feel like I No.
Colleen
00:20:34 – 00:20:35
You're not.
I
Aaron
00:20:35 – 00:20:40
know you're not taking feedback, but that seems great.
Okay.
That seems totally great to me.
Colleen
00:20:40 – 00:20:41
Okay.
I'll take that feedback.
Aaron
00:20:41 – 00:20:49
Feedback is allowed.
Yeah.
That's one of my I steal that phrase.
Now that is my phrase.
I'm not taking feedback on this at the moment.
Aaron
00:20:50 – 00:20:51
I will use that in the future.
Colleen
00:20:51 – 00:21:05
Oh, so it's really exciting because I feel like I'm really close.
And, you know, this is the last piece, guys, like, for the client.
I mean, there's a mill okay.
This isn't the last piece.
There's still tons of work.
Colleen
00:21:05 – 00:21:19
There's gonna be a ton but this is the last hard in my opinion, this is Mhmm.
Maybe the second to last, really, like, hard technical piece.
And then it's just improve it and, you know, stuff like that.
Aaron
00:21:19 – 00:21:21
Integrate it.
Yeah.
Colleen
00:21:21 – 00:21:41
Yeah.
I I feel like this is the last really hard technical piece, and it feels like it's getting close.
So that feels good.
I mean, honestly, though, like, it's really good.
I spent so much time building out that, saved filter drop down because I haven't had a whole lot of exposure to the front end.
Colleen
00:21:41 – 00:21:42
Mhmm.
Colleen
00:21:42 – 00:22:05
And now I feel much more comfortable with it.
So, you know, I had to get there eventually, but it does it did feel like a slog.
It goes like, what you know, when it's new, you're like, why is it this very even Sean and I were pairing, and, you know, I'm so much faster with Sean there to help me.
But, like, just passing the variables around, it was like, why isn't this variable going where it's supposed to be?
So That's
the that's the stupid Hotwire stuff.
Colleen
00:22:07 – 00:22:08
Yeah.
It's it's stimulus.
Stimulus is like okay.
Stimulus for, like, little one off tiny pieces of JavaScript logic that you need to throw in your app.
It's great.
This is, like, beyond where we should be using Stimulus.
However, I mean, it's cool because Rails people are gonna be able to just do this without adding dependencies, which is awesome.
But, man, was it a stretch to do this with that tech?
Like but anyway, you end up like, some of the dumb things about stimulus are like and this happens even when you're writing small things, but the larger the thing is, the more the stuff comes up.
But it's like, you have to get the names of your, like like, a stimulus controller basically allows you to pass it params, some values, and you have to, like, match up the names of the controller, the names of the params, and the names of the params have to match up with the definition in the JavaScript file.
So you're setting data attributes on the element, and you also have to set these names in the JavaScript file.
And that you have to get them, like, exactly exactly the same.
And then it's confusing because in one hand, it says value.
And on the other, you're not supposed to put value or there's just basically all kinds of little tiny gotchas.
Once you get it all set up, then it's fine.
But if you did what, like, Colleen and I did, which is kind of in the middle of her thought in the code, we were like adding some stuff.
And so we ended up with, like, she had used one word.
I was using another word.
And so we're writing code with the one word, and she's writing code with the other word.
And it wasn't matching up.
And then there's no clear when that happens, it's not, like, super obvious why.
Like, it's not it takes a little bit to figure out which piece is not lined up perfectly.
It's like Rails is like that too a little bit.
You're like, once you get the pieces lined up perfectly, then it just works and it's great.
But
Aaron
00:23:59 – 00:24:04
Is this the whole convention thing?
Like, if you just don't follow the convention exactly, you get off.
It's a little more wiring up in stimulus than I would call it convention, but also, yes.
It's a little bit of that too.
It's not bad.
I'm not saying stimulus is bad.
I really like it as a tool, but it's just there's few little quirks and things like that.
Aaron
00:24:21 – 00:24:23
You are saying Hotwire is bad, though.
Right?
No.
Definitely not.
I really like it.
Aaron
00:24:27 – 00:24:29
Just not what we're doing.
Yeah.
No.
It's absolutely the wrong tool for this.
I really like Hotwire.
I really like that.
I'm glad that we have that as tool.
Like, everything, all the the frames and turbo stuff and sockets like broadcasting for models and stimulus is a useful little tool.
It plays really well with all those things.
Yeah.
It's great.
It's super useful and it's the wrong tool for this.
It's funny.
This is way too much way too much client side stuff.
I mean, we've I've basically mimicked what I would do in, like, a React or Vue application in Hotwire.
Like, we have I had to, like, basically figure out how to manage state and, like, kind of flow it through the whole thing with knowing that, like, I'm having to go back to the server to like rerender these template templates.
It's not it it would be like, it's a safe thing.
We've had this conversation before on this podcast, but it's like, if you have the state in the front end, then it just doesn't make any sense to do Hotwire.
But if it's, if you could keep it on the back end, it all makes a lot of sense.
And in our case, we can't keep it in the back end.
That's just not how this works.
It would have been, it would have been real weird to wire it up that way.
So here we go.
We just basically reimplemented
Colleen
00:25:53 – 00:25:53
how I
would have done this via the stimulus.
Yeah.
So the Colleen's gotta like understand how all that works.
Yeah.
It's a learning curve.
Aaron
00:26:02 – 00:26:05
Yeah.
Should we talk about LiveWire?
Sure.
Yeah.
We can talk about that.
So I think, yeah, it's cool.
It'd be cool to have a Livewire front end.
I think we should not do it till we've set some number of licenses between us that we agree that we will have sold before we add a new front end.
Because adding more front ends equals more maintenance, more time, like in terms of, like, a distraction from the other stuff that we could be doing to actually sell licenses for all the front ends that we do have.
Like if we have Vue Hotwire, React, and Rails in Laravel, I think this is enough.
We could press pause, sell some number of licenses, and then say, okay, we'll add the library front end and go after this.
Cause we're doing this for an integration reason, right?
Like it's fit some admin panel or there's some reason.
Aaron
00:26:53 – 00:27:15
It does fit an admin panel that's very good called Filament.
It also fits another admin panel, I believe, called Lean, but they have their own kind of filters.
But also a number of people on our waiting lists are just using LiveWire and Alpine, as their front end.
Sure.
Yeah.
So we should do it.
I think we should just not do it right now.
Because there's a lot to learn between now and selling, say, 10 licenses.
What will it all look like between now and then?
Which could be 1 month from now, honestly.
Mhmm.
So I'm not saying forever, but just, like, get a few people onboarded, working with Vue and Laravel and then see what that equals in terms of changes.
And then we could build the Livewire version, and it will include all that stuff, versus having to add the maintenance to it.
That's that's what I think.
What do you think?
Aaron
00:27:54 – 00:27:55
Colleen, you go first.
Colleen
00:27:56 – 00:28:17
I'm comfortable with waiting a month.
I I think the oh, the I mean, the burden is gonna be on you, Aaron.
And so taking on additional front ends absolutely is, you know, just gonna add to the things that we have to manage.
And we are managing a lot right now.
I don't wanna wait 6 months.
Colleen
00:28:18 – 00:28:24
But if you wanna wait a month or 2, get a couple of people onboarded, that's probably that's probably smart.
Aaron
00:28:27 – 00:28:59
I agree.
So I think I agree with one caveat that I think the Livewire version might take a while.
So I don't know.
So the guy that the guy that wrote this admin panel, Filament, is available for, like, 5 or 6 hours a week to work for us, which is not very much.
Colleen
00:28:59 – 00:28:59
Okay.
Aaron
00:28:59 – 00:29:33
And so, while I totally agree that we don't wanna, you know, like, we don't wanna do too much.
I I don't want the lead time on LiveWire to be too long.
And given that he doesn't have a ton of time, which is, you know, new information for y'all, given that he doesn't have a ton of time, I would maybe consider getting him started now just because I feel like it's gonna take him a long, long time with that kind of availability.
So with new information, new thoughts, same thoughts.
If we what if it turns out that there's a gigantic demand for Vue and React plus Laravel And it's enough to be an entire business in and of itself.
And it's a huge amount of work to, like, just deal with those three things.
Aaron
00:30:08 – 00:30:08
Okay.
And when would we know that that might happen?
Right.
So if I spend so, like, say I've got I'm a put money into this myself, so that way we can like, I'm gonna just take this is how I'm going to contribute to this is with money.
Not my time.
So let's say it's like $5,000 or whatever, or $10,000.
Let's say 10,000.
I have no idea how much it's going to be.
So, like, turns out we could've used that money for, like, help with the Laravel and view, view bugs that are coming up.
Colleen
00:30:42 – 00:30:43
Mhmm.
Because it's, like, you know, coming out as fast.
Aaron
00:30:46 – 00:30:47
Mhmm.
So I'm just saying there's some uncertainty in spending the time and resources on it right now.
And maybe there's a few weeks from now less uncertainty.
Aaron
00:31:00 – 00:31:25
I'm on board with that.
That seems that seems completely reasonable to me.
So do we want to set a number, like you said, a number of licenses?
So let's say that Laravel and view to, and react.
That's big enough to be $1,000,000 a year.
Aaron
00:31:25 – 00:31:37
Let's just say a lot of money.
With those made up numbers, I think I would still like to pursue a LiveWire version.
Aaron
00:31:40 – 00:32:28
So I don't know if that answers I don't know if that answers the question you asked.
But if what we have now is big enough for a big business, I still think it makes sense to do Livewire and Vue 3, which are, you know, 2 more front ends.
And, you know, depending on how far we wanna go, I think it makes sense to do Prisma, which is a different back end as well.
I mean, that's that's way down the road because, nobody's really asking for that right now.
We haven't tapped into the JavaScript ecosystem at all, but I think I see us, if we make $1,000,000 off of this, expanding the empire even more, But I agree that we don't
Aaron
00:32:29 – 00:32:31
We don't need to do it right now.
So maybe
But even then, though, that's, like, not probably not the only choices on our plate.
Right?
It could also be do another component.
Could also be
Aaron
00:32:38 – 00:32:38
Sure.
Yeah.
I guess no matter what the scenario is, like, a little more information would be good.
The thing that the thing is committing to another front end is committing to some certain amount of maintenance costs.
Time and money.
Aaron
00:32:56 – 00:33:06
And so Forever.
I mean, that's kind of, that's kind of the contract we're making with customers is we're here to support this.
That's why it's different than open source.
Source.
So adding React has doubled our maintenance costs on the front end.
Anytime we need to do anything, add a new feature, fix a bug, Probably we're doing it in 2 places.
Aaron
00:33:17 – 00:33:17
Mhmm.
So we're gonna increase that by 50% by adding another front end.
So we just don't doesn't feel like the right time to grow into yet another front end, but the time could be fast upon us.
Like, I don't think it has to be we have to wait forever.
But say we sell 5 licenses and we're like, this is going smoothly.
It's incredibly easy.
This is fitting perfectly for what people need.
We're solving all their problems.
We don't have a lot of customization that we have to do.
It's not a lot of bugs.
It's just working.
If we get that with 5 people, like adding it, then fine.
We add another front end.
No big deal.
Because then we could start pushing into other, like, to integrations and and, like, really pushing our
Aaron
00:34:04 – 00:34:04
Mhmm.
Marketing, trying to get sell more.
That would make sense to me then.
Okay.
And even then the question will be like, should I spend my money on that?
Or should I spend my money on marketing?
Should I spend my money on and my time on marketing and more sales for the stuff that we do have?
Yeah.
Aaron
00:34:23 – 00:34:39
Yeah.
I buy that.
I'm fine.
I'm fine waiting until we sell a certain number of licenses for the stuff that we've got.
And the stuff that we've got also covers Laravel Nova, which is, you know, I would have to write the Nova integration, but that'll be small.
Aaron
00:34:40 – 00:34:58
That's by far the biggest Laravel admin panel that there is.
So it's not like we're missing out on the biggest admin panel.
We're certainly not.
So what do we want to say?
Do we want to reevaluate end of January and or when we hit 10 licenses?
I'd say we say 5 licenses.
K.
And then decide if, like, it's like 5 people actually, like, actively using it and it's share rated.
Colleen
00:35:08 – 00:35:08
Okay.
Aaron
00:35:10 – 00:35:11
Yep.
So Seems reasonable to me.
Like, then at that point, we can decide 5 more or go for it.
Aaron
00:35:17 – 00:35:23
K.
We'll reassess LiveWire at 5 licenses sold.
Colleen?
Good?
Colleen
00:35:23 – 00:35:25
Sounds good.
Yep.
Sounds good.
Aaron
00:35:26 – 00:35:36
Speaking of Prisma, somebody reached out to me on Twitter.
I think I told you this, Colleen.
It's, Cam Sloan that you interviewed on
Colleen
00:35:37 – 00:35:38
Oh, yeah.
On the social social.
Colleen
00:35:38 – 00:35:39
Podcast.
Yes.
Aaron
00:35:39 – 00:35:53
Yeah.
He reached out to me and was like, hey, I'm using you know, I've built kind of a query builder for my product.
It's Node.
I don't know if you wanna, like, take a look at it.
It's, you know, it's kinda hacked together, but I'd be willing to show you.
Aaron
00:35:54 – 00:36:05
It's It's like, yeah.
That sounds great.
I mean, we've talked about Prisma being, you know, the way into the JavaScript ecosystem.
And he was like, oh, I'm actually using Prisma, so this may be helpful.
So I'm having a call with him later today.
Aaron
00:36:05 – 00:36:10
Cause he was just like, Hey, I'll show you around if you want.
And I said, yes, that sounds wonderful.
Colleen
00:36:11 – 00:36:12
Nice.
Aaron
00:36:12 – 00:36:23
So I know next to nothing about Prisma, so it will be interesting to learn how people use it.
But I've seen it all over the place.
I think they have a ton of money, like $80,000,000 or something.
Like investment money.
Yeah.
Wow.
Okay.
Aaron
00:36:30 – 00:36:32
I know.
Yeah.
Seriously.
Colleen
00:36:35 – 00:36:35
Okay.
Colleen
00:36:36 – 00:36:38
Cool.
Anything from you, Aaron?
Anything else?
Aaron
00:36:40 – 00:36:42
I'm currently doing an indie hackers AMA.
Colleen
00:36:43 – 00:36:43
Right.
Aaron
00:36:43 – 00:37:10
The one yeah.
So they reached out to me on Twitter a couple maybe a month ago and asked if I would want to do one, and I said, sure.
I'm a little bit confused because I just the, the, the prompt was, go to indie hackers and, you know, make a posts and put AMA at the end.
And so I've done that.
And I reached back out to him and said, okay, I've done that.
Aaron
00:37:11 – 00:37:16
Now what?
And I haven't heard anything.
And so it looks like I just decided on my own to
Colleen
00:37:16 – 00:37:17
do an
Aaron
00:37:17 – 00:37:20
AMA, which is a little bit aggressive and
Colleen
00:37:21 – 00:37:27
a little bit presumptuous.
So I feel I feel kind of like a doofus because,
Aaron
00:37:30 – 00:37:37
so I'm hoping that, you know, I'm hoping that they do something and, you know, pin it or tweet about it or
Did you, get up our indie actor's contact in Slack?
Aaron
00:37:42 – 00:37:43
No.
I didn't.
He helped somebody with us the last time too.
Aaron
00:37:46 – 00:37:48
Okay.
Okay.
Colleen
00:37:48 – 00:37:57
He helped me.
He helped me last time.
So you should ask him.
I think though, they're yeah.
If they asked you, they're gonna tweet you or pin it or email it to their people or something.
Aaron
00:37:57 – 00:38:08
Yeah.
I hope so.
Cause it's, real out there right now.
Just looking like a dummy.
So hopefully something happens.
Aaron
00:38:10 – 00:38:19
And I've had 2 people message me and say, hey.
Do you have any invite codes for Indie Hackers?
I wanna ask a question, and I don't.
I don't have any invite codes.
I looked.
Aaron
00:38:19 – 00:38:26
I don't have anything.
So, again, double doofus.
I'm like, I I can't I can't invite you.
I don't know how you get invites.
Colleen
00:38:26 – 00:38:31
That's weird.
They should've given you invite codes.
Yeah.
I know.
Czar.
Aaron
00:38:32 – 00:38:48
I know.
Well, we'll see.
I'll reach out.
I actually don't know who our friend in Slack is, so y'all have to tell me offline who that person is so that I can reach out to them.
Because, yeah, I'm just I'm just out here looking like looking like I really wanted to do an AMA.
Aaron
00:38:50 – 00:38:55
Yeah.
Whatever.
Yeah.
Nothing nothing really other than that.
Colleen
00:38:58 – 00:39:04
Oh, next week.
Oh, I'm out for 2 weeks.
And you guys are kind of Sean yeah.
Sean, you said you're taking this 2 weeks off.
So I am.
But I fully expect that after a certain amount of time of doing nothing, which I intend to do, I will really, really, really want to work on this stuff.
So Yeah.
Yeah.
That already happened.
That happened over Thanksgiving, right?
Took like a day or 2 just playing video games and hanging out with family and stuff.
And then I was like, oh, I need to keep doing that.
And then after a couple days oh, yeah.
It took, like, 5 days off then.
And after, like, 3 days of that, then I was like, oh, yeah.
And actually, like, did some work and wanted to work on stuff.
Colleen
00:39:34 – 00:39:35
Re energized.
Sure.
Colleen
00:39:36 – 00:39:49
Well, I will not be available because we are driving up the coast to, yeah, Yosemite.
Yosemite.
So we'll be we'll be off grid as it were, off grid with, you know, an iPhone and a laptop.
Aaron
00:39:49 – 00:39:51
Right.
And 2 iPads and a button.
Colleen
00:39:51 – 00:39:52
Kind of off grid.
Aaron
00:39:53 – 00:39:54
That sounds fun.
Colleen
00:39:54 – 00:39:55
Yeah.
It should be fun.
Aaron
00:39:57 – 00:39:58
Yeah.
I will.
Colleen
00:39:59 – 00:40:01
Yeah.
It'll be cold.
Hopefully, there's snow.
Colleen
00:40:03 – 00:40:05
Yeah.
We'll see.
But hope so.
Aaron
00:40:07 – 00:40:36
Yeah.
I'll be around, but I will be trying not to work.
So I'll be trying to finish up this integration stuff.
And once we get once we get all the the Vue package built, I can, do one last final proof that it all works together and then reach out to, that guy Neil.
Let me reach out to him today and just see if we can set up some time to just talk through his app even before then.
Yeah.
Good idea.
Because, like, we're not.
Look.
If I could just string together 3 hours of coherent thinking, we'd be done basically on my end.
Aaron
00:40:50 – 00:41:03
Perfect.
Yeah.
I'll reach out to him today and see if I can set up a time, just to at least talk about it.
All good?
Anything else?
Colleen
00:41:03 – 00:41:04
Awesome.
Sounds great.
Aaron
00:41:06 – 00:41:08
Alright.
We'll end it there.
Colleen
00:41:08 – 00:41:08
K.