Jack Sharkey - The $1B Rails Startup: Scaling from 0 to Unicorn in Four Years

Jack Sharkey built Wop, a Rails platform where creators have earned over $1.5 billion, scaling from zero to unicorn in four years. He started skeptical of Rails, used it for a college startup, and found it let him iterate fast enough to build, discard, and rebuild features. The team grew to 15 engineers and survived flash-drop traffic spikes, database migrations from Heroku to Aurora to PlanetScale, and hiring a freelancer off Uber.
Chapters
Hello, RailsWorld! Let's get some noise! 3:45. Who had an afternoon coffee? Huh? Yeah, look at that. Me too. So I'm going to be honest. This is my first ever talk, and I read all the slides last night, so this is going to be a journey for both of us, and I'm very excited to share it with you guys. Hello, Jack Sharkey! And let's dive in. 5 years ago, and today, everyone says Rails is dead. It's too old. It's slow. It won't scale. Only boomers use Rails. To be honest, I said the same thing 5 years ago. When my now co-founder Stephen came to me and said for our startup we should use Rails, I said, no way. Absolutely not. I said all those points. It won't scale. Dude, no one uses Rails. It's 2020. It's so dead. We have to use Node. He was like, dude, you're wrong. We have to use Rails. Please trust me. We went back and forth for actually a few hours before I was like, fine, whatever. You can use Rails. And since then, I can confidently say that was one of the worst arguments I've ever made, and Rails has been one of the best things that I believe has ever happened to me. So for me, Rails has taken a decade of startups and app attempts from failures to what is working now and what I call a somewhat success and why I'm able to be up here today. Now, 5 years later, I work on this company called Wop, and our mission at Wop is to enable others to earn an income online. We believe that work should be fun, and becoming an entrepreneur should be pretty damn simple. We let people spin up almost any business models that can be started on the internet in just a few minutes. Obviously all using Rails. We launched 4 years ago, and since then, we've helped creators generate over $1.5 billion for themselves as entrepreneurs. Just last month alone, 25,000 people were able to earn a total of over $140 million. Now we're a consumer platform. We have things like chat and real-time notifications and live streaming. We support payments for over 200 countries, and we even have an app store that allows developers like me and my younger self to build on top of our platform. But like any good story, it wasn't always this easy. I started building as a young kid. And during this story, what I really want to tell you about is I want to tell you about the failures and the journey that I've had to get here, and how Rails actually gave me a competitive advantage to get past that. And I hope that when you leave here, maybe you're a little bit inspired, or at least you hear some funny stories, and you yourself want to walk out of here and go home and type rails new and start something, because that's truly why we're all here. So I'm going to take you back to the beginning of my journey. This is 2014. I was 12. I started as something called a sneaker botter. So anyone here know what a sneaker bot is? Amazing. Okay. So a sneaker bot is automated software that you run on websites like Nike or Supreme or even Shopify. Sorry. And you use these to buy limited items like Jordans in hopes that you can resell them for a little bit of cash on the aftermarket, like eBay or Facebook. So that's how I got into entrepreneur— entrepreneurship. I started selling shoes online and using these sneaker bots. From there, I took that into high school where I learned and fell in love with programming. I would build apps, countless apps, websites, iOS apps, whatever it might be, but none of them ever got more than 100 users. But who cares, because it's cool when you build stuff that gets a little bit of a— a little bit of usage. From there, I tried to go to college, and I got rejected from my dream school. I wanted to study at University of Texas and do computer science. So after getting a rejection, I decided to appeal it, and I built an iOS app called Shark Trivia that was very much like HQ Trivia App at the time, where I was the game show host. I was able to make this app, download it on my sister's iPad, mailed that iPad to the admissions office, and 4 weeks later, I actually got it overturned. And I ended up going to UT. The year is 2020. Okay? I'm a 3rd year in college, and COVID happens. They send us home. I go home, back to Connecticut where I'm from, and I'm quarantined for 16 hours a day. And candidly— sorry, 24 hours a day. But candidly, COVID was one of the best things to actually happen to me. Because me, as a builder, I got 16 hours a day of just uninterrupted time to code. During this period, I started a few startups. One notable is here, and I thought I did pretty well. We got it to about $7K MRR. It ended up failing, but there's a story in this. And this is the first time I actually used Rails. So that story that I told you about in the beginning, where my co-founder Stephen was like, we have to use Rails, it was for this project. And although this project died, We ended up spending 9 months building it. And what was so incredible about it was, sure, we only made $8.5K at our peak, but I have never, ever felt joy like I have building with Rails that first time. I was moving fast. I was productive. I was shipping features in days. And keep in mind, I came from, like, a Node.js Express background. I'd never even used a database that wasn't Mongo. So to use ActiveRecord was like a dream come true. This failed, but I kept going. We started 3 more startups, all Rails apps, and they all failed, but we kept going. And in 2021, we started our 4th business. So I'm not sure if anyone remembers, but during COVID there was a few items that were constantly sold out online. Everyone was home. They wanted to get a PS5. You couldn't get one. People wanted at-home workout gear. Couldn't get it. Even things like above-ground pools and Sriracha, they were constantly sold out. And you're probably wondering why the hell am I talking about this? And that's because internet entrepreneurs, the same cloth that I was cut from when I was 12— I wasn't doing this at the time— were using sneaker bots, the same exact software, to buy these items on websites like Walmart and so on. Unethical? Maybe. Profitable? Yes. And what we did was we were looking for a new business to start, and we came across this really really sketchy Discord server where people were buying and selling software, like actual software license keys. And within this, you'd see people saying, I'm selling my software for $1,000, and they would take payment on crypto or Cash App or Venmo. And keep in mind, you're buying from a Discord username, like an alias, like Purple Penguin Number 7. You don't know if you're going to send this person money and get scammed or not, but there was clearly something here because there was thousands of dollars being transacted a day. So we initiated our playbook. Our playbook of, we found something, let's start a new Rails app. And our playbook was, okay, Rails new, let's go to themeforest.com, let's download a Bootstrap template, and let's push it up to Heroku and see what happens. And that's how Wapp was born. Started with this super niche problem of just selling bots to buy sriracha. And— We kept going. 2021. This right here is our first Rails app. Like I said, it's a ThemeForest website, Bootstrap, hosted on Heroku. It looks nothing like it does today, and I couldn't even tell you that we knew what it was going to look like today. But we kept going. And Rails really gave us that ability to just keep shipping. Within our first month, we made $25,000— we sold $25,000 worth of this software. Within our second month, we had $100,000 worth of revenue. worth of software sold. And it's not like we had a massive business. We had 50 users. 50, 100 users that we were building for. But using— just talking to our customers all the time, and with the advantage that we have to ship faster than anyone else, it didn't really matter. So at this time, I'm still in college. We're building Rails from during nights, hacking on weekends, and just kind of pulling it together. This clicker's a little— there you go. Okay. Later that year, things kept taking off, so we moved into a hacker house. Over here, you can see we got monitors everywhere, and we just constantly shipped. This middle picture is a picture of a closet. It's a pantry that my co-founder Cameron, Mr. Curly Hair, lived in for 2 years while we were building this. And the third picture is a laundry room. that some 19-year-old developer from Australia moved across the world in to live in. And the reason I'm saying this is it's not to— we had no idea what we were doing. We were literally in a house and just working all the time and having the most fun ever just shipping. You could literally see VS Code open on the windows. And the point here is even though we didn't know what we were building, every time we felt stuck, Rails just made it easy just to keep going and keep moving. Here's a photo of when we first hit 100,000 users. And for context, this is literally a Rails console connected to production in a while loop, just going over and over again. And this was a remarkable milestone, and I'm happy to say that we're now at 12 million users. So the story keeps going. 2022. Come on, clicker. Okay. Enter Rails won't scale. So we ran into our first scaling issue in 2022. So we used to do these things called flash drops. A flash drop is basically when you have a seller on your platform and they stay sold out all the time, and they use that to build up hype and get customers in the door. And then they'll do something like this where they'll tweet saying, missed out on both the waves? Be here in 10 minutes. We have a massive announcement to make. And then the announcement is a link to your website. And As novice programmers that were running on 2x dynos on Heroku and have never scaled a website to anything, we got pummeled every single time a flash drive— a flash drop went off. Every time it would go up, requests queuing through the roof, website down. We lost customers. And keep in mind, we had, like, 10 sellers selling on our website. So we lost customers. We had no idea what to do. So this is the first time I got exposed to trying to hire people in the Rails space, which I honestly have had a— we had a challenge in the beginning. So we put a post up on this website called codementor.com, and we said, hello, we will pay anyone who can stop our site from going down. We found this random dude named Sam who hit us up, and within an hour, he had access to our production Postgres. He could push to main on GitHub, and we just said, just do whatever you can, please. And Sam comes in, and he laughs it off a little bit, and he's like, okay. And he fixes it. Literally all he did was fix some atrocious N+1s and cache our JavaScript vendor folder or something. Next thing you know, we could host flash drops. But this was our first scaling challenge. Obviously, it didn't stop there. So a few months later, we kept growing, and things got worse. So like I said, right now our biggest market is people using bots and selling bots. And these bots would always get a lot of usage on Friday nights, because websites like Nike would drop a new pair of Jordans on Saturday. So everyone would come on Friday night to get their software download link and license key. So Friday was a hotspot. So one Friday night, it's like 8 PM, me and my 2 co-founders— the team's like 4 people at this point, 4 and Sam, so 4 and a half— and we were out to dinner, and we get a text saying, yo, site's down. And we get a call from customers, site's down, site's down. We whip out our laptop, because Obviously, we had our laptop at dinner. And we couldn't figure out the issue. It was one of those nasty Heroku Postgres buffer overflow issues that out of memory— you don't know how to solve that. And if you know how, I didn't know how 4 years ago. So we tried to fix it, and we couldn't. And these users were angry. They were coming at us. They paid for something, and they couldn't get it. So what did we do? Well, we called our infra guy. Because what else do you do when the database is down? So we try to call Sam. Dial his number, give him a call. No answer. Try again. No answer. Shoot off some texts. Yo, site's down, site's down. Need help, need help. No answer. So at this point, we're like 40 minutes into our biggest outage ever, and keep in mind, we're running on fumes here. We go down every other day, every other week, and we barely just got our customers. So my co-founder Cam has this crazy idea, and he's like, yo, why don't we call an Uber to Sam's house. I was out of options, so that's exactly what we did. So we call up an Uber in the middle of New Jersey and put it to Sam's address, and we call him and we say, hey, I need you to go knock on this guy's door and tell him the website's down. You can imagine what the response was from the Uber driver when he hears that. He was like, obviously no, and we fought him a little bit and offered him a nice Uber tip, And within a few minutes, he's like, fine, I'll do it. And we ferociously wait. And next thing you know, 10 minutes later, the site's back up. And Sam texts us, and he goes, clever. So that's when I learned, I guess, he could just do things. Let's keep going. So I'm going to give a little context on who this person is, and we'll touch back on him later in the story. This is Jackson. Jackson was our 40th user. He's 19 years old in this photo. This is him in our college dorm once again. He ended up joining our customer support team. 6 months later, we had a massive problem. At this point, it's only me and one other engineer building, and that other engineer decided to leave to start his own startup. While I wished him good riddance, this left me in a pretty poor spot. I was the only one that could be shipping. So we went over to Jackson, and keep in mind, Jackson, he was studying computer science, but he was a freshman at Duke during COVID So he only got, like, his intro to programming class in. He's never actually built any web apps before, but he had a desire to learn programming. So I go up and I tap him on the shoulder. I go, all right, Jackson, like, next man up mentality. I need your help. And we go. And we start on UserMailer. And he starts making our emails, which was incredible, because I hate emails. So he starts working on them, and then he starts building out some features, and he starts using ActiveRecord. Within weeks, he was shipping features. So this whole one-person framework, it actually works. I have proof. So there's that. Our second engineer. 2023. At this point, we kept building, and honestly, we didn't really know what we were doing. We just kept iterating. At this point, our website was now selling things like Discord paywalls and Telegram paywalls and unfortunately even NFTs for a bit. But we didn't really have a clear vision. We just kept listening to our users. And that was really the beauty of Rails. We have probably built 100 features, and 98 of those have been thrown out the window. But the speed at which we could adapt and move and build and just listen to our users allowed us to get to where we are today. And it's also made me realize that any startup person that you talk to that says they had this vision from day one, when they show you what they're working on now that's successful, they are completely lying to you. If anyone says they have a vision from day zero, it is bullshit. They just solved a very tiny problem and probably did it really damn well for like 5 to 10 people and then just built and built and built. So I've kind of learned that over the days. You just got to keep building. Yeah, like I said, we tried NFTs. We're not proud, but we did it. Anything to stay alive. So this is just an example of people using NFTs that they just bought on like OpenSea to gain Discord access. Anyway, this phase ended, and we just kept iterating. So enter 2024. And like always, we kept building. And we started becoming what is now, like, somewhat of a consumer platform. So we were now kind of pushing Rails to limits to do more fancy things. And we landed on this whole concept of an apps ecosystem where developers can build things and sell them on our website. And the first app we did was chat. Who here has built chat? It's hard. It's really hard, and I totally underestimated this. We then spent the whole next year trying to build chat, and we built it 4 times, and any time someone would come on and there would be more than 10 users, the entire chat would crash. It was so bad that our updates were pinned as chat status: not crashing, green; not slow, yellow; UX not dysfunctional, yellow. Like, but we just kept building. And like I said, the whole theme here is Rails didn't really stop us. It just allowed us to keep iterating, going and going and going. With chat, we got more problems. We started building our own real-time notifications. And boy, was I happy to hear about this notification 8.1 Rails edition, because these suck. So we started dealing with notifications. And what would happen was we'd have chat, and a chat with 10,000 people would tag @everyone. And everyone would say GM, GM, GM, and the next thing you know, your entire website is down. So it's either we had to send notifications with a 6-minute delay, which you can't do that, or we would just overflow our Sidekiq queues, and it would blow up our Postgres, and everything would go down. So this was a whole other phase. We spent probably 6 weeks building notifications, and built it probably 3 times, but we just kept moving. And then came our database. The next most important thing. So, to date, we've been around for 4 years, and we've been on 4 different databases. I don't recommend that, but you've got to do what you've got to do to stay alive. So we started on Heroku Postgres, like I mentioned, and then we hired an infra guy, and if anyone here has hired their infra guy, they know they come in with very strong opinions that they don't want to let up on. So he was like, you've got to get off Heroku. I was like, okay, fair, valid. And we're moving to self-hosted Postgres. And I didn't know any better at the time. I completely take responsibility for this, but we moved from Postgres on Heroku to self-hosted Postgres on an EC2 container. And that right there was probably the worst technical decision we've ever made. Because within 2 months, our CPU was at 90% all the time. And I had to go into the pg_bouncer files to modify connections. It was horrible. I would never recommend anyone host their own Postgres. But if you do, you can get out of it. Because after that, we then went to AWS Aurora. Until the beginning of this year when we decided we had more downtime. The first week of January, we actually went down every single day again. Funny enough, I was even on a date one night on a Saturday at 8 PM and the website went down and I had to leave that date. And it's fair to say that didn't— that relationship did not work out. But what did work out was our migration to PlanetScale that we then did over the next 2 months. And we migrated with zero downtime from a Postgres database to MySQL. Was it fun? Honestly, kind of. And you kind of just got to do what you got to do. And we kept moving. So why am I showing you all this? Why am I showing you that the site keeps going down? Site keeps going down. Well, I think this whole concept of Rails won't scale is actually completely just wrong. And it's all inverse. Because what Rails really is is it gives you the power to get to scaling problems. If you hit a scaling problem, if your site goes down like this, then you're doing something right. Most people can't even get that. And most of, like, even myself before 2020 was like, there's no way we can use Rails. It won't scale. But BS. Rails allowed us to actually have a framework that got us to scale. It allowed us to build and build and build and iterate and embrace failure. And like all these stories, also it allowed us to solve them fast. And also for what it's worth, like, these problems that I mentioned would have happened on any framework. Rails just enabled us and accelerated us to get to these problems fastest. 2025. So remember that guy Jackson I told you about? Never programmed really before, never built a web app, didn't know anything about Rails. Well, this is present-day Jackson. He leads our backend team and he leads all payments at WAP. And like I said, we did $140 million last year. So if you don't believe that Rails is the one-person framework, like, here's your proof and here's your poster boy. Anyone could do it. Secondly, our team is now 15 engineers. And that's not a— all that to say, of the 15, only 3 to 4 people work on Rails. To support all this, we only need 3 to 4 people. And that's also the beauty of the framework. And also, you don't need that much, many resources. You can do it with just this amount of people. And like I said, in the spirit of iteration, we're currently on version v13. It shipped like yesterday. And to be honest, we still have no idea where we're going. But at least we know that we have Rails in our back pocket to allow us to iterate fast and keep moving. So the real question is, why am I here? And while this is a cool story, and there's cool numbers, and everyone here enjoys hearing outage issues, the real point we're here, and we're all here, is because code actually makes an impact on people. We're all here to actually fulfill some greater purpose and make an impact on people in the world. It's not just cool to talk about database migrations 24/7. Let's talk about what these database migrations actually do for people. So I'm going to tell you a little about that. So because of all this work and all these outages and all the work that we all do in this room, people can now become entrepreneurs and spend their time doing what they love. Here are some examples. Ali sells your number one resource to help you crush the MCAT and get into medical school. This guy, I don't know his name, allows you to master League of Legends. And become a challenger. She teaches you a 12-week plan to shred fat and sculpt your curves and boost confidence. This guy helps you become a movie producer— sorry, music producer. Digital marketing is out. Women in 2025 are choosing SaaS queens instead. This guy teaches you how to land a dream data engineering role. And these people teach you how to run a course, how to build an app that is consumer. You might have saw this on Twitter, and they host it on WAP. And why am I telling you all this? Again, it's not because— it's because the work that we do and the code that we write has impact on real people. And now these people can go out, and they can fulfill their purpose and be entrepreneurs and really do it. And that's what it's all about. So where do we go from here? Listen, Rails is at risk. OK? We need more engineers and more websites to be starting using Rails. I am here because I am so confident that Rails is the best tool to start a startup. I have so much proof, and I have so much joy, more than anything, and I— and envy, and I can't believe how many people don't choose it. If we truly believe that Rails is the one-man framework and the power of entrepreneurialism and capitalism, then how do we actually do this? How do we change this trajectory and get that chart where we all think it should go? Here's what I think. First off and first and foremost, we need to build more cool shit in public and talk about it. Every single person here has the ability to go and type rails new and build something. All you need to do is build for 5 or 10 people and talk about it. It's the easiest way. We need to just make cool startups in Rails and tell the world. We need new blood. Secondly, we have to create more content. Tutorials, TikToks, blog posts, YouTube videos that are actually targeted at Gen Z devs. Look at what Chris is doing with Typecraft. This is awesome. We're getting new devs in the space. Lastly, live coding is actually okay. Listen, I know it produces slop. But even if it produces slop at first, it gets people building, and they use Rails, and they enjoy it, and they put something in the world. And remember that first feeling you had? So embrace it, enjoy it, and get it— spread the word. So why am I here? Uncle Sam, I want you to build with Ruby on Rails. But all jokes aside, the people in the room are the ones that can actually make a difference. We are probably the top 1,000 Rails fans on the earth. And we probably know Rails better inside and out. And we need more startups on Rails. We need more people building things. So I do have a challenge. And I do have something I want to leave you with. And I know this might sound a little salesy because I just told the story a lot. But I don't want it to sound like that. But if I'm going to be honest, like, my incentives are aligned with yours. If you— I want everyone here to build. And so if you start something in these next 30 days, I personally will be your first customer. You can use WAB to accept payments in minutes and you can send me a link and I will start a group of all our new Rails entrepreneurs and we'll cheer each other on and we'll spread the word. So I'm going to leave it at that. Again, I'm so grateful to be here. Rails not only has changed my life, but it's changing countless and thousands of people's other lives as a second-order effect. And I can't wait to see where Rails goes from here. I truly believe it is the best framework on earth and I want to see more people see that too. So thank you. Thank you.



