Conf42 Cloud Native 2023 - Online

How I built a serverless first SaaS startup in 30 days

Video size:

Abstract

Who doesn’t want to build a startup? My last try took 6 months to launch and then got just 3 free users This time I did it differently - I focused on getting users and payments as quickly as possible. I show how I used Serverless to minimise the time to launch and got revenue after 21 days

Summary

  • Sauk: I built a serverless SaaS startup in 30 days and how you can do exactly the same. Key challenges for him come down to finding a customer pain point and engaging on LinkedIn. A month later it hasn't all crashed and burned and we're still doing over $120 in monthly recurring revenue.
  • LinkedIn is a growing tool, especially with Twitter recently going through all of its shenanigans. Where I should have done a lot better with the customer validation is actually talking with those potential customers. Other ways you can validate your customers are with like a landing page.
  • A chrome extension adds a button just like this to the LinkedIn payments section. Whenever you click it, it reads the text from the post, sends that to the API which generates the comment. By the time the beta launch was ready, 25 users were waiting to try out the product.
  • Marketing is the one issue with a 30 day challenge, and that is marketing. For the next couple of months, do a marketing month challenge, spend 30 days trying to find scalable marketing strategies. Find your unfair advantages and make the most of them.
  • I've managed to do this just using the serverless framework and serverless architecture on AWS. If you want to learn more about serverless and how it can help you build systems insanely fast, then maybe subscribe to the complete coding YouTube channel. And finally, if you do use LinkedIn and you're serious about growing an audience there, then you can try out LinkedIn power tools.

Transcript

This transcript was autogenerated. To make changes, submit a PR.
Sauk, I'm going to take you on the journey of how and why I built a serverless SaaS startup in 30 days and how you can do exactly the same. I'm Sam and I've been working 100% serverlessly for over five years now. I run complete coding, which is a YouTube channel teaching people to become serverless developers. And now we even have a full serverless masterclass course which takes you from novice to being able to apply for serverless jobs. I've always had an entrepreneurial side, and over time I've tried building startups and have honestly generated quite a nice list of failed startups. They tend to always be the same. I start building something, thinking this is an amazing product. I spend evenings and weekends for months working away at it. Eventually I get to the point where I'm ready to launch and then nothing. Sometimes I get a few free users, but I never manage to build something that people are willing to pay for. Spending all of that time and effort for no real reward is incredibly frustrating and painful. So I decided that next time would be different. I took a leaf out of Peter Level's book. He gave himself 30 days to test a startup idea from scratch and did one a month, resulting in twelve startups in twelve months. I still have consulting clients and a YouTube channel to run, so I decided to modify this a little bit. I kept the 30 day limit built. I decided only to do it four months throughout the year. If I can get a paying user in 30 days, then it's a good idea. But if I can't get a paying user, the idea wasn't an idea that's ever going to become a valuable company and I would move on. Luckily for me, the first 30 day challenge went basically as well as I could have hoped, getting over 300 users in that month and generating $140 of income. And a month later it hasn't all crashed and burned and we're still doing over $120 in monthly recurring revenue. There were two things that I really think helped make this a success, and I'll talk about those a little bit more at the end. So the key challenges for me and for getting paying users in those 30 days come down to basically three things. So keeping it simple enough that I don't end up with a massive architecture where I'm going to spend all of the 30 days building it, and then have no time to actually give users access to it, get some real feedback, and actually spend time marketing it. The second is finding a problem that is actually painful enough that people want to pay to solve that pain. This is something that I haven't done a great job of in the past, so this is definitely going to be a focus for this one. And thirdly, I'm not a marketer, I am a developer through and through, so building the tech is going to be the least of my problems. It's going to be about learning how I can try to get my ideas and my products in front of as many people as possible. There are loads of ways to find a customer pain point, but for this challenge, it kind of came by accident. So I was scrolling through LinkedIn one day and I saw one of my favorite creators, Luke Matthews, and he was talking about how he would grow on LinkedIn if he was starting again. So number three was to engage on the posts from five or ten creators from your niche. And I was like, that kind of seems obvious when you comment on other people's posts. Then that audience of 83,000 people that you might be seeing from their following will see you. They might either directly subscribe or follow you, which is amazing. But they might also just like your comment. And LinkedIn will actually then show some of your posts to them, even though they're got following you because they've liked one of your comments recently. So this is a great way. So why isn't everyone doing loads of comments? And this second post came up from Merco talking about his normal LinkedIn schedule, and this is what he does on LinkedIn every day. If you can see at the bottom, it says that he spends, on average, one and a half to 2 hours per day commenting on LinkedIn. That is an insane amount of time if you're running a business, or even if you're just an employee, you can't really justify spending 2 hours of your day, especially if you look at the times in the middle of the day, in the middle of the workday, focusing on commenting when you're either growing your business or trying to just do your job. Around the same time I had been messing around with chat got, and I knew that it could be insanely powerful if used properly. Prompt engineering was also starting to become a bit of a topic, so I knew whatever I could come up with, I could always tweak and improve the outputs. Wondering how engaging Chat GPT would be at making a LinkedIn comment, I decided to test it out manually. I found an interesting LinkedIn post that is the kind of thing that I might normally reply to. I then copied it and pasted it into Chat GPT with a little bit of a prompt saying act as a software engineer and write me an engaging LinkedIn comment. What came back was a little bit long and a little bit wordy, but compared with other automated tools out there, that post oh, great post or interesting. This comment is amazing. It has depth, it has interesting discussion points, and from this point on I knew I was onto something. This is the point where I would normally go into building the solution, spending weeks or months, then launch it, and kind of hope that there was an audience and there was a customer base. This time was going to be different. I was going to validate the idea more and make sure that it wasn't going to be a complete flop. So to validate it, there were kind of two topics that I wanted to validate. The first is the technical validation can I actually build everything I need to deploy this idea? So with this I have a couple of advantages being a serverless developer. On the second point, I wanted to validate that there were actual customers out there and there was enough of them and actually that they would pay money to solve this problem. So for technical validation, as I just said, being a serverless developer, I knew I could build APIs and databases from all of the proof of concept projects I've worked on over the last five years. The test with Chat GPT showed that I can generate good comments, and I can probably improve those further with better prompt engineering down the line. I also knew from other projects that I knew how to create a chrome extension where I could have user login. I could then add buttons to existing websites, send API requests, and all of the kind of things that I knew I would need to do to get this working. If you've never actually deployed a full stack app before, then actually spend some time looking into the best ways to deploy your ideas. It could be serverless code like I did, but also no code or low code tools can be a really good option. Personally, I like serverless because you have the full control over the custom code, but without the issues of managing server redundancy scaling. Plus you only pay for what you use. So if it does turn out, unfortunately, there are no paying users. You've also had to pay nothing for the servers that are sitting there idle. Now onto customer validation and this is where I did some things well and other things I should have done better in terms of the positive validation I did. LinkedIn is a growing tool, especially with Twitter recently going through all of its shenanigans. There's a lot of people who are joining the platform and wanting to grow their audience and their following whilst boosting their authority. Both of the posts I saw on LinkedIn were from either LinkedIn ghostwriters or LinkedIn basically services who are paid to grow your account. So that is people already paying them to grow on LinkedIn. And finally, under both of these posts were loads of comments saying, this sounds great, I want to comment more, but I don't have the time to write all of those comments. This was proof that people both had the pain of I want to grow on LinkedIn, but they don't have the time. Now where I should have done a lot better with the customer validation is actually talking with those potential customers. I could have messaged all of those people who commented that they didn't have the time to write those comments and I could have talked with them. I could have found out how much time do you actually have and why is it that you're wanting to grow on LinkedIn? And of course I could have found out if you were going to pay for a service that could help you write LinkedIn comments, how much might you actually pay if you could quarter the time spent writing comments? Another whole vertical I could have approached was I could have talked with copywriters about whether they would use this tool in their business, and that could have been a whole different focused instead of going directly to the customers, I could have done a more b to b approach, talking with copywriters and ghost writers, trying to get them to use it to speed up their work. Now, other ways you can validate your customers are with like a landing page where you just send users and you have a description of what you're wanting to build, and then a waitlist where they can sign up if they're interested to find out more when it launches. If you're really keen, you could even try preselling your product. So saying buy it now and when it's live, you will get full access, usually at a discount. If people are willing to pay for the product before it even exists, that is great validation. You can also use surveys, whether it's free surveys to your audience or paid ones out to anyone who is willing to take them. There's loads of other ways you can do market research, but most importantly is probably just talking with your target customer. And that's something I should have done a lot better. But I thought my validation that I had done was enough. So I moved on to the next step with more customer validation than I normally do. It was time to start my first coding montage. I spent a few days focusing on the MVP, the minimum viable product. And I prefer the name minimal viable product because you still need to provide some value to your users. Because if you're not valuable to their users, why would they use it? Or why would they pay? So for me, that was a chrome extension that adds a button just like this to the LinkedIn payments section. Whenever you click it, it reads the text from the post, sends that to the API which generates the comment, sends it back, and types it into the comment section. One thing I didn't want to do is be a completely automated solution. I didn't want people clicking one button to comment on the top ten posts because partly I think that would get them blocked from LinkedIn because LinkedIn doesn't like you even if you are manually doing it, going through and sending loads and loads of comments in really, really quick succession. But also I wanted the users to basically add their personality to the payments. If you're just sending a generic comment, it's probably not going to grow as much as if you add your own personality if you add your own perspective and experience to it. So I did something a little bit cheeky. I added a fake typing speed. So as the message is being entered into the comment section, it types it out one word at a time. This means that naturally users will read the message as it's being typed, and if you read through the whole message, you're more likely to go ah, that doesn't quite sound right. I'll just tweak that a little bit. So, with all in all, that took about three days to get the chrome extension as well as all of the APIs working. And before I went any further, I did something that turned out to be super useful. Later on in the month, I recorded a quick demo of the extension, generating a comment, and posted the video on LinkedIn. That post now has over 17,000 views and 52 comments, which was great exposure. Those comments were a mix of supporting the idea and asking can they get access to it? But also some absolute hatred for the idea. As you can see, I was told to burn it with fire, and I honestly can't remember the last time I was told I need to repent for something. But to capitalize on this notoriety, I quickly created a landing page using just a website builder that had a waitlist sign up form on. I continued to post updates on LinkedIn and then carried on building out features like a user sign up and login usage monitoring, as well as making some tweaks to the chrome extension. By the time I was ready to do the beta launch, I had 25 users on the waitlist who were wanting to try out the product. So for the beta launch I sent out the email to everyone on the waitlist telling them they could install the chrome extension and try out the tool. Straight away I started getting feedback and this is kind of really why I wanted to get people using it as soon as possible. Some of the feedback was really good and some of it was bugs, and having that interaction with the users, being able to ask them more questions was super valuable. So at this point I had kind of two tasks. So handling the feedback, whether it was bugs or features that I thought yes, that's a great feature, I need that. Before v one there were some other features which were like that's a great feature, but I can't quite get it done before the MVP is launched. And some ideas I thought didn't really match what I wanted to make the product. As quite a few people did say, oh, can you not just completely automate everything? Which kind of goes against what I was trying to achieve. I also wanted to get v one ready and for that I needed two real things, a proper website with a landing page, sign up flow and account page. But also I wanted to have subscriptions so that people could actually pay for the product for the website. I did consider trying to build it from scratch, but then I remembered I've only got 30 days for this whole challenge and my CSS isn't the hottest. So I could have spent the whole 30 days just building a fancy, attractive looking website. Instead, I bought myself a react website template, customized the CSS and added a bit of my own copy and published it. And this is the website I ended up with. It won't win any awards for design, but it clearly demonstrates what my product can do and I don't think it looks awful. So when you've got 30 days, getting 80% of the way there with 20% of the time and effort is a trade off that I'm definitely willing to make. And if in the future this ends up earning thousands and thousands of dollars a month, I can then pay a proper designer to come in and make a really, really well styled website. But for now, this is more than good enough. Now for payments on a project like this, I'd just always go to stripe if you don't want to have the risk of handling your own card details, and stripe is the quickest and easiest payment provider to get set up with. I did have to build a custom subscription integration using their webhooks because of the way that my usage worked deploying and securing the webhook APIs and the database that I needed for this with a few minutes using serverless, but then I had to just tweak all of the business logic around when you get this event, make this change to the database and that did take a couple of days. If you've never done a stripe integration and you are wanting to do one, I would start with a one off payment because they're much simpler to do. You can also usually find website builders that have either stripe or other payment providers integrated into it so you never have to think about it. You just copy across your stripe API key and all of the payments are handled for you. Upgrades downgrades everything which is also really nice. So 17 days after I started, I was ready to launch my full app. Over the last two weeks I'd continued to post progress updates on LinkedIn and had 69 people on the waitlist. I sent out the launch email, posted about it on LinkedIn, and kind of just waited. Over the next few days I did continue to work on the app. I was fixing any bugs that either beta testers or even some new free users found, and also adding new features like being able to change the tone of voice, which was basically the first feature I wanted to add after v one as it was direct feedback from the beta testers. This allows you to basically change the tone and the way that Chat GPT generates the LinkedIn comment to give it a bit of variety. I was also reaching out to LinkedIn creators who I thought would be interested in the tool and might actually post about it. Anything to get the tool in front of more users. So after three days I had over 100 free users, but still no one had upgraded to a paid membership. I was beginning to think it was going to be another one of those ideas that people say they love and will use for free all day, but would never actually pay for. Then one night I was lying in bed and I got a bit of a notification. LinkedIn power tools, you've just received your first payment. I was so excited. I was officially a SaaS founder. With this new wave of excitement, I spent the next two weeks writing LinkedIn posts, trying to reach out to more influencers and adding more features. For me, one of the biggest features was being able to customize the tone of voice on each and every comment, even adding a question or a quote. This was massive as I was finding the normal comments were good, like far better than any other tool out there, but they didn't really continue the conversation very well and sometimes they got a response, but often they just didn't. And getting a response from the original poster is a really good way of both building your relationship with that content creator. But also a conversation shows value, and therefore more of their users and their followers are likely to check you out. Now, just adding a single quote or a question to the comment seemed to massively increase the engagement that those comments got, both in the number of likes, but also in the amount of replies from both the original poster, but also other people inside their network. Having conversations with creators increases the chances that their followers will check you out, and as you can see here on the left, I ended up chatting with people who are on the Forbes 30 under 30 list, which is really cool. For the rest of the month, I focused on features and marketing, but by the end of the 30 day challenge, the tool had continued to gain both free and paying users, hitting a total of 300 free users, six paying users, and $140 in revenue. When you think that the tool had only been live for actually 13 days, that's pretty good, and I'd consider this challenge a massive success. At the start of the talk, I did say that there were two things that I think made this 30 days challenge a success, and those are my unfair advantages. The first one is that I am a serverless developer and I have built countless numbers of proof of concepts and MVP apps, both for myself, for the companies I've worked for, and also for clients. This means that building things quickly, knowing how to ruthlessly cut down to an MVP is something I know how to do. The second is that I started with 14,000 followers on LinkedIn from just my general users of it over the last couple of years. This means that every post I did actually got a couple of thousand views at minimum, which is really, really good exposure. I also meant that because they're on LinkedIn, they're more likely to want to actually grow on LinkedIn. So I was accidentally targeting and talking to my target audience, which was a happy coincidence. But yeah, something that definitely helped out a got now let's talk about the one issue I found with limiting yourself to a 30 days challenge, and that is marketing. I started with 14,000 LinkedIn followers and that was great for initial tractant and getting a handful of paying users, but the issue is it's not going to scale. I think if I posted about this tool every single day for six months, I'd continue to get more users, but it would soon plateau to really grow this product and grow it into something where I could survive on the income, I would need to find a more scalable marketing method, whether that's SEO, ads, influencer marketing affiliates or any other kind of marketing method. But trying to build and launch this tool in 30 days meant I didn't really have any time to try any of these. I tried a little bit of influencer marketing and a couple of people reposted it or did a video, but I didn't actually get into the point of paying for LinkedIn posts or anything that would actually scale as the product did. And also for some of these, such as SEO or search engine optimization, it can often take months and months of work before it starts paying back and making a return on that investment. But it can also skyrocket the access and the marketing potential when it starts to kick in. So what would I do differently next time? At the start I did say that I'm going to do this four times throughout the year, so I'm going to shake things up a little bit. I do want to start by saying that I loved the restricted nature of the 30 day challenge. It meant I was like hyper focused on just the things that would provide immediate value. So for the next couple of times throughout this year, I'm thinking that I'm going to do one or two brand new startup ideas. But then for one of the months, do a marketing month challenge, spend 30 days trying to find scalable marketing strategies. The ideally creating a process that I can use on the other startups that I've done, but also in the future, a pattern that I can follow that can help get me past just my internal network of marketing possibilities. So yeah, also spending a whole month researching how to market startups is going to be a massive learning experience. So I'm actually really looking forward to that. Beyond that, I definitely would make sure to speak to more customers as part of the validation process, even just to learn about how do they describe the pain that I'm solving so I can use that exact wording in the copy of my emails or in my website. I'd also really like to do a business to business kind of business model because the business to customer, which is kind of what this was, is good built. Charging $30 a month means that you require huge numbers of users to actually become a valuable business and something that I could live off. Now, what can you learn from this? If you want to try this yourself, you basically need to find your unfair advantages and make the most of them. So you might say that, oh, I don't use LinkedIn so I have no advantage. But are you prolific on Reddit or on Twitter? If you are, then use those platforms to share your tool, to get feedback from users, and also just talk about your progress. Now, have you also got experience in an industry? It could be anything. It doesn't have to be a specific tech industry. It could be nursing, it could be hospitality, it could be painting. For all I know, you'll be able to have an understanding of that sector, you'll know where the ideas for solving really painful problems are and you'll know the language that you're going to use, so you'll be able to communicate in a more cohesive way with them. And also you'll probably know quite a lot of people in the industry. If you've got a couple of years of experience, this means you can got to them as someone who already knows them and this is a great way to get some validation. And you never know, they could end up becoming your first couple of customers. Now the second is that you really need to focus on the minimum viable product and I think you need to be really ruthless with this. Cut away anything that isn't directly solving the pain point of your customer. If things go well and you end up getting a load of users, then you can add cool features or extras later. But if your problem doesn't actually solve the main pain point really well, it's going to be hard to sell it. Even if you're a developer. Maybe have a look at using a low code tool because this can save you a massive amount of time versus if you code everything yourself. And this is something I might actually try in some of my future 30 day challenges because it's better to launch something that is a little bit imperfect, but to then start getting real user feedback as soon as possible than spend the whole time making sure it's absolutely perfect, launching the idea and finding out that it's a bit of a dud. So that's my talk and I really hope you've enjoyed it and seeing how really focusing on solving just one pain point you can achieve more than spending like six months on an idea you think might work. And how I've managed to do this just using the serverless framework and serverless architecture on AWS. If you want to learn more about serverless and how it can help you build systems insanely fast, then maybe subscribe to the complete coding YouTube channel where we regularly put out videos on serverless, as well as a load of serverless tutorials on how to build specific features. Now, if you're more interested in the exact architecture. I used to build this whole app. Then I've actually put a PDF together where you can download and see the full architecture and actually see how simple it can be with serverless. So that is serverlessmasterclass.com SAS architecture. And finally, if you do use LinkedIn and you're serious about growing an audience there, then you can try out LinkedIn power tools and see how much time you can save when you're commenting and growing your connections with bigger influencers.
...

Sam Williams

Founder @ Complete Coding

Sam Williams's LinkedIn account Sam Williams's twitter account



Join the community!

Learn for free, join the best tech learning community for a price of a pumpkin latte.

Annual
Monthly
Newsletter
$ 0 /mo

Event notifications, weekly newsletter

Delayed access to all content

Immediate access to Keynotes & Panels

Community
$ 8.34 /mo

Immediate access to all content

Courses, quizes & certificates

Community chats

Join the community (7 day free trial)