MVP Journey - AndrΓ© Baltazar

Building an MVP every week

πŸ“ Daily Log – Small Steps

Today I started working on the page builder for SubNot. Didn't spend too much time as well on it. Just 30 to 45 minutes doing this initial drag and drop thing.

WIP Page builder for SubNot.

It's very much work in progress, but I want to take it easy on doing too much work now. Specially with the new job. It's going great.

I want to keep going on this path for SubNot, basically adding this page builder, and probably work on the different channels in parallel to this.

πŸ“ Daily Log – New job. Keep going.

Today was the first day at the new job. Onboarding went great. Looking forward to see what is next.

Kept working on SubNot. Just spent like 20 minutes on it actually, but creating a skeleton for the page to edit pages. Nothing too much, because I'm quite tired today from traveling, so need to rest now.

Want to keep working toward this new feature, but also should focus on adding a new channel. So maybe tomorrow creating the channel makes more sense. I think I should go for either email, Discord, or a custom app. Maybe work on all of them. Discord requires the bot to be in the same server as the user. I guess I would need to create something similar to Telegram to make it work.

πŸ“ Daily Log – Nothing much

Haven't done anything much today on the product side. Had to set up my other computer to be able to develop there while I'm not home. That took quite a bit of time, specially because I also have GPG signature of commits. My keys had expired yesterday, I didn't know about it, and it took my a bit of time to renew them. Also had to move the keys to another Yubikey which I thought was correctly setup, but apparently not. All that took some time, and then I checking out different projects on the other computer as well.

It's not too bad, since now I can develop anywhere I want, which is a plus.

On the contrary, tomorrow I start a new job, so my time will be reduced to work on these projects, but I will do my best to keep going.

πŸ“ Daily Log – SubNot: Pages

Worked a little bit on the button subscriptions stats, giving information for channels that are enabled but don't have any subscribers, and also displaying a badge on channels that have subscribers, but are disabled. This makes the stats more complete.

Also started working on my next big feature for SubNot which is pages with subscribe buttons. Basically the idea that you can create a page under the SubNot website, where your subscribe button lives. So you can link to it instead of integrating the button with HTML.

I envision that part being something like those sites that aggregate links for creators. I want to make it simple to create those kinds of pages, and to provide access to notifications for them directly to their audience. Will probably build some sort of visual building for these pages. Let's see. That's it for today.

πŸ“ Daily Log – Telegram: Edit Token

Today was a way softer day. I didn't do much. Started with the motivation to work a lot like yesterday, but ended up only implementing a functionality to be able to set a new token for the Telegram Bots.

My internet connection, and phone also went down, so I didn't feel like working on anything else today.

In reality, I wrote, and then removed, and then undid, the last 2 phrases a couple of times. I have a bunch of ideas to implement for SubNot, which I know I should make, but I don't want to right now.

So that's it for today. Just a single edit page, and nothing else.

πŸ“ Daily Log – Initial Release

I worked my ass of today to make something for a release today. It is done. I did a realease and going to improve it over the coming days, and weeks. I know the idea of this journey was to do a bunch of projects, but I want to take it slower now, specially since I got a full-time job.

So there will still be daily updates for the project. I will keep building stuff. There's a bunch I want to do. Probably start by improving the Telegram Bots, allowing to edit the details. Also add more channels, which is the purpose of this project.

It was a bit of a struggle today to make something worth releasing. Yesterday there were uncertainties with the implementation of the Telegram bots, but I ended up resolving them, and it turned out to be quite a nice system. I can now interact with different Telegram Bots very easily. This means the website is the webhook endpoint for these different bots, which handle a different set of buttons.

More to come tomorrow. Taking a break from SubNot for the rest of the day, and focusing on something different.

Ah, almost forgot. I pushed the blog post out, without a link. Visit it at https://subnot.mvplog.com

πŸ“ Daily Log – Near Release

Did some work in the early morning, but had to leave, and just came back very late. Despite that I actually made some good progress.

Finished the documentation, and wanted to actually finish for a release today, but the Telegram Message notifications are not ready because all notifications and subscriptions are currently going to the SubNot bot instead of the bots for each user of the application.

To prevent spam, each user must provide their own bot. So I basically have to support adding new bots to the system and associating them with the buttons.

I started with a dumb approach of adding this data for each button, but then realised that I should have each bot as an entity in the system, that way it is easier to identify each button uniquely.

Tomorrow I need to finish this and publish a first version release of the service.

πŸ“ Daily Log – Good progress

Today I made great progress. I worked mainly on the edit button page. It is now possible to configure categories and values for the categories, so it's possible to create subscribe buttons with filters. It is also possible to activate and deactivate channels, but the channels are not configurable yet. Need to work on that configurability tomorrow, even though my time tomorrow is a bit restricted because of some additional travel.

The plan is to launch a basic version ASAP, but I need to have the Telegram configuration working, that way the subscriptions will always work for that bot, since the chat ids for the conversations are bound to that specific bot.

I have plans to allow managing subscriptions, but not for now. This is supposed to work without that.

Apart from that, I made some few adjustments to the button, and started writing a basic documentation page for the integration.

For tomorrow, I have the configuration of Telegram to get done, but also need to finish the documentation, and improve the landing page + logo for the site. I don't know if I will commit to having a domain name right now, or if I just stick with the subdomain.

πŸ“ Daily Log – Back to grind

I'm back from travelling and ready to grind. Today I only did a minor thing on the project, and it has been mostly a lazy day. I also accepted a new job, so I guess I will be working in a week. I don't know how this journey will continue after that, but I want to try to still make this happen!

It's going to be difficult to do everything but with planning I think I can make it. I think I'm still trying to find what I'm really really good at. I've experimented a lot of things over the years, but abandoned a lot of other things. Programming is my passion from a long time, and it's been very fun journey. I love to build projects, and cool new ideas, but I don't think I've found that idea yet that I want to dedicate multiple years of my life to. As I reflect on that, maybe it is even some of my old projects. They are pretty exciting, but I'm just not sure.

Life is moving forward, and I'm just trying to navigate it. Let's see what I'm going to do tomorrow.

πŸ“ Daily Log – Travel

Nothing more today. Just traveling! Will be back writing daily next Monday.

πŸ“ Daily Log – Quick break

Today I just created a simple edit page for the button to allow editing the name. I'm not going to do much more, and will enjoy this afternoon.

Tomorrow I do some more things on the edit, and then I need to travel.

πŸ“ Daily Log – SubNot: Button Details

Yesterday I ended up creating the create page for buttons, and today I started working on the details.

SubNot Button Details
The details page for a button.

It's very basic and ripped straight from my Dual Kind project, so I need to update some UI.

Haven't done anything that complicated today, because as I said I want to take it easy, and don't burn out from working every day of the week. So that is that for today, and tomorrow I work on the edit page. Going to enjoy somme time in the sun, drinking a cold one 😁. Have a great weekend!

πŸ“ Daily Log – SubNot: Dashboard

There is a lot of work to be done on the dashboard. From creating the pages to create buttons, and to edit existing buttons. To adding the actual subscriptions with Paddle. Here is what the dashboard actually looks like right now:

SubNot dashboard
The SubNot dashboard to create and manage existing buttons.

Today I actually decided that I wanted to do an Indie Hackers post. I had made one the last time I launched a project, and even though I'm not an active participant in the discussion on there, I occasionally still go to the site to see what other people are doing, so I decided to post.

I also deployed a simple version of the site, and I ran into a few problems, like not being able to register Service Workers from other origins. This wasn't something I wasn't expecting, and maybe I need to switch my strategy a bit. Let's see. I think I'm going to pack it in for today though, just possibly create the page to create buttons, and that's it. I want to have some time to relax today.

I'm going on a little travel next week, and will not work on the project while, but I still have tomorrow and Sunday to work on it a little. I don't want to get burned out!

πŸ“ Daily Log – SubNot: Manage Subscriptions

As I said yesterday, I had worked to manage subscriptions in the browser. It can be seen in the video below.

Example of subscribing to with Browser Notifications, and managing the subscriptions.

It allows to manage the subscriptions of the current browser, and has a button to open Telegram, directly to manage the Telegram subscriptions. It is something necessary to have in the MVP so people can easily unsubscribe.

I've struggled a bit to do stuff today. I woke up very late because I kinda worked late yesterday, and then wasted the majority of the afternoon. It happens.

Even after that struggle, I've managed to do a fair bit of work. I've fixed a couple of bugs, and started to implement the front-end site, like the dashboard, etc. It is all repurposed from my other project DualKind.com which never got any traction, mainly because I just abandoned it.

It had a very nice code base to be repurposed, and I think at the time I had already repurposed it from another site of mine, but I don't know which one. So it was very easy, and fast to build all the login system, etc. It's all in place. I even have payments from Stripe in that website, so I can easily import that. I'm unsure right now if I want to go with Stripe or Paddle.

The Paddle documentation and API is very behind what the Stripe API is. It's not even close. They have what is needed, but the amount of documentation, and other things that the Stripe API does right vs Paddle is crazy. I think I will go with Paddle, but it will probably take me some time to figure out what kind of fields, etc, are needed to save in my local database.

Other than that, I also need to work on the product itself, so basically adding a way to create buttons, and edit some basic properties. That all needs to be in the MVP, although I'm going with something very technical for now, for more advanced features, like the filters. I'm going to just allow JSON configuration for it, which doesn't require me to build a complex UI. Also need to make the APIs better for the developers that use the project, because I cannot be complaining about other people's APIs if mine are not good as well.

There's a lot to do tomorrow. So I hope I can go to bed early (for my definition of early) today, and get a good start tomorrow.

πŸ“ Daily Log – SubNot: Filters

I have added the custom filters page today, as well as a page to manage the browser subscriptions. Here is a video of the filter categories:

Shows the possibility of subscribing to a button with custom filters.

The categories are supposed to be all customizable, and allow flexibility for the user to subscribe to just a few things they want. This is great to have more control of what you expect to receive from a website. In this example video above, only one category is shown, but it is possible to have more than one category, and these allow greater filtering options.

I've made the manage subscriptions work, but I need to polish it off, and also need to add a button to go to Telegram to manage Telegram subscriptions there. That will be done tomorrow. I'm actually proud of what I've done so far.

πŸ“ Daily Log – SubNot: Telegram Manage

Today, I made some more progress on SubNot, allowing management of Telegram subscriptions, as well as creating filters. The video below shows the full flow on Telegram.

Telegram subscription, notification, and subscription management.

The filters on the button allow to send notifications to only a subset of subscriptions. I will post more tomorrow, with the management of Browser Notifications, as well. I think it is almost ready to be able to integrate on websites. Then I just need to make the whole website for configurations, etc.

Other subscription options will come later.

πŸ“ Daily Log – Progress: SubNot

Decided to revive SubNot, I think I got an idea on how to make it work. The developers provide the Keys, and the bots, instead of SubNot being responsible for that. SubNot will still be the sender of the notifications, and could be potentially IP blocked from services if abuse is detected, but I don't know if it will. I will continue developing it anyway, because it is something I like.

Today I implemented a basic version of the browser notification, the users are able to register to get browser notifications. From what I tested, works at least on Chrome, Firefox, and Chrome for Android, so it gets a lot of users.

Need to polish it more tomorrow, and then add filters to the notification subscriptions. It entails creating temporary tokens that will be redeemed once the Telegram subscription is done, because the amount of information that can be passed to the start parameter is very low.

πŸ“ Daily Log – Oh Sunday

Sunday rolls around, I still do nothing. I've actually put some work towards my language abla.dev. Creating a new parser for it.

πŸ“ Daily Log – Life and Death

Today was lived between life and death. Enjoying life, but also thinking of the dead.

πŸ“ Daily Log – A life of distractions

I've built my life right now around distractions. I spend a lot of time doing things that do not move this journey forward. From watching YouTube, to reading Twitter. I've spent quite a considerable amount of time on both this week, as well as watching TV shows, and movies.

I keep getting distracted by life, be it a text message, a thought from another unrelated thing, or an impulse to watch/read something on social media. And it keeps me there distracted. I often think about the priorities, and maybe mine are not very aligned with what I want to do in life. I put too much weight on other things, and leave my work (the one that I don't do professionally for other people) in the back of the pile. It doesn't align with what I want to do, but it is what feels right in the moment.

It is a very difficult choice to make, but I think moving forward I should put more priority on the work, and enforce restrictions on the other things. Need to think a little more about it.

πŸ“ Daily Log – Freestyle Writing, and Projects

My style of writing is always very freestyle. I don't plan what I'm going to write on a post, or how to present it. It is very raw, my thoughts directly to the page, with minimal editing. It may or may not make these bad, but it is the way I like to write them. This is supposed to be a mind dump.

I've been thinking a lot about the projects I've been wanting to do. And I realised I actually have a bunch of ideas, I'm just afraid to get started, either because I don't have any sort of market validation for the ideas that I want to make public, or I just think the task is too complex and doesn't align with what I want to be doing.

πŸ“ Daily Log – Forward

Still moving forward. Life is slow, but time doesn't stop.

πŸ“ Daily Log – Difficulty

It has been difficult to keep up with this. As I lost interest on the last project, it has been difficult to get back on track. I also have somewhat given up on this because I was doing other things, and I have been playing games daily. However, I realized today that gaming brought me happiness when I was a kid, but now it only brings me sadness. Specially the kind of games I play, hyper-competitive, where if you are not a top player, your fellow players get toxic towards you. Playing normal games it's still fine, but I don't think I will ever play one of the competitive ones again. It's just too draining. I found myself shouting back at someone... I don't want that to happen ever again.

The journey is not dead, but it has taken a huge pause. I will be traveling in 2 weeks, as my trip was postponed, but I want to start and finish something simple before than. I want to start shipping. I was a video today that Jon Yongfook made that inspired me to get going again. As he says in the video I should do something that I would enjoy doing, and something that possibly solves a problem of mine. So I'm not sure what I'm going to do yet. Was thinking something related to travel, but not really sure yet.

I've also taken on a normal full-time job that starts on the 30th of May, so let's see how this goes. I have a long runway to do anything I want in life right now, and probably for a few years, I don't have the necessity for the job, but it's just something to keep me doing what I want to do professionally, and not keep burning through my money. I quite enjoy what that company is about, so that's why I decided to join.

πŸ“ Daily Log – 1m 1d

Still nothing.

πŸ“ Daily Log – One Month

It has been one month. Nothing to show for it.