Rebuilding Screenity from zero, and monetizing it
Also, how I'm trying to balance my time between indie making, life, and work
Issue #32
Hey! I’m Alyssa X, a serial entrepreneur building 12+ products by myself. This email is part of my maker journey, which you’re subscribed to. Feel free to forward it to others if you find it interesting! You can support me through GitHub Sponsors, I’d really appreciate it! ❤️
Hey all,
It’s been a while! I’ve been thinking about writing something for a while, but it was never the right time. I don’t know if it is now, but I still felt it would be nice to share where I am at, what’s on the horizon, and maybe get some of your thoughts.
Life
These past few months have been intense. I’ve been struggling to find time to work on my own projects, and I basically ended up de-prioritizing it for a while.
I’ve mainly been occupied by my job. With all the advancements in AI, chaos with global markets, the SVB saga, and basically trying to stay ahead of the competition, I have been at it non-stop, pretty much. Don’t get me wrong, it is exciting, but having to work hard deadline after deadline, as well as taking on all sorts of roles and challenges as the only designer in a team can be pretty exhausting.
Because of that, I’ve tried to prioritize more my wellbeing. I’ve been going to the gym pretty much every day for the past 5 months or so, doing a mix of rowing and strength training. It’s definitely been paying off, not just physically but also mentally, plus since the gym has a sauna I’ve also been a lot more relaxed 😅
I also have been trying to make more time for life in general. Just a couple months ago I was in Lisbon, enjoying the sun, the food and the sights. It was nice to meet some friends and take a break from it all, without having to think about work.
That said, that doesn’t mean I abandoned indie making entirely. There has been a lot going on with that too, but it is a bit more complicated.
My journey
After launching Motionity last year, I realized things weren’t going the way I wanted them to. I put lots of effort into that product over the span of several months, stressing out and working overnight, just to end up completely burnt out. I did learn a lot of things, and the launch wasn’t a complete failure, but the reality is it just wasn’t worth the effort.
It was then that I decided I needed to take a hard look into my journey, and think through my goals. While I love making projects for the sake of it, the truth is it is incredibly time consuming, and honestly there’s a lot of things I would rather be doing with that time, outside of work. It’s one thing to work on a fun little project for a week or so, but it’s another one completely to devote months to more ambitious ideas.
I ended up deciding, at least for my next product, to make sure my time is well spent. I wanted a safe bet, something not too challenging to develop, but at the same time rewarding.
And here’s where Screenity comes in.
Screenity
Three years ago I launched what is arguably my most successful product ever, Screenity. It was amazingly well received, getting the top spot on Product Hunt, shared all over social media, and even listed as one of the 26 best apps of 2020 by Fast Company. Since then it has grown to over 157K users on the Chrome Store, with over a thousand installs each week, and glowing reviews.
But three years have passed, and the extension has remained practically the same. With a lot of new challengers in the space, and new rules for Chrome Extensions (namely the transition to manifest V3), if I want to keep Screenity relevant I will need to take action.
With that in mind, I decided for my next product I would work on the next version of Screenity. I’d be porting it to MV3 to prevent it from disappearing from the Chrome Store, adding new features, and finding some way to monetize it, while accounting for the current user base and appeal (being free + open source).
I set out a plan, with the specific features I wanted to be competitive (including a bunch of new unique ones to set it apart), the structure, and the timeline. Given I don’t want to take forever building it, I thought it would make more sense to roll it out progressively, as opposed to launching it all at once. So I will try to build out an initial version that has feature parity with the current live one (but with lots of improvements), silently launch it, and progressively add features while getting feedback from users until I’m at a point where I can make a full launch and market it. That would remove a lot of the risk for me, and likely prevent me from burning out, as it’s divided into different stages.
One of the main things I wanted to do with Screenity, based on feedback, was to add a cloud component to it. Essentially have it be closer to something like Loom, where after you record your video it automatically gets saved and you can get a link to share with anyone. The problem with video though is that it’s very expensive. Not just storing it, but also encoding, transcoding, and especially streaming. Because of that, I wasn’t able to add it to the first version, given it’s a completely free tool.
With this new version though, I came up with an idea. I could still have Screenity be free and open source, with unlimited videos, but then have the option for users to pay for cloud functionality (among other features). I’ve also had companies reach out about having team accounts, so I could consider having a third separate plan as well (although maybe for further ahead).
I still spent a while calculating all the costs, and it wasn’t easy to make it cost-effective. I considered all sorts of options, from storing videos directly into S3 and doing all the encoding myself, to using pre-packaged solutions. Ultimately what ended up being the cheapest was something in between, which I could use at scale without worry.
My final step, before fully committing, was to build a prototype. So I jumped into VSCode, and I developed it in React from zero, given that the old code didn’t really work for MV3. The manifest transition added a surprising amount of new challenges - for instance, since the background script is now a service worker it’s not persistent anymore, and I can’t access the DOM through it to make a recording. Thankfully though I managed to come up with a clever workaround (not sure if any other extension has figured it out already), and I got it all working.
Since then I’ve been working on the design, researching other extensions, talking to users, and making progress to get the first version of the product finished. There’s a lot more I’d love to talk about, but it would get pretty long, and I also want Screenity to remain competitive, so I don’t really want to share everything.
Anyway, thanks for reading through! Hopefully I have more to share soon.
See you,
Alyssa X
What was the clever service worker workaround to get the recording? A content script?
There's MV3 Offscreen Documents: https://developer.chrome.com/blog/Offscreen-Documents-in-Manifest-v3/
I haven't tried them myself yet.
Use cases that are not well served by service workers: https://github.com/w3c/webextensions/issues/170
This thread is pretty long. It's somewhat sad to see so many things missing in MV3. As an author of a popular extension, browser vendor might listen to your feedback.
This is very inspiring as someone who is rethinking his goals and also as someone who has extensions in the Chrome Store. Thanks for sharing. Best wishes on your new release!