Voyage Log August 2021 (An Indie Dev Retrospective)
August 31, 2021:
Howdy there, second retrospect here. So what happened in August? The highlight has to be the Chromium bug I encountered. This bug unfortunately blocked TurboNav’s release. More on that in a bit.
EDIT: I’ll start adding Good and Bad tags to my posts moving forward, just to label that there were failures or positives along the voyage
Last month goals:
- ❌ Release TurboNav Alpha
- ✅ Make the most out of Public Lab: August Cohort. Super excited about this one
- ❌ Create a User Feedback Loop for TurboNav Alpha: FAILED
- ❌ Get started on Slash Commands: FAILED
So what did I accomplish?
- Understanding how to share my voice with others (Public Lab)
- I got a great task management system going with Linear!
- Improved stability loading tabs in Tab Manager View
- Spent one week refactoring from Shadow DOM to iFrame
- Started on multi-select and should be wrapping up this week (starting Aug 31)
This was a very exciting part of my month. I was part of the Public Lab’s August cohort. I personally learned a ton from Kevon. It was great connecting with a group of like minded individuals who are working towards finding their voice and sharing it with everyone.
Personally, what made me join was the idea that going solo can be a lonely experience. While I like working alone, there’s a nice touch to connecting with others. Also, building in public at first felt strange, heck I never thought I’d be writing retros, but there’s a positive outcome of sharing your work. Being honest and authentic in what you’re building, can push you faster towards your goals.
I have so many takeaways, I’m planning on doing more building in public. Specifically on Twitter. I’m aiming to share more tips on productivity and software development. Two of my favorite areas. My goal is to help others in improving their productivity workflows, as I’m doing that for myself.
My main takeaways:
- Find your tribe on Twitter: Understand who your target audience is. Connect with them, engage in conversations. By doing this you are portraying an authentic self and people will be interested in what you’re building
- Create a system to capture insights: Sparks of inspiration for sharing will not come to you when you sit down and hop on Twitter, you have to let that come naturally. So, create a system that allows you to capture ideas for future content.
- Schedule time to share: If you plan on sharing your voice with others, you have to be efficient. Use software that automates this for you, but don’t forget to connect and engage. That’s not something software can do
The Chromium Bug
Ah! before I get to this, I got two rejections.
Yup, that wasn’t fun, it turns out the Chrome Web Store Guidelines have gotten stricter. Which is fine, the only problem is that they don’t tell you directly what was the problem. This gives me the impression it’s an automated system. In any case, let’s just say I cut some corners to get my product out the door sooner. Specifically:
- Keyboard shortcuts were handled on the webpage rather than globally.
- Shadow DOM had issues with Keyboard Events bubbling as expected. Turns out focus inside a Shadow DOM does not work as you expect. More on that here
Long story short, after a weekend of addressing what I assumed was the issue and a second rejection, I spent some time thinking about my next steps. I decided that moving to an iFrame was the best solution. That took a week of effort, after this refactor, things looked better. Until the dreaded Chromium Bug appeared!
Turns out Chrome’s manifest v3 Service Workers + iFrames causes an issue where the service worker breaks. 💥 boom! Just like that the background service workers stop working and creating notifications, alarms for Scheduled Tabs stop working. That took 2-3 days of concentrated debugging to understand how to reproduce. Turns out it’s as simple as injecting an iFrame into a webpage, afterwards the service workers goes haywire.
Needless to say, it was one thing after another. First Chromium bug reported, And I’m blocked! The process has been slow to get a response, so far it’s taken 7 days to finally escalate it to the Service Worker Devs department. Still waiting on a sign this issue will be addressed soon.
Ok, so what are my next steps? I’m not going to let this stop me. If service workers prove to be a problem long-term. I’m going to revert to manifest v2. This, unfortunately, means not being able to use the `tabGroups` API and `chrome.scripting` new API. Such a bummer, I tried a few injection strategies that were not the Shadow DOM and iFrame approach. Not any satisfied my requirements.
In the meantime, I’ve been working on multi-selection (the last feature I swear), and once I’ve wrapped that up… I’m seriously thinking about building a community around tab management. More to come on this, but I’m excited. I’ve never done something like this and honestly as an introvert, I’m kinda resisting it.
But it got me thinking about how the most successful businesses have strong communities behind them. This could help validate my product and also connect with others who have a hard time managing tabs. I have a plan and will share more as I get closer to it
I’m going to try a new schedule. Divide time between Marketing and Development. After all, I am wearing all the hats!
- Release TurboNav Alpha, Attempt #2
- Create a User Feedback Loop for TurboNav Alpha, Gateway to Building a Community
- Create a Marketing Plan Strategy
- Part-Time Development on Saving Links Experience.