Issue #137 - Joe Fabisevich
Happy Monday, everyone!
We made it to Issue #137! Thank you to everyone who read last month’s issue ❤️
Kind of… it took me like 4 weeks to write another issue 😅 I have a lot going on with family, work, fastlane, Deep Dish Swift and I’ve been meaning to write an issue about going on a hiatus but just couldn’t get around to it. So I figured I should write another a legit issue featuring a super awesome indie dev and THEN annouce my hiatus.
So if you haven’t heard yet… I’m thinking of going on a hiatus 😇 I have Deep Dish and two work trips planned in May and a family trip planned so June so I’m thinking of coming back relaxed and refreshed in July or August. This doesn’t meant I won’t be involved with the indie dev community! This only means that I’m taking a short pause on writing issues. I’m going to be still watching out for awesome devs and apps to feature and preparing for some great issues in the later half of this year 🙌
Deep Dish Swift is the best pizza themed iOS and Swift conference being held in Chicago May 5th to May 7th in 2024. The conference brings togethe Swift and iOS developers of all experience levels and backgrounds in an inclusive environment to share knowledge and experience from a diverse set of speakers. There are talks and a live podcast recording specific for indie development and also two full days of Swift and iOS talks!
Today’s Spotlighted Indie Devs
📆 Today I’m featuring Joe Fabisevich.
👉 Please make sure to follow them or support them anyway you can! 😇 I’m excited to share their indie dev stories.
Indie Dev
Joe Fabisevich
Q&A
1) What is your name? Where do you live?
Hi Josh, you can call me Shorty. I’m excited that this is your first ever Indie Dev Monday interview with an AI — nah, I’m just kidding. This whole conversation was written by hand and is organic human content. I’m Joe Fabisevich, and I live in New York City. I’m sure it’ll hurt you to publish this but my friend, this great city has the best pizza in the world.
2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?
I’m a software developer by trade, with a degree in computer science. But if I’m being completely honest (mom please don’t read this) I probably skipped as many classes as I attended. I learn best by building, prototyping, and feeling the joy and inspiration of making something.
I’m just like Taylor Swift, in the sense that both of our careers have had eras. I’ve worked at quite a few startups like Timehop, Bitly, and Betaworks, and have been lucky enough to build apps used by millions of people. I started my own startup, and it was not only fun but taught me so much. Sadly we had to shut Picks down, and all that remains is a very adorable Instagram account.
From 2018-2022 I worked at Twitter on the Societal Health team, some very interesting years in Twitter’s history. My team worked on the problems of misinformation, disinformation, civic integrity, and all of those topics that Twitter is, ahem, well known for these days… My experience at Twitter really helped me grow into the person I am today. I’m very proud of how it shaped my perspective on the world, what it means to build software for people, the duality of technology, and my time working there truly reinforced my belief that we should always be trying to scale empathy and kindness. Unfortunately recent company changes have made it a little hard personally to use the product today, but nowadays I’m an indie developer making apps at Red Panda Club.
Outside of work I’m a huge sports fan, but unfortunately I love teams that hate winning. As a Mets, Knicks, Jets, and Rangers fan I’ve learned a lot about coping with disappointment, it keeps me humble. My baseball playing days are behind me but I still like to go for runs, bike rides, and long walks where I can let my mind run free. And of course there’s little that’s more rewarding than spending time with the people I love, especially when we take advantage of everything New York City has to offer.
3) Have you ever considered yourself an indie developer?
I sure have and do right now! It’s been just over a year since I left Twitter to build indie apps full time at Red Panda Club. The path hasn’t been as straightforward as I was expecting, but it has been incredibly fulfilling, challenging, and everything I’ve always wanted to do.
As an indie developer I have the job title of doing everything. I take a lot of pride in my design skills, design is how a user translates your thoughts into the experience they’re having. I’ve been running a business in some form or another since I was in my early 20’s, naturally that’s a very valuable skill to have as an indie developer. I consider myself a product person and now I’m the product manager of every product. As much as I hate marketing you’ve gotta do it, you won’t have much business without it. And, well, you know, a big part of being an indie developer is actually being a developer… so it’s a bit like having five jobs. Doing a bit of everything isn’t always easy, but it is very enriching.
4) What got you started/interested in creating your own applications outside of your “normal” job?
Why did Renaissance painters paint paintings that people still go to museums to see? Why did The Beatles write love songs that people still sing today? Why does a random person write an elaborate blog post about their experiences when no one may even read it? Because creating something in this world fills our soul and connects us with other people, people who we may never know, speak to, or even be alive at the same time with.
People often treat software as a utilitarian good or a business need, but software can make us feel too. I didn’t have the words for it when I was 20 and building my first app, but I was searching for it. I saw that it was possible to use software to solve the smallest of problems in a way that uniquely resonates with people. Other people’s open source worked has helped build my career, and it’s why I try to give back by open sourcing as much code and knowledge as I can. We’re all standing on the shoulders of every person who’s ever make something in this world, and when you realize that it empowers you to help others in the same way you’ve been helped.
There are blog posts that have changed the way I look at the world, there are courses that have taught me a skill, there are people who make apps that make me more productive and help me accomplish my dreams. That’s why I’m writing about the process of building a business at build.ms, it’s why I share personal essays at fabisevi.ch, and it’s why I now make personal, playful, productivity software at Red Panda Club.
5) How do you balance your time between friends/family, work, hobbies, and indie dev?
One of the reasons I became a full time indie developer was to have a better work/life balance. It turns out that doing raw capitalism 40 hours a week really wore me down and would sap me of my essence. It doesn’t help that I follow a maker’s schedule in a manager’s world, where a lot of important work happens in and around meetings. Most days I take one or two 30-60 minute walks, those walks help my creativity start flowing. Sometimes I pause my work to let my mind run around like a puppy off it’s leash, and an amazing idea will surface from that. I love to bike into Manhattan to meet a friend for lunch, and then resume my work a couple hours later feeling like a completely different person.
All of that are pretty hard to do when you’re “on the clock”, it’s hard to tell your boss that you want to skip a couple of meetings so you can go for a long walk. And since I’m a bit of a night owl (not too late) if you ask me to work from 10-6 you won’t even be getting my best work. My newfound freedom, flexibility, and a very understanding partner all allow me to do my best work as an indie developer — I’m very grateful for that.
6) Short Circuit - Congrats on your recent release of Short Circuit! I asked Short Circuit what the first thing I should ask you and here it is… What was your inspiration behind Short Circuit and how does it differ from other chatbots in the market?
My inspiration for building Short Circuit was a mix of fascination and fear. These days we’re all hearing about LLMs (Large Language Models) like ChatGPT, and when I got a chance to experience using ChatGPT I quickly realized we were witnessing a meaningful leap in technology.
I want to stress that I do not think that ChatGPT or chat bots are the end all be all for large language models, and I don’t view the end goal of Short Circuit to be a chat bot. The beauty of software is that it’s malleable, and so you can make it look like anything you want and do anything you ask, as long as it’s programmed to do so.
By building Short Circuit my partner on this project Soroush and I have developed a really great foundation and understanding of large language models as a tool. We now know where they excel, where they falter, and where there’s room to build atop them to provide a great user experience. We have quite a few ideas for how we’d like to mold all of that into Short Circuit, and potentially other products.
LLMs are both overhyped and underhyped, which it makes it difficult to figure out where we’ll be using them and what’s a fanciful dream. That’s where the fear came from, I needed to know what this tool is capable of and what it’ll be replacing, knowing that the tool may some day be replacing me. I don’t think LLMs will be a fad but I also don’t think they’re going away any time soon, so it’s important to understand how they’re going to affect our lives. That combination of fascination and fear led me to build a prototype of using ChatGPT through Siri and Shortcuts a few hours after I got access to OpenAI’s API. That prototype ultimately became Short Circuit, and those features have become some the marquee features we offer.
7) Short Circuit - The chat style onboarding of Short Circuit was amazing! The app started so quickly and had the perfect timing and animations with chat messages that felt natural, welcoming, and informative. How long did it take you to get all of this onboarding just the way you wanted? Did you have any other variations of onboarding that you were playing with?
I’m so glad you feel that way because with apps and people alike you only get one chance to make a first impression. I wish I could say it was easy, but it was actually a lot of painstaking work! I must have spent 8 hours straight at my computer crafting the first run by hand, tweaking the words, timings, and little the bits of flair users see and feel to get a sense of joy during their first experience with the app.
There was a lot of iteration after that, and I was lucky enough to have good intuition for building a chat bot onboarding from previous apps I’ve helped build. My girlfriend Colleen is usually the first person I show my work to and in this case she’d also worked on an app that started as a chat bot product, Shine. Most importantly you learn a lot by putting your product in the hands of people. New users don’t know what you know about your product and will tell you when something doesn’t feel right. With the help of about 80 beta testers I was able to refine the onboarding (and product), which made Short Circuit have the nice feel it has today.
8) Short Circuit - I know that ChatGPT comes with recurring costs for the API usage. How did you determine what pricing structure to use? I know it can be hard to explain the reasoning for subscriptions to some users. Do most users understand these recurring costs?
You’re not the first to ask, and I’d love to be transparent for any other indie developers that are trying to figure out pricing. Pricing is a strategy, and it isn’t a decision you make once. You should be thinking about pricing often, and you should be willing to experiment with your pricing.
When we talk about pricing what we’re doing is solving an economic equation. We want to find price points for our products that maximize profit by delivering the most value to the most people we can reach. That means we’re charging enough to be sustainable and generate a profit, without a price that’s so high it prices too many people out.
By framing our problem around people and value we eliminate many of the user-hostile business models you’ll see on the App Store. I know there’s a lot of money to be made by operating a business in a way that annoys or scams a user into paying money, but avoiding that completely helps me sleep better at night.
We have three unique pricing challenges with Short Circuit.
- Short Circuit is a product that has a high cost to operate because OpenAI’s API is rather expensive. It’s expensive but fair, running super-computers costs a lot of money. That’s very much unlike most SaaS businesses where the additional cost of a user is marginal, every user OpenAI has costs them a tangible amount of money. Our usage of OpenAI’s API means that Short Circuit is also a business that doesn’t operate like a traditional SaaS, every response one of our users receives can cost as much as $0.01, and scales linearly the more users we have.
- Using ChatGPT on the web is free. People have asked why we charge for Short Circuit when they can just use ChatGPT on the web for free, and it’s genuinely a great question with a simple answer. OpenAI is burning millions of dollars a day to offer you that product for free, and I don’t have millions of dollars. If I ever do become filthy rich I promise you I’ll give my software away for free too, you can quote me on that!
- We offer three subscriptions where we cover the costs of sending messages using OpenAI’s API, but we also offer a one-time lifetime unlock where you cover the costs of API calls. That unlock currently costs $29.99 and is actually a great deal if you think Short Circuit is a product you’re going to use for a while. Communicating that to users isn’t easy, and Apple has some limitations around how we can provide users this information in our app. Since a lifetime user will also be paying for their own API calls they have to do the mental math of calculating those additional costs and figure out how much they expect to use Short Circuit before purchasing the product. Traditionally that’s stress you don’t want to add for someone staring at your paywall, but we haven’t found a better way to message the flexibility this option offers to users.
Those constraints led us to use this fancy technique called mathematics to come up with a pricing structure we think is fair to users, and accommodates our cost of running the business and developing the product.
Every ChatGPT query we make using OpenAI’s API has a maximum cost of $0.01. The cost of a message depends on the length of your message and the reply ChatGPT sends. One token is ~3.75 characters, OpenAI charges $0.002/token, and you can send a maximum of 4,000 tokens per message. That adds up to $0.008/query, which we round up to $0.01 to make the math simpler.
That led us to our three pricing tiers.
- $2.99 to receive 100 responses/month in Short Circuit
- $5.99 to receive 300 responses/month
- $14.99 to receive 1,000 responses/month
When you include Apple’s 30% cut a $2.99 subscription becomes $2.09 of revenue, $5.99 becomes $4.19, and $14.99 becomes $10.49. Earning $10.49 from a user in a month sounds pretty great, but our margins are actually a lot slimmer than that when you consider the costs of running Short Circuit.
When a user signs up for the 100 response plan and sends 100 messages at $0.01 per message we earn $1.09 from their subscription that month. For a user on the $5.99 plan we may find ourselves only earning $1.19 per month. The $14.99 plan has the slimmest margins, we may only earn $0.49 from a user if they send all 1,000 of their purchased messages that month.
This is the worst case scenario though, users likely won’t send all of their messages every month, and we’re sure they won’t be receiving 4,000 token responses. Nonetheless we have to price our product as if the user is going to send all of their messages every month at the maximum cost, otherwise we’ll run the risk of losing money on every user. That means we don’t have much wiggle room on price without also changing how many responses a user gets for the new price, something economists would consider elastic demand.
Knowing that not every user is going to cost us every penny we’ve allocated for them does provide additional profit, but that profit goes to cover the costs of running the service. We have servers that communicate with OpenAI, we store messages in our database (for an upcoming conversation sync feature), and we also offer a free trial where users can send 10 messages for free. Every user who tries the app and doesn’t convert into a paying customer is a loss, and can cost us as much as 10 cents. If 10 people try the app and don’t sign up, then we’ve lost $1, so it’s important for us to leave a little room for profit on our subscriptions and lifetime unlock products.
That brings me back to where we started, we’re trying to maximize profit by delivering the most value to the most people we can reach. I can’t say we’ve maximized all of our potential profit yet so there will be room to experiment with the price, but I know we have many happy paying users now so I think we’re off to a good start.
9) Short Circuit - What are some of your favorite use cases or prompts to use with Short Circuit? I’m very inexperienced at using ChatGPT but I’d love to get better. Have your users used Short Circuit for anything that you haven’t thought of?
A lot of people ask this, so I’ve started keeping a list of interesting use cases.
- My favorite use case so far came from a person writing in to tell us that they’re using Short Circuit for birdwatching! One of Short Circuit’s best features is being able to use ChatGPT with Siri, which means you can use ChatGPT without looking at your phone. I’ve never birdwatched but even I understand that a big part of birdwatching is looking at birds, a situation where you can’t look down at your phone to type. I would have never in a million years thought of this use case, but one of our users was so enamored by this feature that they took the time to write in and tell us how it’s transformed one of their favorite hobbies.
- Short Circuit can be a very practical tool for people who don’t bird watch too.
- Short Circuit is a great writing companion. You can say “shorten this text”, “improve this writing”, “fix grammatical errors”, and your text will be magically improved.
- People are using Short Circuit to plan their vacations, myself included. Short Circuit is great at quickly identifying popular sites to see and off the beaten path things to do, thanks to Short Circuit I have a nice plan for my trip to DC next weekend.
- One of our users has been DMing their Dungeons and Dragons campaigns with Short Circuit and told us that they appreciate how we’ve tuned the model to provide more concise responses than ChatGPT.
- A use case I found very intriguing is meal planning, especially for people with very specific dietary restrictions. A person can ask “Can you give me five meal options that are gluten-free, vegan-friendly, and include tofu or soy?” and it will return you five meal options instantaneously. But that’s only step one, next you can ask for the recipe of one of the results. When you say “Can you give me a recipe for Tofu stir-fry with mixed veggies and gluten-free rice noodles?” you’ll now have lunch plans tomorrow, something that’s a struggle for many people with dietary restrictions.
- As a developer I find myself turning to Short Circuit more and more to write code these days. I don’t want to over-promise and under-deliver, but ChatGPT and GPT-4 (coming soon to Short Circuit) are incredibly good pair programmers.
- When I’m stuck the first thing I do now is turn to Short Circuit. If I need to write a function I’ll write a prompt for what the function should do, and most of the time Short Circuit gives me what I need on the first try. It’s important to know you won’t always get what you want immediately, for example when I get back a closure-based result I’ll just ask Short Circuit for an async/await variant. Sometimes I need to rephrase the question a bit, but I almost always arrive at a good result by the second or third response.
- ChatGPT can write your tests for you, add documentation where it’s missing, and I’ve been using Short Circuit as a universal programming language translator. You can even ask Short Circuit to explain some code to you, and it will break down the code step by step.
- Short Circuit even rebuilt the Red Panda Club website. I believe in dogfooding my own product so I looked at my old website and composed a 150 word prompt of what I wanted out of modern, updated, and upgraded website. The original website was HTML and CSS that I’d quickly thrown together a few years ago, and would tweak over the years. The old website wasn’t responsive, I had trouble adjusting the layout, and any time I wanted to update something I had to think about what was going to break in the process. I decided to use this opportunity to upgrade the website to React to make changes easier, specified that the design needed to be responsive, and then added some new features like a grid of Red Panda Club’s apps. The new website I’d designed with my words was shockingly close to what I wanted. It took about 5 minutes of prompt engineering to build a good looking website, and I spent another 30 minutes making tweaks to get everything just how I wanted it.
10) Short Circuit - What was the hardest part about building Short Circuit? What was the most fun part of building Short Circuit? Did you ever use Short Circuit to help build Short Circuit? 👀
The hardest and most fun part was going from idea to 1.0 in only 19 days. (The app spent then spent another 10 days in app review so maybe that was actually the hardest part. 😅) The code isn’t a rough prototype either, we made a lot of good technical decisions, but since we’re still learning about this domain we could have made a lot of poor choices as well. It’s been a while since I shipped a substantial app this fast, and it wouldn’t have been possible without me using Short Circuit to help build Short Circuit.
When I’m stuck I now turn to Short Circuit before deciding to bother someone else. I used Short Circuit to help write my App Store description, to brainstorm ASO keywords, and to even write most of the subscription code in Short Circuit. It’s clear that ChatGPT was trained on RevenueCat’s extensive documentation because the code it gave me when I prompted Short Circuit for subscription code using RevenueCat’s iOS SDK the code was pretty close to production ready.
11) Short Circuit - What’s next?! Do you have any future features that you can share with us?
We have a lot of things we want to build, but we have three features coming over the next couple of weeks.
- A native Mac app. Short Circuit users have been spending a substantial amount of time using the Mac app, which is why I’m excited to bring them a high quality fully native Mac client. (Today the Mac app is very good and functional, but is an iPad app running on the Mac.) I’m excited about all the possibilities like a menu bar app, keyboard shortcuts, and multiple windows for complex workflows.
- Conversation Sync. If you receive a response on your iPhone it will show up on your iPad and Mac too. We want to build a streamlined experience for users across all clients, and to have their conversations available everywhere they go.
- Per-conversation fine-tuning. Short Circuit lets users have multiple conversations at a time with ChatGPT, which helps us provide more context to ChatGPT. That context is important for helping users dive deeper into a specific subject, and we want to take that to the next level. Soon a user will be able to choose their large language model (for example GPT-4), provide a custom prompt for the entire conversation (like “explain this to me like Albert Einstein” or “help me debug this code”), or even customize how much creativity they want in the responses.
We’re always listening to users about what they want, but also can’t wait to surprise them with some other plans we have.
12) What’s been the hardest part of being an indie dev? What is the most fun part of being an indie dev?
Something I’ve learned is that a person’s strengths are also their weaknesses. By doing the development, design, product, business, and marketing for everything I build I get to see a creation come to life from my head. It’s incredibly rewarding, and because I don’t have to work with another designer or developer or business person I’m able to prototype or build high quality products incredibly fast, products that are as true to my vision as they can be.
But when I’m stuck or fail, I’m stuck or failing all alone. I love most parts of my job, but like many indie developers I find marketing to be really draining. I know I have to do it to make my products succeed so I do it, but I always feel bad that I’m not doing something I excel at, or that I’m not working on my product.
I carry that burden with me because I won’t be able to earn a living if I don’t do it well, but I also know I have options. I could (and will likely) hire someone to help with the things I’m not good at or don’t want to do, for example marketing. Having someone do marketing will take one of the five jobs I’m doing off my plate, I already don’t have enough time in the day to do it all and can’t do it at the level of quality I expect from myself. It’s all a balancing act, and I try to remind myself that I don’t need to walk a tight rope when there’s a perfectly good bridge right next to me.
13) Is there anything else you’d like to tell the indie dev community about you?
I’ve written about 4,000 words so far so I’m going to keep this really short. I love the iOS developer and indie developer communities, and do my best to give back to them as much as I can.
- Please try Short Circuit, I think you’ll really like it. Don’t forget to get creative with it, that’s half the fun of this new technology! We’d love to hear what you think.
- Most of my time is spent working on Red Panda Club’s flagship app, Plinky. Plinky is a link saving app with a collaborative twist, it’s in beta right now but I’d love for you to sign up for the waiting list. So far people are loving it, and I’m excited to make my way back to it after the next batch of Short Circuit updates.
- I’m cataloging my journey of building a business at build.ms. My writing doesn’t only feature lessons about building your business, but the experience I’m going through in hopes that it can help you on your indie journey as well.
- My personal writing lives at fabisevi.ch, that’s where you can really get to know me.
- And you can follow me on Mastodon where I post helpful tips and unhelpful puns.
14) Do you have any other indie devs that readers should follow / lookout for?
There are so many great people in this community, people I learn from every day. I find what Christian Selig is doing with Apollo to be amazing, I love how personal Becky Hansmeyer’s writing about her work is, and I love seeing Emmanuel Crouvisier build in public. But I’d also like to mention people who are building software outside of the community that inspires me. They’re not full time indies but when I see people like Omar Rizwan, Neil Sardesai, and Gavin Nelson all pushing boundaries that break down the dichotomy between developer, designer, and creative, it pushes me to do my work even better, and I’m grateful that all these people share their work so freely.
Newly Released and Updated Indie Apps
Here are some newly released and newly updated apps from this past week! If you would like to possibly see your app in this list, please submit your app to the look at me form 👀
Thank you to everybody who made it to this footer! You either spent the time to read or took the effort to scroll 😊
Make sure to visit https://indiedevmonday.com/subscribe to get an email of future issues!
And go to Twitter and give @IndieDevMonday a follow… or multiple follows if you manage more than one Twitter account 😜