6: Life, Challenges, and Progress

In this episode we talk about life challenges while trying to make progress with our products, technical challenges, UX/UI, tools, cloud services, and more.

Alan: So, hello.

Hey, how's it going?

Mario: hey!

Today is one of those days.

Alan: One of those

days?

Yeah.

I know.

oh man.

Mario: Yeah.

Today is been,

This whole week has
been a frustrating week.

Actually.

We have a lot going on around

here.

My wife and I have some
plumbing issues at our place and

Alan: the word?

Plumbing is the worst.

Like

electricity.

You're like, oh, we haven't got light.

Water is

like a nightmare.

Mario: Yeah.

Yeah.

So we

we had a

leak from one of our bathrooms
upstairs and they came and they fixed.

They found that there were two different
problems and they fixed a one of them.

The simpler one, and then they found
the other one that's more complicated.

So they haven't fixed that one yet.

Meanwhile, we can't use all
of the bathroom upstairs.

Luckily we have another
bathroom downstairs.

and so the reason It's taking forever
is because they found asbestos in

Oh, no.

in

Mario: the dry wall in the area that they
need to access to fix the plumbing issue.

So, and that is.

Alan: to a standstill until
they can deal with that,

right?

Mario: Exactly.

So

this, this home was built in

the seventies, I think.

So it has some as,

Alan: throw asbestos on

everything

Mario: Yeah.

Yeah.

So, so the

area they need to access is
downstairs in the ceiling below,

you know, where the bathroom is
upstairs and it's a utility closet.

So luckily is pretty isolated.

You know, it's inside a utility closet
where we have the water heater and, and

there's a central air unit there as well.

And so we're waiting for just got
word today that they are going to be

here tomorrow to continue because the
test results came back and, you know,

they have, now they know what they're
dealing with and they're going to come

in and, and start the abatement process.

So we're dealing with that.

And then at the same time we're
reconfiguring some rooms in the house.

My wife is setting up her
office space somewhere else.

So we've moved furniture and
all kinds of stuff around and

everything is upside down.

It's like,

Alan: I know that feeling
well, and I hate it.

Mario: yeah.

And

Alan: It makes you appreciate the, when
things are back to normal again, so,

much more though,

Mario: yeah.

Yeah.

And as part of that process, we sold
this huge cabinet that we had, you

know, kinda like a dresser, you know,
for clothes and stuff, but it was

like pretty big and it was too big.

We've been wanting to get rid of it for a
long time and we finally sold it online.

And that means all of the, all
of our stuff that was there

now is everywhere is out.

And we're in transition.

We're buying a smaller piece of furniture.

Alan: Well, you don't have

it

Mario: But we don't have it yet.

So everything is like, so everything is a

mess.

The whole house is a mess.

Alan: It's it has a, like a big effect
on your, just your mental balance.

It's like, oh God,

Mario: It does.

Alan: I just go into my

laptop.

It's calmer in there.

Right.

Mario: Yeah,

Alan: maybe it's not,

Mario: is.

And see, that's the thing.

That's on the

personal end of things, but also on
the work side of things, I'm dealing

with this issue with fusion cast that

I'm, I still haven't been able to resolve.

And so even that's not going
the way I want it to go.

Alan: but you don't even have the luxury
of going away, going out to the house

to work and leave the mess behind.

Right.

It's

Mario: No, it's it's right here.

I'm surrounded by

it.

As we speak, everything is a

mess.

Alan: I know it well, and it's no

fun.

Mario: Yeah.

Yeah.

Alan: have my sympathy.

Mario: Thank you.

yeah, so this recording issue.

The recording itself is working, but
the problem is with one of the features

that I introduced, which I, I should
have done before from the beginning

which is remote controlled recording,
where the host has control of recording.

And when the host clicks record, then
everyone, everyone in the session

starts recording automatically remotely,
You know, after all, this is a remote

recording tool, so

Yeah.

Mario: have that.

And

I introduced that feature and it was
working perfectly on my dev environment.

Then I pushed it to production and it
doesn't work there for some reason.

And I don't understand
why there are no errors.

There's nothing, you know, it's
just, it just doesn't do it.

So it's one of those, and I've been
in contact with a certain cloud

provider that should go without
mention th no, they've been great.

They've been pretty supportive support.

Hasn't been great.

The only thing is that,
that it takes forever.

The turnaround time is, you know,
I send a message and then I have

to wait around 20, about 24 hours, you
know, before I hear back from them.

And then.

Alan: what you're using for
basically pushing messages to, from

the server to the client, right.

In order to get it to do

something

Mario: Yeah.

Yeah.

So I'm using a couple of
different services for that.

One of them is that one that
we've talked about before and

that, that seems to, be working.

Okay.

But the other one is it's a different
kind of API that sends more they're more

like a UDP type messages, you know, so
client to client, kind of thing, no TCP.

So it's more more

performant, but the

Mario: nature of that is that there's no
guarantee that it's going to be received.

So it's like UDP, like you know,

Alan: Yeah.

Mario: Protocol messages and

I don't know quite yet, if that's even
the problem, you know, if it's something

to do with UDP or anything like that

.
So one thing that has been hindering
my progress in troubleshooting

this, is the fact that I don't
have up until this point, I don't

have a working staging environment.

I just have my dev
environment and production.

And so it kind of, there's certain
things that I can't freely do because

I don't want to break production.

So I've the past couple of days
I've been working on setting

up a proper staging environment
replicating my production environment.

And that way I can test all kinds
of things without fear of breaking

anything, and I can enable console log
and I can enable all kinds of logs and

I'm not having to be in production.

Alan: yeah, exactly.

And just breaking other

people's

Mario: Or exposing, you know, logs or

exposing sensitive information.

so I'm almost at the end of setting
up this staging environment and it's

time consuming because, you know,
I have to set up with all these

different services and APIs that I

use, you know?

Alan: It's not.

So it's not so much just that you
need to get your software deployed.

It's that you're relying on other API
APIs that all need to be up and running,

Mario: Yeah, yeah.

So I have to create

the staging projects, so to
speak in each of these services.

right?

So,

and I have to make sure that I faithfully
recreate what I have in production, and

Alan: The worst, the worst thing's
going to be, if it works finally staging

Mario: I know

that.

Alan: you're like, oh,

okay.

Mario: Yeah, but at least, yeah.

I don't know.

Hopefully

Alan: hope that's

Mario: I think that's not the case.

I, you know, it should not

work and I should be able to see logs
and things like that, or enable logs

and things like that to, to trace it.

Alan: Of those things that you
had that you needed to do this

eventually, but you'd rather
have not had done it right now.

Mario: Yeah.

yeah.

So,

this thing it's part of the same process
that allows me to show if you notice

now I have indicators that tell you if
anybody's mic is muted or the camera's

turned off or anything like that.

And so those are

Messages going across that
everyone receives and their

UI gets updated accordingly.

And so that same mechanism drives
the remote controlled recording.

Alan: are working.

Mario: So, it works

partially the, I mean, the, see
here, if I disabled my camera,

Alan: Okay.

Yeah, that

Mario: do you see a little
red icon now that works.

fine, but

for some reason That part is working.

But if I enable the remote
control recording which

actually did it through a flag.

So there a flag now in the podcast
that you can turn on or off.

So right now I turned it
off so that we can record.

So when that flag is on only, I
have a record button as a host.

You as a guest, wouldn't
see a record button.

And but turning that flag off, puts
everything back the way it was with

you having a record button as well.

And and so when that flag is on in, and
the host controls, controls recording, if

I hit record, then that same mechanism,
that's sending data that updates, the

UI also sends a signal for you to start
recording every participant in the session

starts recording.

And for some reason that
part is not working.

so it's, I

don't

Alan: That's frustrating.

So Yeah, the, you need to
know if it's getting the

message and if it's is getting the
message, why isn't it starting?

And if it isn't then why not?

Mario: Exactly.

Alan: it's

yeah.

You don't want to do that
in production because you're

filling around with logs and

Yeah.

Mario: Yeah.

And, the reason I

found out about it.

was because one of the people that
I onboarded a little while back

actually used the fusion cast to
record, and he ran into some problems

I'm trying to record, but luckily he
noticed that backup recording was on.

So he was, he still went on and
recorded an episode with guests.

And you know, I'm assuming he
knew that backup recording was on.

So he took his chances and still did it.

There was no local recording for
anybody else, but himself, but

back our recording was there.

and so he messaged me later and asked me

if I could give him the backups.

And so I did everything was there,

Alan: I mean, that's good to know as well.

Right.

Mario: yeah, yeah,

yeah.

Alan: that there is the
backup facility and there is

the, you know,

that, that recording is there.

So but

that, that hopefully, you know, it
gives him confidence that, oh, okay.

Even if things do go wrong, then
that's still, you know, that works

fine.

Mario: exactly.

So, so I was able to provide the
backups to him and you know, I

apologized and I, you know, told
him I'm, I'm looking into it.

And I said, hopefully that the rest
of the experience wasn't too bad.

And he said, no, it was
great that we actually

enjoyed it.

So, so hopefully, you know, that
didn't leave a bad flavor, but

Alan: Well, it's better to find it out now
with one person then later with a hundred,

right.

Mario: Yeah.

Very true.

Alan: Get to the bottom of it.

Once you got staging up.

I'm sure it will be one of those obvious

things that it's like
a one character to fix.

And you'd be like

all of that.

Mario: maybe.

Yeah.

Alan: I hope

so.

Mario: yeah, I hope so, too.

So.

after that, I I sent that email
to everyone that I have onboarded

just to give them a heads up.

And I'm sure you received that email.

Alan: Yes.

I was going to say it
might be worth clarifying.

Cause my takeaway with that was
our, I can't do local recording.

Rather than just say, you
know, like the, the auto

recording, just to clarify the

ultra recording isn't working.

So

yeah,

Mario: I guess.

Yeah, that's a good,
that's a good suggestion.

I wasn't sure how to handle that
because that's a new feature

that people didn't know about.

And so I didn't want to convolute
the message with, you know, there's

new features and this and that.

So I just wanted to keep it kind of
straight, but cause I was looking forward

to sending this email with an update of
all the features that I've been working.

on and all the changes that I've
put in based on the feedback that I

received and then this thing happened.

And So now I have to deal
with this and I, I feel like

I can't send an update about new
features when this thing is not

working

Alan: Fundamental basic is
kind of having an issue, right?

Yeah, yeah,

Mario: Yeah.

so it's like, kind of frustrating, but.

Alan: Yeah.

I it's strange that you said it

works locally.

I mean, is it possible

it's some just permission issue because

it's accessing camera and microphones.

So if it may be trying to do

that, programmatically is
just, you know, causing some,

Mario: It could be.

Alan: permission issue.

It sounds like it's me, if it's it's one
thing that would probably be my first

thing I look to is just the fact that

it's it, it is a permissions,
you know, like the fact that the

browser is triggering the camera
without a user interaction.

Right.

So programmatically triggering
the camera or microphone could

be something to do with that.

That that's, that would just be my, I I've
never used this stuff, so I'd have no no

idea, but that would be the, the thing

which would make me think there's an
issue, especially since it works locally.

Mario: yeah, yeah, That was
the only thing is by, by then.

Camera's already given permission.

Microphone is already, you
know, it's already going and

Alan: going

great.

But yeah.

I'm wondering if there's some way,
you know, it's cause it obviously

starts capturing it, so I don't know.

yeah,

I,

Mario: Yeah.

I don't know.

It's a, it's an interesting one.

And I,

hope it's not something that simple
because man, that's gonna suck

if it's

something super simple that I
missed and I've been breaking my

head, you know, this whole time.

Alan: But you you've, you've
got staging up and running now

or it's

Mario: almost, almost

yeah, I I just need to finish a few,

a few areas here and there,
but yeah, I w I almost.

have it all up and running

Alan: Cool.

Mario: and then I have to do the
DNS updates so that I get my staging

domain going.

Alan: Yeah.

Oh, well, good luck.

That sounds like a nightmare run
stressful, especially since you have

people trying to use it now is like,

The pressures on

now, right?.

Mario: yeah,

Alan: Feel like you're against
the clock, but it's good practice.

Mario: Yeah.

Yeah.

Good.

Yeah, for sure.

Alan: It is not optimum.

Mario: Yeah.

So needless to say, I haven't
really had time to, to put

together our podcast episode

Alan: yeah.

Mario: is so,

Alan: There's priorities.

Get this working

first

Mario: yeah.

So I apologize.

I really want to Get that going,
but I have to focus on this for now,

Alan: Yeah.

Mario: but Yeah.

but we'll, we'll get there.

We'll get there.

I can't wait to be in a position where we
can outsource editing to somebody else.

And so that way we just record
and we don't have to worry about

Alan: happens right.

Mario: it just magically appears
on the, on the pod catcher.

Alan: That'd be the best, doesn't it?

Yeah.

It's like, especially if, I mean,
that's the nice thing, because you have

a possibility somebody else going
in and grabbing the fires, you

literally don't have to do anything.

You'd just be

like, tell them, it's
just record it finish.

And it just

appears, right.

That'd be the, the

ultimate.

Mario: Yeah.

Yeah.

Alan: Nice.

Mario: That's, that's where I'm working.

I'm working towards that.

Alan: that's a goal.

You got to have a good goal, right?

Mario: Yeah.

Yeah.

So let's see.

What else what else did I have to update?

I had I contacted
somebody else to onboard.

And I just noticed today
they scheduled a date.

I think it's next week or so I
have to double check, but I have

another one lined up to do a demo.

Someone from MicroConf that I, came
across on the community there and, I'm

going to be doing that demo and then
somebody else also from MicroConf.

That I had all already on my list.

Contacted me about it.

And I was like, oh yeah,
I have You on my list.

So, I just sent out my Calendly
to this other person and hopefully

we'll get something scheduled and
do another demo there as well.

It's, let's see what else?

We have yeah, like I mentioned earlier,
most of the changes based on feedback

that I received are already in,

Except

Alan: the UI is starting
to look very tight.

It is, let's start into it.

As I said before, it's, it's
amazing how it looks like.

Oh, everything's fine.

And then you do some improvements.

There's that?

Now it looks better.

I didn't know it was a problem
before, but it looks, it feels better.

So yeah, I noticed you got
your like ellipses thing

in and Yeah.

they got these, these status icons
and things, and it's looking nice.

Mario: Yeah.

yeah, it's getting there.

Thank you.

Thanks.

Oh, notice I implemented
the HashIDs library.

Alan: I noticed that I was
going to ask about that.

So that's, that's kind of fun, isn't it?

That it's it's handy.

Think

Mario: yeah, yeah,

Alan: Just to be able to
throw stuff in and then you

just decode it?

and it's done.

Mario: yeah, yeah.

It was cool.

I like it I like the short little
hash and I like how it looks now.

it's a little more,

I dunno, more professional,
so to speak, you know?

Alan: I mean, it's the
same with mine, you know?

Cause especially if you're
looking at like a, you know,

a check-in and it's in a profile or some
type of uses, you know, a particular

user's check-in so rather than having,

you know, slash seven slash 13,
it's like something, can you like,

oh,

Mario: Yeah.

Alan: Must be it must be secure that.

Mario: Yeah.

Yeah.

And, and I didn't do it for all of it.

All of the, all of the app just yet.

Because I have a lot of IDs

everywhere.

And so I figured this is
the most public facing URL.

Right.

And so I just

Alan: I had to think the same.

Yeah, it was, it was what's what's
the most likely thing that's

going to be cut and paste is,
is really the thing, which yeah.

Made me decide what to watch
twin code like that is, and

there's a possibility for mine.

It would be a reference to a
particular check-in or particular user.

So those are the things
that I did first and then

just other things as, as I come across
them, I might might change them, but

Mario: Okay.

So you didn't, you didn't
implement it across the board?

Yeah.

Just yet.

Alan: I think there's a few places where

it's not using it.

Yeah.

I, I didn't

that, wasn't how I intended to do it.

That it wasn't how I implemented it.

It was like, okay, where
do I want it implemented?

And just pick out particular ones.

And then it's like, well, if I come
across one, I'm working on something.

I think.

Change that while I'm here.

And so, as I said, it's not a
priority for every single page.

It's just certain things which
are likely to be cut and paste,

or is an obvious reference to an
internal that you really want to

expose.

So in particularly user ID, which is,

Mario: yeah,

Alan: especially at this stage, let's say
when we're talking like tens of numbers

or single digits, and there's like a
little, that's funny because I had,

So the original photo sharing thing that
I did back in 2002 that, that was, you

know, I was still, you know, it was the
first web application I ever built was

2002.

It was pretty much, you know
an interface to your database.

Mario: yeah.

Alan: And so of course IDs were just
exposed as numbers and it became a kind of

Like a badge of pride for people as
well, because they were like a, you

know, I'm not number 100, are those
one that was you know, seven and they,

they, they incorporated seven into
their profile image and stuff like that.

So it's kind of, it became a bit of
a badge that that ID number, to be

honest, even with like Twitter, because
I'm number 5,000 or something ID in

Twitter before they implemented these
crazy long digits that that don't

really mean so much originally they
just had, you know, incremental ideas.

So, yeah,

it's, it's a little bit
of a, a badge of pride.

It's like, I was,

Mario: Yeah.

You were early, early adopter.

Alan: yeah,

I didn't get it at first, but
yeah, I, I was like, okay,

this has gotta be interested.

And then

I came around,

Mario: Yeah.

Alan: so, yeah.

So I've had an interesting week as well.

As you may have noticed.

Mario: Yeah,

Alan: Not quite as hectic as yours, but
interesting, nonetheless, so yeah, I sent

out a bunch of invitations, so I was
quite the, the reasoning or the choice

of first invitations to send out
was people who I knew would be picky

about or spot things that I've missed.

So rather than go for someone who's
like the, the perfect user, it

was like, okay, let's, let's get
these all these niggles ironed out.

And so choose, you know, five people who
I know are going to be like, that's wrong.

That looks weird.

This

Mario: yeah,

Alan: pick all the things, which I know
I'm blind to now, it's you, you know,

yourself, you're looking at something
and someone says, that's the wrong color.

And you're like, oh yeah, because of this.

Mario: yeah.

Alan: So yeah, I was kind
of selective with those.

And it was perfect for that because all
of the feedback I got was interesting.

Unique and not, not really anything
overlapping, so different people

saw different things and all of them
were either immediately actionable or

things, which are like, okay, that's,
that's a really interesting thing

to consider for the next release.

So yeah, almost all of them I've
been able to incorporate already.

Some of them, you know as you know,
some of them are like five minutes

that it's feels great just to have
now have a list of a to-do list

to just be able to check through.

And there was very few which I
disagreed with which was nice as well.

All of the points were things
that it's funny, some of them.

So one of the things when you're
editing, if you've added items and

you're editing them, clicking away,
used to leave the form field open

because when I first added that.

I couldn't get the blur, the input
blur thing, working properly with life

view, as I wanted it to, it was kind of
half working, but it never felt right.

So therefore I was like, okay, it feels
less weird to leave it than it does to

have this weird state state where it
doesn't always do what I wanted it to.

Which.

And so someone's feedback was okay.

The blur feels weird and I'm
like, yeah, I know it is.

I know when I did this, it's
just like, oh yeah, I know.

And I really let, let me have a look.

And it literally took one
minute to, to make it work.

As I talk about, you know, leaving
something and coming back to it,

looking at it fresh, because I
haven't looked at this, you know,

for probably a few months or months,
definitely three or four months.

And so I was like, ah,
this will make it work.

And I did it and it, it was like two
minutes and it, it worked exactly as I

wanted it to, and it felt perfectly right.

And I'm like, phew, I'm glad I
didn't bother wasting days trying

to get it working before, because
like fixing it now is just so easy.

So I don't know whether that was me
understanding Liveview better LiveView

fixing something that wasn't working
before, or I'm not sure exactly

what the reason I couldn't get it
to work properly before it was.

I'm going to blame LiveView, you just
cause it's easier than blaming myself,

but it's mostly, probably my fault.

So that was really nice to be
able to just improve it in ways

that I knew were not great.

And somebody to point it out and then
immediately be able to improve it.

And it'll add that's exactly how I wanted
it to work in the first place that thank

you for reminding me to re-look at it.

And yeah, even some of your
feedback was, was really helpful.

Just, you know, like alignments
and the button of stuff, some of

the hover states I improved it,
it feels significantly better to

me now than it did two weeks ago.

So and that's a direct
result of people's feedback.

And I say it's, it's up in.

I think there's seven invitations
have sent out five who have given

good feedback, two who I think are
on, have been on Easter vacation.

So I'm going to poke again and
probably under this week, give

them a week to recover coming back.

So it's been really helpful.

So that, that has been kind of fun.

So the next step now is to introduce
the people who I think could actually

be the, kind of like the ideal use
cases of the specifically around teams.

So all of the people I
picked right now are either,

Basically using it by themselves.

Mario: yeah.

yeah.

That's how I've been

using

it

Alan: right.

Mario: And but you know, it
surprisingly it works well.

I mean, yes, it's designed for teams
and it's it's you, you know, teams

could take a better advantage of
it, but but it surprisingly works.

I mean, so PR surprisingly in terms
of, you know, Because your main

focus is for teams, but it works
really well with, you know, with a solo

Alan: Well, that's the thing.

I mean, I use it

myself every day, right.

So this is, this is my own

thing and it it's, I know
how useful it is just for me.

So I, that doesn't surprise.

It's surprising that other
people have picked up on it,

but it doesn't surprise me that
much because it's like, yeah,

I know, I know it's actually

useful.

Mario: Yeah.

Alan: so let's, that's good to hear.

But at the same, because
it's not optimized for that.

There's a lot of things that could be done

better if it was just for you.

Right.

So that is definitely something that
I'm thinking more about simply because

it's easier to convince one person to
use it then to convince five, right.

So, you know, someone will try
it out for themselves and then

potentially invite other people.

The single person use cases, something
I want to think about a little bit

more in the reasonable, close future
as well, just cause I think it's

actually has a lot of use I think it'd
be good to spend a bit of time on.

I just haven't really given it much as
much thought as I have the team side.

So so the it, it's funny because you're
not the only person that said that either.

I've had a few of

the people say, ah, this is
actually really useful just for me.

And I'm

like, ah, okay,

Mario: Yeah.

So I've been, I've been using it,

You know, here and there.

I want to get more into it and use it
even more, but I have, I have been using

it occasionally just to, you know, get
a feel for it and and give you feedback.

But I like it a lot.

I like the, the, the interface is playful.

It's you know, pretty modern
and, and it just feels good.

I like what you've done with that.

Yeah.

Yeah.

Sometimes I, I, I think some interfaces.

Tend to be kind of rigid, you know,
or utilitarian, you know, even, even

Fusioncast, you know, sometimes I question
some of my choices and just the structure,

you know, cause I made it very structured
and, you know just to try to give it give

it a sense of order I guess, or, you know,

But I like how you accomplish that.

I mean, it looks, it makes sense.

It looks intuitive.

And at the same time it's playful.

And, and I guess what I mean by
playful is just that it it's you

know, it, it, it doesn't have this
utilitarian feel to it where, you

know, everything is rows and columns,
you know, it's, you know what I mean?

Alan: Yes.

Mario: Yeah, It

Alan: it does.

It's funny because somebody
else gave me the feedback.

Yeah.

It feels in one way, kind of
old school web, even though it's

using modern technologies

and it feels a little bit more retro
in the way that it isn't regimented.

And

I guess that's my personal
preferences coming out strongly,

Mario: Yes.

Yes.

Alan: but I know that

I

Mario: that's a good, that's
a good way to describe it.

It's like,

like old school, but with a
modern touch, you know the.

modern UI, you know,

Alan: Cool.

That's really good to hear that that's
very reassuring because that's, that's

something that bugs the hell of hell out
of me about the current state of the web

is just, everything's becoming very, to
feels culprit, even when it's a you know,

an indie project, it still feels like
things are coming from a corporation.

It's like, I, you know, I want your
personality to come through too.

So I tried to, and this is
something I'm trying hard with

the copy and things as well.

So I'm, so I've started
playing with copy.ai.

Have you seen it?

Have you played with

it?

Mario: No, No,

Alan: cool.

It's an indie hacker project
is two guys, I think.

And it uses the GPT three machine
learning data prediction, text

prediction rewriting thing.

So you give it a description or some copy.

You basically tell it

what.

What you want or what you want
to say, and it will rephrase

it in multiple different ways.

So for instance, you can use it for
say a landing page, like hero texts.

You, you describe your project
and it gives you like 10 different

examples of copy that you could
use as hero, text for your project.

And it's not using it too directly, but
as a way of like unblocking your mind.

Cause you know, when you think about
something, you get stuck in a rot, right?

So even just like the copy
on my homepage, where you.

As in, after you've logged in, there's
kind of a dashboard page that shows

you, other people have logged in.

So the text says like, you know, good
morning you know, other people have done

things, you know, have you finished this?

So I write it as how I'd
want to say it first.

And then once you've done that,
you kind of get stuck in that you

can't see other ways of writing it.

Right.

So you throw it in copy AI.

And it says, how about these?

And you're like, Okay, that
wasn't thinking of that, but that

some part of that wording would
sounds better than my wording.

So, so it kind of just a way of
getting your brain out of that groove

and just trying different things.

So I highly recommend it.

It's a, it, then there's a seven
day free, completely free trial.

And then it's like $30 a month and
it's, so it's got a thing for like

email subject that are catchy.

So again, you say what your
email is, and it says, how

about these as email subjects?

And you're like that one,
that's the tone that I want.

It's got to think for like blog ideas.

So you tell it what your blogs
about, and it says, how about these?

And they're all AI generated.

So they kind of coming from a,
a reasonably sensible place, but

some of them are way out, but the
general mix is quite quite fun.

So that's really helping me improve my.

Simply because it's making
me try different things

that I wouldn't necessarily

come up with myself.

So

Mario: nice.

What,

Alan: playing with.ai.

Mario: dot AI.

How did you find out about this one.

Alan: I don't know it, I, I,

Twitter

pretty much everything I
know comes from Twitter these

days.

Mario: right?

Yeah.

Alan: So the two founders are on Twitter.

They're there, they're
doing a building in public.

I think

that their revenue is

starting to go significantly.

They were like I mean that tens of
thousands, I think a month, but they, they

give updates on their MRR, MRR regularly.

So they seem to be onto
something quite good.

And it is a really simple web app.

It's just an interface to TP
T3, but with specific contexts.

So you say, you know, I
want this type of thing.

It just like sentence
rewriting, things like that.

So it's well worth playing with,
if you want landing page copy

or email copy, things like that.

Just you like your landing
page is already pretty good as

well, but it could be a way of

just trying to get different ideas.

Mario: Yeah.

Yeah, totally.

Yeah.

I'm looking at their website site.

Site looks cool too.

Alan: Cool.

Mario: Yeah.

Alan: Yeah.

So that's that that's really good to hear.

I'm very happy to hear that that it's
it feels like it's, you know, there's a

million things that I really wanted to
do, and I've been desperate to just not

get too bogged down in doing everything.

So hopefully this the functionality
provides right now has a use and it is

useful and now a consult to build on

top of that.

So,

That's, that's the hope.

Mario: Yeah.

Yeah, It's looking good.

It's looking really good.

I like using it.

I'm going to be using it more.

I started using it for Fusioncast
related tasks, So, to speak.

And so As I, as I get more into
it, I'll give you more feedback,

you know, whatever I come across.

But Yeah.

it's, it's looking really good.

I like it.

Alan: Good.

Thank you.

So I think that the thing which
I find it's helpful with, so I,

especially on a solo project, you.

know using like an issue tracker just
feels like completely way too heavy.

Even though, you know, it might
probably be a good idea it's

right now, it just feels too much.

But at the same time, having a.

I kind of a notepad of like, yeah,
these are the things I need to do.

This is the thing I need to
do next and I've done it.

So having that kind of way of
organizing it and recording it, it

just seems it works well for, for me.

Hopefully others find the same thing too.

So just having that, having that list of,
yeah, I need to think about those things.

Moving that to, this is my thing.

These are the three things
I'm going to do next.

I mean, I've even almost, there's lots
of things that I thought about trying

to like codify and recommend, but I
kind of want people to figure those

things out for themselves as well,
figure out what works best for them.

So I'm trying not to be too
heavy handed with like, you

know, what is your main thing?

Choose three things.

And it's like, ah, they're adults.

They can figure it out.

Right.

Mario: Yeah.

Yeah,

no, I'm glad.

I'm glad you're going in that direction.

It's a little more,

It just gives freedom to people to
use it the best way it fits for them.

You

Alan: mean, so, yeah, I mean, one of the
things that's, I, again, I guess this

is a product, a byproduct of me being
a, an old school web user and fan of

like my favorite web apps that I've I've
I still feel I learnt a lot from under

my kind of favorite types of web apps.

I think it's like the original
delicious before it became something

that the original flicker when, and
all of them are still, they have

this aspect of like human hacking.

So they give you a re loads of features
and they say, you figure it out.

So communities naturally form
around like flicker tags or, you

know, like albums and things.

And same with delicious, you know,
people come up with different ways

of using it that weren't necessarily
on their original roadmap or, you

know, it wasn't the original design.

They.

Created by the users.

I mean, like Twitter's hashtags and at the
same rate, they weren't originally part of

the original design, but they came out of
people finding ways to use it that weren't

necessarily conceived by the original app.

So my hope is to create something
that, that has a similar kind of ethos,

something that is, here's a bunch of tools
you figure out the best way of using them.

Mario: Yeah.

Alan: And then as things as people
use it, then you see patterns

then maybe make those, you
know, more first older features.

But yeah, I don't want to force those
down people's throats, which again

is certain, you know, newer apps tend
to be like, this is how you use it.

And you're like,

don't feel like it.

Mario: yeah, yeah,

Alan: that's

just really good to know.

I I'm I

appreciate the comment

that I hope that's come through.

Mario: Yeah.

Yeah.

Alan: it's been nice also
to see no bugs as in no,

Sentry things appear on
my email, which is nice.

Mario: Yeah.

Alan: That's, that's one of the
best things is like, oh, it seems

to be working for everybody.

Mario: Yeah.

So far everything that I've, you know, the
things that I shared with you have been

just really cosmetic and, you know kind of

superficial you know, like,

Not, not any errors.

I haven't come across any errors.

Alan: I'm curious.

Cause you're, you're in
you're in us west, right?

So this is obviously how
it's done AWS US west.

So I guess that's Oregon
is that I'm not sure.

Mario: Oregon.

Yeah.

It's west

Alan: so that's reasonably
close to you, right?

So

since this is using live view, this.

A more latency for me, a
lot more latency for me

than you.

And it still feels okay for me.

It's, I mean, there's
a, an 80 millisecond.

You can't get faster than that.

So that's like the best case scenario.

So because a lot of the, so there's
two types of interaction on.

On the site, there's ones which are using
Alpine, which are like dropdown menus

and hotter states, things like that.

And then there's life view actions, which
are basically it triggers a uses the web

socket to basically tell the server what's
happened in the server responds where they

chunk of HTML that's replaced on the page.

So anything as far as your plan,
in terms of checking off something,

moving something, editing something
you know, clicking on a a plan item

and changing it to an eight state.

All of those are actually
responses from the server.

The HTML cluster is
given back by the server.

So I'm curious how responsive it
feels like when you're close by is

it feels pretty like almost instantaneous.

Mario: it feels pretty
instantaneous to me.

It, it, yeah, there's really not any,

noticeable latency at all.

It's just, yeah, it's very snappy.

Yeah.

Alan: I mean, my, it does.

I don't wanna say it's noticeable.

I I, notice it because I know what
I'm looking for when I'm doing it

here.

I notice it because it's like, ah,
it's, I mean, there's an 18 mil probably

a hundred milliseconds, you know,

rounded up between clicking on
a plan and it becoming editable.

There's ways I could change that.

So, you know, happens on the client
first, but using just straight

forward roll live view to do it.

There's, that's how he does it.

So yeah, that's kind of, I wish I
was a bit closer to the service, but

I, I it's nice being the worst case.

Right.

Or I guess Australia
would be a worst case.

It's but it still

feels absolutely good enough
from here, so yeah, I can imagine

it.

Mario: So your, your server is in Oregon.

You

said.

Alan: Yeah, yeah,

Mario: Okay.

So is that a AWS?

Can you share or,

okay.

Alan: Yes they do.

Yes.

So I'm using a service called a Gigalixir,

which is kind of Heroku for Elixir.

And they have the option of
going through Google or Amazon.

You can choose that they've got set
up, I think on four or to Amazon, to

Google data centers that you can choose.

And U S west one is, is the optimum
for me because it's the closest to me.

And it's, it's kind of the, I guess
if you're in the U S you'd probably

choose, you know, us central on Google
is probably a best case, but for

me, it's, it's closest to personal
request to, and also it's, it feels

like a good balance for everybody.

So

it's, if it works for me, then it should
be fine for what else was, was my thinking

then.

Mario: yeah.

exactly.

I did the same thing.

My servers are in Oregon too.

And I figured it doesn't re nowadays it
doesn't really with with the internet.

It doesn't really matter because
you're going to have people connecting

from the other side of the world.

So even if I were to go with a data
center, you know, in the middle of the,

of the U S it it doesn't really matter
because people connecting from Japan or

Asia or some, you know, anywhere it's
still gonna be around the world, you know?

Alan: Right, right.

Exactly.

I mean, so I've someone has
recommended CloudFlare Argo to me,

which is Cloudflare's per perf.

It basically optimizes the path from.

Client to the server.

So it would say you're
going from Australia.

You know, you might end up with, you
know, multiple routes, which is some

of them far from optimum using Argo.

It's expensive.

As in it's, when you look at the but
apparently it does significantly minimize

that that route or optimize the route.

So you basically get like preferred
route from wherever to the server, but

I'm hoping I don't have to pay for that.

So

Mario: Yeah.

That's

a,

Alan: the server is an elixir a
quick enough that the response from

the server is so quick that I'm
basically dealing with latency.

That's the only expense, you know, it's,
it's, it's a millisecond or two for the

server to create their response.

And then you just got latency.

So.

Mario: yeah.

And I wonder if it's more cost-effective
to, before going that route of, you know,

CloudFlare enhanced features or whatever.

I wonder if it's more cost-effective
to just up the server you know,

first, if you need a boosting in
performance, just up the caliber of

the server that you're running on.

And until you exhaust,

you know, That that

Alan: mean, for, for, in, in my case,
especially, you know, the, the slowest bit

is, is always going to be the, the latency
because the, the database is on RDS.

And so I did this founder's
life thing a month or so ago.

Right.

So I got a bunch of AWS credits
for that like $5,000 worth of

AWS credits.

Good.

For two years.

So I'm like, yeah, big database.

So

Mario: Nice.

Alan: basically spending way
more than I ever would personally

on a, an RDS configuration.

But because of that, the
database is now not the issue.

So the, the actual CPU bound tasks
are very minimal right now because

elixirs pretty damn quick and
the database is right next to it.

And that's really quick.

So it's, it's all latency pretty much.

So I hope hopefully, you know,
That will be able to maintain that

kind of balance that, you know,

we'll see how that goes.

Mario: Yeah.

Alan: require users for that to change.

Right.

Mario: Yeah.

True.

Alan: So that's, that's been a yeah.

A fun week or a week and a half

of responding to that and just seeing how
people have using it setting up some I set

up mixed panels, basic response tracking.

So I'm trying to use this to two ways.

I'm trying to record
how people are using it.

So I'm using a service called Bento,
which is made by somebody local, for.

Being able to trigger like email
drips and things like that.

So that's the thing I'm trying to
design right now is like, you know,

what do I, when do I want to do
things and what do I want them to do?

So I want to start thinking about that
process of like, okay, they've logged

in, they've created an organization,
but they haven't checked in yet.

Well, in that case, if they haven't
done that for a day, maybe send them

an email to say, why don't you do this?

Or if they've checked in, but they
haven't invited somebody then, you

know, maybe recommend them to do that.

So I'm setting up that service to do that.

And I need to figure out

the, the flow of emails for that.

But

Mario: do you do that.

programmatically with an

API

Alan: so

it's a.

Mario: with your, with your code?

Alan: So he has a two things.

There's either a JavaScript API,
which will basically just trigger pace

changes or the, but they also have
a an a, an API, which I'm actually

writing an Alexa module for to be
able to do that programmatically.

But basically just say, they've
done this, they've done this.

So you just send events.

So it makes panel has exactly
the same thing in terms of

triggering recording events.

You basically just say this user
you know, just give them a number.

This user did this, this user did
this, and you just send strings of you

know, created an account signed up,
created organization, invited user.

So you just, I'm Jason, just
sending a bunch of events down to

Mixpanel, and then on Mixpanel.

You can create.

Basically queries to make a
dashboard of those things.

So I say, so right now I've
got a thing, a graph, which

says number of signups per day.

And so every time you, you basically
can say show the number of times

we get that event uniquely per day.

And so you get a graph of signups per
day, same with number of check-ins

are like number of plans created.

So I have a little graph of a
little bar chart of how many

plans have been created today.

How many check-ins have been created so
you can see how the usage patterns are.

So without getting all you know,
nosy about who did what, this just

gives me an overview of like, some
people did this thing this many times

without being too I effecting people.

Yeah, exactly.

I mean, I don't care.

I don't, I don't want to see, I don't want
to know anything that anybody's doing.

But it's useful to me to know
how often people are checking in.

So how often, how many people have
made plans today or how many people

have checked off plans today?

So just by triggering, like telemetry
events of when someone's done

something I can just say again,
it's, it's a, it's a hashed user

ID, so I don't know who did it.

All I know is that at this point
in time, a user and it's unique

because it's hashed did this thing.

So and again, mixed panel have like
this, this space, I guess, is highly

competitive for like, I guess there's
a hundred different people trying to

be the, the one provider, I guess,
like segment.io Mixpanel data.

Box there's, there's a bunch of these.

So, Mixpanel have a thing where
you just say you're a startup.

I I've literally new customers
start up and they give you

$50,000 worth of credits.

And I'm like, okay.

So I mean, it's, it's fake money, right.

But at the same time means it
means I can use a service for free

for a year, as much as I want.

So I guess after that, they'll get you
and I'll decide, you know, either I'm in

a position where I can afford to continue
or I can't and don't need to because,

Mario: Yeah.

Alan: so at least it gives you a year
to figure out what to do with it.

So yeah.

Recommend doing that.

If you want to get an idea, I
mean, in your case, you know, you

could literally say, you know,
somebody you know, created a.

It created a scheduled on a, a call.

Somebody started a call, someone joined
a call, someone started recording.

You could basically just see, can
trigger either via JS or via serverside.

And again, as long as it's just hash
the user ID in a specific way you can

just get a, a dashboard of those events
and just knowing, I mean, I literally

just have a dashboard then I just can
see that one person signed up today.

You know, some accepted an
invite, somebody, you know, five

plans have been created, you
know, to have been checked off.

So it's just gives me an idea
of that's the usage patterns

without getting too invasive or,

Mario: That sounds awesome.

Yeah.

I, I would like to do
that, something like that

at some point.

Alan: yes.

Highly recommend just, just to get
that idea and say then the next

thing for me is, is looking at Bento
to, to, get the same thing going

with like email trips, because.

Somebody signs up, you know, right
now I've just got, you know, the

welcome email goes out and they've
got the invitation email goes out.

But I then want to separate the kind
of like the sales emails from that.

So something, you know, that goes out
at when people do particular things.

Yeah.

I'm like, I want to manage
that outside of my application.

I don't want to write that in my code.

That's like, and

so also, I don't know if you've
noticed, but I also have email

reminders that you can create from
within the application as well.

So you can say like email me at 6:00

PM every day to do a check in.

So,

Mario: Oh, okay.

I didn't know that,

Alan: I, I, well, that's the thing
nobody else has created apart from me.

So I'm like, okay.

But

because I can see that on Mixpanel, I'm
like, okay, I need to prioritize that.

Like was so I'm doing it now after
you've created a basically creates an

organization or joined an organization.

I'm going to come up with
a, like an info banner.

So I'm thinking of putting it in like
the top right of the dashboard page.

Kind of put a box around it to say you
know, did you know, you can set a, a daily

reminder or something and then close it if
you want, if you don't want it to go away.

But I'm thinking of using
that space as like a like a

recommendation of what to do kind of

thing.

So if you haven't invited somebody,
then you know, why don't you invite

a teammate if they haven't created
a, a a reminder, maybe remind them

to do that, or otherwise just,
you know, use it for something

fun if there's nothing to tell them.

So kind of a space that
is that the top right.

Of the, at the dashboard
page use that for something

informative or like a, did
you know that kind of space?

So.

Mario: that sounds good.

That sounds like a really good idea.

Alan: But again, but mixed panel
is showing me that no one has

created a reminder is like ah,

Mario: Yeah.

Alan: should do something about that Cause
right now it's just in the settings page.

If you go to settings as reminders.

And so I'm curious about that as well,

because that's, that was a nightmare to
write from a time zone point of view.

Mario: Oh Yeah.

I I can only imagine time-zones such

in such a pain.

Alan: Yeah.

So yeah, obviously if you say you
want it to go out at 6:00 PM and

I say, I want it to, go out at
6:00 PM there, different things.

Mario: Yeah.

Alan: So I want to, the next thing
I want to add is say, I want to

send it at 6:00 PM on weekdays.

Right now it just sends it every day.

I want it, so you can say, send
it at five 30 every weekday.

So then I've got to basically check
anybody who's, you know, needs a reminder.

Well, what, what days?

It not just, what time is it for
them, but what day is it for them?

And

Mario: Yeah,

Alan: And that changes, obviously,
if I suddenly go back to the UK for a

week I want that kind of to follow me.

Right?

So, because it updates the
user's time zone when you log in.

So anytime you go to the dashboard,
it basically records your current

time zone via the browser.

So that those reminders will actually
then automatically reshare module

because it just uses UTC to store.

So those from that point on
will then be 5:00 PM in the UK

rather than 5:00 PM Japan.

So that should work

Mario: Yeah, it

Alan: all my tests, have it work.

But I'm curious to know, to have
some other people in different

times on use it to see how it

makes sure it

works, confirmed that I'm not going crazy.

And my tests are actually useful.

Mario: okay.

I'm going to, I'm going to try, I'm going

to use that I'm going

to do something with it
then I'll report back.

Yeah.

Alan: So, yeah, so this, my plan for this
weekend is to basically invite some teams.

I've say

I've

I've improved the invitation system page
a little bit as well, to give a little bit

of information as to what you're doing.

As you mentioned, a lot of
the UI is some of it's good.

Some of it is very utilitarian and
the invitation page has one of them.

It worked.

And then I was like, I don't, I wasn't
in the mindset to, to figure out

how to fix that how to display it.

So I spent a bit of time
with that last night.

So it now has like a description.

You can add a message.

There's like a default message that you
can send as part of your your invitation.

You can change that.

And so that's all that's
improved somewhat.

So now as that's working I'm going to
try and add this little information

box in the, on the dashboard and
then send out to some teams at the

weekend and cross my fingers and
hope for somebody wants to use it.

so so it's been a, it's been good.

It's it's simultaneously like,

oh, this is great.

I've got some users and also
like, oh crap, I've got users now.

Like what if nobody wants it?

What if nobody uses it?

So it w it's like, before that
point it's anything's possible.

Right.

And then you're like, oh crap.

No, one's logged in today.

Like, why not?

It's Sunday.

Oh yeah.

That's why,

but you get a little bit I say, I

don't, you know, right now
it's still very early learning

days and because of the people

I've invited, I don't expect massive

like

use.

Yeah.

exactly.

It's going to be trying things
dipping into the Panetta was into it.

But.

Mario: And that's the way it goes.

I, I

find myself in a similar situation,
I've onboarded a few people and

I'm only a couple of people have
logged on and tried it, you know

I think I, I'm only aware of one

person who actually recorded
an episode and which I talk, I

mentioned earlier in a, had a

Alan: Wasn't it didn't
go perfectly, right?

Mario: yeah, it.

didn't go perfectly, but but.

he was able

to

record and.

Yeah.

So you know, in my case, I have to
understand that some of these people,

they already have a solution and they're
just, you know, kind enough to be willing

to give my product a try and just,
they're interested in checking it out.

And they might schedule a session here
and there at some point or they might

be waiting for a chance to give it a
try without it being like a critical

recording session that they want to do,
because after all this is still beta.

So I totally, you know, understand if
it takes them a while to get to it,

Alan: and plus, you know, it's not
something well, unless you're a

professional, full-time podcaster is
not something that you're going to have.

Okay, I'm going to use this right now.

It's like, no, I'll have a, you
know, there's a recording that

I need to do next Wednesday.

And you know, the usage patterns
are going to be not necessarily

predictable, regular, like,

Maybe regular, but not frequent.

Mario: Totally.

And yeah.

And we'll see.

One thing I wanted to mention before
we wrap it up, the problem that we had

with your recording last time which,
you know, today you were not able to,

to get in without the recovery mode
popping up was because in the, and

I I've addressed this issue already.

But before the leave button.

When I, as a host

select to leave the session, it
ends the session for everybody

else Well, it wasn't checking

for the state of, others in the session.

And so if you were still
uploading it'll kick you out.

so I changed that.

So that now as the host, if you select
to end the session won't let you, unless

everyone in the session is done uploading.

Alan: Yup,

Gotcha.

Mario: it checks for that now.

And before it was only checking for my,
for the local, you know, the local state.

And and so that's what
happened last time when I

ended the session, you were still
uploading and it kicked you out and

it didn't get a chance to finish.

Alan: Say, this is why we're doing it.

This is why we're making these
help you a debug, all this stuff.

Mario: Yeah.

Yeah.

So,

Alan: It's, difficult.

This stuff.

I mean, especially asynchronous,
synchronous and asynchronous, because yet

you need these things to happen, but you
don't know when they're going to happen.

Right.

So it's

Mario: Yeah.

That's crazy.

Alan: It's tricky, man.

Mario: Yup.

Alan: It's close.

You just get this

recording bug salted and you begin,

Mario: I know.

Cool.

All right.

So maybe it's a good time to wrap it.

up

Alan: It sounds like it.

So if I hit stop recording now,

Mario: Okay.

Alan: and then, so I'm just
thinking, give it time to finish

up.

Mario: Yeah.

Yeah.

That sounds

good.

6: Life, Challenges, and Progress
Broadcast by