An habit-bot that helps you install new routines

:warning: Disclaimer :warning:
Quite long post for a tool (could maybe become a blog post (and even a template) if asked nicely :grin: ), please take a :coffee: before reading.

Context

A friend of mine convinced us to make a strange commitment during all February : we would act as if we receive a certain amount of money each day. This amount would double each day, beginning with 1000 € the first (hence February the 28th we would receive 1000x2^27 = approximatively 134 billions.

The purpose of such exercise is to shift from a state of mind in which you told yourself to win more money (what could be summed up in the rat race prophecy, greetly depicted in this short cartoon of Steve Cutts : Happiness - YouTube) to the situation in which you already have that money and think what to do with it.

The exercise itself may seem unuseful and time-consuming, but as we did it in a group of 4 friends with a chat software (in our case Telegram, but it could be all API-friendly chat you want), we had interesting discussions about what to do with such amount. Contrary to what we thought, we fell short of ideas after only a dozen days (at the end of which we received what we wanted to live a comfortable life for the rest of our days, all necessary needs filled, like housing, food and tools for hobbies accomplishment).

TL;DR : you can find an example of the final implementation here (Main view and Things view)

Technical stack

As we started the challenge, the question was raised of the tool to use for recording all the things we would buy / do with such fictive money.

Wanted specifications were the following :

  • Having a WYSIWIG way to input data in order to let none-techs people to fill it easily
  • Privacy : in the group of friends we were, everyone was OK to let the others see what they wanted, however, they do not want these data to be stored by non-privacy-respecting companies or US-related (exit Google Sheets and Airtable)
  • Features : having the possibility to display all necessary data and keep a log of how much I spent for each day, what remains to be spent.

As I was responsible for the tools setup and I wanted to dig deeper into Baserow, I pushed the software forward. After a few days, I set up a system of notifications using a self-hosted instance of n8n coupled with our Telegram group.

The final architecture of it was the following :
On the morning
image

On the evening
image

Thoughts on implementation

  • As the challenge began, I realized there was two different needs:
  • people wanting to just write a text that depicts what they wanted

  • others (like me) who wanted to be more constrained, with a system in which they could enter all items they wanted to buy and an automatic computation of what remains. We ended with two-systems working side by side :

    • A text column for the first category. We use a formula field to check if the field is empty. N8N gathers that field each day to check if it was done or not.
      • Advantage of this solution : simplest way for participants,
      • Drawback : when you want to spend a million or more, things done can become very blurry as amounts become very high.
    • A side table called Things, in which a row contains all informations about a specific object bought by someone on a specific day.
      • Advantage : be more precise in your expenses,
      • Drawbacks : requires more time for setup and use.
  • Connection with n8n : currently, n8n provide a quite “brutal” way of handling Baserow connection, based on user/password authentication. See example below :

baserow block n8n
The Baserow block developed for n8n : it used username+password of user

While its functional, it completely jumps over the security features of Baserow that allows you to restrain access to specific table/databases. You can however switch to the HTTP request node, which works perfectly (that’s what I’ve done after a few days, knowing I also had a professional database that could be accessed else). I’m available if you have troubles setting up n8n with Baserow with such method.


Final workflow used, with HTTP request block used instead of Baserow one

  • Feature needs raised : as this challenge required advanced features, I switched on a paid plan on day 1, allowing us to use conditional colored rows and take advantage of RBAC. New needs were raised during this challenge
    • Webhook for comments : commenting is a great feature of Baserow, however, users who do not know Baserow can miss comments made on the lines that concerns them. An issue about it already existed here. Please upvote it if it matters to you :wink:
    • Comments folding : whether you’re on a phone or computer, the detail view of a row always shows comments. Days when I didn’t had the time to start again my computer after work, I wanted to fill things using my phone but the comments panel was to big do it properly. I raised this concern and gain an issue was created on GitLab. Please upvote if it matters to you :wink:
    • Search not working properly on formula fields using lookup : as we discussed ideas in a group, a friend wanted to reuse an item I made. As he searched in the main table, we found that the search field wasn’t looking into formulas that used lookup function. As the need seems very specific, I didn’t raised the concern.

Conclusion and afterthoughts

On the 4 friends that started the challenge, 3 of us made it through.

Beyond this challenge that can be seen as futile for some, it was a nice way to dig into Baserow deep functionalities (Formula field, I think of you ^^) and also to get to know how nicely the tool is well documented in terms of API.

Habits gained a lot of attention these recent years (I think about Power of habit or Atomic habits), as a habit is stronger than desire (than can be temporary) or motivation (that usually fades away after a few days).

Coupled with an automation tool and a communication software (here it was chat, but you could think about SMS or e-mail), setting up such project can be quite promissing if you think about all you want to implement (or discard) in your life, from the moment this habit can be virtually tracked.

You could think as instance as a Twitter-cooler-bot, that gathers the number of tweets you made and sends you a sumup each day about how much you used this network, or a Writer-helper-bot, that connects to an online pad/writing tool and encourages you to write a certain number of words a day.

Possibilities are quite endless, but if I may raised some disclaimer, the last ingredient that pushed me forward was the community-side of the challenge : having friends that are doing the same stuff at the same rythm triggered a need to fulfill it despite the lack of motivation.

PS: I made another bot for March, switching from Telegram to Element/Matrix to have an open-source solution from E2E, this time alone. As I’m making it alone, I confirm the fact that being alone doing the challenge is more difficult :sweat_smile:

Thks for reading, do not hesitate to react to what could be improved or if it inspires for personal / professional projects :fire:

1 Like

Hello @dynnammo, thanks for sharing this very interesting use case!

I think your case opens Baserow’s possibilities from a different angle and this is very inspiring. Plus I really like the way you decided to implement your project — making your own app from scratch sounds very complicated but after checking your explanations it seems to be doable even for non-tech people like I am.

I do agree that possibilities are quite endless, and there are many ways to use Baserow to support people with new habits/routines so it would be extremely useful if you agree to write a blog post describing this :pray: Let me know if you are still interested, and I’ll share a bit more details on how we approach blog contributions.

Thanks again for sharing your Made with Baserow, and I’m looking forward to reading about the 2nd bot you’re working on. That’s always more fun to build something together with other folks, but I’m sure you’ll handle that one even alone :muscle: