## The Tale of ArcadeCal So Far: A Swing and a Miss As someone who considers themselves somewhat entrepreneurial and a web developer, I'm usually looking for my next software business idea. Granted, if you've read [this]([[I'm Tired of Trying to be an Entrepreneur. I would Rather be a Problem Solver.]]) then you probably already know that the initial failure of this idea was so frustrating that I think I'm going to relax on any new attempts at making SaaS for a while. I'll have more to say on that in the future. Today I want to focus on why ArcadeCal was a flop out of the gate, what I can learn from the experience, and where I'm going next with the application. ### What Is ArcadeCal? Earlier this year, I was looking for an idea for my next side project. Common wisdom states that a good place to start with SaaS is solving your own problems. In that moment, my biggest problem (blessedly) was coordinating the five regulars that I play video games with. You see, as we've all gotten older, the guys I played games with growing up have become pretty busy (myself included). I have three kids, a career, a mortgage to pay, the usual. Some of them moved to different time zones. Some had kids as well. Some embarked on spectacular professional endeavors which take up plenty of their time. Of course, we still try to get together to play games, but the way we were doing this was just texting a group chat and trying to see when everyone would be free. It basically never worked out. Someone was always busy, plans would change, something would come up, etc. I thought that there had to be an easier way. I considered setting up a shared calendar, but I thought to myself, "what, I'm going to send a meeting invite to play games with my friends." That's when it hit me. Most calendars are set up for business meetings. What if I built one for gamers. Thus "ArcadeCal" was born. ArcadeCal is a calendar and scheduling platform that is designed for gamers. I thought that the older, busier generation of gamers would love it. However, the results have been more than lackluster. In total, it has 15 people signed up. 3 are my test accounts, 7 are beta tester friends that I asked to sign up and gave premium accounts to for free, 3 are random free accounts from the people I don't know that logged in one time, and the final 2 are spam accounts that signed up to submit support tickets to pitch me development services. The application has been live for 45 days, has not received a single paying customer, and I've gotten feedback that it's cool, but "not that cool". I'm going to break down this retrospective into 3 parts: development, marketing, and entrepreneurship. From there, I'll cover next steps. Let's dive in. ### Development Okay, first of all: **working with datetime in JavaScript is one of the worst problem solving experiences I've had.** Seriously, I've spent over a decade with JavaScript, and somehow, blessedly, ignored datetime heavy applications up until this point. However, a calendar app is all datetime, and the conversions between date formats for different portions of the application nearly broke me. I didn't even do anything that complicated. I used an open source calendar widget for Svelte that can be found [here](https://github.com/vkurko/calendar). It takes in a specific date format. However, the datetime-local html input field value is a specific date format that doesn't match the calendars required format, or really any common JS format out of the box. So I spent a bit of time massaging these user-input dates and times to match what was needed by the calendar. However, time zones became an issue. So from there, I had to do time zone conversions. Oh but wait, there's more! ![[Pasted image 20240708063248.png]] Part of the date conversion had to be done on the client to get local time correct on the Calendar, because there's no guarantee that my server for that user is in the exact same timezone. So that bug is fixed. Now everything is working as intended. Finally. I worked on this project part time, so that took me a whopping 4 days. And apparently, I'm not the only one who is not a fan of this work, as illustrated by this thread: ![[Pasted image 20240708063736.png]] Anyways, datetime issues aside, this application allowed me to real experimental with my stack choices. As per usual, the main tech used is Sveltekit. Sveltekit still has my heart, and will for a long time. I love this framework. However, I wanted to try a new database tech. I had messed around a little bit with [FaunaDB](fauna.com)before, and wanted to see how it did in a production application. Fauna is an API first, mongo-like, cloud database that is quite affordable, and pretty easy to use. I wish it could be self-hosted, but beyond that, I really enjoyed using it for this project. It uses FQL to structure queries, which is pretty great. It's similar to graphQL, with the added benefit of JavaScript-like functionality that you can embed in your queries, such as loops and conditionals. I also went out on a limb for auth and reached for a product I had heard good things about: [outseta](https://outseta.com). It's an auth service that was built for SaaS and membership businesses, and I was attracted to it because it has billing built in. However, I quickly discovered much more bang for your buck. The service has a full CRM, email, and reporting platform built in, which is really handy for developers who don't want to integrate several different services. I have tried all of these functions, and really enjoyed them. The email builder is a lighter version of something like Klaviyo or MailChimp, without having all the extra stuff from those platforms. The only drawback for Outseta is that it didn't always play well with Sveltekit. I fixed **plenty** of authentication and authorization issues with custom code I had to write myself. Furthermore, I don't think authorization should be handled on the client in the first place, but this is their primary method of locking content to different payment plans. **If** I was going to build another SaaS, I may use Outseta again, but only if I really need a CRM and Emails quickly. I've tried other Auth services that I prefer more, but they didn't have the marketing features of Outseta. Finally, I tried one more piece of technology that I have been resistant to: Tailwind. You have to understand, I'm a massive CSS nerd. I wrote a [book](https://www.amazon.com/Conquer-CSS-Fundamentals-Cascading-Beautiful-ebook/dp/B0B2MMG3C2/ref=sr_1_1?crid=20XFF215LJVIW&dib=eyJ2IjoiMSJ9.kqds6AF6EPvNdC8azz9fQFsMjlyKF-6mniWhNvqEMj7eqo3nEKjBBLav3DHDEwOJSPkoKcqcV9snTjFri0U7ftygC20Mpranr9B9Jiq0v9TtwcLIP4J1UeZdhUaEK3De.GOGhW8n9aAXGkF_DhEjb01ArHd2H1I0xyieeY8HLFTo&dib_tag=se&keywords=conquer+css&qid=1720435996&sprefix=conquer+css%2Caps%2C197&sr=8-1) on CSS. I have been resistant to atomic CSS frameworks, the most popular of which is Tailwind. However, I wanted to use ShadCN-Svelte for this project for rapid prototyping and because I really like the aesthetic of the design. ShadCN-Svelte is built with Tailwind, and it's the easiest way to customize the components to my liking. I wasn't a Tailwind hater, but I was far from a supporter. ShadCN is worth it though. I mean, just look at how good this looks: ![[Pasted image 20240708123757.png]] As per usual when I hold an absolute position, I was wrong. Tailwind doesn't suck. In fact, it's really good. I don't think I'll always use it, but I'm comfortable to continue using it in other projects in the future if I need it. I'm glad I was forced to give it a chance, because a lot of teams use Tailwind and I can be an asset to them now. That's about it for development. Sveltekit almost always keeps the stack simple since it takes care of so much for you. As a recap, the stack is: - Sveltekit - FaunaDB - Outseta - ShadCN-Svelte/Tailwind It's been a fun stack, and I'm glad I got the chance to learn some new tech. ### Marketing - The Part I Suck At Just like most technical SaaS founders, my weakness is marketing. It's a shame, because marketing is the most important part of SaaS businesses these days. In a world of lazy GPT wrappers and more notes apps than I could possibly count on all my fingers and toes, you have to shout louder to get in front of people. Marketing plans need to be well thought out, and perfectly tailored to your ideal avatar to get early traction. That’s why it’s such a shame that my first marketing plan was garbage. It went a little something like this: 1. Reach out to streamers and content creators with the opportunity to have an affiliate link. 2. Get users. 3. ??? 4. Profit I’m serious, that was basically the whole marketing plan. I was going to use “influencer” marketing to grow the business and gain users. The way I saw it, it’s a calendar app that you invite your friends to, so the first 50 users would create a network effect that would get me to 5000 quickly. Maybe it would have, but those first 50 are nothing to scoff at. I thought that by also signing up the creators I was working with to the platform, it would help me get to that first 50 very quickly. So what happened? Well, finding the perfect creator for ArcadeCal has been a bit of a process. I was spending hours popping into streams, watching YouTube videos, and looking through social media. I wanted someone with a growing following that was still accessible to me, who was looking for partnerships, and also wasn't very far outside of my target demographics. I put together a list of 10 creators, and slowly reached out them by email over the span of about 3 weeks. One creator answered me (I won't call out who didn't), and I want to that [Devyn Ricks](https://www.missdevyn.com/) for reaching out to me and setting up time for a call. She gave me amazing feedback and while we're still working out the best way to partner, she re-energized me when I was at a point where I was about to give up on ArcadeCal. I also want to thank [GrowthSpark](https://www.youtube.com/@growthsparkTV) for making a review of the homepage and ArcadeCal itself. I didn't ask for it, but Nick sent the video after he recorded it, and it was very helpful. It also re-energized me. Despite these moments that boosted my energy, I was recently feeling quite defeated about the progress of ArcadeCal. Getting absolutely no response, not even a rejection, from creators I reached out to is rough. Affiliate programs are basically free money for those who are in them, so this really confused me, but Devyn really helped me understand. A lot of creators aren't business minded, are anxious to represent a brand, and don't want to be seen as sell outs. I totally understand this sentiment, and understand now that I need to shift to a new marketing plan. This will involve some UGC on new ArcadeCal socials, content marketing, and new features for a slightly different audience. I'm looking forward to sharing results in my next retro at 90 days. ### Entrepreneurship There are some pretty key takeaways from the process of launching ArcadeCal that has taught me important lessons as an entrepreneur. I'll give each one a subheading here. ##### Surveys Are not Validation Every entrepreneur knows that you need to validate your business idea. In the past, there was common wisdom around the idea that you had to do hundreds of user interviews to ensure that your idea is one that will have legs. Today, the idea of preselling is a very popular method of validation. I didn't do either of these. I created a Survey Monkey interview with 5 questions and sent it out to 30 people. About half responded, and enough of them said they *would* pay for ArcadeCal. However, *I will pay for it* is not the same as handing over the credit card. If I ever do a paid application again, I'm just going to presell. ##### Competitive Analysis Should Not be Rushed A pretty basic Google search will tell you that there isn't a calendar that's been built for gamers. However, that doesn't mean that I don't have competition. A major oversight I had was that Twitch has a schedule feature that lets you schedule your streaming sessions. It isn't branded or customizable, but it's free. That was something I missed entirely. Furthermore, I didn't ask the right questions when researching. At the end of the day, no gamer wants to pay to schedule sessions when they can text for free, regardless of the low success rate of the method. I am competing with discord channels and group texts that people use to schedule. I didn't do enough to differentiate and persuade that my platform is better than those methods. ##### Freemium is the Future (Unfortunately) While it hasn't lead to signups, moving most of my premium features to the free tier lead to a lot more traffic and interest in ArcadeCal. People mostly expect things to be free. I mostly expect things to be free. Every app needs to be free, and if you really want to unlock more value from it, you pay for gold plating features. Core features must be free, which is really a bummer, but the consumer has been trained. There's nothing we can do as creators to avoid that. It's not as much of an issue with my future endeavors being FOSS, but I will have to keep it in mind if I ever create another SaaS. ### Next Steps The biggest step moving forward is a new marketing plan. I want to continue to build features for the application, refactor code, and maximize the interface. However, I have to make the marketing for the business much better. I need users. I don't even care if they're paying. I just need users in general who are using the service. As far as future development, I want to introduce achievements to gamify the service. I think this would be a big selling point and that people would really like it. That's all I'm going to focus on for development because I have to focus on socials, content marketing, and other new aspects of the marketing plan moving forward. Thank you for reading this whole retrospective. I hope it helped. It definitely clarified things for me, and I hope my next one has some better outcomes to share.