Sean built a new product
Andrew is slowly crawling towards a beta release for MetaMonster, he's almost done with the signup/checkout flow and then has a few more things he wants to check off the list before launch. Sean has been playing with Lovable again, and has built a proof of concept for a Webflow changelog he wants for Miscreants (and is thinking about selling). The guys get a little technical talking through the challenges with Supabase edge functions and building with AI.
Links:
Links:
- Andrew’s Twitter: @AndrewAskins
- Andrew's website: https://www.andrewaskins.com/
- MetaMonster: https://metamonster.ai/
- Sean’s Twitter: @seanqsun
- Miscreants: http://miscreants.com/
- Sean's website: https://seanqsun.com/
- Stacked cookbook: https://www.amazon.com/Stacked-Perfect-Sandwich-Owen-Han/dp/0063330652
For more information about the podcast, check out https://www.smalleffortspod.com/.
Transcript:
00:01.01
Transcript:
00:01.01
Sean
How you doing?
00:02.26
Andrew
I'm good, man.
00:03.31
Sean
How's South Carolina?
00:04.58
Andrew
South Carolina was great. Had...
00:09.01
Andrew
but Sorry.
00:10.00
Sean
we'll start recording again.
00:11.53
Sean
No, keep it rolling, keep it rolling, keep going.
00:13.18
Andrew
You don't want to leave that? You don't want to leave my my hacking?
00:15.76
Sean
Hmm.
00:18.03
Andrew
Yeah. Yeah, picked up a little bit of, i don't know, crud. not Not even a cold necessarily, just like got super congested for a few days. But had a great time with my family.
00:29.79
Andrew
Took my parents to Korean barbecue for the first time ever. They'd never never tried Korean barbecue and they loved it.
00:32.22
Sean
Whoa.
00:36.68
Andrew
I made some butter chicken for my mom's birthday for her and some of her friends.
00:39.84
Sean
Nice. Happy birthday your mom. What is your...
00:43.39
Andrew
My mom got a new kitten.
00:45.25
Sean
Whoa.
00:46.19
Andrew
So that was fun.
00:46.48
Sean
Big updates. Uh-huh.
00:47.60
Andrew
her name's Her name's Ruthie.
00:49.57
Sean
Nice.
00:50.30
Andrew
Full name RBG.
00:51.66
Sean
are Okay.
00:52.46
Andrew
She's my mom's resistance kitten.
00:54.48
Sean
Very good. i love it. I love it.
00:57.66
Andrew
Yeah. Yeah, things are good. i Cancelled last week's podcast because i was trying to get some work done on client project that we just we just shipped.
01:11.63
Andrew
Congrats to the Dreadnought team. Their website's now live.
01:14.42
Sean
Absolutely.
01:14.58
Andrew
Super cool to see. it wasn't It absolutely was not that I was procrastinating on my promise to finish the onboarding flow for Metamonster.
01:21.95
Sean
Right. Right. Right. Convenient story.
01:24.77
Andrew
Yeah, that had nothing to do with it.
01:26.24
Sean
Your mom's birthday kitten. i don't believe any of those things. Yeah. Just kidding. Happy birthday to your mom. I don't know her name, but okay.
01:37.38
Andrew
Allison. Allison had a great birthday.
01:39.39
Sean
Happy birthday, Allison. Cool. Or Miss Askins. Miss Askins. Miss Askins.
01:45.00
Andrew
Allison's fine. We are we are adults.
01:49.54
Sean
And you might be an adult. You can make butter chicken. I can't. Cool. Cool. But that that was a fun, was that was a fun, hectic launch to get everything live. But
02:03.35
Andrew
It was. Yarek is a beast, man.
02:05.70
Sean
I know.
02:05.75
Andrew
Yarek, like, just...
02:06.73
Sean
Yeah.
02:08.61
Andrew
There were so many things that he just took and ran with. And, like, the, the like, image... generator app that he built to apply like one of the the effects that we created for the website like without anyone asking him to build it was sick the client loves that uh yeah he's he's a beast i i feel i am a little worried that he hates me because i was constantly like hey all right can we change this can we change that like got another request for you but but no he's awesome
02:17.91
Sean
Yeah. Yeah.
02:26.24
Sean
yeah
02:41.42
Sean
Yeah, he's, yeah. yeah. um do think And the guy's a part-time professor.
02:48.22
Andrew
And he's a part-time professor.
02:49.76
Sean
That's crazy. He's out here teaching kids design things.
02:50.68
Andrew
Yeah.
02:54.93
Sean
Yeah, yeah, he's pretty good. We're very lucky to have him, so. Cool. health so So, okay. So we skipped. It's just for context.
03:03.72
Sean
For people that missed the last episode, two weeks ago on our weekly episode podcast, Andrew promised that for the next podcast, he would have his onboarding flow for his SaaS app done.
03:16.04
Sean
It has been, we missed an episode, so technically this is the new episode. so so is it see it? are like can we see it
03:24.48
Andrew
Define done.
03:28.78
Sean
you find time I don't know. I don't know what you had in mind.
03:33.06
Andrew
Okay, so I would say the the we're over 50% of the way there.
03:40.07
Sean
Can I reset my password? Because I forgot it. and he can't like
03:42.15
Andrew
No, no, that's that's one of the things that I still need to do.
03:43.06
Sean
gosh
03:46.98
Andrew
So you can sign up for an account. As part of the signup flow, you have to pick a plan and then that kicks you out to Stripe checkout and then kicks you back to the product.
04:01.22
Andrew
I have the webhook set up to like register that you've got an account. And like the auth middleware, like kicking you out of the site if you don't have a if you don't have a subscription.
04:08.40
Sean
Nice.
04:14.95
Andrew
So that was like the big chunk of work that was in my mind. That is all done. i'm testing on the live site right now i just pushed it live so i'm testing it just to make sure that everything's working need to switch over to like prod stripe keys and stuff like that but but that that should all be functional uh What I still have to do is all the annoying little minutia that you should probably have around like a good solid sign up flow.
04:49.83
Andrew
So integrating our email marketing tool so that you you can control your marketing emails. Making sure that the Stripe confirmation email is being sent out before you get get charged.
05:08.53
Andrew
Adding a settings page so that you have a place to go to find a billing link so that you can open up the Stripe billing portal. Adding forgotten reset password.
05:17.72
Sean
sure.
05:17.86
Andrew
Updating our privacy in terms of service. And this is starting to veer into... Yeah, that's starting to veer into more like launch prep, but privacy, terms of service, onboarding emails, those are the things I...
05:29.86
Andrew
The, like, some things I need to do, too.
05:30.70
Sean
shit
05:31.51
Andrew
So I would say it it's, like... I think realistically, it's like 70, 80% of the way there. Some of this other stuff is like, I see as more scope creep, but it's scope creep. I'm probably going to tolerate because I think it'll just make the experience feel a little bit more polished on, on launch day.
05:52.23
Andrew
yeah. so
05:54.35
Sean
Isn't it like, I feel like, especially because I've been, you know, messing around with, especially because I've been messing around with like Lovable and Bold and everything, and like building these like apps.
06:08.24
Sean
Yeah.
06:09.75
Sean
like building a fully fledged SAS with a login and everything.
06:16.57
Sean
Not, not that it's not, just that it's like so much work. It's like, there's so many things in every SAS ad that we're so used to, like everything that you just said, that are all things that are solved for, but so like, there's just so much to build.
06:23.88
Andrew
Mm-hmm. Yeah. yeah
06:30.04
Andrew
Yeah.
06:30.56
Sean
Including.
06:31.66
Andrew
And AI is really good at this kind of stuff.
06:32.48
Sean
Yeah.
06:34.10
Andrew
It's really good at this boilerplate stuff. I've been using, think I talked about this last time, but I've been using cursor a ton to, to build this stuff out, but then it's still, it's just pretty time consuming because it's all like integrations.
06:46.21
Sean
yeah
06:48.00
Andrew
And so it's, it's touching stripe, it's touching loops, it's, you know, touching super base. It's, and so like all of the integration stuff, testing that just takes time and like,
06:59.24
Andrew
That's largely human time still.
07:01.62
Sean
yeah and honestly it's so fucking annoying to do like yeah
07:02.27
Andrew
So.
07:06.44
Andrew
It's boring. It's not fun. It's just boring cred work, but it's got to get done. i mean, this is the appeal of of starter kits. Like this is why so many people have made so much money off of starter kits is people don't want to do this work.
07:18.100
Sean
Yeah.
07:21.65
Andrew
But the problem is those starter kits all kind of force you into certain design aesthetic or a certain like structure to your code that that a lot of people don't want. So I'm also sort of looking at this as like, we really like Nuxt so far. And so I'm looking at this as like, OK, we're building our own starter kit.
07:41.02
Andrew
And if we you know build something, ideally, I would have taken chart juice would have been that for me but like i didn't build chart juice on nuxt i built it with view and so i think it would be easier to port a lot of what we have with metamonster over to something new if we needed to build a new product so that's good there's something else i was gonna say there oh what was it i don't know it'll come to me if it was important
07:49.28
Sean
Yeah.
08:13.71
Sean
For your onboarding, are you doing... so So I was messing around with this as well, to not just do like a sign-in or create an account on the level blocks I was working on.
08:23.86
Sean
Are you doing anything like like onboarding questions, invite your team, any of that like UX stuff? Or are you going to leave that for next phase after you...
08:34.60
Sean
Gotcha.
08:34.98
Andrew
That'll definitely be a next phase.
08:36.76
Sean
Gotcha.
08:37.67
Andrew
Oh, that's what, right, right, right. I've got something I want to tell you about as like, that's my next up project.
08:44.08
Sean
Okay.
08:45.84
Andrew
Yeah, that'll definitely be a next phase. Depending, I may see if like, as I'm building out the settings page, if I can add a form to like,
08:55.48
Andrew
Probably not. i you know I may add a team member, have like an add a team member flow. I really want to have add a team member because one, our only customer, has requested it.
09:07.02
Sean
Hell yeah.
09:08.43
Andrew
You. You have requested it.
09:09.13
Sean
Right, right, right. Hell yeah. Yeah.
09:11.84
Andrew
And then also, billing based off of Pages Crawled.
09:17.14
Sean
100%. Sure. Yeah.
09:17.54
Andrew
If you add more team members, that's more people to crawl sites and crawl pages. And like so like it's just it makes sense from a product-led growth perspective to to build that in as soon as possible.
09:30.46
Andrew
But it makes sense to build a lot of the things we want to build. So I don't know if that'll actually make the cut. But and it's definitely on on my radar.
09:39.27
Sean
yeah
09:42.32
Andrew
So yeah, our sign-up flow is pretty minimal know email organization name password and then you have to pick a plan and you get a seven day free trial but let me make a note i gotta double check to make sure i've got trial set up in Stripe.
10:06.00
Andrew
think I do, but yeah, you get a seven day free trial, but you do have to pick a plan and enter a credit card. We're going to do credit card up front.
10:13.63
Sean
Nice.
10:14.40
Andrew
So, so
10:14.68
Sean
Nice, nice. Did you find any, i know you were looking for like UX related like with of products that made you do that. Did you end up finding any?
10:22.93
Andrew
dude, not really. Like I had a really hard time finding, Finding exam good examples of people who require a credit card up front but still do a free trial.
10:32.84
Sean
Yeah.
10:34.98
Andrew
The norm has just for so many sites has become no credit card required flows.
10:38.77
Sean
Mm-hmm. Don't you feel like for a while, plenty of these companies wanted for credit card out front? I feel like there's so many that felt like that.
10:47.74
Andrew
Well. so one of the things that I've heard Rob Walling and Asia Mattos say, uh, wait, her name's her last name's not Mattos anymore. orange.
10:57.82
Andrew
Oh, I think, Asia's awesome.
10:59.48
Sean
Okay, I don't know what that but yeah.
11:02.86
Andrew
She's based out of Atlanta. She's like a marketer who does a lot of work with like the bootstrap community.
11:05.20
Sean
Cool.
11:08.74
Andrew
but, so one thing I've heard Robin Asia say is that, that no credit card required works is like kind of ideal.
11:23.10
Andrew
Once you have a little bit more product market fit and have your ideal customer defined, like basically, you know, requiring a credit card upfront is going to reduce the number of signups you get, but, it's going to make, increase the likelihood that the people that do sign up are like
11:34.62
Sean
Yeah. Mm-hmm. Mm-hmm.
11:40.76
Andrew
very interested in your product. And so that's kind of ideal when you're at our stage where you don't want to be wasting a lot of time, like accidentally building features for people who don't really want what you have to offer.
11:42.46
Sean
yeah
11:53.36
Andrew
But then as you have a better and better like onboarding flow and your product, you have a better idea of who your ICP is and how to reach them and like how to activate them once they get into your product.
12:07.48
Andrew
That's the perfect time to then you know increase the number of people coming in so that you have a better chance of like just getting more eyes on the product and getting more people to like experience the value you can offer but it's like you're just going to be poorly optimized for that from the start by nature of being early stage and so yeah that's that's kind of how i've started to think of it so it would make sense to me that like a lot of people start off credit card required and then end up removing that requirement
12:39.13
Sean
Yeah, I think that checks out. I think that makes sense.
12:42.28
Andrew
A lot of the SEO tools have like a weird Moz, I think still is credit card required. Ahrefs and Simrush are sort of like a weird hybrid where it's not technically required. Like they technically have, like I think Ahrefs is like not required at all. And then Simrush like tries to encourage you to put a credit card in, but then you can kind of you can skip it, and there's and they just like put you on their free tier or something like that. It's really it's kind of awkward, I think.
13:12.96
Sean
Yeah.
13:16.15
Andrew
Yeah.
13:18.50
Andrew
By the way, the next thing that I'm going to tackle once I finish this were We just did a big round of crawler updates.
13:30.27
Sean
There's a big crawler guy on the page now.
13:32.40
Andrew
Yeah, Austin is getting sick and tired of the crawler. He is so tired of it. But like we had to try like...
13:36.96
Sean
Oh, I just thought had a big monster pointing at the thing.
13:39.93
Andrew
Oh, okay.
13:40.68
Sean
That's what I meant, a big crawler guy. Sorry, go ahead.
13:44.00
Andrew
I thought you were calling Austin a big crawler guy.
13:46.46
Sean
No, no, I mean, medium, I don't know.
13:48.94
Andrew
yeah
13:50.10
Sean
So, there's only one.
13:50.93
Andrew
Austin is getting sick and tired of the crawler.
13:52.51
Sean
Uh-huh.
13:53.74
Andrew
But like, he's finally got that to a point where we think it's going to do a good job of evading bot detection and just scraping content much more reliably.
14:00.46
Sean
Oh, nice.
14:02.62
Andrew
So we're we're excited about that. Yeah. And so he's going to start moving on to WordPress integration, which means we need a test site for WordPress.
14:09.12
Sean
Cool.
14:12.60
Sean
Hmm.
14:12.65
Andrew
And since someone moved their WordPress site over to ghost, no, I think this is the perfect time for me to explore my inner content goblin.
14:15.94
Sean
Can we move back? Oh, yeah.
14:23.74
Sean
oh yeah Do that. yeah
14:29.58
Andrew
I'm envisioning like having a different test site for like my dream is now to have a different test site for like each CMS that is some type of monster and is like just an AI generated content experiment.
14:41.12
Sean
I love it.
14:43.25
Andrew
So do like a, you know, book notes monster or book monster and then do like a cocktail monster and like a, you know, do a bunch of like,
14:43.50
Sean
I love it.
14:47.82
Sean
I love it.
14:53.22
Sean
Dude, I still, just so you know, I still own bubbletearecipes.com if you want it.
14:58.08
Andrew
Heck yeah.
14:58.16
Sean
If you wanna.
14:59.65
Andrew
But it's got to have monster in it. It's got to be Bobo. Bobo monster.
15:04.93
Sean
Don't do Bubble Monster.
15:06.29
Andrew
Bobo monster is so good.
15:06.38
Sean
That's not
15:09.41
Andrew
Bobo monster is so good.
15:11.10
Sean
Yeah, it's just, you know, like, do you did you see that Simu Liu thing where, like, boba thing where like
15:19.34
Andrew
oh no. Yeah.
15:20.46
Sean
so So, seemingly, he was, like, on Canadian Shark Tank, and these two these two, you know, non-Asian people came up, and, like, we reinvented boba that's natural and healthy, and and he's like, you know, it's just tea and milk.
15:22.18
Andrew
Yeah.
15:31.60
Andrew
Yeah, fuck that.
15:34.88
Sean
I don't know what you mean, natural, all this stuff. But they had a nice
15:38.98
Andrew
Tea milk and a lot of sugar usually, but
15:40.79
Sean
Yeah, for sure. sure For sure. Anyway, it was just one of those sort of like things or internet situations.
15:46.41
Andrew
Yeah.
15:47.88
Sean
so
15:49.66
Andrew
Stay away from Boba Monster. Got it.
15:50.86
Sean
yeah But I like the idea. The idea is sick. I love this. yeah Yeah. I also love that you can also then have a gallery of like, here's Metamonster at work.
16:05.39
Sean
Cool.
16:06.14
Andrew
Yeah, it should be fun.
16:07.100
Sean
Thanks.
16:08.34
Andrew
So, yeah. What's going on with Miscreants? You'll have a lot going on right now.
16:14.01
Sean
We do have a lot going on. and do feel like I have just a little bit more room to breathe after this week of the launches.
16:19.100
Andrew
Sick.
16:20.62
Andrew
Yeah, you launched two client sites?
16:22.92
Sean
yeah yeah yeah one one after the other it was good i went outside for like the first time today all year that's not true on like a work day on a work day at and a meeting the city that's why i'm not just wearing like a hoodie and a t-shirt or or a t-shirt on this call for sure for sure
16:24.58
Andrew
Dang.
16:43.24
Andrew
I'm literally wearing a hoodie and a t-shirt.
16:47.12
Sean
I guess my point is this this is one of the times I'm not wearing like the same hoodie multiple days in a row. minimumma Not Metamount, sorry. Miss Screens is good. We just sent out an offer for to to this like really great product marketer.
17:00.25
Sean
Excited to bring her on.
17:00.53
Andrew
Hell yeah.
17:04.66
Sean
We're prepping to go to RSA. had a fair hotel. incredibly expensive.
17:09.26
Andrew
yeah
17:09.34
Sean
It's like
17:10.70
Andrew
When is RSA?
17:12.70
Sean
in two months from now April 28th.
17:15.62
Andrew
Okay. Cool.
17:17.50
Sean
I'm also prepping to go to microconf. Very exciting. That is in...
17:21.97
Andrew
Yeah. One of my best friends might be going to that, by the way. I don't know yet.
17:25.86
Sean
That's me. Okay. Cool.
17:27.62
Andrew
One of my other best friends.
17:27.82
Sean
and
17:30.15
Andrew
Yeah. So y'all should meet up if if you're both there. I'll let you know if if he ends up going
17:34.28
Sean
Yeah, totally. Is this, is this, uh, his name's Remy?
17:37.62
Andrew
Rami?
17:38.54
Sean
Okay, cool.
17:38.80
Andrew
Yeah.
17:39.54
Sean
Sweet, sweet, sweet, sweet.
17:39.64
Andrew
Yeah.
17:40.36
Sean
QR code guy.
17:41.95
Andrew
Yep.
17:42.36
Sean
Yeah, nice, nice, nice. what else is happening on the screens? Uh,
17:50.36
Sean
We just, oh, actually, sorry. We we also just are bringing on our junior start started yesterday. was off today.
17:56.28
Andrew
Oh, sick.
17:57.32
Sean
It's coming back tomorrow for more and more official full time. So welcome, Claudine. Yeah.
18:03.54
Andrew
Cool. Cool.
18:06.08
Sean
So it's cool. We're, you know, we're growing. or Oh, it's a final product marketer. We actually used a recruiter for the first time, which was crazy because like,
18:13.89
Andrew
Oh.
18:16.71
Andrew
Didn't y'all work with a recruiter a few years ago? Like.
18:19.60
Sean
Yeah, but it was like kind of a friend was just helping out and tossing some things.
18:22.04
Andrew
Oh, OK.
18:22.80
Sean
It wasn't like real like recruiter stuff. This was like like, that was like a friend who is like an awesome recruiter in this space, but very this was like, we had to pay them you know percentage of the salary and and talk to them and
18:36.40
Andrew
Yeah.
18:38.34
Sean
I think I've always hated recruiting agencies and I've always thought they they were useless because the work has to just be so easy.
18:41.24
Andrew
Yeah.
18:45.65
Sean
was wrong.
18:46.28
Andrew
Oh, it's not easy work.
18:46.82
Sean
was wrong.
18:47.44
Andrew
No, it's it's definitely not easy.
18:47.72
Sean
I know. I was so wrong.
18:49.60
Andrew
they're they i totally understand why they exist. They just charge so much that I could never afford it but
18:59.65
Sean
For sure. But, you know, i think like JJ and I did did our own route, even interviewed people and like fundamentally, like it's a night and day difference of who we found and definitely expensive.
19:17.02
Sean
Definitely very expensive more than, yeah. But honestly, I think like, the like I'll pay like low five figures to find like the right person.
19:27.19
Sean
Yeah.
19:27.52
Andrew
Yeah.
19:28.74
Sean
so yeah
19:29.52
Andrew
If you have the the margin to do it, it makes total sense. And like hiring just heats up time. And so having someone take all that time off your plate, huge.
19:38.24
Sean
yeah yeah absolutely
19:43.30
Andrew
Yeah. Cool. glad Glad it's been a good experience.
19:46.72
Sean
yeah i mean it was like it was the first resume they sent actually who ended up being the person that we found so like arguably it was like a four hour turnaround so like find this person
19:52.17
Andrew
Damn.
19:59.08
Andrew
I'm sure you also made the recruiters day when you actually liked the first person that they sent over because I have friends who are recruiters and it's like when they have a client who won't hire anyone they send them it's it gets so frustrating.
20:04.62
Sean
I know
20:12.32
Sean
I do, I do wonder about that. Cause it's like, I wonder if there is a limit. I don't, I didn't see the contract and didn't handle any of the, like those conversations, but I was wondering like, what if, what if I'm just difficult?
20:18.82
Andrew
Yeah.
20:22.34
Sean
What if I just keep wanting to talk to people? yeah, that's why I never worked out with, uh, with market or hire. when we tried that because they give you like one person and you have to like interview them and say no for them to be the next person.
20:36.94
Sean
Or, you know, it's like, you can't be like wishy-washy really about like the people that they give you. like they They stand their ground significantly about it. Yeah.
20:47.36
Andrew
so you can't like interview three people and be like okay this person is clearly better than these people and if you get someone who's like they're pretty good but i feel like they could be better then you're kind of stuck either saying no or yes
20:52.41
Sean
Yeah.
20:57.40
Sean
yeah
21:00.38
Sean
Yeah, I feel like that latter situation is like is is what I ended up facing. I just couldn't i couldn't keep going with it. Anyway, it was cool. Otherwise, i' may may not have just sat in front of my computer and just like banged on Lovable for a very long time and hit my...
21:16.45
Andrew
nice yeah
21:19.52
Sean
So that thing we talking about was like all the things you have to do for like a SaaS. Yeah. first of all lovable or bolt just needs to come out with like starter kits at this point it's really annoying that they don't just have starter kits yeah
21:32.15
Andrew
actually makes so much sense yeah
21:34.26
Sean
because I have to redo it constantly, whereas they could just do Subframe is doing a good job at this something from the front-end side. They're just giving you, like, these, like, template, like, Subframe's different, but it has an AI feature now.
21:48.56
Sean
But, sorry, to go back, like, i use Lovable. was trying to build the changelog Webflow app.
21:54.52
Andrew
Yeah. So tell me about this thing that you've, you're building.
21:57.36
Sean
Okay.
21:57.76
Andrew
Cause like you sent it to me and I remember you mentioning like, Hey, I want to build a web.
22:00.62
Sean
Right, right, right.
22:03.95
Andrew
You've been talking about a web flow change log for a long time.
22:06.26
Sean
For sure.
22:07.22
Andrew
But then you kind of decided to build it. I feel like in between podcasts or something like that.
22:11.80
Sean
Yeah.
22:13.13
Andrew
And then you, you, you started making progress on it, but then it's also morphing and evolving into something else.
22:13.60
Sean
Yeah. Yeah,
22:18.38
Andrew
And like, you aren't going to sell it or you are, i can't tell.
22:19.63
Sean
yeah, this dope.
22:23.06
Sean
I don't know, I'm not sure. The scope has kind of changed significantly around it. Okay, so it was a side project I picked up because JJ was out last week and I didn't want to run through like working with a dev or or figuring like the prototype out without looping her in and then dying on a branch because I get too busy.
22:38.60
Andrew
Yeah. Mm-hmm.
22:41.39
Sean
So I found a project that, you know, I can just go do. The idea is that, like, fundamentally version control is different in Webflow versus in like standard Git based version control, right?
22:53.67
Sean
In Git, you a main branch, the devs branch it off, it gets PR'd, it gets turned into a PR, another dev reviews it, it gets printed back in.
22:59.40
Andrew
yeah
23:01.02
Sean
Great, you have one main branch, that main branch goes, this goes gets pushed to staging, and it gets pushed to prod. Webflow is different. Webflow, you have basically two environments live at the same time. You have a staging, a.webflow.io site, and then and then a main thing.
23:17.73
Sean
So you actually have two main branches running at the same time. Enterprise sites get to branch and do fancy things, but most of our clients aren't on there. So we have basically two things where we basically push updates to staging, it gets checked, and then it goes to prod.
23:32.32
Sean
The crappy thing is... Like anyone can hit publish at any time and anyone can make changes at any time. Anyone as in like any of our devs, but also clients.
23:43.04
Andrew
Mm-hmm.
23:43.16
Sean
So we run into a lot of different types of problems.
23:43.23
Andrew
Mm-hmm.
23:44.76
Sean
Like one is clients sometimes just straight up create things or make changes in everything or whatever. And we have you know people in different time zones, so someone in SF might make changes and then someone and on our side in Poland like might make it you know might publish something live or publish something to staging or vice versa.
24:04.12
Sean
But there's now there's none of this communication back and forth. And you know what what I'm sort of suggesting doesn't solve for every single part of it, but it solves for a lot of it.
24:15.78
Sean
Another thing is that like we don't have, like you can't do like git commit messages, you can't do like, you can't do publish messages. We've been hacking this by just having a webhook where every single time someone hits publish, it goes to a Slack channel that's shared with our client.
24:31.46
Andrew
Mm-hmm.
24:31.76
Sean
but one that requires like someone to hit publish every single time for the client to see it. And also technically we only do with one or two clients who have like active client devs.
24:47.00
Sean
The other problem is that when someone's working on something, they're also not just making one, like a is not the same as commit.
24:57.13
Sean
Like dev might publish five to 10 to 15 times before they're finally ready to show it because they need sometimes, you know, we have custom code and everything you need to see a live.
25:03.32
Andrew
Mm-hmm.
25:07.41
Sean
So that's like, I just gets blown up with publish messages. the idea in that Slack channel is that like every time you publish something, then you then you like sign it basically saying like I did XYZ thing, it's a bug and whatever, which does happen if we like push to both prod and dev at the same time, which is like a merge.
25:27.44
Sean
But also most of those things happen where everybody knows and everybody's together. Like usually it's on a call or whatever that something's going live. So the idea is build a layer on top of that Slack channel, essentially, or rather just like build a SaaS that instead of taking the Webflow webhook and pushing it to Slack, take the Webflow webhook, push it to this, to like a Supabase Edge function, fill up a table with all of these commits.
25:53.70
Sean
So I started digging deeper into this because it turns out Webflow actually has a lot of different webhooks that are just not public to you. You just have to set it up through the API you can You can track pages created, CMS collections updated, form submissions, e-commerce items, and all that sort of stuff.
26:06.38
Andrew
Oh, that's a good one.
26:10.34
Sean
Yeah, because Webflow later on has also built this thing where CMS publishers are different than regular publishers.
26:16.58
Andrew
Oh.
26:16.62
Sean
So actually there's three different environments all at once that can be updated. And you don't, you know, like there's no visibility when you're doing something that someone's staged or published by accident or scheduled or draft or whatever.
26:26.34
Andrew
Yeah.
26:31.28
Sean
So the idea is that this gives you like ultimate visibility into it. We have like three different branches that are live at the same time. And then and then a like an activity queue.
26:43.80
Sean
And then the idea is that you can then like select a bold, you know, it's tagged to the person who did it because it's the Webflow user. But then you select you know as many of the ones that you want, and you can kind of basically group them. Or or in Git-based control, you would be squashing commits.
26:59.32
Andrew
Mm-hmm.
26:59.56
Sean
You can squash them together into an actual commit. So everything is an event, and then you squash them into a commit or a change or whatever.
27:10.82
Sean
Which is really cool. and then then And then it sort of continued to expand as as I was working on it because I get to like basically do product, play product product manager in my head while my dev in front of me is building all of it.
27:23.92
Sean
So then i was like, okay, if we can do that, why don't we also allow custom activities tracked on this map, right? you know What if we want to do QA? What if we make changes outside of Webflow, like in HubSpot with forums and stuff, and we want to track that?
27:38.34
Sean
What if we want to track just like custom events such as, you know, but like one of the cool things about this is that we can actually show significant changes like website performance over time. So if I want to say like, because we like,
27:52.64
Sean
we did all these changes and we squashed into a publish until commit. Since this commit, before this commit, you see that like bounce rate was 60%. After this commit, you see that bounce rate was 40%.
28:03.86
Andrew
Ooh, sick.
28:03.91
Sean
Clearly something changed. So that's cool. And then it was like, okay, but like if we can add custom events, clients should you also be able to add custom events in the form of requests.
28:17.50
Andrew
This is where you lost me, by the way. Everything up until now, like, when you were talking about it, I'm like, yeah, cool. This is all changelog related. This is all, like, performance related.
28:27.66
Sean
Right.
28:27.70
Andrew
And then now you're like, now I'm like, my product manager brain is like, whoa whoa whoa Whoa, whoa, whoa, whoa, whoa. We're now changing the job to be done pretty drastically.
28:37.04
Sean
But it's, okay. i Tell me if it is crazy, right? Like to me, a public change log responds to like a canny, right? People, users are always saying like, like like I want XYZ thing, they upvote it. And then when you use canny, you can say like, okay, we just wanted to XYZ request, and now it's finally pushed.
28:57.20
Sean
And the idea is similar where a client can request a feature or even a bug fix. And then when we squash a commit, we can tag the request that it's supposed to be tagged to they might do it you know they might do it in like they might instead of using their feature thing they might do it in uh you know their click up or monday or whatever and that's fine too we can always just kind of link it but not all of our clients do that more clients actually just do that stuff on like slack and that in itself is annoying not annoying it's just and we have to like watch it like a hawk whereas if we actually just have them make commits
29:17.02
Andrew
Slack.
29:33.74
Sean
or we make them make requests in here, then we can tag the requests in the change log. It's kind of cool. and it It feels useful.
29:40.78
Andrew
yeah Okay, okay. You might be bringing me back around.
29:43.86
Sean
Good, good, good, good, good.
29:44.64
Andrew
I mean, it feels it does still feel like scope creep.
29:45.02
Sean
100%.
29:46.95
Andrew
I feel like MVP, my MVP brain is like, you can ship without like half the things you just talked about and start testing and getting people to use it.
29:55.23
Sean
hundred percent
29:57.86
Andrew
But yeah.
29:58.18
Sean
oh Oh, the MVP is done and I and i just ripped it apart. 100%, I'm with you.
30:07.08
Sean
Yeah, I might have been in just like a caffeine haze at the time I was doing all this. So I'm not done. kept growing. Okay.
30:19.56
Sean
okay it like Like we started thinking about like, what are like other things, or not we, I started of thinking about like, what are other things that clients ask for? And like, what are, like, if the client is in here, it's a client dashboard, right?
30:32.82
Sean
What are the other things they ask for?
30:33.10
Andrew
Mm-hmm.
30:35.00
Sean
So for example, one of the things our clients are always asking for is a brand kit. And, you know, like, it's not hard for us to make like one pager brand guideline or whatever, but it's really annoying to make every single time. Like, yeah like we gotta put it on a one pager, we gotta like, make various types of these logos and then like, the client's never going to Figma to download it.
31:00.04
Sean
They're just always asking us for it on Slack. And what if they were logged in? like i don't think the client would give a shit if we gave them just like a login that was it was like here download all your stuff here grab you know grab colors and everything from this
31:16.36
Andrew
I still don't think they'll use it. I think they'll still just message you in Slack and be like, hey, what's what's this thing?
31:20.34
Sean
uh that's fair that's a good point that's a good point i really should actually you know what we should do we should actually build that as a slack bot and
31:29.98
Andrew
Oh, now that's interesting.
31:31.73
Sean
Because they can just request their their files like that. Yeah.
31:35.10
Andrew
Although then they're goingnna they're going to message you in Slack and not ping the Slack bot. And you're going to have to be the one to go and imp ping the Slack bot.
31:42.04
Sean
Yeah, but that's that's just like lower friction. you know that's that's it's better than It's better than dealing with like having to go to Figma, export it. like Now we have like a I mean, this is because I don't have like great, I'm trying to get better at this, but like great file cleanliness and everything.
31:59.64
Sean
Like if I had perfect client folders, I could just grab it for him and dump it.
31:59.70
Andrew
Hmm.
32:03.62
Sean
I have to go to Figma, download it, realize that it's like, you know, client name underscore logo dot SVG parentheses three because I've done billion times already.
32:12.80
Andrew
Yeah. Yep.
32:16.80
Sean
But yeah, oh, okay, okay, okay. So the other thing is if we are going start attaching requests different squashed commits, it was like one of the other things that we should also show is like effective pages, right?
32:29.60
Sean
We should have a form field, like like a text input field. in this i made xyz changes there is a description field where you can put photos and you know put photos and stuff in there but there's a description field but it'd be nice if like we could also like tag specific pages that we're working on and in the future even like auto tag because you can see some amount of changes and iffy and i don't want to get that deep into like i mean i you know one of my best friends was building a crawler and has been
33:02.39
Sean
very sad about it so but now there is a just like a sitemap parser you just dump in the xml and it adds all the pages to like a super based database so that you can tag each one and then yeah and then and then you know it's just oh okay okay so i did all this as an mvp without off
33:12.24
Andrew
Cool.
33:24.21
Sean
I did a lot of this as an AP without auth. Some of it was working, some of it wasn't, whatever. And then I finally attached to the super base and then i had a level build auth and it completely like shat itself. like It couldn't figure it out.
33:38.63
Sean
And i realized what needed to happen was I needed to set the, I needed to figure out the database schema, like everything that I wanted. Because like at that time, when I built it out with Lovable, when I built out just the features Lovable and went to SubaBase and I told it I want organizations, workspaces, client users, and like agency dev users, it just it it couldn't understand all of that sort of stuff.
34:02.82
Sean
So the first however many tokens, like probably two, like I don't know. however, like 200 million tokens were spent rebuilding just in like a organization workspace client user, like blank app with Lovable.
34:21.10
Andrew
Yeah.
34:22.42
Sean
And then i forked it on Lovable and then now I'm building, like I have rebuilt this tool on like a very shitty version of a starter kit.
34:34.88
Sean
Yeah, anyway, I was to say at this point, I don't even like I like it's not it it just feels like I'm doing Webflow. It's just like if it doesn't feel like I'm I don't feel like AI is doing any of the coding for me, except that like literally the syntax.
34:49.07
Sean
Like, sorry, AI is not doing any the software engineering for me.
34:51.86
Andrew
Oh, yeah.
34:51.95
Sean
It's it's just the code monkey. Yeah.
34:54.49
Andrew
Yeah. Yeah, i I honestly had the same feeling when I was using cursor. I was like, this it starts to feel like you're using Webflow. and Even though Webflow, like you're editing values, and so you still have to like kind of understand how CSS works a little bit more.
35:01.59
Sean
yeah
35:08.16
Sean
Yeah. Yeah. Yeah.
35:08.93
Andrew
But it's that same feeling of like, of, yeah, I'm just kind of pushing things around and lot of trial and error and like moving stuff around and seeing what sticks.
35:19.50
Sean
yeah
35:20.04
Andrew
But yeah, you still have to do the actual hard thinking about how do I architect this and how do I make sure my classes don't turn into chaos and all of that jazz.
35:29.55
Sean
yeah Yeah, but it's okay.
35:30.91
Andrew
Yeah.
35:32.66
Sean
I mean, it's nice to not have to learn Next.js like properly,
35:37.58
Andrew
Yeah. So winner what's what's next for this project? like Are you planning to like start using this with clients soon? Do you have a goal?
35:51.26
Sean
uh there's one more thing that i've never gotten into work with lovable and super base and it's just the super like the actual webhook receiving portion uh i think webflow is very good at what was very good at like making sure the web flows webhook things are consistent on every single thing
36:12.07
Sean
sometimes the Supabase edge function works and it's configured correctly. Sometimes it's not, and it's definitely not showing up on the front end. It's not being, it's not, it's like it's showing up in the edge function thing as like logged hit, and then it's not actually going into the database. And I don't actually know how to do this in Supabase.
36:31.03
Sean
Yep.
36:32.94
Andrew
I might be able to help
36:33.26
Sean
for
36:33.90
Andrew
If you want to like pair one day because, you know, did a decent bit of messing around Supabase edge functions for Chart Juice.
36:41.38
Sean
Oh, cool. Oh, cool.
36:42.86
Andrew
I am avoiding them like the plague with Metamonster because Supabase edge functions run on this environment called Dino.
36:45.61
Sean
Oh. Nice.
36:50.49
Sean
Yeah.
36:50.57
Andrew
like And Dino is just like new shiny cutting edge node, but it's it's just fucking annoying as hell.
36:51.42
Sean
Yeah.
36:55.34
Sean
Yeah.
36:59.26
Andrew
Like so many things are not compatible with Dino.
36:59.84
Sean
Oh, really?
37:02.42
Sean
I see.
37:02.86
Andrew
And the things that are compatible with Dino, you often have to like run as WebAssembly.
37:08.86
Sean
Mm-mm.
37:09.39
Andrew
And it's just... I felt like every package I wanted to install was a fight to get it working in Dino.
37:16.09
Sean
I see. I see.
37:19.62
Andrew
And yet, this there's like...
37:19.46
Sean
I see.
37:22.76
Andrew
massive threads discussion threads in the like super based community of people being like please switch edge functions off of dino or if you want to keep dino fine but give us a version that's just but plain node and the super based team just being like no
37:25.28
Sean
Uh
37:31.70
Sean
huh. see.
37:35.36
Sean
Yeah. Hmm.
37:40.07
Sean
Skill issue.
37:45.45
Sean
Yeah, I see. Maybe I won't use those functions. Maybe I'll figure something else out. Anyway, that's that.
37:50.59
Andrew
I mean, standing up, I know this gets you out of out of lovable probably, but like,
37:56.62
Sean
That's okay.
37:57.41
Andrew
Standing up a little node server that's just running Express is pretty easy.
38:00.30
Sean
Yeah.
38:02.68
Sean
True.
38:03.06
Andrew
You can deploy it to Netlify or deploy it to render or something like that. And then Express, like a little baby node server, is pretty easy to use.
38:09.44
Sean
Yeah. Yeah.
38:15.56
Andrew
Or yeah if you were, yeah, you're using Next already. So Next probably has some sort of like server layer Like Nuxt has a Nitro server layer that's just a little node server.
38:32.08
Andrew
So you should be able to like write. You might even be able to get Lovable to write to that instead of writing edge functions.
38:38.32
Sean
That's true. I'll look into it. like Anyway, that's the last part. I basically like spent a bunch of time redoing it. by was nice to redo it because I knew what I wanted the second time around more, but like doing all the auth, doing on the organizations, the workspaces, and then all these like core features and trying to get it not break on all these features.
38:57.60
Sean
And now I have to i actually have to make it connect with Webflow, which is kind of the hard part I haven't figured out.
39:03.32
Andrew
The whole thing.
39:04.82
Sean
Yeah, yeah, yeah.
39:05.39
Andrew
Yeah.
39:06.12
Sean
Yeah, I did everything but the MVP part. but and all the shitty things oh so yeah yeah
39:15.82
Andrew
Cool. Well, I'm excited to see where it is next week. you think You think you'll have it connected to Webflow by next week?
39:26.43
Sean
I'm gonna tell you a really quick story and then we'll wrap up because I know you you have to run.
39:31.55
Andrew
Yeah.
39:33.38
Sean
I went to a dev who we were gonna go to the dev for like our actual SaaS product, just like to build out like a prototype and and to like get it done.
39:44.05
Sean
I went to him first because I and and i was like hey, here's like most of my app. Can you just like connect the webhook stuff for all this stuff? Like here's all the documentation.
39:53.94
Sean
I know how to do it. like can add it to the site, all that sort of stuff. I can even manually add the webhooks to Webflow. I just need you to build something that receives all this sort of stuff. And he went, and then and then I told him about the other, like the other Webflow project that I'm working on.
40:08.18
Sean
he went, the other one is easier.
40:10.72
Andrew
Oh, interesting.
40:12.24
Sean
Yeah, yeah, so I have concerns.
40:15.47
Andrew
Oh, I would not have expected that.
40:18.93
Sean
Yeah, that being said, I think he doesn't, like, I think he he's saying that, like, webhooks typically are not stable and all this stuff and it doesn't trust Webflow to do it. And I'm kind of on this, in, like, the camp of, like, if Webflow fucks up, I'm not, i don't care, it doesn't matter to me.
40:28.12
Andrew
Huh.
40:35.57
Andrew
Yeah, also like everyone in the world uses Stripe webhooks to power payments and like keep your payments up to date. So interesting interesting take.
40:44.50
Sean
I don't know. Yeah. Yeah.
40:49.43
Sean
I mean, yeah.
40:51.18
Andrew
I got to run, but yeah, OK. Excited to see you where where it is in a week.
40:55.90
Sean
Yeah.
40:56.47
Andrew
And yeah, yeah.
40:56.76
Sean
I'll give you Well, I'll probably give you a demo earlier so you can help me with this edge function thing, to be honest.
41:01.98
Andrew
And then hopefully, hopefully onboarding flow will be actually done and we'll be getting really close to paid beta by next week.
41:11.42
Sean
Hell yeah.
41:11.98
Andrew
All right.
41:12.76
Sean
Cool. All right. I'll see you later. Bye.
41:15.52
Andrew
Later, man.
41:16.32
Sean
Bye.
41:17.14
Andrew
Bye.