6: Life, Challenges, and Progress
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,
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.