<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Zachary Shakked]]></title><description><![CDATA[I write about building successful app businesses and my other occasional thoughts. Cofounder @ Chargeback, Founder @ Hashtag Expert. ]]></description><link>https://blog.zach.so</link><image><url>https://substackcdn.com/image/fetch/$s_!HriC!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6a66e265-e82d-432c-a836-d3071774fdd6_400x400.png</url><title>Zachary Shakked</title><link>https://blog.zach.so</link></image><generator>Substack</generator><lastBuildDate>Sun, 12 Apr 2026 13:20:47 GMT</lastBuildDate><atom:link href="https://blog.zach.so/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Zachary Shakked]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[zacharyshakked@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[zacharyshakked@substack.com]]></itunes:email><itunes:name><![CDATA[Zachary Shakked]]></itunes:name></itunes:owner><itunes:author><![CDATA[Zachary Shakked]]></itunes:author><googleplay:owner><![CDATA[zacharyshakked@substack.com]]></googleplay:owner><googleplay:email><![CDATA[zacharyshakked@substack.com]]></googleplay:email><googleplay:author><![CDATA[Zachary Shakked]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Tip #5 - Build Robust QA Testing as You Scale]]></title><description><![CDATA[The second you have more than a few thousand users, hiring a tester is a good idea]]></description><link>https://blog.zach.so/p/tip-5-build-robust-qa-testing-as</link><guid isPermaLink="false">https://blog.zach.so/p/tip-5-build-robust-qa-testing-as</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Fri, 01 Apr 2022 12:06:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!c3jB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve shipped sooo many bugs to the App Store by accident over my career, it&#8217;s actually embarrassing. One of the worst bugs was when I accidentally made the app free for all users because I put &#8220;return true&#8221; for the subscription status function during testing and forgot to remove it. In the early days of making an app, most developers do their own testing and a few ambitious devs might even use automated testing.</p><p>The second your app has more than a few thousand users and is generating 100&#8217;s of dollars a day, any critical bug could lead to a big headache and lost revenue. At this point, you should hire a QA tester on Upwork or somewhere else who can go through your app and do regression testing before each release.</p><p>First, a good QA tester will insist on building test cases for your app which are basically a list of all the things to test. Hashtag Expert has over 350 of these and here are some examples:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c3jB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c3jB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png 424w, https://substackcdn.com/image/fetch/$s_!c3jB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png 848w, https://substackcdn.com/image/fetch/$s_!c3jB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png 1272w, https://substackcdn.com/image/fetch/$s_!c3jB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c3jB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png" width="744" height="481" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:481,&quot;width&quot;:744,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:78010,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c3jB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png 424w, https://substackcdn.com/image/fetch/$s_!c3jB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png 848w, https://substackcdn.com/image/fetch/$s_!c3jB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png 1272w, https://substackcdn.com/image/fetch/$s_!c3jB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3664f0f0-b861-48db-a12c-a51e2096b350_744x481.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Each test case also has preconditions, steps, and expected results.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!feDI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F90b589f9-a55e-4ac0-834f-c83672d458c9_483x669.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!feDI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F90b589f9-a55e-4ac0-834f-c83672d458c9_483x669.png 424w, https://substackcdn.com/image/fetch/$s_!feDI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F90b589f9-a55e-4ac0-834f-c83672d458c9_483x669.png 848w, https://substackcdn.com/image/fetch/$s_!feDI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F90b589f9-a55e-4ac0-834f-c83672d458c9_483x669.png 1272w, https://substackcdn.com/image/fetch/$s_!feDI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F90b589f9-a55e-4ac0-834f-c83672d458c9_483x669.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!feDI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F90b589f9-a55e-4ac0-834f-c83672d458c9_483x669.png" width="483" height="669" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/90b589f9-a55e-4ac0-834f-c83672d458c9_483x669.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:669,&quot;width&quot;:483,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80303,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!feDI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F90b589f9-a55e-4ac0-834f-c83672d458c9_483x669.png 424w, https://substackcdn.com/image/fetch/$s_!feDI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F90b589f9-a55e-4ac0-834f-c83672d458c9_483x669.png 848w, https://substackcdn.com/image/fetch/$s_!feDI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F90b589f9-a55e-4ac0-834f-c83672d458c9_483x669.png 1272w, https://substackcdn.com/image/fetch/$s_!feDI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F90b589f9-a55e-4ac0-834f-c83672d458c9_483x669.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You don&#8217;t need to be this in-depth, but it&#8217;s a good idea, even if you do it yourself, to make a list of all the scenarios and test cases you want to have of your app. These should center around in-app purchases, account creation, and core user flows.</p><p>The end result is that when you quickly build a new feature and want to ship it to the App Store, you have peace of mind that none of your core functionality is broken and no major bugs are present in the App. By following this framework, we were able to ship Hashtag Expert updates for years without any mission-critical bugs.</p><p>Previously, I used to have anxiety any time a new release was going out in case there were hidden bugs that needed fixing. Now, my stress levels are much lower because of our amazing QA tester and our hundreds of test cases.</p>]]></content:encoded></item><item><title><![CDATA[Tip #4 - Making Killer App Store Screenshots]]></title><description><![CDATA[How to make App Store screenshots that sell!]]></description><link>https://blog.zach.so/p/tip-4-making-killer-app-store-screenshots</link><guid isPermaLink="false">https://blog.zach.so/p/tip-4-making-killer-app-store-screenshots</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Tue, 22 Mar 2022 21:39:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HriC!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6a66e265-e82d-432c-a836-d3071774fdd6_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>App Store screenshots are one of the most important pieces of your app marketing efforts. Screenshots are your way of convincing users why they should download your app.</p><p>Read that sentence once more time:</p><p><strong>Convince users why they should download your app</strong></p><p>Oftentimes, the temptation for App Store screenshots is to showcase every little feature your app has to offer. You, the developer, of course, understand all the ins and outs of your app, all the niche use cases, and all the little easter eggs and want to showcase those in a methodical list for potential downloaders. </p><p>However, this is the wrong approach for screenshots. When considering what you want to put in your screenshots, the first question you need to ask yourself is <strong>why do people want this app? </strong>A good place to start is examing the keywords where your app appears highest and which you believe are driving the majority of downloads. Users enter a keyword that describes what they are looking for and then browse through apps until they find one that appears to be a good fit.</p><p>So you need to put yourself in the shoes of someone who is searching and think <strong>what could I put in my screenshots that would convince a person who searched X that this is the right app for them?</strong></p><p>You basically need to think of the story for why your app is useful. Here are some sample stories:</p><ul><li><p>Photo Editor App - &#8220;Make professional photos in seconds&#8221;</p></li><li><p>Flight Tracker - &#8220;Never miss an update or delay on your flight&#8221;</p></li><li><p>Productivity App - &#8220;Write beautiful notes that sync everywhere&#8221;</p></li><li><p>Hashtag App - &#8220;Grow your followers with trending hashtags&#8221;</p></li></ul><p>You should be conveying a benefit and a story as to why your product will solve whatever problem led the user to initiate the search in the first place. Then, from there, you can start designing your screenshots. Ask yourself &#8220;What screenshots could I show in what order to perfectly explain this story to people who are searching?&#8221;</p><p>Next, here are some other tips to keep in mind:</p><ol><li><p><strong>Users see your first three screenshots in search results</strong> - these are the most important and should be thought of as one set of screenshots</p></li><li><p><strong>Search results show screenshots pretty small</strong> - so use high contrast and large fonts to convey your message</p></li><li><p><strong>Less text is better</strong> - you should have 4-5 words MAX per screenshot because any more than that becomes hard to read at a glance, and a glance is all you&#8217;re getting in your first three screenshots</p></li><li><p><strong>Keep dark mode in mind</strong> - some users are on dark mode and others aren&#8217;t, ensure your screenshots stick out and have high contrast for both modes</p></li></ol><p>And here are some other growth-hacky ideas:</p><ol><li><p><strong>Use users&#8217; own words in screenshots</strong> - oftentimes, users of your product are better at conveying in layman terms the benefits they receive from your app - check reviews and surveys for how people talk about your app and use those descriptions in your screenshot copy or as your high-level story</p></li><li><p><strong>Use the App Store&#8217;s A/B testing idea to test screenshots</strong> -<strong> </strong>it&#8217;s fantastic that Apple introduced this, utilize it. Remember testing big things is always better - make three <em><strong>radically</strong></em> different variants of your screenshots to answer your own questions. Don&#8217;t just change a font, make the different variants completely and totally different. </p></li></ol><p>Hope this was helpful!</p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Tip #3 – Don't Make Your App Paid Up-Front]]></title><description><![CDATA[A big mistake lots of developers make is charging a fixed, one-time fee for your app upfront.]]></description><link>https://blog.zach.so/p/tip-3-dont-make-your-app-paid-up</link><guid isPermaLink="false">https://blog.zach.so/p/tip-3-dont-make-your-app-paid-up</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Sat, 19 Mar 2022 15:19:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HriC!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6a66e265-e82d-432c-a836-d3071774fdd6_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A big mistake lots of developers make is charging a fixed, one-time fee for your app upfront. This is a completely dead idea that almost never makes sense anymore. The reason is there are two scenarios for an app you might launch in terms of monetization:</p><ol><li><p>Your product <em>is not</em> something people are willing to pay for</p></li><li><p>Your product <em>is</em> something people are willing to pay for</p></li></ol><p>If you have launched as a paid upfront app and you generate sales, that means you have validated point #1 &#8212; people are willing to pay. Great, this is a good place to be. That likely means you could launch with a subscription and successfully convert users. Subscriptions will net you significantly more money over the long run because of recurring purchases/monthly recurring revenue. So by doing paid up-front, you&#8217;re leaving money on the table.</p><p>If point #2 is the case and you aren&#8217;t able to generate sales from a paid up-front app, then you are missing out on all the downloads and user feedback you&#8217;d get from the feedback of free users. If you can&#8217;t convince people to pay, your #1 goal is figuring out why and iterating on the product to convince people that your app is worth paying for. User feedback is critical to this.</p><p>A much better idea if you don&#8217;t want to offer a free tier of your product is to paywall the majority of the app. If it&#8217;s a workout app, allow 1 or 2 free workouts for users and then require a subscription to continue. You can always introduce a lifetime subscription in the app but rather than trying to convince them to purchase just via your App Store listing, you can welcome them into your app and show them all the benefits of paying with a more in-depth paywall, videos, and text. </p><p></p>]]></content:encoded></item><item><title><![CDATA[Tip #2 – Don't Offer iPad / Unnecessary Devices / Accessibility / Dark Mode in v1]]></title><description><![CDATA[A big mistake.]]></description><link>https://blog.zach.so/p/tip-2-dont-offer-ipad-unnecessary</link><guid isPermaLink="false">https://blog.zach.so/p/tip-2-dont-offer-ipad-unnecessary</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Fri, 11 Mar 2022 16:13:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wpug!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wpug!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wpug!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png 424w, https://substackcdn.com/image/fetch/$s_!wpug!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png 848w, https://substackcdn.com/image/fetch/$s_!wpug!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png 1272w, https://substackcdn.com/image/fetch/$s_!wpug!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wpug!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png" width="1456" height="1236" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/a2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1236,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:15185053,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wpug!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png 424w, https://substackcdn.com/image/fetch/$s_!wpug!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png 848w, https://substackcdn.com/image/fetch/$s_!wpug!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png 1272w, https://substackcdn.com/image/fetch/$s_!wpug!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f51797-1ddb-4f74-957a-f7f892239479_4480x3802.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The more surface area of development you need to cover, the less quality and time you can invest in the core user experience of an app. The goal is always to distill an idea down to the most basic, simplified version and launch that so you can start collecting feedback. </p><p>The more devices you need to support, the slower your engineering and update cycles will be. In the beginning, speed is incredibly important. If you launch the v1 version of your app with Mac, Apple Watch, iPad, and Apple TV support, you&#8217;ll be forced to move a lot slower every time you&#8217;d like to release an update. </p><p>Perhaps your idea really needs a watch app to be effective, that is a different story because then the core implementation of your product requires a watch app. On the other hand, if a watch app is a &#8220;nice to have&#8221; but not something essential, it&#8217;d be a mistake to launch with that. </p><p>If speed is your priority, you want to be able to do as little work as possible to update your app. The goal is to figure out exactly the minimum you could do that would create a successful user experience in your product. Do that and nothing more.</p><p>All of the following are things I&#8217;d hold off on until much further down the road:</p><ul><li><p>iPad support - this is especially annoying because you can&#8217;t unsupport iPad ever so you&#8217;ll be stuck updating iPad code for forever</p></li><li><p>Dark Mode / Light Mode - pick one</p></li><li><p>Watch app - low revenue opportunity</p></li><li><p>TV app - just no</p></li><li><p>Mac app</p></li><li><p>Accessibility</p></li><li><p>Localization</p></li></ul><p>Again, the caveat here is if the entire premise of your app is a &#8220;beautiful reading experience&#8221; for example, then yes accessibility and dark mode support might be a smart idea. But nice-to-have&#8217;s should always wait.</p>]]></content:encoded></item><item><title><![CDATA[Tip #1 – Don't Over Engineer]]></title><description><![CDATA[Over-engineering is a dangerous mistake when launching your product]]></description><link>https://blog.zach.so/p/tip-1-dont-over-engineer</link><guid isPermaLink="false">https://blog.zach.so/p/tip-1-dont-over-engineer</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Fri, 04 Mar 2022 15:04:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HriC!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6a66e265-e82d-432c-a836-d3071774fdd6_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;re a certain type of engineer, there&#8217;s a temptation to over engineer your product when you first launch it. This is often a big mistake as the most important part of building a product or app in the beginning is launching it and getting feedback. Perfect engineering will slow you down and in most cases won&#8217;t make a difference on the outcome of your product for some time to come.</p><p>I&#8217;ve fallen into this trap many times. I&#8217;m a sucker for engineering design patterns, the kinds of things you need when your product has 10&#8217;s of thousands of users to sustain a serious user base. When building new apps, my first instinct is to apply perfect engineering principles to the code base&#8212;properly abstract code, write test cases, run a ridiculous QA cycle, subclass, write protocols, design a perfect networking layer, etc, etc. </p><p>What ends up happening is you spend a lot of time coding, when what you should be doing is spending time getting feedback on the product so you can iterate and improve on it. </p><p>Instead, focus on building a high-quality app experience that demonstrates the functionality you believe is critical to a successful user experience. More than likely, the first version of your app won&#8217;t be the knock-out viral product you hope to be. That comes after weeks and months of iteration. Backend models, UI, design, user flows, and onboarding will all change. So write crappy code and get it launched sooner. Slowly improve over time as your user base demands it.</p>]]></content:encoded></item><item><title><![CDATA[The Best Day of My Life]]></title><description><![CDATA[How a life-changing day triggered an unexpected revelation about happiness]]></description><link>https://blog.zach.so/p/the-best-day-of-my-life</link><guid isPermaLink="false">https://blog.zach.so/p/the-best-day-of-my-life</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Thu, 21 Oct 2021 20:17:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Vwyq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One week ago, I had the best day of my life. Here&#8217;s the story behind it.</p><p>When I was 3 years old, my parents fed me ice cream that contained nuts and I immediately had an allergic reaction that had to be treated with Benadryl. Desperate to understand that episode more and also knowing our family history of food allergies, they took me to an allergist. After some tests, the doctor concluded I was allergic to all nuts and prescribed me an epi-pen. That epi-pen became an accessory I carried with me <em>everywhere</em> for decades.&nbsp;</p><p>Terrified, my parents now had a new thing to worry about on top of all of the other normal parental concerns. How do you teach a young child that certain foods can kill them? How do you convey to teachers, camp counselors, and babysitters the severity of the condition? Food allergies in the early 2000&#8217;s, when I was growing up, were less common and not treated with the same level of care as they are today. The fact that I&#8217;m still here relatively scratch-free is a testament to the meticulous work they did.&nbsp;</p><p>As I became a teenager, the responsibility of caring for my nut allergies shifted from my parents to me. Anytime I&#8217;d go out to eat, I&#8217;d have to confirm menu items didn&#8217;t have nuts. At friends&#8217; houses, I&#8217;d likewise have to clarify that home-cooked dishes didn&#8217;t contain any. Worst of all were all the scenarios where nobody really knew what was in a cake bought from the store and I&#8217;d have to quietly choose not to participate repeating to myself &#8220;better safe than sorry.&#8221; I missed out on tons of experiences. The joys of the flavors of nuts, the spontaneity of trying out foods and not caring whats in them &#8230; I could go on.&nbsp;</p><p>However, when someone would say to me &#8220;Oh I feel so bad for you that you can&#8217;t eat peanut butter,&#8221; I&#8217;d gently shrug and reply &#8220;I don&#8217;t really know what I&#8217;m missing so it&#8217;s really not so bad!&#8221; And that was the truth&#8212;<em>I didn&#8217;t know what I was missing</em>. This was just the way I lived my life&#8211;wallet, keys, epi-pen. For the most part, the allergy didn&#8217;t affect me or my happiness.&nbsp;</p><p>Then, one winter my mother heard of a specialized allergy center for kids called the Jaffe Food Allergy Institute at Mount Sinai Hospital. She got me an appointment there and they welcomed me with open arms despite the fact that I was 21 years old and very much not a child. There, after conducting some skin tests and blood work, they believed it was possible I could tolerate hazelnuts and almonds. They were doing cutting edge research that identified a link between seasonal allergies and food allergies where protein structures are similar and that in some cases, a seasonal allergy could lead to a false positive with a food allergy. They decided they wanted me to do a food challenge where I would come to their offices armed with epi pens and benadryl galore and try small, controlled amounts of hazelnuts and almonds.&nbsp;</p><p>After a few months of waiting, I nervously went and tried the foods. Nutella was our vehicle for the hazelnuts test which I immediately fell in love with. After waiting a few minutes and seeing no reaction, they suggested I try even more. No reaction. Next, we did almond butter and a similar experience followed. I instantly loved it and had no reaction. My mom felt pure joy seeing me enjoy foods we had previously thought were deadly as my dad shed a tear. It was a beautiful day.</p><p>Over the next year, I made up for lost time and ate loads of Nutella as almonds became a daily staple in my life. Suddenly those conversations at restaurants became more complicated - &#8220;Are there nuts in this? But Hazelnuts and almonds are ok &#8230;&#8221; I was happy to navigate those awkward situations because I could eat those delicious foods!</p><p>Then after some time, I went back to the institute for some follow up testing. They now believed I could tolerate peanuts. Again, I did a test in their office, yet I had a reaction to the peanuts. First of all, I hated them&#8211;peanuts have such a distinct smell that my entire childhood symbolized &#8220;DEATH - STAY AWAY.&#8221; Overcoming that PTSD is something I&#8217;m still working on. The reaction I had was similar to a seasonal allergy attack&#8212;sneezing, runny nose, and teary eyes. However, my throat did not seize up and I didn&#8217;t need an epi-pen so the Doctor concluded I passed the test and could safely eat peanuts. Another nut knocked off the list. I was 22.&nbsp;</p><p>I didn&#8217;t go back to the allergist for three more years. Based on our last meeting, she was not seeing data that would justify I had outgrown my allergies to the remaining nuts&#8212;cashews, walnuts, pecans, pistachios, and macadamia nuts. I had become bearish on my chances to make anymore progress, but my mom insisted on going back in for a checkup. So I did. The nurses conducted a number of skin tests on my arm for all of the remaining nuts. No reactions at all. The doctor, examining my results, concluded it was time to do the final food challenge. So we set a date to try cashews, walnuts, and macadamia nuts in the office. (Cashews and Pistachios and likewise Walnuts and Pecans are sister nuts meaning tolerance of indicates tolerance of the other in most cases).&nbsp;</p><p>At a crisp 25 and a half years old, I stepped foot once again into the children&#8217;s allergy institute. How ridiculous, I thought. One by one, I tried the nuts in controlled amounts. Cashews, no reaction, delicious. Macadamia nuts, no reaction and quite the creamy flavor. Finally, walnut butter with graham crackers, no reaction and yummy. After two hours of monitoring, the doctor came in with a certificate and an official piece of hospital paper indicating what had just happened. &#8220;You officially have no more food allergies, Zach!&#8221; she said as she handed me my cheesy, kid-friendly certificate saying so. The impact of those words took a few moments to sink in.&nbsp;</p><p>As we started cleaning our area and leaving the hospital for the last time, I felt my eyes start to well up. I kept rereading the certificate over and over as the words started to land. No more food allergies. No more epi-pen&#8230; We stepped into the elevator and began the descent. I could barely hold back tears and as luck would have it the elevator stopped on every floor between 11 and Lobby. Finally, we reached the lobby and exited to the street. Yep&#8230; here come the waterworks. I started crying like a baby. My mom embraced me and I cried and cried. I couldn&#8217;t believe what had just transpired. It was as if a 200lb weight had been lifted off of my neck. Decades &#8230; <em>decades</em> of dealing with this condition and it was all over. In my head, I had all the experiences of food allergies flashing through my mind. The lengths to which my parents went to accommodate and make me feel safe. The peanut-free table I sat at in elementary school... The hospital visits from adverse reactions&#8230; the birthday cakes I missed out on at parties &#8230; the other food experiences I had to avoid. All in one moment, it hit me&#8212;it was all over.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vwyq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vwyq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vwyq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vwyq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vwyq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vwyq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg" width="520" height="405.35714285714283" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/f873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1135,&quot;width&quot;:1456,&quot;resizeWidth&quot;:520,&quot;bytes&quot;:2359432,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Vwyq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Vwyq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Vwyq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Vwyq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff873c567-9d49-42da-9021-209d7608b54f_2911x2269.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A week later, I&#8217;m still unpacking what had happened on that beautiful Thursday. I&#8217;ve started incorporating these previously forbidden foods into my diet every day. Snacking on cashews, pistachio ice cream, pecan biscotti, cookie dough ice cream with walnuts, macadamia nuts for fun because why not. But something eery has been surprising me about this new chapter of my life&#8212;how normal it now feels. I&#8217;ve gotten used to this new reality and the novelty has worn off. As I eat these nuts, I am still feeling immense gratitude for my new reality, but I feel it diminishing. I feel myself getting used to it.&nbsp;</p><p>To summarize, one of my biggest dreams came true. A week later and life feels almost the same as before. What does that mean? It reminds me of those cliche stories you hear from rich people who say &#8220;money won&#8217;t make you happy.&#8221; Think you&#8217;ll be happy when you sell your company for $100m? Or when you get that house you&#8217;ve always wanted? Or that car you&#8217;ve dreamed of? It never does happen because all we have is the present. No future accomplishment or dream or success will make you happy. Not even the absolutely life-changing day I had on Thursday will create lasting happiness because we always acclimate to circumstances. There&#8217;s an initial high when we live in the new circumstances while our mindset is still calibrated to our previous circumstances. Happiness comes from within and this experience has reminded me of that.&nbsp;</p><p>I feel silly writing something that is perhaps one of the most trite platitudes you might hear &#8220;money (or&nbsp; most circumstances/wealth or experience of any kind) won&#8217;t make you happy&#8221; but hopefully my personal anecdote can serve as a reminder that <em>seriously</em>, <em>happiness comes from within and not from external things or circumstances</em>.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uczF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7a71cc0d-b097-490b-8c0d-d4ba54682bdd_480x640.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uczF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7a71cc0d-b097-490b-8c0d-d4ba54682bdd_480x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uczF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7a71cc0d-b097-490b-8c0d-d4ba54682bdd_480x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uczF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7a71cc0d-b097-490b-8c0d-d4ba54682bdd_480x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uczF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7a71cc0d-b097-490b-8c0d-d4ba54682bdd_480x640.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uczF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7a71cc0d-b097-490b-8c0d-d4ba54682bdd_480x640.jpeg" width="480" height="640" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/7a71cc0d-b097-490b-8c0d-d4ba54682bdd_480x640.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:53943,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uczF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7a71cc0d-b097-490b-8c0d-d4ba54682bdd_480x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uczF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7a71cc0d-b097-490b-8c0d-d4ba54682bdd_480x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uczF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7a71cc0d-b097-490b-8c0d-d4ba54682bdd_480x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uczF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F7a71cc0d-b097-490b-8c0d-d4ba54682bdd_480x640.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[A New Direction for Hashtag Expert]]></title><description><![CDATA[Why we're not building new apps, and doubling-down on one]]></description><link>https://blog.zach.so/p/a-new-direction-for-hashtag-expert</link><guid isPermaLink="false">https://blog.zach.so/p/a-new-direction-for-hashtag-expert</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Tue, 06 Jul 2021 07:29:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_BHk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_BHk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_BHk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_BHk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_BHk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_BHk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_BHk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023495,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_BHk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_BHk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_BHk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_BHk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F11dadfcd-e2c4-46db-a0ec-65887c73c745_5977x3985.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><em>Hi, I&#8217;m Zach &#8212; I&#8217;ve built my app business to $5m in annual recurring revenue. Building a successful app business is really hard. That&#8217;s why I write a newsletter about the things I&#8217;ve learned along the way. My goal is to help you grow your business and profit. If you want to learn more about the app business, I highly recommend subscribing.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>Over the past few weeks, I&#8217;ve had some pretty deep revelations about Hashtag Expert. We recently hit $5m annual recurring revenue, but we have a lot of headwinds. The way we were able to get this point was by spending a lot of money on ads. Our biggest problem, however is churn. </p><p>Take a look at this monthly recurring revenue movement chart from RevenueCat for the past few days:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jSBM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F458690f4-962d-400b-8a18-73a36fa965f2_1820x1422.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jSBM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F458690f4-962d-400b-8a18-73a36fa965f2_1820x1422.png 424w, https://substackcdn.com/image/fetch/$s_!jSBM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F458690f4-962d-400b-8a18-73a36fa965f2_1820x1422.png 848w, https://substackcdn.com/image/fetch/$s_!jSBM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F458690f4-962d-400b-8a18-73a36fa965f2_1820x1422.png 1272w, https://substackcdn.com/image/fetch/$s_!jSBM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F458690f4-962d-400b-8a18-73a36fa965f2_1820x1422.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jSBM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F458690f4-962d-400b-8a18-73a36fa965f2_1820x1422.png" width="1456" height="1138" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/458690f4-962d-400b-8a18-73a36fa965f2_1820x1422.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1138,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:727290,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jSBM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F458690f4-962d-400b-8a18-73a36fa965f2_1820x1422.png 424w, https://substackcdn.com/image/fetch/$s_!jSBM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F458690f4-962d-400b-8a18-73a36fa965f2_1820x1422.png 848w, https://substackcdn.com/image/fetch/$s_!jSBM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F458690f4-962d-400b-8a18-73a36fa965f2_1820x1422.png 1272w, https://substackcdn.com/image/fetch/$s_!jSBM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F458690f4-962d-400b-8a18-73a36fa965f2_1820x1422.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>New subscribers contribute to MRR growing whereas churned subscribers detract from it. You can see that every day we are adding ~$2000 of MRR, but because of churn, we lose somewhere around ~$1500. So our MRR grows by only a little bit when you account for this difference. </p><p>Zooming out a bit further, our churn is relatively high. Though subscriptions apps do have high churn, it&#8217;s difficult to build a massive business with the churn numbers that we are seeing.</p><p>To build a huge business, you need extremely low churn. The absolute best subscription businesses have net negative revenue churn which is a fancy way of saying that you make more and more money from existing customers over time such that it makes up for customers who leave from the same cohort. This is more common in enterprise SaaS companies of which we are definitely not, but I do aspire to be like this. Enterprise SaaS products are significantly more sticky than iOS apps. For example, we can&#8217;t just stop using Zendesk overnight. It&#8217;d be a months-long process to fully migrate our customer support infrastructure to a competitor. As our product gets more popular, we pay more for support. Thus, Zendesk makes more and more money from us over time.</p><p>Hashtag Expert in its current form is a tool that small businesses use to increase their reach on social media through hashtags. After diving deep into our metrics, I kept coming back to this question&#8212;why is our churn so damn high? If we could reduce that by any double digit percentage, we&#8217;d start growing like a rocket ship. </p><p>In the past month, I also took back over running our performance marketing. This meant I was knee deep in building new creative, looking at click through rates, choosing audience targeting, and managing all the related shabazz. I started looking at our top performing creatives - you can see them <a href="https://www.facebook.com/ads/library/?id=950451869107849">here</a>. From watching our ads, these are the messages we are using to sell our product to future users:</p><ul><li><p>Hashtag Expert is a tool that can help you blow up your social media</p></li><li><p>Pros are using Hashtag Expert to manage their hashtags</p></li><li><p>Hashtags can be a hack for growing your social media</p></li><li><p>Hashtags can blow up your social media reach</p></li><li><p>etc.</p></li></ul><p>I started thinking about that. As the creator of a hashtag app, I know that hashtags alone cannot deliver on this promise. Say we had an algorithm for generating hashtags that took in every little piece of data about your business and then synthesized the universe&#8217;s absolute best hashtags possible. If that were true, our app would still not be delivering on that vision/message we sell in our ads. Why? Because hashtags are just one small piece of the puzzle for growing/managing social media. This is why our churn is high. We&#8217;re selling a vision that we aren&#8217;t / cannot possibly deliver on. Sure, lots of people still find our app really helpful, but to reduce churn, we need to build a product that goes from helpful to irreplaceable. </p><h3><strong>Build More Apps or Fix Churn with Your Existing App</strong></h3><p>So what&#8217;s next? For a while, I thought the way to continue building a subscription app company was by building &#8230; more apps. This is what many big players in the space do. They build apps that charge somewhere between $20-40/year and run crazy effective performance marketing where their CAC is slightly less than the LTV of their customer. Then on year 2 or year 3, they might lose 70-80% of their subscribers, but they made some sort of marginal profit from each of them from the arbitrage/game of running ads. Then, they build more and more apps and keep repeating this strategy, but it&#8217;s a slipper slope. At some point, the chickens come home to roost and the high churn becomes an enormous drag on revenue growth as we are currently experiencing.</p><p>Alternatively, if instead of losing 70-80% of subscribers after year 1, you only lost 10-20%, then your LTV for users skyrockets. With higher LTV, you can afford a higher CAC so you can spend significantly more on advertising. If you are able to get churn very low, then lots of your headwinds for revenue disappear. </p><p>I like to think about it like filling up a bathtub with water. If you added 1 gallon of water to the bathtub every minute, but simultaneously 80% of that gallon went out the drain 1 minute later, it would take you a long time to fill the bathtub. If only 10 or 20% of that water drained out in the same period of time, the bathtub would fill up significantly faster.</p><h3>How Do We Reduce Churn?</h3><p>Now, the question is how do we reduce churn? I think back to that disconnect between what our advertising messaging is selling versus what our app delivers. We need to close the gap. So we&#8217;re going to launch tons of new features and services within Hashtag Expert. Inside the app, there will be a new page that is almost like a mini app home screen. We&#8217;re going to look at common apps that our users are also paying for and start offering them at no additional cost for subscribers. </p><p>Hashtag Expert will be rebranded as a hub of resources, community, and tools to help businesses grow through marketing. Subscriptions will be rebranded as Memberships. </p><p>I got a lot of inspiration from Amazon Prime for this repositioning. Prime subscribers understand that they get access to tons of services/products for their membership. Music, TV shows, better shipping/delivery, discounts at Whole Foods, etc. In a vacuum, is Amazon Music the best music streaming service? Hell no, Spotify is way better. But I bet for a lot of people, it&#8217;s a pretty good reason to keep paying for Prime. The same is probably true for Prime Video. In a vacuum, is Prime Video the best video streaming service? Hell-no, Netflix is way better. But I bet for a lot of people, it&#8217;s a pretty good reason to keep paying for Amazon Prime.</p><p>That&#8217;s my thinking with the Hashtag Expert membership. We&#8217;re just going to cram so much freaking value into the product that it is an absolute no-brainer for small businesses. We&#8217;ll offer features that other apps charge for at no additional cost. And so much more. I don&#8217;t want to fully reveal our roadmap, but I think we&#8217;re on the cusp of something incredible.</p><div><hr></div><p>Whats up! I find sharing updates like these relaxing and easy. Was it helpful? What should I write about next? Tap the button below to shoot me a message/feedback.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://command-services.typeform.com/to/wzyKVz6l#post=update-7-6-21&quot;,&quot;text&quot;:&quot;Say Hi&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://command-services.typeform.com/to/wzyKVz6l#post=update-7-6-21"><span>Say Hi</span></a></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Frustrations of Flat Annual Revenue]]></title><description><![CDATA[Tips for dealing with stagnating revenue &#8212; hint - make some big bets!]]></description><link>https://blog.zach.so/p/frustrations-of-flat-annual-revenue</link><guid isPermaLink="false">https://blog.zach.so/p/frustrations-of-flat-annual-revenue</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Sun, 11 Apr 2021 15:11:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7Or-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7Or-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7Or-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7Or-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7Or-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7Or-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7Or-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg" width="1000" height="667" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/d1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:667,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;silhouette photography of person&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="silhouette photography of person" title="silhouette photography of person" srcset="https://substackcdn.com/image/fetch/$s_!7Or-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!7Or-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!7Or-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!7Or-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1032426-7ff7-4b8a-8ab3-20c4744225a4_1000x667.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Hi, I&#8217;m Zach &#8212; I&#8217;ve built my app business to about $4m in annual recurring revenue. Building a successful app business is really hard. That&#8217;s why I write a newsletter about the things I&#8217;ve learned along the way. My goal is to help you grow your business and profit. If you want to learn more about the app business, I highly recommend subscribing.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>I&#8217;ve been a bit frustrated lately. The reality is if you look at my company&#8217;s revenue over the past year, it hasn&#8217;t grown much. Despite investing a lot into people, app improvements, and growth, revenue hasn&#8217;t taken off. I&#8217;ve been scratching my head trying to figure out why. My conclusions is we need to shoot higher.</p><p>Over the past year, most of the upgrades to Hashtag Expert, our core moneymaker, have been incremental. Optimizing design. Adding more options for customizing how hashtags are generated. Making user experiences more intuitive. Granted, all of those things are <em>incredibly important, </em>but, it&#8217;s difficult to move the needle with them.</p><p>Ideally, while we are polishing the app, we want to in parallel be taking some big shots. I define a big shot as something that fundamentally changes the character of the app. Something that if we get wrong, could negatively impact us seriously. But, if we get it right, has the potential to dramatically improve the business. High-risk, high-reward. I guess that&#8217;s what I&#8217;ve been feeling&#8212;that we&#8217;ve been playing it too safe. What&#8217;s the worst case scenario if you launch a feature that users absolutely hate? You revert. It&#8217;s really not a huge deal. </p><p>We took our first big shot recently which was launching web onboarding and payment for the app. You can see that our Stripe revenue is almost $1000/day (here&#8217;s the <a href="https://www.zach.so/dashboard">dashboard link</a>). That&#8217;s having a significant impact on our Profit<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. This was a big bet and big project. We spent a painstaking month building that flow out and now we&#8217;re seeing dividends. </p><p>We have another big shot in the pipeline which should be launching next week. We&#8217;re letting users create collections of hashtag groups. Before, users could save hashtags groups to their profile, but they often would get overwhelmed by the disorganization. This new system should address that major pain point. Further, it opens up more opportunities down the line. We can make hashtag collections shareable by giving users a unique link that lets anyone see their groups and copy them via the web. Imagine an influencer sharing their 50 hashtag groups for small businesses with a link on their Instagram story. We can even build trending charts that show top hashtag collections by views. </p><p>So now, I&#8217;m starting to ask myself what other big shots could we take? Launching a new app is one&#8212;that&#8217;s where Like Expert comes in. It&#8217;s a work in progress. We launched v1 of it, got a lot of user feedback, and learned a lot in the process. Those learnings are now driving our v2 of the product which is a big evolution. </p><p>Taking a step back, the lack of growth is very frustrating to me. It brings me back to the days of when I had published a bunch of apps and hadn&#8217;t been able to get any traction. It&#8217;s part of the entrepreneur journey, ups and downs constantly. Also, the job fundamentally changes at every stage. Getting from 0 to $1k revenue a day is very difficult. It required a specific skillset. Thinking like a hacker, constant iteration, obsessions with ASO, never-ending analytics. Getting from $1k to $5k was likewise different. Scaling ads, paywall optimization, attribution tracking, better infrastructure required. $5k to $10k also different. $10k to $50k different. $50k to $100k &#8230; different.</p><p>It&#8217;s a never ending journey of reinvention. My days now look completely different than they did every previous year. I don&#8217;t code a lot. I&#8217;m on calls constantly. I&#8217;m thinking about company organization, values, and culture. </p><p>There are some good aspects of stagnation. It forces you to evaluate what you&#8217;re doing and look deeply for areas of improvement. It&#8217;d be weird if I didn&#8217;t change much about how we operated and our business somehow grew to $10 or $50m a year in revenue. <em>Of course things will stagnate here and there</em> and we&#8217;ll have to learn and adjust course&#8212;it&#8217;s part of the process! </p><p>So for all those facing stagnation, trying making some big bets!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>How have you been? I find sharing updates like these relaxing and easy. Was it helpful? What should I write about next? Tap the button below to shoot me a message/feedback.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://command-services.typeform.com/to/wzyKVz6l#post=update-4-11-21&quot;,&quot;text&quot;:&quot;Say Hi&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://command-services.typeform.com/to/wzyKVz6l#post=update-4-11-21"><span>Say Hi</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>I call this metric Profit, but it&#8217;s not net income. It&#8217;s basically total revenue minus ad spend. This is an easy way for me to track how much money I have to play with each month on other expenses.</p></div></div>]]></content:encoded></item><item><title><![CDATA[I'm Back — What I've Been Up To — Updates on Hashtag Expert and Like Expert]]></title><description><![CDATA[Consistency has never been one of my strengths]]></description><link>https://blog.zach.so/p/im-back-what-ive-been-up-to-updates</link><guid isPermaLink="false">https://blog.zach.so/p/im-back-what-ive-been-up-to-updates</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Sun, 04 Apr 2021 22:05:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IBBM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IBBM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IBBM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IBBM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IBBM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IBBM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IBBM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg" width="1000" height="667" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:667,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;woman right fist&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="woman right fist" title="woman right fist" srcset="https://substackcdn.com/image/fetch/$s_!IBBM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IBBM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IBBM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IBBM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F4def771e-5e6d-43d1-bd69-1a7f90d645c2_1000x667.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Hi, I&#8217;m Zach &#8212; I&#8217;ve built my app business to about $4m in annual recurring revenue. Building a successful app business is really hard. That&#8217;s why I write a newsletter about the things I&#8217;ve learned along the way. My goal is to help you grow your business and profit. If you want to learn more about the app business, I highly recommend subscribing.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2>Where I&#8217;ve Been + Trying to Focus &#8212; Too Many Apps at Once is Hard</h2><p>How I run this blog is a metaphor for what I&#8217;m like as a person. I get obsessed with things, do them relentlessly for a period of time, and then my interest falls off a cliff. I go from one extreme to another - all at once and then suddenly not at all. Across everything I do, this happens quite frequently. </p><p>For example, I became obsessed with protein shakes for a few months last summer. Every single day, I made my protein shake. Banana, 2 scoops of protein, almond butter, and almond milk. Loved them. For maybe 3 months, I had one every single day. Now, I haven&#8217;t had one in basically a year. </p><p>Likewise with this blog, I started it, wrote almost every week for a few months, and now I haven&#8217;t published anything since January. Well, the hiatus is up. That is the thing about writing - it&#8217;s something I always return to. </p><p>So, what have I been up to? I started off the year thinking that the best way to run an app company was to build tons of apps. Internally, we have excellent processes for building, designing, and marketing apps. My thought process was why don&#8217;t we just keep building more and more? I dubbed this the <a href="https://blog.zach.so/p/the-testflight-app-strategy">TestFlight app strategy</a>. In a nutshell, my company would be operating on two parallel paths. One, take each of our apps and update them frequently with incremental improvements. Two, build proof of concept TestFlight apps to try out new ideas. If the TestFlight apps get traction, actually spend the time to properly build them out.</p><p>This strategy became difficult to manage. Basically during February and March, I was splitting my time between Hashtag Expert, Caption Expert, and our newest TestFlight app Like Expert. The context switching was driving me crazy. Each app had its own backlog of features, customer support requests, marketing channels, analytics, etc. It felt like we were pushing forward on all fronts, but it was very difficult for to focus deeply on any one of them. </p><p>So in late March, we made the executive decision to stop investing time in Caption Expert. We gave it one final update, added a subscription, and said if it starts making solid money, we&#8217;ll give it more attention. Otherwise, for now we&#8217;re not worrying about it. Then, I gave basic ownership of Hashtag Expert to our product manager. With that, I was no longer personally in charge of the backlog for Hashtag Expert. I&#8217;m still available to help when needed - I&#8217;m present on the calls, giving feedback on designs, and helping oversee things, but the bulk of work is handled by somebody else. <em>That</em> freed me up to fully focus my time and energy on Like Expert. </p><p>Still, I do end up thinking about Hashtag Expert a lot. It requires significant restraint to focus on a new product that might make us a lot of money tomorrow, but is currently generating zero dollars. So in the back of my head, there is some short-term concern that I&#8217;m not worrying enough about the revenue-driver of the company. In many ways, it feels like running two companies at once. Like Expert and Hashtag Expert are<em> so</em> different. Luckily, our team has proactive, brilliant, and dependable people so I know Hashtag Expert is in excellent hands while I&#8217;m not thinking about it.</p><div><hr></div><h2>The Vision for Like Expert</h2><p>Like Expert! This app is an idea I&#8217;m absolutely obsessed with. This is the aspirational future we&#8217;re trying to enable:</p><p><em>You&#8217;re an indy app developer. You&#8217;re making $4k a month from subscriptions on your app. You want to redesign your app store screenshots. You create 50 new screenshots and pipe them through Like Expert getting 100 votes on each screenshot costing you $100 ($0.02 a vote). From the 50 screenshots, you find 3 clear winners. You put those screenshots first in your new App Store listing and suddenly see your organic downloads jump by 30%. You&#8217;re now making $7k a month</em>. </p><p>Like Expert has the potential to be an incredibly powerful tool and I&#8217;m so excited to try to make this vision a reality. </p><p>So where are we at with it? Right now, we&#8217;re changing a lot of the underlying logic. It started with only one type of experiment that users could create - a this or that experiment. There are two images - tap the one you like more. This is problematic mainly because how do you test more than 2 images at once? You&#8217;d have to make a March Madness style bracket if you wanted to test anything more than 2 images.</p><p>Now, we&#8217;re changing it so instead of voting on image A or image B, users will rate every picture on a scale of 1 to 5. This way, if we have users vote on 100 images, each image will have an average rating and that will be used to determine a winner. </p><p>Another big problem we&#8217;re having&#8212;it is hard to get people to vote consistently. That is why we&#8217;re looking to start paying users to vote via a revenue share model. A business pays $100 to make an experiment, some percentage of that gets distributed to users who vote and we take the remaining percent. Basically, users will be able to cash out coins. There&#8217;s a lot of problems and bad behavior that this kind of model could invite, but I&#8217;m confident we can build enough safeguards to prevent users from gaming the system.</p><p>Overall, a ton of really exciting stuff is happening on that app.</p><div><hr></div><h2>Web Signup in Hashtag Expert</h2><p>With Hashtag Expert, one super cool thing we launched was the web signup and payment flow. So if you go to this link: <a href="https://app.hashtag.expert/">https://app.hashtag.expert/</a> - you can sign up for Hashtag Expert and pay. Important URL parameters added to that link will be saved in an attribution dictionary. Once signup is completed, a unique login code is generated for you. Simply login with that code in the iOS app and your subscription will be linked. </p><p>The benefits of this approach are:</p><ul><li><p>We get 97% of revenue because we&#8217;re using Stripe and not IAPs</p></li><li><p>We get full attribution tracking (for free) and don&#8217;t need SKAdNetwork or anything</p></li><li><p>We can refund users however we want</p></li><li><p>Higher trial conversion rates (41% on IAPs, 58% on Stripe) </p></li><li><p>Presumed higher retention rate on renewals</p></li></ul><p>The trial conversion rates are actually 83%, but 25-30% of cards get declined. This is a new issue that is frustrating that we need to figure out. There are also some complications, like figuring out VAT compliance which we&#8217;re working on. We&#8217;re in the process of trying to scale advertising that goes straight to the website. This whole thing took a while to build, but now that it&#8217;s live, I&#8217;m <em>so </em>happy. I just don&#8217;t even care about the SKAdNetwork / ATT changes anymore - this solves it for us. </p><p>If you have the resources, I highly recommend building out a web signup flow for your app.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>How have you been? I find sharing updates like these relaxing and easy. Was it helpful? Tap a button to vote and let me know :)</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://command-services.typeform.com/to/wzyKVz6l#post=update-4-4-21&quot;,&quot;text&quot;:&quot;Loved the Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://command-services.typeform.com/to/wzyKVz6l#post=update-4-4-21"><span>Loved the Post</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://command-services.typeform.com/to/wzyKVz6l#post=update-4-4-21&quot;,&quot;text&quot;:&quot;Liked the Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://command-services.typeform.com/to/wzyKVz6l#post=update-4-4-21"><span>Liked the Post</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://command-services.typeform.com/to/wzyKVz6l#post=update-4-4-21&quot;,&quot;text&quot;:&quot;Disliked the Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://command-services.typeform.com/to/wzyKVz6l#post=update-4-4-21"><span>Disliked the Post</span></a></p>]]></content:encoded></item><item><title><![CDATA[All In or Diversify ]]></title><description><![CDATA[How I Think About Investing in My Apps]]></description><link>https://blog.zach.so/p/all-in-or-diversify</link><guid isPermaLink="false">https://blog.zach.so/p/all-in-or-diversify</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Sun, 31 Jan 2021 18:01:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z_6i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z_6i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z_6i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Z_6i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Z_6i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Z_6i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z_6i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg" width="1000" height="667" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/ada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:667,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;100 US dollar banknote&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="100 US dollar banknote" title="100 US dollar banknote" srcset="https://substackcdn.com/image/fetch/$s_!Z_6i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Z_6i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Z_6i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Z_6i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fada113ac-dff4-4ad5-aca6-2397a6492715_1000x667.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Hi, I&#8217;m Zach &#8212; I&#8217;ve built my app business to about $4m in annual recurring revenue. Building a successful app business is really hard. That&#8217;s why I write a weekly newsletter about the things I&#8217;ve learned along the way. My goal is to help you grow your business and profit. If you want to learn more about the app business, I highly recommend subscribing.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>Something I struggle with is where to invest company resources. Currently, my company is working on 3 products. We have Hashtag Expert which is still by far the biggest revenue driver of the entire company. Last month, we spent $120k or so on ads for Hashtag Expert. This lead to $258k in revenue. That profit margin of $138k is what&#8217;s funding the rest of the company.&nbsp;</p><p>Currently, we&#8217;re investing in improving Hashtag Expert with bi-weekly sprints. We&#8217;re constantly going through survey data, customer support tickets, and overall user-feedback. Insights from those sources are determining our product roadmap. So Hashtag Expert is getting better week over week. We&#8217;re also building out a web-paywall flow so users can sign up and pay for the app on our website. This is in part because of our concerns over the ATT changes and also so we can own the subscription management aspect of the app. We&#8217;re investing in content-marketing and have an SEO writer composing 2+ articles per month. We&#8217;re going hard on social media, making regular posts every week centered around user-education. We&#8217;re starting to try some influencer marketing. We paid a TikToker to make a video promoting our app and we&#8217;re collaborating with a YouTuber this week hopefully.</p><p>So on the Hashtag Expert side, we&#8217;re making lots of investments. In theory though, we could be making more. Instead, we&#8217;re also iterating on our app Caption Expert which is currently making barely any money. It has a community of users but as of today, there&#8217;s no active subscription product in it. We&#8217;re mostly focused on gaining users, improving retention, and figuring out a way to get more and more downloads with a combination of organic and paid channels.</p><p>Then, we&#8217;re prototyping our new app Like Expert. We&#8217;re seeing some really interesting data on it. We&#8217;re iterating super quickly. We did a soft TestFlight launch last weekend. We got a ton of feedback there and are just about done implementing it.&nbsp;</p><p>This is where I struggle though. When do you decide to go horizontal and when do you decide to go vertical? Here&#8217;s what I mean&#8212;theoretically, I could take all of that $128k operating profit and invest it back into Hashtag Expert. We could get 10 SEO writers, build an android app, a web-app, and invest deeply into improving our core generation algorithms. Whereas currently, we&#8217;re doing some sort of hybrid of going horizontal <em>and</em> vertical.We&#8217;re not investing <em>every</em> dollar into Hashtag Expert, but we&#8217;re still investing the majority of our dollars there. On the other hand, I&#8217;m very aware of the risks that this hashtag business has. So we&#8217;re making horizontal investments into Caption Expert and Like Expert which both have potential.&nbsp;</p><p>My framework for deciding how much investment a product should get is simple. Ask yourself&nbsp;<strong>how much bigger could this get?</strong> Bigger here means user base and revenue potential. Here, I&#8217;ll rate each of my products on a scale of 1 to 10 in terms of how big their revenue potentials are.</p><p>Hashtag Expert: <strong>6/10&nbsp;</strong></p><ul><li><p>I could see Hashtag Expert getting to $500k revenue a month, or even close to $1m, but I cannot see it getting too much beyond that. There are inherent risks in the product and the category itself.&nbsp;</p></li></ul><p>Caption Expert: <strong>8/10</strong></p><ul><li><p>I can see Caption Expert becoming a very popular app with tons of users, but the revenue piece is tricky. It attracts younger users and individuals who are less likely to spend money. With lots of users though, you can figure out revenue later.</p></li></ul><p>Like Expert: <strong>10/10</strong></p><ul><li><p>For a ton of reasons, I&#8217;m incredibly bullish on Like Expert. It has the potential to be both very popular among users <em>and</em> generate loads of revenue. At the moment, we&#8217;re still prototyping and proving out the concept. Until we have some solid evidence that the market likes this app, I can&#8217;t justify investing more than we are right now.</p></li></ul><p>At the same time, looking at each of these products in a vacuum isn&#8217;t correct. They are all related and we can cross-promote. In fact, that cross-promotion and the suite of products angling is central to our operating philosophy right now. We&#8217;re laying down the groundwork to build a suite of social media tools. At some point in the future, I could envision us selling a group subscription that comes with seats: i.e. paying $5/month/product/seat. So a 20 person company could subscribe to our entire suite for $5*3 products * 20 seats = $300/month.&nbsp;</p><p>Anyway, I wanted to highlight the nuance needed to discuss how you should invest in your apps. It&#8217;s not as simple as should I put it all into one app and ignore all the others. Like most things in life, app investments exists in a gray area.&nbsp;</p><div><hr></div><p><em>What did you think of this post? Tap an answer below to vote and also to let me know what I should write about next!</em></p><p><em><strong><a href="https://command-services.typeform.com/to/wzyKVz6l#post=diversify-1-31-21">Loved It</a></strong></em></p><p><em><strong><a href="https://command-services.typeform.com/to/wzyKVz6l#post=diversify-1-31-21">It Was Ok</a></strong></em></p><p><em><strong><a href="https://command-services.typeform.com/to/wzyKVz6l#post=diversify-1-31-21">Hated It</a></strong></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://command-services.typeform.com/to/wzyKVz6l#post=diversify-1-31-21&quot;,&quot;text&quot;:&quot;Rate Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://command-services.typeform.com/to/wzyKVz6l#post=diversify-1-31-21"><span>Rate Post</span></a></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Try my new app, Like Expert!]]></title><description><![CDATA[Hey all, I wanted to personally invite you all to try my new app Like Expert. It&#8217;s now available on TestFlight! Here's how it works.]]></description><link>https://blog.zach.so/p/try-my-new-app-like-expert</link><guid isPermaLink="false">https://blog.zach.so/p/try-my-new-app-like-expert</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Sat, 23 Jan 2021 17:52:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HriC!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6a66e265-e82d-432c-a836-d3071774fdd6_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey all, I wanted to personally invite you all to try my new app <a href="https://testflight.apple.com/join/bOC23KXU">Like Expert</a>. It&#8217;s now available on TestFlight! Here's how it works.<br></p><ol><li><p>You upload two pictures</p></li><li><p>Real people will vote on which picture they like better</p></li><li><p>Get results and see which picture people like more!<br></p></li></ol><p>Everything works with coins. So you start with 20 coins. To create an experiment, you need 10 coins which means 10 people will vote on it. You get 1 coin for every vote you cast on another person's pictures.</p><p><br>Some use cases for this are:</p><ul><li><p>If you are a brand and have two logos you are choosing between</p></li><li><p>You have two pictures from a photoshoot and aren't sure which one to post</p></li></ul><p><br>In the future, you'll be able to choose the demographics i.e get 30 votes from people aged 18-32 who are male. Super excited to get feedback so please comment here or email me zach@shakd.io<br></p><p>Here's the link to try it</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://testflight.apple.com/join/bOC23KXU&quot;,&quot;text&quot;:&quot;Download&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://testflight.apple.com/join/bOC23KXU"><span>Download</span></a></p>]]></content:encoded></item><item><title><![CDATA[The TestFlight App Strategy]]></title><description><![CDATA[Building MVPs quickly with Parse to validate ideas]]></description><link>https://blog.zach.so/p/the-testflight-app-strategy</link><guid isPermaLink="false">https://blog.zach.so/p/the-testflight-app-strategy</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Fri, 08 Jan 2021 22:14:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wzXS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wzXS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wzXS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wzXS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wzXS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wzXS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wzXS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg" width="1000" height="667" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:667,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;man running along seashore during golden hour&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="man running along seashore during golden hour" title="man running along seashore during golden hour" srcset="https://substackcdn.com/image/fetch/$s_!wzXS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wzXS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wzXS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wzXS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F113499d3-f382-4035-8ea9-0ebe8131efa0_1000x667.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Hi, I&#8217;m Zach &#8212; I&#8217;ve built my app business to about $4m in annual recurring revenue. Building a successful app business is really hard. That&#8217;s why I write a weekly newsletter about the things I&#8217;ve learned along the way. My goal is to help you grow your business and profit. If you want to learn more about the app business, I highly recommend subscribing.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>My new app strategy for 2021 is going to be sprint-build a minimalistic app in 2-3 weeks using Parse backend and then launch on TestFlight to existing users from our other apps. If there's retention and other good signals, we&#8217;ll build it properly. Otherwise, we&#8217;ll scrap it and build something new. Repeat this process 10-12 times throughout the year and hopefully we find 1-2 home runs that generate $2m+ annual revenue.</p><p>This strategy resembles how Clubhouse was launched. v1 of their app was super basic. They launched on TestFlight and made it invite only. The design was good-enough and by no means anything special. The functionality was <em>dead</em> simple&#8212;you can enter a room and talk. They let users and their own analytics lead their product/feature decisions. To this day, the app is still <em>very</em> basic and their design doesn&#8217;t impress me. Nonetheless, it&#8217;s in the top charts without a single dollar of paid advertising.&nbsp;</p><p>I&#8217;ve been trying to figure out how my company can absolutely blow up revenue growth. Perhaps the easiest way is to launch a product that some of our 250k+ users would be interested in. With that, I have lots of ideas and problems that I think are interesting in the social media tools space. So fuck it, we&#8217;re just going to start firing off ideas Clubhouse-style until we find something that sticks.&nbsp;</p><p>The absolute last thing I want to do is spend 3-6 months prototyping, designing, and engineering an app that our user base doesn&#8217;t find helpful. I don&#8217;t have such a level of conviction in any of my ideas that would justify such a significant drain of resources. That&#8217;s led me to this new strategy. I have no idea if an app will work or not. I can have a theory, or a prediction, or confidence, but I will not know until it <em>works</em>. That&#8217;s why getting an MVP to market ASAP is the best way to test out ideas.</p><p>When I think about Hashtag Expert, my most successful app, there is essentially one feature I built in a week or two that is the core of the app which is the concept of using an algorithm to generate hashtags. Since then, I&#8217;ve just incrementally improved the app: a better design, more algorithms, a better algorithm, trending charts, etc.&nbsp;</p><h1>Idea</h1><p>The first step is thinking of an idea that is informed by a problem. The idea will be a hypothesis to solve the problem. I&#8217;ll do my normal research (look at competitor apps, check revenue estimates, do keyword research, etc.). I&#8217;ll then distill the idea into the absolute simplest, most minimal version of it possible. The app should have one core feature.</p><h1>Design</h1><p>For design, we want the app to be usable. Usability is crucial, looks aren&#8217;t. I will personally mock up ultra-ugly, sketch-style wireframes of the flow of the app.&nbsp; I&#8217;ll tell the designer to prioritize getting designs done as fast as possible and not to worry about making everything super pretty. All of these test apps should have identical designs to optimize for recycling down the road. We want to lean on standard iOS elements as much as possible (i.e. default datepicker, tableviews, fonts, colors, etc.).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!stkw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5c328550-55f0-447e-87bf-3bdac01c9e5e_1442x1542.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!stkw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5c328550-55f0-447e-87bf-3bdac01c9e5e_1442x1542.png 424w, https://substackcdn.com/image/fetch/$s_!stkw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5c328550-55f0-447e-87bf-3bdac01c9e5e_1442x1542.png 848w, https://substackcdn.com/image/fetch/$s_!stkw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5c328550-55f0-447e-87bf-3bdac01c9e5e_1442x1542.png 1272w, https://substackcdn.com/image/fetch/$s_!stkw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5c328550-55f0-447e-87bf-3bdac01c9e5e_1442x1542.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!stkw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5c328550-55f0-447e-87bf-3bdac01c9e5e_1442x1542.png" width="1442" height="1542" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5c328550-55f0-447e-87bf-3bdac01c9e5e_1442x1542.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1542,&quot;width&quot;:1442,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!stkw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5c328550-55f0-447e-87bf-3bdac01c9e5e_1442x1542.png 424w, https://substackcdn.com/image/fetch/$s_!stkw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5c328550-55f0-447e-87bf-3bdac01c9e5e_1442x1542.png 848w, https://substackcdn.com/image/fetch/$s_!stkw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5c328550-55f0-447e-87bf-3bdac01c9e5e_1442x1542.png 1272w, https://substackcdn.com/image/fetch/$s_!stkw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5c328550-55f0-447e-87bf-3bdac01c9e5e_1442x1542.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Code</h1><p>To code the app, we&#8217;re going to reuse whatever we can from existing apps. We already have some internal cocoapods for analytics/attribution tracking. For the backend, we&#8217;re going to use <a href="https://parseplatform.org/">ParsePlatform</a>. It&#8217;s a major waste of time to build out a scalable, legit restful API backend to test an idea. I was originally thinking of using Firebase but our new engineer convinced me Parse was better and I 100% agree. Here&#8217;s why:</p><ol><li><p>Scale - Parse can scale to a substantial amount of users because it&#8217;s simply hosted on an AWS EC2 Instance and uses MongoDB. We could easily run an app with 500k monthly active users on Parse + AWS EC2.</p></li></ol><ol start="2"><li><p>Migration - if we decide to migrate off of Parse, we own the underlying MongoDB database and can simply build a new layer. This is super important to me because I&#8217;m used to the rigidity and horrible data portability of CloudKit which has screwed me over a lot.</p></li></ol><ol start="3"><li><p>Extendability - Parse Platform is mounted onto a Node.js express server - that means any tools that can be used with Express also work here (i.e. API monitoring) - we can also build custom routes wherever we want or add custom validation to certain API requests. You get the benefits of running your own custom backend <em>and</em> the benefits of an out-of-the-box platform.&nbsp;</p></li></ol><p>I&#8217;ve tried both ends of the spectrum. For some of my apps, we&#8217;ve built from scratch an entire backend and it&#8217;s tedious and prone to bugs. On the other hand, we&#8217;ve built apps on CloudKit which provides nearly zero flexibility or data portability.</p><p>ParsePlatform works out of the box and has everything we could possibly need to validate an idea. The goal is getting to launch as quickly as possible. My engineer spinned up a working Parse Server on EC2 in under an hour.&nbsp;</p><p>Inside the app, we&#8217;ll install robust, event-based analytics (Mixpanel) which will be used to evaluate the merit of the idea. We&#8217;ll also add push notifications and features that enable us to survey users. Whether through emails after they install the app or in-app forms, we&#8217;ll be collecting feedback as much as possible throughout the process.</p><h1>Launch</h1><p>We&#8217;ll launch to existing app users. We&#8217;ll send an email to the 200,000+ Hashtag Expert users and invite them to try the new app. I&#8217;ll tweet about it too and maybe send out an email blast. That should get enough users to validate the idea.</p><h1>Decision</h1><p>Post launch, I&#8217;ll be paying close attention to the metrics and try to answer a few questions:</p><ul><li><p>Are people coming back to the app? Is there retention?</p></li><li><p>Are people engaging with the app? How long are sessions?</p></li><li><p>Are people utilizing the core feature of the app?&nbsp;</p></li><li><p>What are people saying about the app in the survey data?</p></li></ul><p>After we start collecting data, I&#8217;ll be able to make a decision about the future of the app. If I&#8217;m seeing good signals, we&#8217;ll continue iterating on the app until we get to a point where we&#8217;re comfortable launching it publicly. I&#8217;ll start drafting out ideas for monetizing it. We&#8217;ll make it available for Pre-Order immediately to start collecting downloads. If we&#8217;ve made it this far, we already know the app has legs so we&#8217;re not wasting time building an app that nobody wants.</p><p>If we see horrible data, we&#8217;ll throw out the app idea entirely. Worst case scenario we burned 2-3 weeks of time. That&#8217;s really not bad.</p><h1>Macro Strategy</h1><p>There are few things I hope to achieve with this strategy.&nbsp;</p><p>I want to build a company culture where we become experts at building out apps quickly. Our first, second, and maybe third app might take a bit longer than normal, say 6-8 weeks. As we learn, we&#8217;ll build our processes, write more reusable code libraries, and have universal designs that&#8217;ll enable us to launch apps even quicker.</p><p>I&#8217;m hoping to find 1 or 2 home runs this year. I would define a homerun as getting an app to $2m+ revenue in the first year. I already have a very skilled marketing team in place that is managing $100k+ in ad spend a month on Hashtag Expert. If we see one of these TestFlight apps has legs and we build it out, we can then plug it into the existing marketing machine. Getting that up and running is trivial since we&#8217;re already advertising another app. The marketing team plus all the existing users on our other apps means we can scale <em>very quickly</em>.</p><p>Overall, I&#8217;m super excited!</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/p/the-testflight-app-strategy/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/p/the-testflight-app-strategy/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[The Power of Compound Interest with Self Improvement]]></title><description><![CDATA[Applying compound interest to your life to achieve exponential personal growth]]></description><link>https://blog.zach.so/p/the-power-of-compound-interest-with</link><guid isPermaLink="false">https://blog.zach.so/p/the-power-of-compound-interest-with</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Fri, 25 Dec 2020 20:09:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WrzN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hi, I&#8217;m Zach &#8212; I&#8217;ve built my app business to about $4m in annual recurring revenue. Building a successful app business is really hard. That&#8217;s why I write a weekly newsletter about the things I&#8217;ve learned along the way. My goal is to help you grow your business and profit. If you want to learn more about the app business, I highly recommend subscribing.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WrzN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WrzN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WrzN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WrzN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WrzN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WrzN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg" width="1000" height="667" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:667,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;closeup photography of plant on ground&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="closeup photography of plant on ground" title="closeup photography of plant on ground" srcset="https://substackcdn.com/image/fetch/$s_!WrzN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!WrzN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!WrzN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!WrzN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6b23298-e2a6-4691-934e-8ef6be0bcd74_1000x667.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As the New Year approaches, I&#8217;ve naturally been thinking about the concept of self-improvement. I like to understand it through the lens of compound interest which is easily one of the most powerful yet basic mathematical concepts out there. Anything, when compounded over time, will lead to enormous returns. The sooner you start compounding, the exponentially larger your returns will be down the road.&nbsp;</p><p>I found this <a href="https://windgatewealth.com/the-power-of-compound-interest-and-why-it-pays-to-start-saving-now/">example</a> a perfect illustration of just how powerful compound interest can be. Imagine two people are saving for retirement. They earn 7% returns every year and reinvest all interest.</p><ul><li><p>Alice invests $5,000 per year beginning at age 18. At age 28, she stops. She has invested for 10 years and $50,000 total.</p></li></ul><ul><li><p>Barney invests the same $5,000 but begins where Alice left off. He begins investing at age 28 and continues the annual $5,000 investment until he retires at age 58. Barney has invested for 30 years and $150,000 total.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RbWz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50755fc7-29ff-49a0-ada3-7e847373833a_500x228.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RbWz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50755fc7-29ff-49a0-ada3-7e847373833a_500x228.png 424w, https://substackcdn.com/image/fetch/$s_!RbWz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50755fc7-29ff-49a0-ada3-7e847373833a_500x228.png 848w, https://substackcdn.com/image/fetch/$s_!RbWz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50755fc7-29ff-49a0-ada3-7e847373833a_500x228.png 1272w, https://substackcdn.com/image/fetch/$s_!RbWz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50755fc7-29ff-49a0-ada3-7e847373833a_500x228.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RbWz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50755fc7-29ff-49a0-ada3-7e847373833a_500x228.png" width="500" height="228" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/50755fc7-29ff-49a0-ada3-7e847373833a_500x228.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:228,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RbWz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50755fc7-29ff-49a0-ada3-7e847373833a_500x228.png 424w, https://substackcdn.com/image/fetch/$s_!RbWz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50755fc7-29ff-49a0-ada3-7e847373833a_500x228.png 848w, https://substackcdn.com/image/fetch/$s_!RbWz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50755fc7-29ff-49a0-ada3-7e847373833a_500x228.png 1272w, https://substackcdn.com/image/fetch/$s_!RbWz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50755fc7-29ff-49a0-ada3-7e847373833a_500x228.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p><em><strong>Barney has invested 3 times as much as Alice, yet Alice&#8217;s account has a higher value.She saved for just 10 years while Barney saved for 30 years.</strong> This is compound interest: the investment return that Alice earned in her 10 early years of saving is snowballing. The effect is so drastic that Barney can&#8217;t catch up,<strong> even if he saves for an additional 20 years.</strong></em></p><p>The effects of exponential growth are impossible to catch up to. The takeaway here is <strong>for the biggest gains down the road, invest as early as possible.</strong></p><h2>Evidence of Compound Interest in Careers</h2><p>How can this be applied to personal growth and career success? Does compound interest even apply to careers? Obviously, people aren&#8217;t equations and it&#8217;s impossible to quantify the exact percentage you are getting <em>&#8220;better&#8221; every year. </em>However, there are a few things we can say for certain:</p><ol><li><p><em><strong>Most people will continue to get better at career-oriented tasks as they get older</strong></em> until they start deteriorating mentally with age. Most of us can expect to do that until our 60s and even 70s. (Plus, who knows what kinds of aging-related drugs will exist in the future.)</p></li></ol><ol start="2"><li><p><em><strong>As you get better at your career, your ability to improve also gets better</strong></em>. For example, I&#8217;m now familiar with a number of programming languages. Swift, JavaScript, Node.js, Python, Objective-C, Java, etc. <em>It is undoubtedly easier for me to learn new programming languages now than it was 5 years ago</em>. I already have a firm understanding of the foundational principles of programming. I&#8217;ve seen the syntax from all these different languages. <em><strong>The rate at which I learn things also improves.</strong></em></p></li></ol><ol start="3"><li><p><em><strong>As your career matures, your productivity increases because of better access to financial and non-financial resources</strong></em>. I know how to hire people and <em>where</em> to find good people to do all kinds of different tasks. I have the experience of building products. I don&#8217;t make the same silly mistakes I made on my first products. I have a more informed understanding of the market, human tendencies, what looks good in a product and what doesn&#8217;t. I have more financial resources now. I also am better-connected now than I have been. I know lots of indy developers and people generating millions of dollars in revenue per year, etc. <em>I basically have better access to nearly all of the critical resources needed for career success.</em></p></li></ol><p>All of the above points are evidence of compound interest that I am accruing as my career continues. If my goal is to have outsized, substantially large gains and outcomes in the next decades, the main variable I should be focused on is my <em>growth rate</em>&#8212;how much better I am getting at career-specific skills every day.</p><h2>Your Personal Growth Rate (AKA The &#8220;Interest Rate&#8221; on Your Career Skills)</h2><p>Your growth rate determines the rate at which you improve. What is your current growth rate year over year today? How can you improve that growth rate <em><strong>right now?</strong></em> This is something I&#8217;ve been thinking a lot about&#8212;how much better am I getting at my career year over year? The key to being <em>incredibly successful</em> is improving <em>every single year</em> and improving as much as possible. The more I improve, the steeper and more exponential my career trajectory will be. Further, <em>because of the laws of compound interest, the sooner </em>I start improving my growth rate, the bigger of an impact it will have down the road.&nbsp;</p><h2>Feedback Loops Determine Your Growth Rate</h2><p>The key to improving your growth rate is having a feedback loop. Abstractly, you form a hypothesis, test it, learn from the experiment, and repeat. Consider any skill&#8212;golfing for example. You pick up a club, swing it, and see how and where the ball travels. You get feedback. That feedback will allow you to iterate on your swing. You form a hypothesis about how to hit the ball better. You swing again and see if it helped. If it doesn&#8217;t help, you still learn how <em>not to </em>improve your swing. Either way, your swing improves.&nbsp;</p><h2>The Quality of Your Feedback Loops Matters</h2><p>Thinking about the golf example again&#8212;consider the difference in your swing improvement trajectory if you work alone versus with an expert or coach. If you&#8217;re not a golf expert, you may be unaware of what you&#8217;re doing wrong. That&#8217;s where a coach or trainer who has a thorough understanding of the sport can be invaluable. Somebody who has seen hundreds of players learn the basics of golf will be able to help you improve <em>faster</em>. The quality of your feedback loop becomes substantially better and therefore your growth rate increases.&nbsp;</p><p>Imagine you had two golfers with absolutely no experience watching or playing&#8212;Larry and Ted. Larry practices hitting golf balls 4 hours per day for 6 months but never works with a coach, never watches YouTube videos, and never gets any help other than what he organically thinks of on his own. Ted takes a 1 hour lesson with a coach every week and practices 2 hours per week on his own for 6 months. Who do you think would be a better golfer? It would probably be close! That highlights <strong>how absurdly important it is to have </strong><em><strong>high quality feedback loops.</strong></em></p><p>Shortening the time in between your feedback loops is the equivalent of making your personal growth compound at a faster cadence&#8212;monthly instead of annually or weekly instead of monthly. The difference in an aspiring golfer who takes daily lessons versus one who took weekly lessons would likewise be enormous over the long run because of the quality and cadence of the feedback loop.</p><h2>Entrepreneurs are Mental Athletes</h2><p>The muscles I train are my logic and creativity. My career is dependent on my ability to perform mentally. Now, consider the amount of effort that goes into training a professional athlete like Lebron James. He has a coach who likely played basketball professionally for decades, trainers who have studied muscle growth and peak physical performance, and doctors who are at the top of their fields. Further, his team of experts collaborates. The doctors talk to the coaches, and the trainers work with the nutritionists, etc. This further strengthens the quality of his feedback loops. James is surrounded with people who are trying to cultivate the greatest basketball player of all time. Analyze James&#8217; growth through the lens of compound interest and suddenly everything makes sense. His skill level is what you will have after decades of self-improvement with a world-class team of experts.&nbsp;&nbsp;</p><h2>My Feedback Loops</h2><p>As a mental athlete where everything I do is the product of my decision-making, technical aptitude, and business acumen, <em><strong>nothing could be a better, higher ROI investment than in a team focused on improving me</strong>.</em></p><p>One of my highest quality feedback loops is journaling. I journal very frequently, almost daily. I journal in a Google Doc (I can type faster than I can write (speed matters!)) and record my unfiltered thoughts. Nobody will ever read them. I&#8217;m honest and genuine. I can be arrogant, shy, timid, bold, or however I feel. Most importantly, I&#8217;m critically evaluating my own actions and decisions. I&#8217;m able to logically lay out the case for my decisions and evaluate their efficacy. Something about laying out your thought process through writing accentuates fallacies. Similarly, through writing I&#8217;m able to extract a strand of thought and unpack it fully. You&#8217;d find it impossible to code an entire app or solve a difficult math problem in your head, but with a pencil and paper or a computer and Xcode, suddenly deeply complex problems become solvable. Why not do that with your own thoughts and reflections? That is what journaling enables me to do&#8212;to holistically assess my decisions and actions.</p><p>Journaling has also allowed me to tighten my own feedback loop. Some people might self-reflect weekly or monthly or only during a traumatic event. Think about it&#8212;when was the last time you sat down for an hour or two and thought about the trajectory of your life? When was the last time you brainstormed better ways to achieve your goals? When was the last time you sat down and identified problematic habits and methodically worked on fixing them? With journaling, I&#8217;m logically evaluating myself and spot-checking my decision-making <em>multiple times per week for hours at a time.</em></p><h2>My Team of Experts</h2><p>I&#8217;m turning 25 in a few months. Recently, I&#8217;ve started building out my team of experts. I started working with an executive coach who is helping me become a better CEO. I&#8217;m working with a therapist to groom my mental health and help me sleep better. I&#8217;m working with a personal trainer to stay in peak physical shape. I&#8217;ve worked with a nutritionist to improve my eating habits. I&#8217;m seeking out a meditation tutor to help me be more mindful and intentional. I&#8217;m trying to find a product mentor who can help me be more thoughtful with product decisions. Twitter is putting me in touch with dozens of brilliant people as well.**</p><p>I have my parents and family who I can talk to about big decisions. I can lay out my thought process and get feedback on whether my thinking is logical or not. I have my friends who might be specialized in some other sorts of fields like programming or writing who can likewise assess my abilities, give me feedback, and help me improve. Finally, I have this blog! I can write about ideas I find powerful and see what other people think about them.&nbsp;</p><p>This team of experts is increasing the rate of my personal growth&#8212;and that growth <em>compounds. </em>That growth will empower me to be more productive and accomplish more in 2021 than I did in 2020. Throw another year of this team helping me and 2022 will inevitably be an even better year than 2021. The trend line will continue, and I will exponentially become a more effective person. That&#8217;s because my resources and leverage will continue to increase. A better 2021 means I should have more money to invest in an <em>even better personal growth team</em>. Thus, my growth rate should continue to improve even further.</p><p>When you compare me to someone who has an absolutely equal amount of mental horsepower&#8212;and I started seriously investing in improving my mental acuity in 2020 and they started in 2025&#8212;who will win? All things equal where one person invested heavily in self-improvement and the other didn&#8217;t&#8212;there&#8217;s no question who would win. So as 2020 comes to a close and 2021 begins, I challenge you to start genuinely investing in yourself. Starting today versus in 5 years could have a drastically different outcome on the trajectory of your life.</p><div><hr></div><h2>What&#8217;d You Think About This Post?</h2><p>Did you find it useful? Did you hate it? Tap the button below to leave me feedback and suggest a topic for my next post.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://command-services.typeform.com/to/iA1M4WpS#vote=none&amp;post=12-25-20-compound-interest&quot;,&quot;text&quot;:&quot;Leave Feedback&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://command-services.typeform.com/to/iA1M4WpS#vote=none&amp;post=12-25-20-compound-interest"><span>Leave Feedback</span></a></p><div><hr></div><p><em><strong>This blog is very much a product of you, the reader. If you want to learn how to build a profitable app business and how to be a better entrepreneur, I highly recommend subscribing. I also like to ask readers to proofread my articles and offer criticism so make sure you&#8217;re following me on&nbsp;<a href="https://twitter.com/zachshakked">Twitter</a>. Until then, have a great week!</strong></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p><em>**</em></p><p><em>Also, I realize that a lot of what I wrote about is a function of money. If everybody could have 6 hours of golf lessons per day, everybody would be an amazing golfer! That misses the point of what I&#8217;m saying, though. Feedback loops can take all kinds of shapes and forms. YouTube, books, blog posts, Twitter&#8212;feedback loops can be found everywhere. Also, people tend to be generous with their time if they find a hungry and productive student. There are ways to build powerful feedback loops without breaking the bank.</em></p>]]></content:encoded></item><item><title><![CDATA[Tips for Optimizing Your App Paywall]]></title><description><![CDATA[Lessons learned from reviewing developers' paywalls]]></description><link>https://blog.zach.so/p/tips-for-optimizing-your-app-paywall</link><guid isPermaLink="false">https://blog.zach.so/p/tips-for-optimizing-your-app-paywall</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Fri, 18 Dec 2020 20:36:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dYlM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hi, I&#8217;m Zach &#8212; I&#8217;ve built my app business to about $4m in annual recurring revenue. Building a successful app business is really hard. That&#8217;s why I write a weekly newsletter about the things I&#8217;ve learned along the way. My goal is to help you grow your business and profit. If you want to learn more about the app business, I highly recommend subscribing.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h1>Paywall Webinar</h1><p>Jake Mor and I hosted a webinar where we reviewed developer&#8217;s paywalls and thought of actionable tips for improving them. As we went through the paywalls, we noticed some common mistakes and trends that were popping up over and over again. Below, I&#8217;ll touch on just a few of the things that stood out to us. </p><p>If you&#8217;re interested in signing up for our next webinar which will be on Tuesday, December 22nd at 4:30pm EST, tap the button below. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://command-services.typeform.com/to/JKHPYU1j#source=blog-top&quot;,&quot;text&quot;:&quot;Reserve Spot&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://command-services.typeform.com/to/JKHPYU1j#source=blog-top"><span>Reserve Spot</span></a></p><div><hr></div><h2><strong>Have a Clear Call to Action at the Top</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dYlM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dYlM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png 424w, https://substackcdn.com/image/fetch/$s_!dYlM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png 848w, https://substackcdn.com/image/fetch/$s_!dYlM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png 1272w, https://substackcdn.com/image/fetch/$s_!dYlM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dYlM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png" width="1456" height="788" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:788,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2160199,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dYlM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png 424w, https://substackcdn.com/image/fetch/$s_!dYlM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png 848w, https://substackcdn.com/image/fetch/$s_!dYlM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png 1272w, https://substackcdn.com/image/fetch/$s_!dYlM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3517a3d9-4cbd-4998-8d5a-cf9e05034e64_5136x2778.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When users hit your paywall for the first time, what do you want them to do? Of the paywalls we looked at, many did not have a clear call to action. Do you want the user to upgrade? To subscribe? If so, tell them that:</p><p><strong>Good</strong> - "Upgrade To Premium&#8221; - &#8220;Upgrade To Train Smarter&#8221; </p><p><strong>Unclear</strong> - &#8220;SongSheet Pro&#8221; - &#8220;Replica Premium&#8221;</p><p>It should be abundantly clear to the user what you want them to do.<strong> </strong></p><h2>Understand What You Are Implying</h2><p>When you say &#8220;Upgrade to Premium&#8221; or &#8220;Upgrade to Pro&#8221; - you are clearly telling users that there is a free tier and a premium tier for your product. Alternatively, you can be a bit more vague and say something like &#8220;Subscribe to get the best of {app name}&#8221; or  &#8220;Subscribe to Continue&#8221;. By doing this, you are changing the perception of your product to your users and may end up getting more paying users. </p><h2>Don&#8217;t Assume Users Know Your Product</h2><p>In many of the paywalls we viewed, the text and bullet points trying to convince the user to purchase assumed an advanced understanding of the product. Keep in mind that when most users see your paywall, they aren&#8217;t intimately familiar with your product. Rather than just describing the benefits of the premium tier of your product, <em>explain the benefits of your whole product. </em></p><p>I.e. for Hashtag Expert, it&#8217;d be better for me to write:</p><p><strong>Good:</strong> &#8220;Grow your Instagram profile with personalized hashtag recommendations designed to increase your reach&#8221;</p><p><strong>Bad:</strong> &#8220;Get access to all hashtag generation algorithms&#8221; </p><div><hr></div><h2><em>This Post is Sponsored by <a href="https://www.getbraavo.com/funding-pricing/?utm_medium=referral&amp;utm_source=youtube&amp;utm_campaign=shakked">Braavo</a></em></h2><p><em>Huge thanks to <a href="https://www.getbraavo.com/funding-pricing/?utm_medium=referral&amp;utm_source=youtube&amp;utm_campaign=shakked">Braavo</a> for supporting this blog post and our webinar. Sponsoring partners enable me to spend more time writing helpful tips here and I really appreciate their generosity in offering to do so. I&#8217;m also glad they reached out because I actually think Braavo is a really fascinating tool to have in your app developer toolbox.</em></p><p><em>One of the biggest problems I dealt with as I scaled my business was cashflow. Apple routinely takes their sweet time to pay us&#8212;up to 40 days after the end of the month. January revenue doesn&#8217;t get deposited until March, but what happens if you have invoices due in February? That big delay in payment can actually have a major impact on your business growth if you&#8217;re scaling your revenue quickly via ads or other channels.</em></p><p><em><a href="https://www.getbraavo.com/funding-pricing/?utm_medium=referral&amp;utm_source=youtube&amp;utm_campaign=shakked">Braavo</a> will hook up to your App Store Connect account, see how much you&#8217;re getting paid, and give you instant access to that money for a small fee. You can access as little or as much money as you want from Braavo and you only pay for what you take. As you scale, Braavo also offers a revenue-based funding product that provides up-front cash for UA in exchange for a share of future earnings. Combined, these funding options can be super powerful if you&#8217;re trying to grow your business without giving up too much equity. It&#8217;s flexible, fast, and convenient.</em></p><p><em>Over the past few years, I&#8217;ve seen Braavo continue to focus on building a broader and more powerful financial tool kit for app developers. The truth is, us app makers emphasize developer tools a lot but often forget about financial tools which are the engines of our business growth&#8212;everything is a function of money and cash flow. I highly recommend taking a look at their suite of products as they are specifically designed to help developers make more money. Thanks again <a href="https://www.getbraavo.com/funding-pricing/?utm_medium=referral&amp;utm_source=youtube&amp;utm_campaign=shakked">Braavo</a>! Use the promo code <strong>shakd25off </strong>to get 25% discount for 12 months when signing up for their <a href="https://www.getbraavo.com/analytics/">Analytics</a>.</em></p><div><hr></div><h2>Make it Clear That There&#8217;s a Paid Tier for Your App</h2><p>In a few of the apps we tested, we actually had trouble locating the paid tier. It should be abundantly clear to your users that there is indeed a premium tier for your app. If I want to subscribe their should be a button available almost at all times for me to upgrade. Consider putting a banner on the bottom or top of your main app screen like so:</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FDmI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96036a35-8d4c-4c79-849e-a22dcb23998a_1284x2778.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FDmI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96036a35-8d4c-4c79-849e-a22dcb23998a_1284x2778.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FDmI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96036a35-8d4c-4c79-849e-a22dcb23998a_1284x2778.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FDmI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96036a35-8d4c-4c79-849e-a22dcb23998a_1284x2778.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FDmI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96036a35-8d4c-4c79-849e-a22dcb23998a_1284x2778.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FDmI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96036a35-8d4c-4c79-849e-a22dcb23998a_1284x2778.jpeg" width="288" height="623.1028037383178" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/96036a35-8d4c-4c79-849e-a22dcb23998a_1284x2778.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2778,&quot;width&quot;:1284,&quot;resizeWidth&quot;:288,&quot;bytes&quot;:1030650,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FDmI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96036a35-8d4c-4c79-849e-a22dcb23998a_1284x2778.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FDmI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96036a35-8d4c-4c79-849e-a22dcb23998a_1284x2778.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FDmI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96036a35-8d4c-4c79-849e-a22dcb23998a_1284x2778.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FDmI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F96036a35-8d4c-4c79-849e-a22dcb23998a_1284x2778.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Using Thoughtful Grammar and Copy</strong></h2><p>If you&#8217;re not an expert at copywriting, it might make sense to hire a professional copywriter to edit the text in your paywall. Here, I specifically mean grammar, punctuation, and spelling. It&#8217;s essential you get these right and a slight mistake can make your paywall instantly go from professional to unprofessional. Hiring a copywriter is a fixed cost and I highly recommend at least having one proofread your work. </p><h2>Leveraging Color to Emphasize Actions</h2><p>We noticed that some of the paywalls had similar color patterns in their action buttons. For example, consider this one:</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ImlB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13c85ba-b416-429e-9624-0f98ed87c001_1284x2778.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ImlB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13c85ba-b416-429e-9624-0f98ed87c001_1284x2778.png 424w, https://substackcdn.com/image/fetch/$s_!ImlB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13c85ba-b416-429e-9624-0f98ed87c001_1284x2778.png 848w, https://substackcdn.com/image/fetch/$s_!ImlB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13c85ba-b416-429e-9624-0f98ed87c001_1284x2778.png 1272w, https://substackcdn.com/image/fetch/$s_!ImlB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13c85ba-b416-429e-9624-0f98ed87c001_1284x2778.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ImlB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13c85ba-b416-429e-9624-0f98ed87c001_1284x2778.png" width="338" height="731.2803738317757" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c13c85ba-b416-429e-9624-0f98ed87c001_1284x2778.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2778,&quot;width&quot;:1284,&quot;resizeWidth&quot;:338,&quot;bytes&quot;:174460,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ImlB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13c85ba-b416-429e-9624-0f98ed87c001_1284x2778.png 424w, https://substackcdn.com/image/fetch/$s_!ImlB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13c85ba-b416-429e-9624-0f98ed87c001_1284x2778.png 848w, https://substackcdn.com/image/fetch/$s_!ImlB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13c85ba-b416-429e-9624-0f98ed87c001_1284x2778.png 1272w, https://substackcdn.com/image/fetch/$s_!ImlB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc13c85ba-b416-429e-9624-0f98ed87c001_1284x2778.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Notice how the background colors on the &#8220;12 Months $29.99&#8221; and the above sections with bullets &#8220;Better Event Rewards&#8221;, &#8220;Training Workout Timers&#8221; are all in the same color scheme? This can be confusing to the user. It&#8217;s not clear that the pricings at the bottom are even buttons. This falls into the category of user experience (UX), but it something essential to keep in mind while working on your paywalls. <strong>Use color to emphasize what you want the user to do</strong>. </p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h82N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed8463f-edd6-44d3-9210-de78ccf79cce_1284x2778.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h82N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed8463f-edd6-44d3-9210-de78ccf79cce_1284x2778.png 424w, https://substackcdn.com/image/fetch/$s_!h82N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed8463f-edd6-44d3-9210-de78ccf79cce_1284x2778.png 848w, https://substackcdn.com/image/fetch/$s_!h82N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed8463f-edd6-44d3-9210-de78ccf79cce_1284x2778.png 1272w, https://substackcdn.com/image/fetch/$s_!h82N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed8463f-edd6-44d3-9210-de78ccf79cce_1284x2778.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h82N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed8463f-edd6-44d3-9210-de78ccf79cce_1284x2778.png" width="344" height="744.2616822429907" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/8ed8463f-edd6-44d3-9210-de78ccf79cce_1284x2778.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2778,&quot;width&quot;:1284,&quot;resizeWidth&quot;:344,&quot;bytes&quot;:1078962,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h82N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed8463f-edd6-44d3-9210-de78ccf79cce_1284x2778.png 424w, https://substackcdn.com/image/fetch/$s_!h82N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed8463f-edd6-44d3-9210-de78ccf79cce_1284x2778.png 848w, https://substackcdn.com/image/fetch/$s_!h82N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed8463f-edd6-44d3-9210-de78ccf79cce_1284x2778.png 1272w, https://substackcdn.com/image/fetch/$s_!h82N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8ed8463f-edd6-44d3-9210-de78ccf79cce_1284x2778.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On the other hand, notice where you eye naturally goes when you see this paywall. Immediately, the <strong>Lifetime</strong> purchase button captures your attention. This makes it clear that this element is in fact a button <em>and</em> it&#8217;s the button I&#8217;m most likely to press. </p><h2>View The Full Webinar</h2><div id="youtube2-kyrsn77rd8E" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;kyrsn77rd8E&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/kyrsn77rd8E?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h1><strong>What Should I Write About Next?</strong></h1><p>What&#8217;d you think about this post? Did you find it useful? Make sure you click one of the links below to leave me some feedback and&nbsp;<em><strong>vote on what I should write about next</strong></em>:</p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=paywall-analysis&amp;post=paywall-review-12-18-20">Paywall Analysis Part 2 - More Ideas for Improving Paywalls</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=creative&amp;post=paywall-review-12-18-20">Creative - How to Think About Creative for Paid Marketing</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=year-in-review&amp;post=paywall-review-12-18-20">Year in Review - Lessons I&#8217;ve Learned This Year From My App Business</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=college&amp;post=paywall-review-12-18-20">College - The Inconvenient Truth About Dropping Out</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=other&amp;post=paywall-review-12-18-20">Something Else</a></p><div><hr></div><p><em><strong>This blog is very much a product of you, the reader. If you want to learn how to build a profitable app business, I highly recommend subscribing. I also like to ask readers to proofread my articles and offer criticism so make sure you&#8217;re following me on&nbsp;<a href="https://twitter.com/zachshakked">Twitter</a>. Until then, have a great week!</strong></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>Interested in sponsoring this newsletter? Fill out this form and I&#8217;ll be in touch:</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://command-services.typeform.com/to/JZuO9Ohe#source=contact-blog&quot;,&quot;text&quot;:&quot;Contact&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://command-services.typeform.com/to/JZuO9Ohe#source=contact-blog"><span>Contact</span></a></p>]]></content:encoded></item><item><title><![CDATA[How to Think of App Ideas]]></title><description><![CDATA[A framework for evaluating app ideas]]></description><link>https://blog.zach.so/p/how-to-think-of-app-ideas</link><guid isPermaLink="false">https://blog.zach.so/p/how-to-think-of-app-ideas</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Mon, 14 Dec 2020 22:57:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vi-e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hi, I&#8217;m Zach &#8212; I&#8217;ve built my app business to about $4m in annual recurring revenue. Building a successful app business is really hard. That&#8217;s why I write a weekly newsletter about the things I&#8217;ve learned along the way. My goal is to help you grow your business and profit. If you want to learn more about the app business, I highly recommend subscribing.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vi-e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vi-e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vi-e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vi-e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vi-e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vi-e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg" width="1000" height="667" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:667,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;gray monkey in bokeh photography&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="gray monkey in bokeh photography" title="gray monkey in bokeh photography" srcset="https://substackcdn.com/image/fetch/$s_!vi-e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vi-e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vi-e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vi-e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F905a7583-229e-4fae-8e4e-8f6050fa766f_1000x667.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The main purpose of evaluating app ideas is to make sure you don&#8217;t waste time building something that nobody wants.</p><p>Now, I&#8217;ll admit right up front that I&#8217;ve made this mistake many times. I&#8217;ve invested hundreds of hours into coding apps only to launch them and realize absolutely nobody wanted them. I&#8217;m going to help you avoid that dreadful experience by giving you some tricks you can use to make informed predictions about how well a certain product will do.&nbsp;</p><p>In this post, I&#8217;ll be outlining my high-level framework for coming up with app ideas as well as my low-level, tactical tricks for testing out ideas before building.</p><h1>Ideas</h1><p>Ideas are fickle. Your idea for anything will only work and generate revenue if it solves an important problem for somebody. <strong>Your idea doesn&#8217;t matter as much as the problem.</strong> It&#8217;s all about figuring out the specific problem you want to tackle.</p><p>Once you&#8217;ve identified the problem, you&#8217;ll need a hypothesis to solve it&#8212;which is where your ideas come in. In the course of building a successful product, you will be testing <em>many </em>ideas and therefore <em>many hypotheses</em>. A particular idea by itself is usually insignificant. <strong>Building a product is the act of repeatedly testing hypotheses that solve a particular problem.</strong> It&#8217;s a waste to emphasize one specific idea because you need to frequently rotate in new ideas. Hypotheses are meant to test and measure your assumptions. Each additional hypothesis you make will inform the next. View your ideas as one point in a trendline&#8212;just one of many, with each dependent on the previous.&nbsp;</p><p>You don&#8217;t know if your idea will work because you don&#8217;t know if it does a good job solving the problem. That&#8217;s why it&#8217;s almost never a good idea to invest significant resources just to test your hypothesis. I know many people who&#8217;ve hired development teams and dropped $50k+ to build an app that ended up flopping because nobody wanted it.</p><p>Likewise, you don&#8217;t want to invest 500 hours into building an app or product that nobody wants. That&#8217;s painful&#8212;as I said before, I know this from personal experience. So start with the problem, build a hypothesis, and test it as you go to ensure you&#8217;re not wasting time or money on a dead end. Forget about your <em>individual</em> idea. Remember, businesses are built on the backs of problems.&nbsp;</p><p>Thinking of ideas is still important, of course. When you become fully immersed in a given field, you&#8217;ll start to think of ideas with an implicit problem. I think of ideas all the time. I&#8217;m not <em>always </em>brainstorming problems and then trying to come up with solutions. That&#8217;s because I&#8217;m fluent in my particular niche of social media. I&#8217;ve built apps in this space, and I know the users and customers of my apps. So with many of my ideas, there already is an <em>implied </em>problem. Ideally, you&#8217;ll be thinking of ideas&#8212;but always through the lens of problems.</p><h2>Becoming an Idea Machine</h2><p>You may not think of yourself as an &#8220;idea machine,&#8221; but I want you to think of yourself that way so I&#8217;ll give you some tips. Thinking of app ideas is very much a learnable skill. This may seem like a stretch, but stay with me here&#8212;it reminds me of how dandelions flower. Dandelion seeds will naturally be picked up by the wind in the right season and drift gently through the air. If a seed is lucky, it&#8217;ll land in fertile ground that has the perfect mix of soil, moisture, and sunlight to grow and flower.&nbsp;</p><p>Likewise, in terms of thinking of app ideas, you want your brain to be fertile ground so that when lightning strikes or you happen to stumble upon an idea, you can properly nurture it into existence. I define <em>fertile ground</em> as you being a cultured, well-informed person. You read books and blogs, both fiction and nonfiction; you talk to smart, creative people frequently; and you&#8217;re generally a curious and optimistic person.</p><p>The reason these characteristics are important is that <strong>app ideas and broader </strong><em><strong>business ideas</strong></em><strong> are often iterative and incremental. </strong>They&#8217;re rooted in a deep understanding of a particular domain&#8212;ideas frequently manifest as an optimization or a twist of existing products or concepts. It is essential that you <em>know what is going on and understand the ground rules of the game you are playing. </em>Being aware of what other companies are doing, how people are living their lives, what the latest cultural trend is&#8212;all of these will be advantageous to you in the field.&nbsp;</p><p>In the end, your ideas are the product of your mind. Anything you can do to improve your mind will help you think of more thoughtful, cohesive ideas. Here are some mental exercises you can do to become a more creative, thoughtful person:</p><p><em><strong>Tinkering&#8212;building things for fun with no clear objective</strong></em><strong>. </strong>To properly think of new ideas, you need to know what is possible. This is why it&#8217;s good practice to always be playing around with emerging tech, tinkering with new APIs, and following your curiosity without clear objectives.</p><p>I used to be very objective-driven. I needed to see a clear, often financial benefit from whatever I was learning or I couldn&#8217;t focus. This happened a lot in college; I&#8217;d often think about some material we were learning and wonder, &#8220;How is this going to help me make money in the future?&#8221; Now, I realize that learning new skills&#8212;especially the kinds that don&#8217;t directly help you make money&#8212;will improve your ability to think of ideas and solve problems creatively.&nbsp;</p><p>Over the summer, I was organizing in my apartment and preparing for a move. I don&#8217;t even know why, but this crazy idea crossed my mind&#8212;what if I made a database of every single piece of clothing I owned and kept track of what I wore every day? At first glance, this idea sounds crazy. I don&#8217;t even know why it popped into my head. There&#8217;s no immediately obvious rational reason to do this, but I decided to try it and see how long I would keep doing it. If you&#8217;re curious what it looks like, <a href="https://airtable.com/shrTTHgxCOTXrrhRr">here it is</a>. I did it for about a week. In the process, I learned how to use Airtable spreadsheeting software and had some fun.&nbsp;</p><p>The bottom line is, by doing this seemingly pointless exercise, I became a more informed, creative person. Someday I might think &#8220;this idea should be built in Airtable&#8221;&#8212; I can safely put Airtable in my toolbox.&nbsp;</p><p><em><strong>Take things a step further</strong></em>. For example, let&#8217;s imagine I&#8217;m designing a new feature for my app that lets users share funny captions with their friends. Instead of just letting people share a caption, how could I take this one step further? I could speech-synthesize the caption and share an audio file, I could make the receiving user play a quick game of tic-tac-toe before they could see the caption, or I could let the user customize the colors, fonts, and image shared with the caption.&nbsp;</p><p>Get into the habit of asking yourself, &#8220;What would this look like if I took it one step further?&#8221; That will flex your creative muscles more and often leads to cool ideas.</p><p><em><strong>Acknowledge that the world can be incredibly unintuitive</strong></em>. So many businesses exist today that would&#8217;ve been considered unthinkable, even insane by people living a few centuries ago. Roblox, Uber, Twilio, iPhones &#8230; it takes an incredible amount of foresight to acknowledge the value of an idea before it gets traction. That&#8217;s because ideas, i.e., what works and what doesn&#8217;t, are incredibly unintuitive.&nbsp;</p><p>I implore you to be comfortable and embrace unintuitiveness, like building random interactions or features in your product just for the sake of it. Base some decisions off your hypotheses and others because ... why not? Try to catch yourself thinking <em>this wouldn&#8217;t work</em> and unpack it a bit. Why wouldn&#8217;t it work? Am I making an unfair assumption about something?</p><div><hr></div><p><em><strong>Pause. You&#8217;re about halfway through the post. I really hope you&#8217;re getting something of value from it. I spent hours and hours writing and revising this piece. If you are enjoying it so far, I recommend subscribing so you can be one of the first people to read my new articles. I also like to ask subscribers what they want me to write about next. So if you&#8217;re curious about any of the topics in this article, make sure you subscribe and vote at the very bottom of the post.</strong></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h1>Finding Problems</h1><p>Problems mean opportunities&#8212;and that means almost all your app ideas should start with a problem. Ideas will only work if they solve some sort of pain point for a group of users.&nbsp;</p><p>You can source problems from your own life or find them in other people&#8217;s lives. Try to catch yourself the next time you&#8217;re thinking &#8220;I wish there was a way to do x.&#8221; If <em>you</em> wish, others are probably wishing too.</p><p>Next, evaluate areas of friction; what annoys you throughout the day. For me, it&#8217;s laundry, cleaning my apartment, getting distracted by notifications on my phone, etc. Anything that annoys you can probably be turned into a useful product. Search the internet. Get on Reddit and see what people are complaining about. What are the latest gripes people are venting about on Twitter?</p><p>Once you have a repository of problems, the next step is trimming the fat around them: understanding the different degrees at which the problem exists and which level makes the most sense for you to tackle. <strong>You&#8217;ll want to reverse engineer the problem until you get to something that feels a bit more generic and broadly applicable.</strong></p><p>For example, say my problem is the absence of good Chinese food around me. That idea can be distilled further and in many different directions. All the following are adjacent problems:</p><ul><li><p>Discovering food around me is hard</p></li><li><p>There aren&#8217;t good restaurants around me</p></li><li><p>Restaurants around me aren&#8217;t using authentic Chinese recipes</p></li><li><p>Only high-end Chinese restaurants around me serve good food</p></li></ul><p>Next, ask yourself &#8220;why&#8221; for each of these questions and start hypothesizing reasons:</p><ul><li><p>Discovering food around me is difficult</p><ul><li><p>Why? Yelp doesn&#8217;t understand my exact food tastes</p><ul><li><p>Yelp/Google/Existing apps don&#8217;t really understand what kind of food I like</p></li><li><p>Yelp/Google/Delivery apps are filled with fake reviews</p></li><li><p>Yelp/Google/Delivery apps are filled with tourists</p></li></ul></li></ul></li></ul><ul><li><p>There aren&#8217;t good restaurants around me</p><ul><li><p>Why? There isn&#8217;t a demand for good restaurants around me</p></li></ul></li></ul><ul><li><p>Restaurants around me aren&#8217;t using authentic Chinese recipes</p><ul><li><p>Why? Customers in my area aren&#8217;t interested in authentic Chinese food</p></li></ul></li></ul><ul><li><p>Only high-end Chinese restaurants around me serve good food</p><ul><li><p>Why? Because their ingredients are expensive and it doesn&#8217;t make financial sense for them to sell me their food at cheap prices</p></li><li><p>Why? Because good authentic Chinese food requires high-quality ingredients that cheaper restaurants can&#8217;t afford</p></li></ul></li></ul><p>Now, we&#8217;ve investigated each of the problems a bit more. Note, I thought up all these hypotheses off the cuff. I didn&#8217;t need to research&#8212;my basic fluency with society, culture, and business gave me enough of a foundation to think of plausible hypotheses.&nbsp;</p><p>That is why being aware of the world around you and being a well-read person is invaluable in entrepreneurship. That&#8217;s also why it&#8217;s easier to operate in a space you&#8217;re an expert in already. If you aren&#8217;t familiar with the space, you&#8217;ll have to invest a lot of time into developing fluency. You simply can&#8217;t build a product in a space you don&#8217;t understand.&nbsp;</p><p>Once you have a list of problems, you&#8217;ll put each of them through a test. Ask yourself two questions:</p><ul><li><p>How many people experience this problem?</p></li><li><p>For the people who experience it, how painful or important is the problem? Or how pleasurable would it be to the person if it were solved?</p></li></ul><p><strong>The key is avoiding problems and/or businesses that are not painful, important, or fun, since that is indicative of a smaller business opportunity.</strong> This will ensure you don&#8217;t build something that nobody cares about. Generally, solving <em><strong>very</strong></em> painful/important/fun problems gives you leverage to charge lots of money. Think lifesaving drugs, private jets, or skydiving&#8212;but they don&#8217;t have a lot of users.&nbsp;</p><p>In contrast, video streaming services like Netflix or Disney Plus have significant amounts of people who are interested in the space, but few who would say it's <em>very important, </em>so these services can&#8217;t charge a lot of money. Though, because there are a <em>lot of people interested in the problem</em>, they can charge <em>a lot of people a little bit amount of money.</em> There is a spectrum here: The more important, painful, and/or fun your problem space is, the more money you can charge, so the fewer customers you need to build a substantial business. Going through those questions is a useful thought experiment to verify your market size and potential to make money.&nbsp;</p><h1>Draft a Hypothesis</h1><p>So, now that we&#8217;ve highlighted why you need to start with a problem, and how to evaluate problems themselves, let&#8217;s talk about how to build your hypothesis.&nbsp;</p><p>Once you&#8217;ve determined a problem, you need to think of a solution for that problem, and that may be your app. Your solution to the problem should be a data-informed hypothesis. For example, this would be my hypothesis based on the above problems:</p><p><em>As a foodie, I struggle to find high-quality, authentic Chinese food. I believe this is because Yelp doesn&#8217;t understand my exact food tastes. I think a high-end (say, $30/month) subscription app that hooked you up with a food critic who spent time understanding your food tastes and then proactively recommended places to you would be an extraordinary business. Anyone who routinely eats out and enjoys new restaurants would be interested</em>.</p><p>By following that chain of &#8220;whys&#8221; in my problem brainstorming, <strong>I was able to identify reasons I believe the problem exists. Now, we are left with a testable hypothesis.</strong></p><h1>Test Your Hypothesis</h1><p>One of the best ways to test a hypothetical idea before writing a line of code is to ask your target users. For example ...</p><ul><li><p><strong>Reddit</strong> - I could go on a niche food subreddit and ask, &#8220;Would you guys be interested in a subscription app that paired you with a professional food critic who learns your tastes over time and proactively recommends you new restaurants and dishes?&#8221;</p></li></ul><ul><li><p><strong>Twitter </strong>- If you have something of a Twitter following and <em>your followers are in your target demographic</em>, ask a similar sort of question;</p></li></ul><ul><li><p><strong>Interviews </strong>- Pay people for their time. You can use a site like <a href="https://www.userinterviews.com/">userinterviews.com</a> or <a href="https://aytm.com/">aytm.com</a> to conduct interviews or surveys with people in your target market. You&#8217;ll ask them if they&#8217;d be willing to pay for a product that did X or you can even try to gauge how important or painful a problem is to them.</p></li></ul><ul><li><p><strong>Keyword Research</strong> - Before building an idea, I really like to see if there is any kind of App Store search volume. I&#8217;m a huge fan of <a href="https://appfigures.com/">Appfigures</a> here. You can search in their Keyword Inspector and see relative volumes of keywords. For example, before building Hashtag Expert, I could&#8217;ve searched &#8220;hashtags&#8221; or &#8220;Instagram hashtags&#8221; or &#8220;hashtag generator&#8221; to see if there are already people interested in this product. &#9;</p></li></ul><ul><li><p><strong>Revenue Estimates</strong> - You can see how much competitor apps are making with a tool <a href="https://sensortower.com/">like SensorTower</a>. If you&#8217;re thinking of building an app in a space where there are already some existing competitors, take a look at their revenue. It&#8217;s a good proxy for seeing if people are willing to pay to solve a problem. Take a look at the revenue for all the Caption-related apps and you&#8217;ll see why I struggle to make money off my Caption Expert app.</p></li></ul><p>Ideally, you want to examine both the micro and macro questions about your problem and hypothesis. At a macro level, you want to figure out in general,<em> <strong>are people in my target demographic interested in this idea?</strong> </em>At a micro level, <em><strong>you want to do in-depth interviews with your target demographic and test your assumptions</strong>.</em> For example, test your assumption that <em>this problem is indeed very painful and people would be willing to pay significant amounts of money for it to be solved. </em>The sooner you can test your assumptions, the better.&nbsp;</p><p>You might run some of these tests and realize your assumptions about the problem are completely wrong: <em>Nobody cares about this problem; it&#8217;s not painful or important to anyone</em>. Then, <strong>go back to the drawing board, look at the different problems you wrote, and repeat the process.</strong> Now you have some data points. Adjust your framing of the problem and build new hypotheses to test.&nbsp;</p><p>If you do get good feedback, you can start building out your solution. Again though, try to test your assumptions and ideas as often as possible so you can course correct. For example, you could build wireframes for your app and then go back to those same people and say, &#8220;Hey this is what I was envisioning for the app, your thoughts?&#8221; You want to incrementally move forward as you approach your minimum viable product (MVP).</p><p>This is all a function of what you&#8217;re good at, however. If you&#8217;re a designer, it might be trivial to throw together app designs in a day. If you&#8217;re a developer, getting a working TestFlight build might take a weekend. The goal is to save yourself time and make sure you are on the right path&#8212;if something is a small time or financial investment for you, then by all means try it.</p><h1>Next Steps, Building</h1><p>I started writing about building out your app ideas, but soon realized that would make this post even longer, and anyway, it&#8217;s a completely separate topic. My goal here was to give you a process and framework for evaluating your app ideas. Hopefully, using these tips and thinking about your ideas through this lens will save you time and empower you to think of more thoughtful and well-formed ideas. </p><div><hr></div><h1>What Should I Write About Next?</h1><p>What&#8217;d you think about this post? Did you find it useful? Make sure you click one of the links below to leave me some feedback and <em><strong>vote on what I should write about next</strong></em>:</p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=paywall-analysis&amp;post=app-ideas-12-14-20">Paywall Analysis - a Breakdown of Real Paywalls and What I Would Change</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=ad-creative&amp;post=app-ideas-12-14-20">Creative - How to Think About Creative for Paid Marketing</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=year-in-review&amp;post=paid-marketing-12-4-20">Year in Review - Lessons I&#8217;ve Learned This Year From My App Business</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=month-in-review&amp;post=paid-marketing-12-4-20">Month in Review - A Granular Breakdown of My Profit/Loss/Expenses the Past Month</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=college&amp;post=app-ideas-12-14-20">College - The Inconvenient Truth About Dropping Out</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=other&amp;post=app-ideas-12-14-20">Something Else</a></p><div><hr></div><p><em><strong>This blog is very much a product of you, the reader. If you want to get early access to my articles, I highly recommend subscribing. I&#8217;m already drafting out my next post so you won&#8217;t want to miss it. I also like to ask readers to proofread my articles and offer criticism so make sure you&#8217;re following me on&nbsp;<a href="https://twitter.com/zachshakked">Twitter</a>&nbsp;if you want to be the first to see these posts.</strong></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Paid Newsletter Survey]]></title><description><![CDATA[Hey friend!]]></description><link>https://blog.zach.so/p/paid-newsletter-survey</link><guid isPermaLink="false">https://blog.zach.so/p/paid-newsletter-survey</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Sat, 12 Dec 2020 19:37:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HriC!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6a66e265-e82d-432c-a836-d3071774fdd6_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey friend! Happy Saturday.</p><p>I&#8217;m thinking of launching a paid tier for my newsletter! I brainstormed some ideas today and I&#8217;m dying to know what you think about it. Would you mind taking this super short survey? Shouldn&#8217;t take more than 2 minutes:</p><p><a href="https://command-services.typeform.com/to/lEFA6tuH">https://command-services.typeform.com/to/lEFA6tuH</a></p><p>Basically, here&#8217;s my overall vision for it. It&#8217;s no secret that I absolutely love being transparent and sharing what I&#8217;ve learned. Writing a post takes a ton of energy because I have to distill my thoughts into concrete, flowing paragraphs. I get a lot of follow up questions after I post these&#8212;what if you could just ask me directly? I want to open myself up to you even more. Based on that, these are my core ideas:</p><ul><li><p><strong>Weekly Zoom Town Halls</strong> - ask me questions about apps, business, or whatever you like in a group setting - 1hr/week</p></li><li><p><strong>Early Article Access / Draft Review</strong> - access to articles before everyone else (1-3 days), see my brainstorming notes, read over my drafts and give me feedback</p></li><li><p><strong>Slack / Discord Community</strong> - join a community of like-minded, profit-centric app developers including me, chat about all things apps</p></li><li><p><strong>Fireside Chats</strong> - I bring some of my app friends on to talk behind closed doors (very transparent) about the app business, what they're learning, etc. (1-2 a month)</p></li><li><p><strong>Transparency Chats</strong> - I'll show you exactly how my Facebook ads, Apple Search Ads, and whatever else you're interested in are set up. Join some of our internal team calls to hear how we discuss certain marketing metrics and plans (1-2 a month)</p></li><li><p><strong>Office Hours </strong>- schedule time with me, 1-on-1 and talk about whatever you want - apps, life, paywalls, business, anything - probably 3-5 45 minute slots available per week</p></li></ul><p>I think this could be absolutely awesome! Please take the survey :) </p><p><a href="https://command-services.typeform.com/to/lEFA6tuH">https://command-services.typeform.com/to/lEFA6tuH</a></p><p></p>]]></content:encoded></item><item><title><![CDATA[A High-Level Framework for Thinking About Paid Marketing for Apps]]></title><description><![CDATA[What I've learned spending ~$2m on ads for my apps]]></description><link>https://blog.zach.so/p/a-high-level-framework-for-thinking</link><guid isPermaLink="false">https://blog.zach.so/p/a-high-level-framework-for-thinking</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Fri, 04 Dec 2020 19:27:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!q5tC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hi, I&#8217;m Zach &#8212; I&#8217;ve built my app business to about $4m in annual recurring revenue. I write a weekly newsletter about the things I&#8217;ve learned along the way to help you grow your business and profit. I highly recommend subscribing for early access to my posts.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q5tC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q5tC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg 424w, https://substackcdn.com/image/fetch/$s_!q5tC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg 848w, https://substackcdn.com/image/fetch/$s_!q5tC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!q5tC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!q5tC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg" width="1000" height="643" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:643,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;New York street during daytime&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="New York street during daytime" title="New York street during daytime" srcset="https://substackcdn.com/image/fetch/$s_!q5tC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg 424w, https://substackcdn.com/image/fetch/$s_!q5tC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg 848w, https://substackcdn.com/image/fetch/$s_!q5tC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!q5tC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F8bba2d94-cd05-4696-a06d-5879d2052978_1000x643.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Paid marketing is like a toolbox. Each ad network and campaign type (your tools) does something different and can be used in different ways. For this reason, it&#8217;s important to take a step back and ask yourself what you are trying to achieve with paid marketing.</p><p>Imagine, for instance, that you want to hang a TV. Of course, you&#8217;d need tools for the job, such as a drill and screwdriver. You&#8217;d also need tools if you want to build a desk, including a saw, wood, and screws.&nbsp;</p><p>Every task requires its own array of tools and materials, and each of the tools can be used in different ways. So before you take out any tools from the toolbox, ask yourself this important question: <em><strong>What am I going to build with these tools?</strong></em></p><p>Only you can answer that; it isn&#8217;t something I can answer for you. But what I can do is show you a framework for thinking about your toolbox, and that&#8217;s what this blog post is all about.</p><p>Before I dive into tactical advice for paid marketing, I want to explain my high-level framework for thinking about advertising. <em><strong>Advertising platforms are constantly changing; what works today will not work tomorrow. And it&#8217;s more important to understand how to think about ads than knowing how to navigate Facebook ads manager.&nbsp;</strong></em></p><p>This post will cover the principles of a good paid marketing strategy without elaboration too much on specifics. <em><strong>At the end of the post is a survey where you can vote on what topic I should cover next.</strong></em> I&#8217;m planning to do a deep dive on one of the principles covered, so if you&#8217;re interested in reading that, <em>make sure you vote</em>.</p><h1>Setting Expectations</h1><p>Paid marketing is unique because the only way to really learn how to do it is to spend money. You can build an app for free, or design a website for free, but in order to practice and learn about paid marketing you have to spend&#8212;and unfortunately, lose&#8212;lots of money on advertising.</p><p>I&#8217;m including this caveat because <strong>it&#8217;s important to expect that you will lose money as you learn and test out paid marketing for your app or business.</strong><em> </em>It&#8217;s just a given. You should view money spent on paid marketing as an investment; yes, even if you get $0 back for everything you spend. If your goal is to scale up your business and grow it, paid marketing can be an incredible tool to help you accomplish that.</p><p>At all times, be aware of the cash position of your business to ensure you aren&#8217;t overstretching yourself financially. Once you have an expert understanding of your cash flow, you can tap into some interesting financial vehicles to add more flexibility to your setup, such as lines of credit, financing companies, and other options.&nbsp;</p><p>Learning to run paid marketing successfully is a valuable skill that will continue to help you in your business and entrepreneurial journey. We are living in a time of unprecedented opportunity with performance marketing. It&#8217;s never been easier to reach ultra-specific segments of users, and beyond that, users who are likely to take a specific action. Being competent in this field will help you with your future business pursuits. If you&#8217;re building apps or other products, take the time to learn about paid marketing. Trust me, it will serve you well.&nbsp;&nbsp;</p><h1>Dispelling the Slimy Notion</h1><p>As I emphasized in a previous post, it&#8217;s important to dispel the notion that advertising is &#8220;slimy&#8221; or &#8220;inorganic.&#8221; If you&#8217;ve built something valuable, there&#8217;s nothing wrong with paying money to put your product in front of other people. In fact, if your app provides value and genuinely helps people, <em>why wouldn&#8217;t you advertise?</em> Apps can bring excitement, fun, escapism, utility, and more. If you are providing that to some people, it&#8217;s practically your obligation to get the word out to other people!</p><p>The truth is, if you are already running a profitable business and <em>not</em> running paid marketing, you are likely leaving money on the table. Not everybody in your target audience is searching for apps organically on the App Store, nor are they having regular discussions with friends about what new apps to try. When you initially start advertising, and you&#8217;ve never advertised before, it&#8217;s quite likely that you&#8217;ll find some really high ROI users who are <em>ideal users</em> for your app, but just never stumbled upon it.&nbsp;</p><p>Likewise, there&#8217;s nothing immoral about advertising tracking. As long as you aren&#8217;t doing anything sketchy with tracking data, you shouldn&#8217;t worry. The main purpose of advertising tracking is to help advertisers show meaningful ads to people based on interest. Zooming out &#8230; isn&#8217;t it good for humanity, the economy, and society that people are being shown products they are interested in?&nbsp;</p><p>Every time I purchase something from an Instagram ad, I&#8217;m glad I was shown that ad. Otherwise, I might never have stumbled upon the product. I recently was shown an ad for a new type of pillow that helps people with stiff necks, and that is <em>exactly</em> the kind of thing I needed. If it helps me get fewer stiff necks, that is fantastic.&nbsp;</p><p>To advertise successfully, you&#8217;ll need to have various advertising software development kits (SDKs) installed in your app and website, like the Facebook SDK and the AppsFlyer SDK. Be aware of how these work, only send information that you feel comfortable sending, and that should be the end of your worries.</p><p>The main goal of including these SDKs is to know where users who downloaded your app came from. If you owned a bodega, would you feel guilty about surveying your customers to understand how they heard about the store? It&#8217;s your store; you should be able to gather some basic info. Likewise, the same is true with the people who download your app.&nbsp;</p><h1>Principles of a Good Paid Marketing Strategy</h1><p>Before you consider spending money on advertising, decide what you hope to get out of it. The core question you need to answer is, <em><strong>What conditions are necessary for my product to be valuable to my users</strong></em><strong>? </strong>Paid advertising is how you metaphorically add gasoline to the aspects of your app that provide value.</p><p>You might have a business in which you are great at converting leads into paying users. Paid marketing can help you get more leads. Or, you might have a business that needs a community of people in order to be valuable. Paid marketing can get you those people. Perhaps you have a subscription app that has really good tech and that functions incredibly without community. Paid marketing can get you more subscribers.&nbsp;</p><p>See where I&#8217;m going with this? You want to outline the aspects of your product that make it most appealing and valuable to users.&nbsp;</p><p>For example, if your app has a network effect in which every additional user makes the app more valuable, it doesn&#8217;t matter how many dollars you get back from your paid marketing. TikTok took the unique step of using performance marketing to acquire users for its social networking app. Few social networks had ever tried this approach and most had relied on word of mouth. TikTok understood that more users creating videos makes the app more entertaining and the ad network more valuable.</p><p>I have a similar dynamic with my app, <a href="https://apps.apple.com/us/app/caption-expert-for-instagram/id1044012234">Caption Expert</a>. It&#8217;s the best database of social media captions out there&#8212;the more people I have submitting captions, the better the community becomes, which leads to more people wanting to download the app, which means the better the captions get &#8230; and so forth.</p><p>This is a statement I wrote explaining how my app, <a href="https://www.hashtag.expert/">Hashtag Expert</a> provides value to users:</p><p><em>My product is a hashtag generator app called Hashtag Expert. Hashtag Expert becomes more valuable when there are more users on it generating hashtags and when our algorithm for generating hashtags helps users get more engagement on their social media.</em></p><p>With this in mind, we already know a few things: <em>I don&#8217;t only care about users who purchase subscriptions. I want as many people on the app as possible because that in itself makes the product more valuable</em>. So my metrics for success are both revenue-generated and retention of new users. Definitely meditate on this topic for a bit.</p><h2>The Elements of a Marketing Machine</h2><p>I like to think of the marketing arm of my company as a machine with various moving parts that all work together. The main parts are:</p><p><strong>Creative:</strong> the images, videos, and advertising copy used to market the product. The purpose of creative is to convince a user to try my product.</p><p><strong>Platform Management:</strong> the act of navigating advertising platforms, selecting audiences, and building campaigns. This is a highly technical aspect of the machine that requires an understanding of how the system works.&nbsp;</p><p><strong>Measurement</strong>: This one has two aspects. <em><strong>Pre-conversion tracking</strong></em>, which includes metrics about how your ads are running, how many people are being shown your ads, how many are clicking on them, and how your ads are being perceived by the ad network&#8217;s automated systems and the users seeing them. Then there&#8217;s <em><strong>post-conversion tracking</strong></em><strong>, </strong>which helps you understand what actions users are taking <em>after </em>they download your app as a result of paid acquisition efforts.&nbsp;</p><p><strong>Macro Objective Tracking: </strong>the act of understanding how your ad spending is affecting your product on a zoomed-out, macro scale. Is paid acquisition ruining your App Store ratings? Is it polluting your user base with low-quality users? How is your top-line revenue being affected? Is your company still profitable?</p><p>These are the elements of the marketing machine. In the beginning, it will be your job to manage all of these aspects. Then, as you continue to learn and scale things up, you can hire people to take over or help with keeping the machine running smoothly.&nbsp;</p><p>Here&#8217;s the most important takeaway: <em><strong>Everything is interconnected and dependent on each other</strong></em>. Your <strong>macro objectives</strong> should inform your <strong>creative</strong> and your <strong>platform management</strong>. <strong>Measurement </strong>should inform your <strong>creative</strong>. <strong>Creative</strong> impacts your results seen through <strong>measurement</strong>.&nbsp;</p><div><hr></div><p><em><strong>Pause. You&#8217;re about halfway through the post. I really hope you&#8217;re getting something of value from it. I spent hours and hours writing and revising this piece. If you are enjoying it so far, I recommend subscribing so you can be one of the first people to read my new articles. I also like to ask subscribers what they want me to write about next. So if you&#8217;re curious about any of the topics in this article, make sure you subscribe and vote at the very bottom of the post.</strong></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2>The Principles of a Cohesive Paid Marketing Strategy</h2><p>Next, I want to discuss some principles that should inform your operating style with paid marketing. In future posts, I&#8217;ll delve more deeply into some of these topics, but understanding each as one piece of a broader marketing strategy is key. I could write 10 pages about creative for your advertising campaigns (and probably will at some point), but your highest-leverage takeaway from this post is this: <em><strong>Creative is just one piece of the marketing machine that can be used to achieve your objective</strong>.&nbsp;</em></p><h2>Iteration</h2><p>Paid marketing is an incredibly iterative process. In the same way you update your app, <strong>you should regularly iterate everything in your marketing machine</strong>, including constantly rotating in new ads. This means not just building variations of your existing ads, but trying totally different ads. You should be testing new audiences every week and trying new ad networks constantly. Change up your messaging all the time. Add emojis to your marketing copy, and change your tone from time to time. Change how your app paywalls and see how that impacts conversion rates.</p><p>See where I&#8217;m going with this? <strong>A good advertising strategy is constantly evolving and </strong><em><strong>very fast</strong></em><strong>. </strong>Operating at a high speed here benefits you in a number of ways.&nbsp;</p><p>First, what works for you will be unintuitive. In my experience, some of my best ads were made in five minutes on a whim, and some of my worst ads were the ones I spent thousands of dollars on. Everything in this space has the potential to be unintuitive. <em><strong>What works and why</strong></em><strong> will rarely be clear. Embrace that fact and try new things constantly from the top to the bottom of your funnel. Go high and low, wide and near.&nbsp;</strong></p><p>Second, advertising is based on auctions and arbitrage. You are bidding against other companies for the same users. How much ROI you get for your ad budget is very much a product of how competitive the market is. <strong>What makes your ads very profitable is not necessarily having the best ad with the best audience,</strong><em><strong> but reaching the best audience with the best ad via a platform that is new and underutilized</strong></em><strong>.</strong></p><p>TikTok is really cheap right now because it is one of the newest platforms. If you are an early adopter and one of the first people to figure out how to make TikTok ads work for your business, you have the potential to see <em>incredible ROI</em>. That&#8217;s why you should always be testing and trying new things in this space. If an ad network creates a new feature, <em>always</em> be the first in line to beta test it.</p><p>Also, understand that what works on one ad network may not work on a different one. For example, consider the difference in intent between Google Search ads and Instagram ads. When I search for something on Google, I&#8217;m showing strong intent and interest in a topic that I organically thought of. In contrast, when I&#8217;m browsing Instagram, I&#8217;m simply enjoying content from people I follow. Therefore, the types of messaging you&#8217;ll need to get me to convert on Instagram versus Google will be <em>completely different</em>. <strong>This is why it&#8217;s important to think of each ad network through its own lens and to </strong><em><strong>always try testing new things.</strong></em></p><h2>Learning by Doing&#8212;Not Outsourcing in the Beginning</h2><p>Learning how to run paid ads is comparable to any other skill. You get better at golf by going to the driving range and playing rounds. You get better at painting by picking up a brush and stroking your canvas. Likewise, learning how to run paid ads requires immersing yourself in the platform and spending some money. <strong>For all beginners with no experience with paid ads, I recommend doing all aspects of it yourself, at least in the beginning.&nbsp;</strong></p><p><em><strong>Pay your dues and build on top of your ignorance with hours of experience. The school of hard knocks is always top-ranked in the country for good reason.</strong></em> I recommend running as much of the marketing machine yourself as possible. You should make ads. You should upload them to Facebook or Snapchat. You should analyze their performance and tweak them. This will help you build up a foundation of experience that is transferable. The ad networks are all very similar&#8212;once you know one, you&#8217;re familiar with most of them. It&#8217;s a basic level of literacy that all founders should have.</p><p>Further, if you reach the point of deciding to outsource aspects of your marketing machine, whether that means hiring graphic designers or an agency to run your ads, <strong>you will be in a stronger position to manage those resources if you have a foundation of experience.</strong></p><p>Most developers can relate to that cringing feeling when they see a non-technical person advising engineers on how to build a product. I&#8217;ve seen it many times myself. Even if you&#8217;ve only built a couple websites or apps and haven&#8217;t touched code in years, that experience alone will put you in a better position to manage engineers in the future. With minimal experience, you&#8217;ll understand that bugs can be tricky and take hours to solve, and that coding for more than a few hours can be utterly exhausting. That teaches you empathy, which will make you a better leader. The same applies to paid marketing. Having a basic level of literacy will help you manage better.&nbsp;<em> </em></p><h2>Messaging</h2><p>Messaging is how you communicate to users in your ads. It might seem simple at first, but it&#8217;s actually very complex and deep. For example, here&#8217;s advertising copy I might run in one of my ads for Hashtag Expert:</p><p><em>Hashtag Expert is the best way to generate hashtags for your social media accounts. Try it today!</em></p><p>In these sentences, which are brief and to the point, I&#8217;m conveying to the user how Hashtag Expert works, followed by a call to action. My goal with this ad is to get the users&#8217; attention and convince them to download the app. Somebody who is already thinking about hashtags might see this, get curious, and decide to download the app.&nbsp;</p><p>Now, take a look at this:</p><p><em>Hashtag Expert is the best way to organically grow your business&#8217;s social media accounts. Start growing today!</em></p><p>Notice the difference? In this sentence, rather than explaining <em>how </em>the app works, I&#8217;m telling you about the<em> benefits </em>the app delivers.&nbsp;</p><p><strong>The point of this exercise is to show you that there are infinite ways to convince users to download your app, and each way has its own pros and cons.</strong> The first example might get more expensive downloads but more conversions to subscriptions, whereas the second might get cheap installs but less conversions. There are probably more people interested in growing their social media accounts than generating the best hashtags.&nbsp;</p><p><strong>So, be aware of what messaging you're using in your ads. Test things completely across the spectrum.</strong> Try conveying exactly in technical terms what your product does, and try touting the benefits your users receive. You can even show that people who use your product are cool, like some fashion brands do.&nbsp;</p><p>I would classify messaging as one level above copywriting. <strong>It&#8217;s the high-level value proposition you are trying to convey to the user.</strong> The goal can be to get the user curious about your product, to produce a sense of mystery, or to simply explain exactly how it works.&nbsp;</p><p>Oftentimes, you can build really intelligent hypotheses about messaging by diving into your analytics and interviewing your users. Who is using your product? How are they using it? <em>Why</em> are they using it?&nbsp;</p><p>For Hashtag Expert, I can dive into analytics and see that people open the app a few times a week, generate a group of hashtags, and copy them onto their post. They do that because they want to get more likes and comments on their posts. They want more likes and comments because they either want to become an influencer or attract attention to their business. So, the messaging in my ads might hit any one of these value propositions.&nbsp;</p><p>Messaging is something you can test relatively easily. <strong>Take one ad and make multiple variations of it where everything is the same </strong><em><strong>except</strong></em><strong> the messaging.</strong> Perform some of these tests, and you&#8217;ll develop a good understanding of what value-proposition speaks best to your audience.</p><h2>Accurate Metrics and Uniform Reporting</h2><p>Performance marketing is very data-driven. You might notice a recurring theme in my posts about how <em>absolutely crucial</em> it is to have accurate reporting. Be sure to use an event-based analytics provider like Mixpanel or Amplitude to properly track how users are using your product. Further, you need accurate revenue metrics, and a provider like RevenueCat with its integrations/webhooks can do just that.&nbsp;</p><p>You&#8217;ll need a Mobile Measurement Partner (MMP) like AppsFlyer or Adjust to run advertisements right now. I&#8217;m still following tech news to see how <a href="https://www.revenuecat.com/blog/skadnetwork-ios-14">iOS 14 IDFA changes will affect everything</a>, but at this moment I plan to continue using an MMP once IDFA is officially dead. It appears that SKAdNetwork will be a workable solution for app developers.</p><p>I&#8217;d also recommend storing all the attribution and revenue data in your own internal database. For instance, I have a database that lets me see every user, their AppsFlyer attribution dictionary (which tells me exactly which ad they came from), and how much revenue that user generated by reading RevenueCat webhooks. <strong>Having this setup in my own internal database empowers me to play with the data however I choose.</strong></p><p>For example, I recently put together an <a href="https://shakd.tryretool.com/embedded/public/a0ea0bf4-8b2c-4a36-9293-737c3d77c6e5">ARPU dashboard</a> that allows me to estimate average revenue per user by a bunch of filterable parameters. I built this one Sunday on a whim because I had the data in my internal database.&nbsp;</p><p>Granted, AppsFlyer metrics are very helpful. I can see cohorted return on ad spending there, and they will actually pull in cost data from all the ad networks. That&#8217;s very helpful and saves me a lot of time. Nonetheless, it is worth maintaining your own accounting of revenue and attribution for the sake of flexibility and reliability.&nbsp;</p><p>You can trust your own numbers more than the Facebook ads dashboard.</p><p>Also, being able to compare all networks in the same place is really helpful. In practice, the Facebook ads dashboard is not always accurate. The Snapchat dashboard and TikTok dashboard also have their own issues. By having all those data sources connected to AppsFlyer, I can compare them to each other in the same place.&nbsp;</p><p>In another post, I&#8217;ll talk about my exact setup, but feel free to ask specific questions in the comments below.&nbsp;</p><h2>High-Level Metrics</h2><p>I want to re-emphasize that advertising is a means to an end. Make sure that you are on track and achieving those macro goals on a day-to-day basis.&nbsp;</p><p>I know it&#8217;s easy to get lost in the micro-optimization of Facebook ads and the super granular metrics like cost per click and relevance scores. But your goal is to make sure your business is functioning as you expect.</p><p>That desire led me to build my original <a href="https://www.zach.so/dashboard">&#8220;profit&#8221; dashboard</a>. It doesn&#8217;t measure return on ad apend, it answers the following questions: How much revenue did I generate? How much did I spend on ads? And what&#8217;s the difference between those two numbers? I care about that number a lot because it&#8217;s essentially my operating budget for the rest of my company. If I see those profit numbers dip, it could be a sign that my ads are not doing as well as I&#8217;d estimated, which means I might not be able to pay the advertising invoices.&nbsp;</p><p>From the start, <strong>you should always be aware of the high-level metrics you care about. </strong>Throw them into a dashboard and make that dashboard the first thing you check every morning. I&#8217;ve found that I make the most money when I&#8217;m super-cognizant of my progress day to day. A string of days comprise a month&#8212;if you are profitable every day and adjust course on days when you&#8217;re not, that will lead to profitable weeks, months, and years.</p><h2>Paywalls</h2><p>One technique I&#8217;ve used that has allowed me to reach $100k+ a month in advertising spending is changing my paywalls depending on where the user comes from. <a href="https://blog.zach.so/p/a-comprehensive-guide-to-app-pricing">As I discussed in a previous post</a>, it&#8217;s helpful to be able to remotely control your paywall and dynamically determine what paywall to show a user.&nbsp;</p><p>I&#8217;m running ads with the goal of converting users to subscribers. I need people to subscribe because I am a bootstrapped company, which means I don&#8217;t have an infinite amount of money in the bank. If I spend $100,000 on ads, I need to get at least $100,000 back pretty quickly so I can pay off my advertising bills at the end of the month.</p><p>So, for users who come from paid ads on Facebook, I show them only a yearly subscription option and they must subscribe to use the app&#8212;there is no free tier. Whether this is a sustainable long-term strategy is certainly up for debate. I didn&#8217;t bring it up, however, to convince you to try this technique.&nbsp;</p><p><strong>The point is you should constantly be examining and tweaking your onboarding and paywalling experience for each advertising channel.&nbsp;</strong></p><p>Let me unpack this a bit. Many developers see that they're not getting ROI on their ads and they don&#8217;t optimize anything post-installation. <strong>The post-install flow is an essential part of the success of your advertising.</strong> So, you should be analyzing this, looking at your event-based analytics for users who come from paid ads to see how they use the app and where they are getting stuck. Maybe people who find your app organically are more technical and understand your product better, and you need to make your onboarding more informative for users who come from paid ads. Either way, definitely pay attention to post-install optimization as that can have a <em>major</em> impact on the success of your advertising.</p><h2>Now, about that survey ...</h2><p>If you made it this far, I hope you learned something you can use. Paid advertising is an incredibly complex and in-depth topic. I couldn&#8217;t go as deep as I&#8217;d like on each of these topics, so I condensed things to make a nice primer that focuses more on the high-level strategy and mindset necessary to run successful ads.&nbsp;</p><p><strong>What should I write about next week? Click on a link to vote below:</strong></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=creative&amp;post=paid-marketing-12-4-20">Creative - How to Think About Creative for Paid Marketing</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=app-ideas&amp;post=paid-marketing-12-4-20">App Ideas - How to Come Up With Profitable App Ideas</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=year-in-review&amp;post=paid-marketing-12-4-20">Year in Review - Lessons I&#8217;ve Learned This Year From My App Business</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=month-in-review&amp;post=paid-marketing-12-4-20">Month in Review - a Breakdown of My Profit/Loss/Expenses the Past Month</a></p><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=college&amp;post=paid-marketing-12-4-20">College - The Inconvenient Truth About Dropping Out</a></p><div><hr></div><p><em><strong>This blog is very much a product of you, the reader. If you want to get early access to my articles, I highly recommend subscribing. I&#8217;m already drafting out my next post so you won&#8217;t want to miss it. I also like to ask readers to proofread my articles and offer criticism so make sure you&#8217;re following me on <a href="https://twitter.com/zachshakked">Twitter</a> if you want to be the first to see these posts.</strong></em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[What should I write about next?]]></title><description><![CDATA[Hey, I know I just published yesterday, but I&#8217;m already starting to plan my next post.]]></description><link>https://blog.zach.so/p/what-should-i-write-about-next</link><guid isPermaLink="false">https://blog.zach.so/p/what-should-i-write-about-next</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Sat, 28 Nov 2020 17:55:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HriC!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6a66e265-e82d-432c-a836-d3071774fdd6_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey, I know I just published yesterday, but I&#8217;m already starting to plan my next post. I&#8217;m aiming for weekly posts so need to get started early. So, <strong>what should I write about next?</strong></p><p>Here are some ideas I have already&#8212;click the link to vote!</p><ul><li><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=college">The Unfortunate Truth About Dropping Out of College</a></p></li><li><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=app-ideas">How to Choose App Ideas</a></p></li><li><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=hiring">How to Hire/Outsource as an Indy Dev</a></p></li><li><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=paid-marketing">How to Run Paid Marketing for Your App Business</a></p></li><li><p><a href="https://command-services.typeform.com/to/iA1M4WpS#vote=organic-marketing">How to Launch Your App With Organic Marketing</a></p></li></ul><p>If you have an idea that&#8217;s not listed, feel free to submit it via <a href="https://command-services.typeform.com/to/iA1M4WpS#vote=custom">this two-question survey.</a> Feel free to leave to comment below with your ideas as well. Have a good weekend!</p>]]></content:encoded></item><item><title><![CDATA[A Comprehensive Guide to App Pricing Strategies and Tools]]></title><description><![CDATA[Tips and tricks I've learned from building my app business]]></description><link>https://blog.zach.so/p/a-comprehensive-guide-to-app-pricing</link><guid isPermaLink="false">https://blog.zach.so/p/a-comprehensive-guide-to-app-pricing</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Fri, 27 Nov 2020 23:22:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IL94!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Figuring out how to price an app is one of the most difficult challenges of building a successful app business. Pricing is also a topic that is infinitely deep; any one of the topics I cover in this post could easily become its own 200-page book. So rather than teaching you how to price an app, I&#8217;ll show you how I think about it in practice and will reveal the biggest lessons I&#8217;ve learned.</p><h1>Prerequisites for Pricing an App</h1><p>Although none of these are necessarily <em>required</em>, putting these ideas into practice will help you make more informed pricing decisions. In fact, you&#8217;ll have trouble finding a successful pricing strategy without them. There are exceptions, of course, and the one-size fits all same approach won&#8217;t work for everyone. But I recommend checking off these boxes and following the steps.</p><h2>Have a Regular Flow of New Users</h2><p>If your app has zero users, the pricing structure you choose doesn&#8217;t matter. In that regard, you&#8217;ll want at least 50+ app installs a day, while retaining at least some of the users for a few weeks and/or months. This is evidence that your app is providing utility to users, which means there is an opportunity to generate revenue. It also gives you a big enough sample size to start surveying your users.</p><h2>Chutzpah: &#8220;Extreme Self-Confidence or Audacity&#8221;</h2><p>Do not be afraid to charge money. I think all first-time developers start out feeling a little shy about selling their product, but <strong>don&#8217;t gate-keep yourself from making money.</strong> Let the market decide if your prices are fair.&nbsp;</p><p>Once you start making money, you&#8217;ll get your occasional bad review or angry user email&#8212;we&#8217;ve all been there. But trust me, you&#8217;ll develop a thick skin and stop feeling bad when these things happen.&nbsp;</p><p>The fact is, publishing an app on the App Store requires intelligence and hard work. You spent your own valuable time engineering a product designed to improve people&#8217;s lives in some way. So it is <em>okay</em> to ask your users to pay for your product. It is even <em>okay </em>to ask your users to pay <em>lots</em> of money for it. There&#8217;s nothing wrong with making a $1,000/year product if it provides some users with $1,000 worth of value.</p><p>I&#8217;m emphasizing this point because I know there are innumerable indy developers out there leaving money on the table. Our favorite company, Apple, isn&#8217;t afraid to ask customers to pay a premium price for its products, and you shouldn&#8217;t be either. <strong>Never assume that you know how the market will react to certain pricing.</strong> Try things, gauge the reaction, and adjust accordingly.</p><h1>Pricing Model</h1><p>Right now it seems like everybody is offering a subscription app, and for good reason. Subscriptions are one of the best ways to make a dependable, stable living off the App Store. However, it&#8217;s important to first consider which model makes sense for your app. I&#8217;ve tried to fit all my apps into the subscription category, but the truth is, whether that&#8217;s feasible or not really depends.</p><p>Here are some questions I ask myself when deciding on a pricing model:</p><ul><li><p><strong>Who is using my product?</strong> How old are they? What gender do they identify with? What countries are they from? What languages do they speak? These are important criteria to know when determining how much money users have and how willing they are to spend their money on an app.&nbsp;<br><br>There are some pretty intuitive learnings here that I&#8217;ve validated with my own data. For example, older users and/or those from richer countries with more disposable income are more likely to spend money, whereas kids are less likely to spend money.<br></p></li><li><p><strong>Why are they using my product?</strong> Is it for entertainment? Does it help them run their businesses better? Does it help them improve their health? Do they see this product as an investment?</p></li></ul><p>I&#8217;ve learned that two of my apps (Hashtag Expert and Command) attract business users who are using the products to grow their own businesses. They see my apps as a justifiable expense where there will be ROI; thus, for them a subscription makes sense.</p><p>My other app (Caption Expert) appeals to kids and young adults. They use my product for fun and because they&#8217;re younger, they don&#8217;t have a lot of disposable income. With this particular app, I&#8217;ve had little to no success with subscriptions despite trying everything to make them work, so I&#8217;m exploring ads and other creative solutions.</p><p>I&#8217;ll dive deeper into all this at some other point, but the important takeaway here is: <strong>Think strategically about what pricing model makes sense for your app and your users because the same method won&#8217;t work for everyone.</strong></p><h1>Your Tool Kit for Figuring Out Pricing</h1><p>Pricing <strong>must </strong>be viewed as an iterative process. It is never &#8220;finished,&#8221; and you need to constantly revisit your approach. <strong>The iterative process means you determine a hypothesis, test it, analyze the results, and repeat. You keep doing this over and over for &#8230; well, forever.</strong></p><p>There are lots of different vectors to be testing on: when you show the paywall, what terms your subscription offers, what features are part of the premium tier, whether there is a free tier, and others. Before discussing those variables, here are what I consider the most important tools to have in your app pricing toolbox.</p><h3><strong>Event-Based Analytics</strong></h3><p>This one is often overlooked, and it&#8217;s <em>essential </em>for pricing. <strong>You need a tool like Mixpanel or Amplitude to trigger thoughtful, important events throughout the user journey that you can dig deeper into.</strong> Firebase/Google Analytics/App Store Connect Analytics are not enough.&nbsp;</p><p>Seriously, do not overlook this point. Without advanced event-based analytics, it is not possible for you to understand how users are using your app. Which features get the most attention? Which features are being completely ignored? What does a normal app session look like? These are all critical questions for which you need answers, and the only way to get those answers is through event-based analytics.</p><p>I realize you may be concerned that these analytic tools are expensive, and they are. I&#8217;m paying $28k per year for Mixpanel right now. However, Mixpanel and Amplitude both have <em>very</em> generous free tiers&#8212;Mixpanel allows you 100k monthly users and Amplitude allows you 10 million events per month, both 100 percent free. Take advantage of them now and worry about the pricing later.</p><p>I want to highlight two analytics features that are particularly useful for pricing. First, <strong>macro trends</strong> around purchasing and usage. Shown here is an example metric that I use routinely to find out how many people complete onboarding in the app and purchase a subscription or start a free trial.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IL94!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IL94!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png 424w, https://substackcdn.com/image/fetch/$s_!IL94!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png 848w, https://substackcdn.com/image/fetch/$s_!IL94!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png 1272w, https://substackcdn.com/image/fetch/$s_!IL94!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IL94!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png" width="1456" height="559" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:559,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IL94!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png 424w, https://substackcdn.com/image/fetch/$s_!IL94!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png 848w, https://substackcdn.com/image/fetch/$s_!IL94!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png 1272w, https://substackcdn.com/image/fetch/$s_!IL94!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F88298b3f-d79c-4c35-963a-b442aa8254b6_1456x559.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is a macro-trend chart. I don&#8217;t see how individual users are going through this flow; I only see high-level stats.</p><p><strong>User journeys </strong>comprise the second essential analytic. In Mixpanel, for instance, I can zoom in to any user and see what individual events the person has triggered. Further, I can filter this to see how paying users are using the app or how people who have at least 25 sessions (high-retention users) are using the app. Here&#8217;s that kind of activity.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UOV3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a2b636-fcf5-4b04-aa42-4f4eb76379b9_1456x810.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UOV3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a2b636-fcf5-4b04-aa42-4f4eb76379b9_1456x810.png 424w, https://substackcdn.com/image/fetch/$s_!UOV3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a2b636-fcf5-4b04-aa42-4f4eb76379b9_1456x810.png 848w, https://substackcdn.com/image/fetch/$s_!UOV3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a2b636-fcf5-4b04-aa42-4f4eb76379b9_1456x810.png 1272w, https://substackcdn.com/image/fetch/$s_!UOV3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a2b636-fcf5-4b04-aa42-4f4eb76379b9_1456x810.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UOV3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a2b636-fcf5-4b04-aa42-4f4eb76379b9_1456x810.png" width="1456" height="810" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b4a2b636-fcf5-4b04-aa42-4f4eb76379b9_1456x810.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:810,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UOV3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a2b636-fcf5-4b04-aa42-4f4eb76379b9_1456x810.png 424w, https://substackcdn.com/image/fetch/$s_!UOV3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a2b636-fcf5-4b04-aa42-4f4eb76379b9_1456x810.png 848w, https://substackcdn.com/image/fetch/$s_!UOV3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a2b636-fcf5-4b04-aa42-4f4eb76379b9_1456x810.png 1272w, https://substackcdn.com/image/fetch/$s_!UOV3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4a2b636-fcf5-4b04-aa42-4f4eb76379b9_1456x810.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After looking at 10 to 15 users, you&#8217;ll start to notice usage trends. For example, people will typically open Hashtag Expert a few times a week, generate a group of hashtags, and copy them. Their sessions will last between one and two minutes. I&#8217;ve spoken to a handful of indy developers, and one of the most surprising things I learn is how few people have event-based analytics implemented. Hopefully, by now I&#8217;ve convinced you.&nbsp;</p><p><strong>Also, your analytics must be </strong><em><strong>accurate.</strong></em>For a while, I struggled with having accurate purchase events, and then I met Jacob Eiting and started using RevenueCat. One of the most useful features it has is integrations. I have a Mixpanel integration set up so all purchase events are triggered remotely and are 100 percent accurate.&nbsp;</p><p>I would advise against manually triggering purchase events in your iOS codebase because StoreKit is weird, and I&#8217;ve never been able to get accurate, locally-triggered purchase events. Also, if the user doesn&#8217;t open your app, you&#8217;ll be missing events, which is why having purchase events done through RevenueCat is really helpful.</p><h3><strong>Remote Control Paywalls</strong></h3><p>You&#8217;ll want the ability to control your paywall from a server, which will allow you to make updates without needing Apple&#8217;s approval each time. You&#8217;ll also want to submit new products to App Review and immediately integrate them into the app without triggering an update. I have a backend that I call my PaywallService&#8482;, and it stores some basic user information and endpoints. On app launch, basic user analytics information and advertising attribution are saved to this backend. Then, based on that data, a &#8220;paywall&#8221; will be returned which is essentially a JSON blob.</p><p>Here&#8217;s an example of a JSON paywall in my backend service and how it controls the behavior of a paywall in the app.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!G5iX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F69cd9977-b07e-4945-aea6-a8ba0ed32e7a_892x926.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G5iX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F69cd9977-b07e-4945-aea6-a8ba0ed32e7a_892x926.png 424w, https://substackcdn.com/image/fetch/$s_!G5iX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F69cd9977-b07e-4945-aea6-a8ba0ed32e7a_892x926.png 848w, https://substackcdn.com/image/fetch/$s_!G5iX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F69cd9977-b07e-4945-aea6-a8ba0ed32e7a_892x926.png 1272w, https://substackcdn.com/image/fetch/$s_!G5iX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F69cd9977-b07e-4945-aea6-a8ba0ed32e7a_892x926.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!G5iX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F69cd9977-b07e-4945-aea6-a8ba0ed32e7a_892x926.png" width="892" height="926" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/69cd9977-b07e-4945-aea6-a8ba0ed32e7a_892x926.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:926,&quot;width&quot;:892,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!G5iX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F69cd9977-b07e-4945-aea6-a8ba0ed32e7a_892x926.png 424w, https://substackcdn.com/image/fetch/$s_!G5iX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F69cd9977-b07e-4945-aea6-a8ba0ed32e7a_892x926.png 848w, https://substackcdn.com/image/fetch/$s_!G5iX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F69cd9977-b07e-4945-aea6-a8ba0ed32e7a_892x926.png 1272w, https://substackcdn.com/image/fetch/$s_!G5iX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F69cd9977-b07e-4945-aea6-a8ba0ed32e7a_892x926.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Let&#8217;s break that down a bit. Offering ID corresponds with a RevenueCat offering, which means at any time I can submit a new product to Apple, configure it on RevenueCat, and start showing it to users. Pricing text is a string that&#8217;s used to describe how the pricing is written (not shown in the above screenshot). Cancel behavior determines when the cancel button appears.</p><p>Your implementation doesn&#8217;t necessarily need all these parameters and can look totally different from mine. <strong>The key here is your ability to remotely control important elements of your paywall, especially products, so you can dynamically enable new products.</strong></p><h3><strong>Surveys</strong></h3><p>Two surveys you should regularly be conducting with your users: a product-market fit/general feedback survey and a pricing survey.</p><p>For the product-market fit survey, you can ask any range of questions, but your goal is to get general feedback about your product. If you have outrageous pricing, you will start to see that kind of feedback here. I do a combination of<a href="https://firstround.com/review/how-superhuman-built-an-engine-to-find-product-market-fit/"> Rahul Vohra&#8217;s Superhuman PMF survey</a> and<a href="https://www.surveymonkey.com/mp/net-promoter-score/"> NPS</a>. You ideally want to ping users to complete this survey after they&#8217;ve experienced the core benefit of your product.</p><p>I do this in Hashtag Expert after the user has copied a certain amount of hashtag groups. I send a friendly, Intercom-like message requesting that the user complete the survey. You can ask users via email, push notification, or whatever method you prefer. The key here is making sure you have a constant influx of survey responses.&nbsp;</p><p>You shouldn&#8217;t be manually surveying users once a month for this purpose (although you can do it for different objectives). Instead, regularly survey new users as they experience the product so you can gauge first impressions over time and identify trendlines.</p><p>For the pricing survey, ask users some more in-depth questions about pricing. I use the<a href="https://en.wikipedia.org/wiki/Van_Westendorp%27s_Price_Sensitivity_Meter"> Van Westendorp method</a> which attempts to understand users&#8217; price sensitivity. Here are the basic questions:</p><ul><li><p>At what price would you consider the product to be so expensive that you would not consider buying it? (Too expensive)</p></li><li><p>At what price would you consider the product to be priced so low that you would feel the quality couldn&#8217;t be very good? (Too cheap)</p></li><li><p>At what price would you consider the product starting to get expensive, so that it is not out of the question, but you would have to give some thought to buying it? (Expensive/High Side)</p></li><li><p>At what price would you consider the product to be a bargain&#8212;a great buy for the money? (Cheap/Good Value)</p></li></ul><p>After asking these questions, you can analyze the data to inform your pricing hypotheses. Again, the key is surveying new users at the same point in the user journey. Here is <a href="https://command-services.typeform.com/to/LfLyRCt2#userid=xxxxx&amp;activeproduct=xxxxx&amp;country=xxxxx&amp;timezone=xxxxx">the survey I use</a>. It&#8217;s an example, so feel free to go through the entire survey and submit results.</p><h1>Variables</h1><p>We&#8217;ve established that pricing is an ongoing, iterative process. Before we dive into the variables to test and tweak, I want to highlight an important point regarding testing philosophy.</p><p>First, design your tests to be robust and scientific. Randomly decide which user gets the cheaper price or which users only get offered weekly. Give your tests enough time to run and conduct a thorough analysis of the data. Always remember to consider statistical significance for everything you&#8217;re testing. What you are able to test depends on how big your sample size is. For example, you&#8217;d need a lot of data to find out whether $35/year or $30/year is better. Keep that in mind.</p><p>Next, <strong>macro-optimize before your micro-optimize. </strong>You will make progress more quickly if, before optimizing the color on your CTA button, youtest whether $20/year or $100/year leads to higher revenue per user. <strong>Make your tests extreme until you start to notice trends and figure out a successful, optimized system.</strong> Then, dial-in to the nuts and bolts of your paywall and flow.</p><h3><strong>When You Paywall</strong></h3><p>So when should you show your paywall and how often? I&#8217;ll save you some time &#8230; <em>always</em> show your paywall on first app launch. You want as many people as possible to see it (as in, &#8220;You miss 100% of the shots you don&#8217;t take.&#8221;)&nbsp; Your paywall should not be buried or hidden. Rather, <strong>it should be incredibly obvious to your users that there is a paid tier of the app.</strong> If they want to convert, they should be able to do so easily.</p><p>I show the paywall on every single app launch. It&#8217;s the first thing you see if you haven&#8217;t paid. I also like to dangle paid features in front of the user. You get excited that you can use a certain feature (there&#8217;s no indication that it&#8217;s a premium feature), and then after you tap it, I show you the paywall and I highlight the value of that specific feature. You can go even further and let the user <em>use</em> a certain feature a few times and say &#8220;This is a premium feature, you can use it two more times for free!&#8221;</p><p>I&#8217;ve noticed that many indy apps and indy developers are shy about showing their paywall. You can figure out where on the spectrum you fit from pushy/annoying to hidden. I tend to lean toward the pushier side because I&#8217;m trying to grow my business and every dollar counts.</p><h3><strong>What You Paywall</strong></h3><p>You also need to decide where you want to be on the spectrum of pricing aggressiveness. My general advice is to<strong> be </strong><em><strong>pushier</strong></em><strong> with the features you make premium, and make your free tier as barebones as possible</strong>. How your paywalling techniques are perceived is solely dependent on your messaging and brand. For example, if you advertise your product as a premium, elite app that clearly costs money, people won&#8217;t be mad. <strong>What</strong><em><strong> will</strong></em><strong> make users mad is if there&#8217;s a disconnect between expectations and reality. </strong>If you make certain features premium and get pushback from users, that doesn&#8217;t necessarily make you an asshole. Chances are, your messaging wasn&#8217;t clear enough for customers.</p><p>This is another space where you can dig into your event-based analytics and see which features high-retaining users are using. If you make your app free to start, you&#8217;ll have a good sample of users to dig into. Analyze the most popular features and put those behind a paywall. (Obviously, you should always grandfather in legacy users with free access if they were told the app was free).</p><p><strong>One of the easiest ways to start making a lot more money off your app is to paywall </strong><em><strong>everything</strong></em>&#8212;meaning, users only get access to a demo version of your app if they pay. They can poke around or use some features a limited number of times, but there is no free tier on the app.&nbsp;</p><p>One benefit of this approach is you&#8217;ll get a quicker signal on whether people are willing to pay for your product.<strong> If </strong><em><strong>all</strong></em><strong> features are premium. you eliminate the possibility of paywalling the </strong><em><strong>wrong</strong></em><strong> features. </strong>This will allow you to make substantially more money, but you may get some bad user reviews and it may not be in your best interests. For example, in Hashtag Expert we benefit when more people are creating hashtag groups, so it doesn&#8217;t make sense for us to paywall everything. Your app, however, may not benefit materially from free users.</p><h3><strong>Pricing</strong></h3><p>In terms of how to choose the actual price of your product, I suggest leaning on your pricing survey data. Determine the general range people feel comfortable with, and then pick a number. Check out what competitor apps are charging. You&#8217;ll want to be in the same ballpark unless your positioning is totally different.</p><p>Generally, it&#8217;s best to focus on extreme test cases until you figure out your place in the market. Your pricing decision, for instance, should not be between charging $30/year and charging $35/year&#8212;but between charging $30/year and $90/year, or between $5/month and $30/month. This is especially important when you have a limited sample size.</p><p>When you have thousands of new installations a day, suddenly you can get meaningful data from micro-price tests. Be aware of statistical significance and use <a href="https://www.evanmiller.org/ab-testing/chi-squared.html">a tool like this</a> to analyze your data and make sure you aren&#8217;t fooling yourself. You are really trying to figure out the price elasticity curve of your user base. At what price does your product become so expensive that it feels premium, but not like a rip-off? Again, this is where the survey data can provide valuable clues.</p><h3><strong>Plans</strong></h3><p><strong>I&#8217;ve found in my testing that offering more plans helps increase average revenue per user. </strong>In other words,offer a weekly, monthly, <em>and</em> yearly option so there is something for everyone. I typically make my yearly options significantly cheaper than weekly and monthly. I do this because my business is bootstrapped and I have bills to pay. I need as much money upfront as possible, which means I want as many users to choose the annual option as possible. Otherwise, I&#8217;d have to wait a number of weeks or months to get an equivalent amount of money.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!acaJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffd0dd0-bccc-4cf7-af56-3d513608ee96_780x410.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!acaJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffd0dd0-bccc-4cf7-af56-3d513608ee96_780x410.png 424w, https://substackcdn.com/image/fetch/$s_!acaJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffd0dd0-bccc-4cf7-af56-3d513608ee96_780x410.png 848w, https://substackcdn.com/image/fetch/$s_!acaJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffd0dd0-bccc-4cf7-af56-3d513608ee96_780x410.png 1272w, https://substackcdn.com/image/fetch/$s_!acaJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffd0dd0-bccc-4cf7-af56-3d513608ee96_780x410.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!acaJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffd0dd0-bccc-4cf7-af56-3d513608ee96_780x410.png" width="780" height="410" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/bffd0dd0-bccc-4cf7-af56-3d513608ee96_780x410.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:410,&quot;width&quot;:780,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!acaJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffd0dd0-bccc-4cf7-af56-3d513608ee96_780x410.png 424w, https://substackcdn.com/image/fetch/$s_!acaJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffd0dd0-bccc-4cf7-af56-3d513608ee96_780x410.png 848w, https://substackcdn.com/image/fetch/$s_!acaJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffd0dd0-bccc-4cf7-af56-3d513608ee96_780x410.png 1272w, https://substackcdn.com/image/fetch/$s_!acaJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffd0dd0-bccc-4cf7-af56-3d513608ee96_780x410.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Likewise, you need to think about your business&#8217;s cash flow needs and your subscription churn. If you are confident that you could keep a weekly/monthly subscriber retained long enough to make more than you would from a yearly subscription with that person, <em>and</em> you don&#8217;t need money upfront, consider encouraging a monthly option.&nbsp;</p><p>Big SaaS companies offer much slimmer discounts on yearly versus monthly subscriptions because they know their churn is really low and that they have plenty of money in the bank. They&#8217;re willing to wait the extra 12 months to get 20 percent more money from you.&nbsp;</p><p>Apps are usually not in this bucket, which is why you see such big disparities in monthly versus yearly pricing. Most app companies <em>need</em> you to take the yearly option. That way, they can pay off their advertising invoices at the end of the month, and then reinvest all that money upfront to grow the business even further.</p><p>That&#8217;s why my yearly subscription is the cheapest.</p><h3><strong>Free Trials</strong></h3><p><strong>Free trials are a powerful way to incentivize users to choose specific plans. </strong>For example, if I offer $30/year with a seven-day free trial <em>or</em> $3.99/month, most users will choose the yearly price. Why? Because of the trial period, which gives users the incentive to convert to the yearly subscription.&nbsp;</p><p>Viewing the free trial as a tool in your toolbox is important when you&#8217;re thinking about what to charge and what you want people to choose. <strong>I suggest only offering free trials on the plans you want people to choose.</strong> If you genuinely don&#8217;t care if users choose weekly/monthly over annual, then feel free to offer a trial there as well.</p><p>Some other thoughts. I haven&#8217;t noticed a big difference in conversion rates between three-day trials and seven-day trials. Seven days feels like a good length of time that balances my need to get paid quickly and the user&#8217;s need to have time to explore the premium features.</p><p>Sometimes it makes sense not to offer a free trial at all. I do this for some of my paid advertising campaigns and it works really well, although the main reason I do it is to make it easier to calculate ROI for a campaign on Day 1. I normally think it&#8217;s a good practice to offer a decent-length free trial&#8212;and remember, <em>you can use it to influence user decisions</em>.</p><h1>TLDR;</h1><p><strong>You should view app pricing as an iterative process. You need a toolkit in place so you can properly measure your pricing strategy&#8217;s success and make informed hypotheses. Then, constantly test your paywalls and pricing by tweaking certain variables, including prices, free trials, what you paywall, when you show the paywall, and others.</strong></p><div><hr></div><p>If you made it this far, thanks for reading. I put a lot of time into writing this. Make sure you <strong>Subscribe</strong> if you enjoyed this post or got some value out of it. I write weekly articles and send out my posts to <strong>subscribers first.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p><strong>What should I write about next? Tap the button below to leave me some feedback.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://command-services.typeform.com/to/wzyKVz6l#post=app-pricing&quot;,&quot;text&quot;:&quot;Answer&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://command-services.typeform.com/to/wzyKVz6l#post=app-pricing"><span>Answer</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Journal #3 - The Laundry Quandary]]></title><description><![CDATA[My journey to never do laundry ever again]]></description><link>https://blog.zach.so/p/journal-3-the-laundry-quandary</link><guid isPermaLink="false">https://blog.zach.so/p/journal-3-the-laundry-quandary</guid><dc:creator><![CDATA[Zachary Shakked]]></dc:creator><pubDate>Fri, 20 Nov 2020 00:47:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Sovp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Sovp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Sovp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Sovp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Sovp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Sovp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Sovp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg" width="1000" height="667" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/df077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:667,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;white textile on blue plastic laundry basket&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="white textile on blue plastic laundry basket" title="white textile on blue plastic laundry basket" srcset="https://substackcdn.com/image/fetch/$s_!Sovp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Sovp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Sovp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Sovp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf077571-da86-430e-aa13-b77417a3632f_1000x667.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now that I&#8217;m an entrepreneur, I have a condition that I call &#8220;treat-everything-as-a-business&#8221; syndrome. My business mind is composed of a complex, almost intangible system for dealing with problems and finding solutions. Decisions are driven by data. Leverage is coveted. Improvements are constantly sought after. This is true even for the most mundane tasks, like &#8230; doing laundry.</p><h2>The dilemma</h2><p>I used to live in an apartment building in New York on the 26th floor. The building was 31 floors high. There were two sets of elevators&#8212;one for floors 1 through 15, and one for floors 16 through 31. This was good because I could get from the lobby up to my apartment much quicker, but there was a problem: The laundry room was on the 4th floor. So in order to do a load of laundry, I had to carry my laundry basket from my apartment on the 26th floor down to the lobby, switch elevators, and then take the laundry up to the 4th floor.</p><p>As you&#8217;ve probably figured out by now, doing one load of laundry required multiple trips. I took two elevators to put my load in the washer, then two elevators to get back to my apartment while I waited for the 40-minute load to finish.</p><p>After my 40-minute wait, I was back in the elevator that took me to the lobby, switched to the second elevator, went to the laundry room to move my laundry from the washer to the dryer, and then two elevator trips later I was back in my apartment for a 50-minute for the dryer.</p><p>Fifty minutes later I was repeating the arduous process again: two elevators to get the laundry, and two elevators to take it back to my apartment. Once there, I spent 30+ minutes folding it and another five to ten minutes putting it away.&nbsp;</p><p>This was the scenario every time I had to do laundry. And because the laundry room was hot, and I had to run back and forth so much, I&#8217;d end up getting sweaty during the 2+ hours it took to complete this whole process. And I couldn&#8217;t possibly get any work done when I could only focus for 30 minutes at a time.&nbsp;</p><p>There simply had to be a better way.&nbsp;</p><h2>Searching for solutions</h2><p>For a while, I started using a valet service in my building. I&#8217;d pay them about $40 to do my laundry, and a few days later it was all nicely folded and ready for me to pick up. Again, I had to do an elevator round trip to scoop it <em>and</em> during business hours. Once I was in possession of my clean and folded laundry, I lugged the heavy bag back up to my apartment and put my clothes away&#8212;or at least, that was my intent. I found this to be the most annoying part, with all that bending down and picking up each item of clothing, figuring out where it was supposed to go, over and over.&nbsp;</p><p>Because of my annoyance with this task, I ended up leaving the folded laundry in the bag and just taking clothes out as I wore them. But this was far from ideal because I seemed to run out of clothes more than when I did my own laundry. (Don&#8217;t ask me why.) So in addition to the valet doing my laundry, I was also doing laundry &#8230; and back to the dreaded elevator hopping again. Not okay.</p><h2>Problem solved!</h2><p>Then, being the entrepreneur I am, I thought of a <em>brilliant</em> idea. At the time, I routinely had my apartment cleaned by a nice cleaning lady, and I asked her if she&#8217;d be interested in helping me out with my laundry. I explained that this would involve doing the laundry, taking the necessary elevator trips, folding it, and putting it away <em>correctly</em>, which she cheerfully agreed to do. We worked out a fair rate for her time, I gave her my laundry card, and then I went to WeWork for the day.&nbsp;</p><p>That evening I came home to a most beautiful sight: an empty laundry basket. I opened my closet, and there were all my clean clothes perfectly folded and put away. It felt positively amazing. I think it&#8217;s hard to fully grasp why this felt so magical. Imagine leaving your apartment with a mess of dirty laundry and coming home to it <em>clean and neatly folded in your closet</em>. What&#8217;s so special about having her do my laundry? It was that extra-step of putting it away such that I was <em>completely</em> removed from the situation&#8212;I didn&#8217;t even have to think of it!</p><p>The architecting of this system, the brainstorming of a perfect solution to my problem, the AHA! Moment, when the system works seamlessly, is <em>exactly</em> what I love about entrepreneurship. Think like an entrepreneur</p><p>Whenever I tell people this story, they roll their eyes and say, &#8220;Oh, stop being lazy and just do your <em>damned </em>laundry.&#8221; But they&#8217;re missing the point. I think this story highlights the difference between entrepreneurs and people who don&#8217;t think like they do. Entrepreneurs, for example, will approach a problem like this ...</p><p><strong>1) Ask yourself, how valuable is my time?</strong> This makes me think about entrepreneur/investor <a href="https://twitter.com/naval/status/1130530315607396358?lang=en">Naval Ravikant</a>, who says: <em>&#8220;Set and enforce an aspirational hourly rate. If fixing a problem will save less than your rate, ignore it. If outsourcing a task will cost less than your rate, outsource it.&#8221;&nbsp;</em></p><p>One of the worst things you can do is spend time on low-leverage tasks that can easily be outsourced. I run an app company and I&#8217;m a software engineer. My time can be spent coding a new app, writing a strategy document, optimizing our marketing expenditures, or hiring another contractor. Nobody could make the argument that doing laundry is a good use of my time &#8230; unless that time is also spent listening to a valuable podcast or getting some other type of benefit.&nbsp;</p><p><strong>2) Always seek to improve systems in your life.</strong> Everything about my business is rooted in iteration&#8212;iterating on ad copy, features, app designs, people, management style, <em>everything</em>. Constantly seeking improvement is natural to my fellow entrepreneurs and me. We are the kind of people who see broken systems and want to create change.&nbsp;</p><p>This laundry exercise not only brought me a ton of joy, but also flexed my creative muscles. Creativity is very much a muscle, and using that Problem -&gt; Solution thinking throughout your life will only make you more adept.</p><p><strong>3) Covet peace of mind.</strong> Like a lot of people, I hate doing laundry. Some might view this as laziness, but why? It&#8217;s actually kind of ridiculous to judge someone for seeking ways to avoid doing something they don&#8217;t enjoy, and then putting those solutions to work. My definition for that is S-M-A-R-T.</p><p>Regardless of how pretentious or silly it may look for someone to outsource a basic chore like laundry, if it makes me happier then it&#8217;s a net positive. After all, entrepreneurs are mental athletes. Being calm, collected, thoughtful, and relaxed are all <em>super </em>important. If outsourcing my laundry can improve my base-level productivity by 5 percent, then the ROI on my business is incredible.</p><p><strong>4) Embracing ridiculousness.</strong> Okay, maybe this whole story sounds ridiculous. But again, this kind of thinking is ingrained in my head. Doing laundry is not a good use of my time, which is better spent building another app, responding to an important email, or writing a new strategy document. I also don&#8217;t enjoy it. Why spend time doing something I don&#8217;t enjoy? </p><p>So finding a better solution? One that allows me to use my time more productively, while at the same time avoiding a chore that I hate?</p><p>That&#8217;s smart thinking. Sign me up.</p><div><hr></div><p>What did you think of this post? Anwer anonymously by clicking below:</p><p><strong><a href="https://command-services.typeform.com/to/wzyKVz6l#rating=5&amp;post=laundry11-19-20">Loved It</a> / <a href="https://command-services.typeform.com/to/wzyKVz6l#rating=4&amp;post=laundry11-19-20">Liked It</a> / <a href="https://command-services.typeform.com/to/wzyKVz6l#rating=3&amp;post=laundry11-19-20">It Was Ok</a> / <a href="https://command-services.typeform.com/to/wzyKVz6l#rating=2&amp;post=laundry11-19-20">Disliked It</a> / <a href="https://command-services.typeform.com/to/wzyKVz6l#rating=1&amp;post=laundry11-19-20">Hated It</a></strong></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.zach.so/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.zach.so/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item></channel></rss>