Weekly Indie Log #2
In this article series I'll try to share my experiences and lessons learned while building my personal app business by myself.
Hello everyone! Here's a quick update on my journey as an independent app developer over the past week. Friday was a special day for me because I was invited to be a guest on a cool podcast (which I regularly listen to) and I had an awesome talk. Will post the episode once it's live (it's German-speaking though).
1. PowerSync Exploration
As I described in last week's post, I'm currently exploring various technologies and options to support cross-device synchronization for my app HabitKit. Although this is a pretty challenging task, this is one of the most requested features and I'm determined to make it happen.
Monday:
Data Remodeling: I've been super focused in playing around with PowerSync, exploring its potential for HabitKit. The primary task was to remodel HabitKit's data structure. The end goal: Transition from my current Isar database to a Sqlite database, which is the backbone of PowerSync on the client side.
Supabase Integration: I've added controls in the debug screen of HabitKit for signing up and logging into Supabase. The integration was smooth, and I'm genuinely impressed with the developer experience. Love their product, philosophy and the design of the dashboard!
SQL Structuring: It's been a while since I've worked with raw SQL, but I've started mirroring the SQL structure of HabitKit's client-side database in Supabase. ChatGPT has been an invaluable assistant in this journey because the SQL Editor of Supabase just returns
Invalid SQL Syntax
when you make a mistake and that's a little bit hard to debug.
Tuesday:
- PowerSync Proof-of-Concept: The exploration into PowerSync is working great. I've successfully remodeled HabitKit's entire database structure with Sqlite. The synchronization with Supabase, even in my rudimentary debug views, is seamless.
Friday:
Feature Requests: I've been receiving numerous requests to incorporate value tracking for habits (e.g., "Pages read" for the "Reading" habit). Given the ongoing database restructuring for HabitKit's upcoming update, I'm contemplating adding the necessary fields. This will pave the way for UI implementation in subsequent versions.
UI Refactoring: Refactored the UI components of HabitKit to use the new Sqlite structure and it's working great so far. I will need to investigate some performance issues but that hopefully won't be a problem. Another cool benefit of the new database structure is, that I can use TablePlus to view the local data. Great to finally use SQL!
2. Lifestyle
Balancing Work and Side Projects: Juggling between my main job and my side hustle can be challenging. After an 8-hour workday, finding the energy for another coding session isn't always easy. However, I try to manage to squeeze in some time in the evenings and make small incremental improvements bit by bit, day by day.
Running: Another huge time-killer for me currently is training for my first marathon that I will (hopefully) run in October. Having 3 or 4 running sessions per week (including a very long one on the weekends) is pretty time-consuming and also burns some mental capacity. But in the end, if I make it, I will be super proud of myself and that is what's keeping me afloat right now.