The Robot Factory

Jonathan and Caleb discuss getting ready for a free tier and about creating a bubble plugin

Show Notes

Daila couldn't make it on this episode, so Caleb and Jonathan explore some of the details of the free tier of OpenHouse.social, how easy it is to build forms with Tally.so, and if we might re-use the tech for OpenHouse.social to power a Bubble Plugin.

Form builder: Tally.so

The Product: OpenHouse.social
Newsletter: factory.twostoryrobot.com
Twitter: @twostoryrobot
Instagram: @therobotfactorypod

The Product: OpenHouse.social
Newsletter: factory.twostoryrobot.com
Twitter: @twostoryrobot
Instagram: @therobotfactorypod

Follow Jonathan: @thejonotron
Follow Caleb: @calebissharp

Creators & Guests

Host
Caleb Sharp
Full-stack developer at Two Story Robot
Host
Jonathan Bowers (he/him)
Founder of Two Story Robot. Developer turned entrepreneur.

What is The Robot Factory?

Follow along as we attempt to build and sell a SaaS company. A build in public behind the scenes journey of a small software agency, Two Story Robot, trying something new.

Jonathan: Oh,

I shaved my mustache by the way.

Caleb: Oh,

Jonathan: Yeah, I got sick of it.

Caleb: What did, what did Zach think of it

Jonathan: He doesn't care.

He doesn't

care.

No, he didn't even like blink an eye.

And she was like, oh,
that's so much better.

And Zach, just whatever.

, that's frustrating.

Um, for the last, uh, the
last week though, I have

been calling it our mustache

like Zach and I are growing it together.

Caleb: Welcome back to the robot factory,
a podcast where we build and sell and talk

about and go off on tangents on products.

Uh, I'm your host, Caleb Sharp

Jonathan: I'm the other
host Jonathan Bowers.

Daila can't, uh, can't make it today.

Unfortunately, uh, we promised three host
last episode, and here we are back to two

Caleb: back to two

Jonathan: Just a bit of a
push on some other projects.

And so Daila wants the time to, um,
get some things done on those projects.

So she'll be back next week.

How did building some of that free
stuff we talked about last week ago?

I think you've done.

I think you've done most of it.

Is it

deployed?

Caleb: Yeah.

Yeah, I did most of it.

Well, last week I.

And then finally yesterday

The custom color accents that's in,
so users, um, whether they pay or not

can set a color in their profile and
then they get set when they generate

the images, which is kind of cool.

Um, just like a nice little color picker.

and then a link to a feedback form,

Jonathan: mm-hmm

Caleb: I don't think we talked
about on the podcast last time.

I don't think.

I think it's basically just like,
it sits at the bottom of the page.

If you click it, it's just like a field
where you can put any thoughts you have.

Jonathan: it's using, um, my
new favorite no code tool.

That's not really, what is it?

A no code tool?

It kind of is, I guess it's a form
builder, Tally.so it's amazing.

It's so fast.

and it has lots of integrations.

I can integrate it on the back,
like directly within Tally.

I can integrate it with Notion.

Notion is a document and, uh,
document and knowledge we use.

So with the Tally integration
directly into notion, we can take,

results that people have submitted
via tally the form, and then just

pipe them straight into notion.

Or I can pipe them into
slack, which is kind of cool.

I haven't wired that up yet.

I should do that.

Um, but it's really fast to make
these things and I really like it.

And you get a lot for the free.

Um, whereas most of the, most of the
form builders, they, they don't, they

limit your, they limit your features
so severely that you can't, you

can't really use them or they limit
the number of forms you can create.

Whereas the free tier on Tally is,
it seems like it's just unlimited.

Like you can have unlimited forms,
unlimited responses, you get conditional

logic, you have to have the branding
on it, uh, for free, which is fine.

And, uh, there's a couple of, there's a
couple of like features that they turn

off, but I, I don't feel like I need.

it's pretty slick.

Caleb: How does it compare to
something like, like Google forms?

Jonathan: Um, I, I think it's a lot nicer.

It looks better.

It's way faster to create.

I, I don't know that that's, that's
a big deal breaker for most people.

So, I, I don't know, take
that with grain of salt.

They integrate with more
stuff out of the box.

You can compose the forms in a way that
at can guide the user more in a way

that you want them to fill out the.

whereas I feel like Google forms,
you really just get form fields, but

with, with tally, you can almost,
almost not quite, you can almost type

a whole document in there, so you can
really provide a lot of instructions.

Um, you can put images
in, which is kind of cool.

And they have like notion has
they have a multi column support.

So you can put two column, like stuff
like text or pictures next to text or

pictures, which is actually really nice.

Um, yeah.

It's, it's, it's really good.

Caleb: Cool.

Well, hopefully somebody actually
uses the form and then they

actually see that difference.

Jonathan: I think what I wanna do
at least is have it notify us in

slack that somebody fill out the.

cuz otherwise I don't think I will get
a notification I'll just it'll least

appear and I'll have to hope hopefully
remember to go check it anyways.

Yeah.

Tally.so super awesome form tool.

So you got that hooked up.

You got that little feedback.

which, um, is pretty, pretty slick.

I, I, I gotta say I like, I like those
kinds of tools, like tally specifically,

cuz of the pricing is really nice.

Cuz hooking up contact forms is
kind of a pain to deal with in code.

Like if you have to write that all up,
um, you've gotta deal with, you gotta deal

with a server to receive those requests.

and then you gotta send them somewhere.

So you gotta like send them to a
database or you gotta wire it up to some.

You know, air table or Coda thing,
um, or send emails, which can be

problematic, cuz you end up getting spam.

Caleb: Spam submissions for
forms is so much more common and

annoying than people realize.

Like, even if your website gets
like no traffic, it will get

spam submissions to its form.

If you have one,

Jonathan: so you've hooked up that stuff
and that's all live and ready to go.

I haven't even looked at the site yet.

Let's go look.

Caleb: I don't think I did either.

just, uh, oh yeah.

And the sign up and login buttons,
which is actually pretty important

Jonathan: yeah.

Yeah.

Do we have any, do we have any, any
way of knowing when someone signs up?

Caleb: we won't get any notification,
but I can, I can check to see

if any users have been created.

which I can do right now.

Jonathan: I would like to see
if we could make a notification.

Does, does Supabase have anything?

Directly or would I have
to hook up something?

Caleb: Um, at the very least
they probably have web hooks.

I don't know how, how automatic
it would be to set something up.

Jonathan: I'm looking at, so one of the
other, tools we use is make.com and it's

like, it's like Zapier, you can connect
things to each other, like connect

pieces of software together to do stuff.

Um, but make is, is a lot more flexible.

It's a lot more complicated,
but it's a lot more flexible.

And I, I wonder if super, uh, Nope, shoot

Caleb: It's a, it's a Postgres database.

Jonathan: uh, so I can connect to
post a Postgres database, but it also

has the ability make, has the ability
for me to create, um, a web hook

and a web hook is just a, like, just
something that's super we can give

Supabase the database, a little URL
to say, whenever something happens,

just send the data to this other URL.

Um, and I can create that inside of make.

so we might, we might play around
with that a little bit, But at the

very least you can just log in.

I don't want it to be manual though.

Cuz that feels like something we'd
forget to do much in the same way.

I'd forget to go and check and see
if anybody filled out the form.

Caleb: well it's any consolation
that no one has signed up.

Jonathan: Yeah, I know.

, I'm almost certain of it.

Caleb: yeah.

Jonathan: preparing for eventual success.

Caleb: Right.

Well, I mean, that's not a critical thing.

That's just for like our own

Jonathan: yeah,

Caleb: ego so that we
know when people sign up

Jonathan: but it is like,
it would be a shame.

If the one person who signed up, we didn't
get back to them for a week didn't do

anything for a week and they'll they just
left and it's not, it's not that hard.

It's not that hard to hook that stuff up.

Can you give me access to Supabase
or is that something that you

can't do in the tier that we have?

Caleb: Uh, that's a good question.

It has so many a providers
you can sign in through zoom.

You can sign in through notion

Jonathan: Oh my goodness.

Of

all the

ways that we want to enable someone
to log in zoom is probably at the

Caleb: so you can sign in through Spotify.

Okay.

Now that one's cool.

Jonathan: Through those providers,
does that give us access to pulling

their, like their profile image?

Caleb: I think it depends.

I don't know how automatic it is
with Supabase, but you would set

up like in Spotify or Google or
Facebook or whatever you specify,

what information you need about the.

and then when, when people get their
like, oh, authorization dialogue, it

would like usually they list all the
permissions that are being asked for.

Um, so in theory, probably, yeah,
it depends how much is exposed

or if you just have to, you might
have to use whatever Spotify, API,

whatever, to actually get that info.

Jonathan: There's there's another,
so there's another service that,

that I've used in the past.

unavatar.io.

you can get an avatar for, for a
person based just purely on their

username or their email address.

So if you've got the user's email
address, which we would, we would

have, because they've logged in, we
can go and ask unavatar to go fetch

their, uh, their LinkedIn image.

it's pretty, it's pretty sweet.

It works.

It works really well.

If you're, if you're building a small
little like demo product, And you

wanna add, add some pizazz to your
client, uh, when they log in, just,

just make the image use unavatar
and pipe in their email address.

And then they'll see, they'll
see the picture of themselves.

It's pretty cool.

We'll see if we can get some
users using the free tier.

Um, I still have to publish some
content that I'm working on.

so the other thing that I wanted
to get your thoughts on is.

a little bit on the heels of the
discussion we had last week around

creating plugins and templates and
things in the bubble ecosystem.

What are your thoughts around
repurposing the tech for OpenHouse.social

as a generic bubble plugin?

So a bubble developer, somebody who's
making a website on bubble can go

and use our plugin and say, Here's a
page I made in bubble that's dynamic.

Cuz you can do dynamic pages in bubble
and I want not OpenHouse.social.

We might call it something else, but
I want our plugin to go and render the

image for me dynamically based on the URL.

Cause I

don't think something like
that exists in bubble.

Caleb: well, I th the problem with
that is, I think we'd have to have

some kind of service running somewhere,
cuz I don't think, I don't think

our bubble plugging could like spin
up an instance of Chrome anywhere.

I don't.

Jonathan: No, the bubble plugin
couldn't, we'd have to run a service yet.

we'd have to have something running on
our infrastructure that is receiving

requests from, from this bubble plugin.

Um, But the way it works
is it, it can go and fetch.

I, I don't, I don't know the details
I have to check in with, um, Amber and

Daila, but it can go and fetch, uh, a
bubble developer's page, whether that's

like somehow needs authentication
or authorization to do that.

And then.

Grabs that dynamic page and renders
it as an image and then gives it

back to them so that they can use it.

They could use the plugin to create,
dynamic, open graph images for

their, pages on bubble or what,
for whatever other purpose they

needed, they needed a dynamic image.

And then the bubble ecosystem
allows for subscriptions.

We can sell subscriptions within bubble.

So the bubble plugin
could include with it.

AC like access to our,
externally hosted service.

Caleb: That's an interesting idea.

Is it maybe?

Easier to just make a plugin
that uses one of those existing

services already that lets you

Jonathan: um, yeah, probably it's
probably easier to do that to start.

Um, but then as a way of controlling
costs, we could just bring it

back to our own, to our own thing.

Um, I don't know what the.

I dunno what the restrictions
are for bubble plugins.

Like I know for Coda, for example, when we
make a pack with Coda, we have to disclose

the service, the external services
that it accesses, and then that, that

information is disclosed to the user or
the, or the person who's using the pack.

So they can see when they, when, uh,
someone's using our export tables.

Pro pack in Coda.

They can see that it connects to
our service on the back end and

they, they can see the URL there.

So I, I wouldn't want to necessarily
do that, um, for the bubble plugin,

because ultimately we would be,
uh, bringing all that into our

own, to our own infrastructure.

But, yeah, as a way of, as a way of
testing that out real quick, I think

we could, yeah, I think we could do.

I think it's more around how we would
access those pages that are potentially

not actually available to the public.

I don't know why they wouldn't
be though, cuz they're just

images that are being generated.

Um, but there might just be some
connection that we have to worry

about from that service back to
bubble that some of those third

party services can't can't deal with.

I don't know.

I don't know if that's the case or not.

Caleb: Right.

Jonathan: I'd have to figure
out how they charge money, how

they charge users in bubble.

But if they paid like a flat rate per
month, but then used the third party

service so much that it actually cost
us more than they were paying for

the, for the monthly subscription.

We have to

Caleb: Well, yeah, I imagine
if we, if we did it so that

it was using another service.

We might just make the user put their
own, like API key in for that service.

I think there's some plugins that
were like that, like there's, um,

uh, I think it was a, I think it's a
Stripe plugin or maybe it was Plaid.

Um, but you just put
in like your API token.

Um, so you're already paying for that.

And then you also pay for the
plugin, which is like a one time.

Jonathan: yeah, that feels a little
bit different because like plaid,

um, plaid is a service for doing bank
transfers in, uh, or consumer payments

but the difference between those is
like, you actually need those accounts.

You, you have to be in charge of that,
cuz it's it's money happening, Whereas

this, this might not necessarily need,
you know, you don't have to go and sign

up for this other third party service.

Um, but anyways, okay, I'm gonna, I'm
gonna noodle on that a little bit and

uh, I'm gonna check with Daila and Amber
and see if they've got any insight into

some, if something like this exists,
because it feels like it would be pretty

easy to build, I think, and I don't
know if the demand is there or not,

but, um, I know, I know there's a few
cases where we've wanted to, to attach

open graph images to certain pages.

Um, they are fine with being
static, but it would be nice if

it could possibly be dynamic.

we'll see, we'll see where that goes.

And, uh, hopefully next week Dayla
is back and she can maybe even give

us some updates on what's happening
on property management stuff.

um, but thanks for listening to the
robot factory podcast, I've been

one of your hosts, Jonathan Bowers.

Caleb: And I've been the
other host, Caleb sharp.

Jonathan: Uh, D du D
Duffard Dufford ah, shoot.

I can't say her last name properly.

She'll be back next week, hopefully.

And we'll see you all next week.

Bye.

Caleb: Bye bye.

Jonathan: tools that we, one of the
other, no code platforms that we use is

Caleb: oh, no, it's contagious.

Jonathan: it's traveling
through the wires.