So, hello. Hey, how's it going?
hey! Today is one of those days.
One of those days? Yeah. I know. oh man.
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
the word? Plumbing is the worst. Like electricity. You're like, oh, we haven't got light. Water is like a nightmare.
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 the dry wall in the area that they need to access to fix the plumbing issue. So, and that is.
to a standstill until they can deal with that, right?
Exactly. So this, this home was built in the seventies, I think. So it has some as,
throw asbestos on everything
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,
I know that feeling well, and I hate it.
yeah. And
It makes you appreciate the, when things are back to normal again, so, much more though,
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.
Well, you don't have it
But we don't have it yet. So everything is like, so everything is a mess. The whole house is a mess.
It's it has a, like a big effect on your, just your mental balance. It's like, oh God,
It does.
I just go into my laptop. It's calmer in there. Right.
Yeah,
maybe it's not,
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.
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
No, it's it's right here. I'm surrounded by it. As we speak, everything is a mess.
I know it well, and it's no fun.
Yeah. Yeah.
have my sympathy.
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. 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.
what you're using for basically pushing messages to, from the server to the client, right. In order to get it to do something
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 nature of that is that there's no guarantee that it's going to be received. So it's like UDP, like you know,
Yeah.
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.
yeah, exactly. And just breaking other people's
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?
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,
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
The worst, the worst thing's going to be, if it works finally staging
I know that.
you're like, oh, okay.
Yeah, but at least, yeah. I don't know. Hopefully
hope that's
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.
Of those things that you had that you needed to do this eventually, but you'd rather have not had done it right now.
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.
are working.
So, it works partially the, I mean, the, see here, if I disabled my camera,
Okay. Yeah, that
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
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?
Exactly.
it's yeah. You don't want to do that in production because you're filling around with logs and Yeah.
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,
I mean, that's good to know as well. Right.
yeah, yeah, yeah.
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.
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
Well, it's better to find it out now with one person then later with a hundred, right.
Yeah. Very true.
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.
maybe. Yeah.
I hope so.
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.
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,
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
Fundamental basic is kind of having an issue, right? Yeah, yeah,
Yeah. so it's like, kind of frustrating, but.
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,
It could be.
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.
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
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,
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.
But you you've, you've got staging up and running now or it's
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
Cool.
and then I have to do the DNS updates so that I get my staging domain going.
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?.
yeah,
Feel like you're against the clock, but it's good practice.
Yeah. Yeah. Good. Yeah, for sure.
It is not optimum.
Yeah. So needless to say, I haven't really had time to, to put together our podcast episode
yeah.
is so,
There's priorities. Get this working first
yeah. So I apologize. I really want to Get that going, but I have to focus on this for now,
Yeah.
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
happens right.
it just magically appears on the, on the pod catcher.
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.
Yeah. Yeah.
Nice.
That's, that's where I'm working. I'm working towards that.
that's a goal. You got to have a good goal, right?
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
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.
Yeah. yeah, it's getting there. Thank you. Thanks. Oh, notice I implemented the HashIDs library.
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
yeah, yeah,
Just to be able to throw stuff in and then you just decode it? and it's done.
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?
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,
Yeah.
Must be it must be secure that.
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
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
Okay. So you didn't, you didn't implement it across the board? Yeah. Just yet.
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,
yeah,
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.
yeah.
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,
Yeah. You were early, early adopter.
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,
Yeah.
so, yeah. So I've had an interesting week as well. As you may have noticed.
Yeah,
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
yeah,
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.
yeah.
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.
yeah. yeah. That's how I've been using it
right.
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
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.
Yeah.
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,
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?
Yes.
Yeah, It
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,
Yes. Yes.
but I know that I
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,
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?
No, No,
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
nice. What,
playing with.ai.
dot AI. How did you find out about this one.
I don't know it, I, I, Twitter pretty much everything I know comes from Twitter these days.
right? Yeah.
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.
Yeah. Yeah, totally. Yeah. I'm looking at their website site. Site looks cool too.
Cool.
Yeah.
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.
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.
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.
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
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.
Yeah.
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.
yeah, yeah,
that's just really good to know. I I'm I appreciate the comment that I hope that's come through.
Yeah. Yeah.
it's been nice also to see no bugs as in no, Sentry things appear on my email, which is nice.
Yeah.
That's, that's one of the best things is like, oh, it seems to be working for everybody.
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.
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.
Oregon. Yeah. It's west
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.
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.
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.
So your, your server is in Oregon. You said.
Yeah, yeah,
Okay. So is that a AWS? Can you share or, okay.
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.
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?
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
Yeah. That's a,
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.
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
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
Nice.
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.
Yeah.
require users for that to change. Right.
Yeah. True.
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
do you do that. programmatically with an API
so it's a.
with your, with your code?
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,
Yeah.
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,
That sounds awesome. Yeah. I, I would like to do that, something like that at some point.
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,
Oh, okay. I didn't know that,
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.
that sounds good. That sounds like a really good idea.
But again, but mixed panel is showing me that no one has created a reminder is like ah,
Yeah.
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.
Oh Yeah. I I can only imagine time-zones such in such a pain.
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.
Yeah.
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
Yeah,
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
Yeah, it
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.
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.
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.
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
Wasn't it didn't go perfectly, right?
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,
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.
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.
Yup, Gotcha.
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.
Say, this is why we're doing it. This is why we're making these help you a debug, all this stuff.
Yeah. Yeah. So,
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
Yeah. That's crazy.
It's tricky, man.
Yup.
It's close. You just get this recording bug salted and you begin,
I know. Cool. All right. So maybe it's a good time to wrap it. up
It sounds like it. So if I hit stop recording now,
Okay.
and then, so I'm just thinking, give it time to finish up.
Yeah. Yeah. That sounds good.
