{"id":15827,"date":"2023-03-10T13:50:42","date_gmt":"2023-03-10T10:50:42","guid":{"rendered":"https:\/\/railsware.com\/blog\/?p=15827"},"modified":"2023-11-20T16:48:32","modified_gmt":"2023-11-20T13:48:32","slug":"ruby-on-rails-for-mvp","status":"publish","type":"post","link":"https:\/\/railsware.com\/blog\/ruby-on-rails-for-mvp\/","title":{"rendered":"Why Build MVP With Ruby on Rails"},"content":{"rendered":"\n<div class=\"intro-text\">Building a minimum viable product is all about keeping things simple. The early product development process is riddled with trial and error, and overengineering at the MVP stage can leave startups strapped for cash when they\u2019re forced to return to the drawing board. So, it\u2019s important to choose a backend framework that\u2019s optimized for MVP development. For us, the choice has always been clear: Ruby on Rails. But is Ruby on Rails still relevant in 2023? With so much competition, is it truly one of the best options for MVP development? That\u2019s what we\u2019ll discuss here.<\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2400\" height=\"1261\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/Featured-image-3.jpg\" alt=\"\" class=\"wp-image-15850\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/Featured-image-3.jpg 2400w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/Featured-image-3-360x189.jpg 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/Featured-image-3-1024x538.jpg 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/Featured-image-3-768x404.jpg 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/Featured-image-3-1536x807.jpg 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/Featured-image-3-2048x1076.jpg 2048w\" sizes=\"auto, (max-width: 2400px) 100vw, 2400px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">What is a minimum viable product?<\/h2>\n\n\n\n<p>A minimum viable product, or MVP, is the most basic version of your product that can be launched to test the market and gather feedback. It has just enough <a href=\"https:\/\/railsware.com\/blog\/product-features\/\" title=\"\">features<\/a> to satisfy early adopters and validate the product idea.<\/p>\n\n\n\n<p>The MVP concept is central to the Lean Startup methodology. Crucially, it is not synonymous with a <a href=\"https:\/\/railsware.com\/blog\/mvp-prototype-poc\/\">prototype, proof of concept<\/a>, or the first rendition of your product. To better understand where the MVP lies in the product pipeline, check out our guide to <a href=\"https:\/\/railsware.com\/blog\/mvp-misconceptions\/\">common MVP misconceptions<\/a>. And for a deeper dive into approaches and steps to building an MVP, read our full guide on \u2018<a href=\"https:\/\/railsware.com\/blog\/build-mvp\/\">How to Build an MVP<\/a>.\u2019<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Ruby on Rails?<\/h2>\n\n\n\n<p><a href=\"https:\/\/railsware.com\/blog\/ruby-on-rails-guide\/\">Ruby on Rails<\/a> (RoR), or just Rails, is an open-source web application framework written in Ruby \u2013 a dynamic, object-oriented programming language. The backend framework was created in 2004 by David Heinemeier Hansson, co-founder of 37Signals (now Basecamp). It boasts tons of built-in functionality and a set of conventions that simplify the web development process.<\/p>\n\n\n\n<p>Even though Rails has been around for almost 20 years, the framework is still popular among startups. Mostly because it\u2019s reliable, supports rapid development, and already powers dozens of famous products \u2013 think Shopify, GitHub, Hulu, GoodReads, and more.<\/p>\n\n\n\n<p>RoR is a framework that\u2019s pretty close to our hearts here at Railsware \u2013 so much so, we even put it in our name! But there\u2019s a reason for that. Over the past 15 years, we\u2019ve built some highly-successful products using this framework. <a href=\"https:\/\/railsware.com\/case-studies\/calendly\/\">Calendly<\/a>, <a href=\"https:\/\/railsware.com\/case-studies\/brightbytes\/\">BrightBytes<\/a>, and <a href=\"https:\/\/railsware.com\/case-studies\/mailtrap\/\">Mailtrap<\/a> are just a few examples.<\/p>\n\n\n\n<p>So, it\u2019s fair to say we\u2019ve got a strong opinion on why RoR is a great choice for creating a web app MVP. At the same time, we\u2019re well aware of its limitations, and we\u2019ll also touch on them here. But first, let\u2019s explore the criteria for picking a server-side framework.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What to consider when choosing an MVP backend framework<\/h2>\n\n\n\n<p>Founders and developers all have their own skills, experiences, and technology preferences. These factors naturally influence a startup\u2019s choice of backend and frontend framework. However, here are a few must-haves:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reliability<\/h3>\n\n\n\n<p>Early adopters will usually be forgiving of bugs or unplanned downtime. They expect these issues to occur in barebones products. However, an app that constantly crashes or doesn\u2019t function as expected can cause lasting damage to your product\u2019s reputation. Your chosen framework should have a track record of regular performance updates, security patches, and long-term support (LTS) availability.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Scalability<\/h3>\n\n\n\n<p>It might seem premature to consider scalability at this early stage, since there\u2019s no guarantee that your MVP will be successful. But to avoid a do-over, or major refactoring later, it\u2019s best to think long-term from day one. You\u2019ll need a framework that can efficiently manage a growing user base and increasing traffic without slowing down your app&#8217;s response time. Particularly if you\u2019re building a web app like Instagram or Slack, and expect it to handle billions of simultaneous real-time interactions in future.<\/p>\n\n\n\n<p>So, we recommend choosing a framework with a well-designed architecture. Model-View-Controller (MVC) is known for being slightly less scaleable, but it\u2019s more efficient and easier to set up. On the contrary, microservices adds extra layers of complexity to early product development.<\/p>\n\n\n\n<p><strong>Fun fact:<\/strong> The first version of Twitter was famously built with Rails. In 2009, as its user base skyrocketed, Twitter realized that it would be better off with a distributed systems architecture, so it made the switch to Scala. However, Shopify and GitHub are good examples of apps that have scaled into billion-dollar enterprises with RoR as their foundation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Easy to maintain<\/h3>\n\n\n\n<p>Your backend infrastructure is the spine of your application, so maintainability is an important consideration. Opt for a framework that has been heavily documented and supports the separation of concerns. Tightly coupled code is a nightmare to modify and maintain. Frameworks with a modular architecture, such as RoR, allow you to make changes to one part of the application without breaking others in the process. This makes it easier to iterate on an MVP. Meanwhile, well-established frameworks like Rails and Django typically have a wealth of documentation that can help developers troubleshoot issues quickly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Active community<\/h3>\n\n\n\n<p>Support from an active community can make all the difference when you\u2019re in the early stages of building a product. MVP development is fast-paced. Your team needs to be able to problem-solve on the go and find answers to their questions quickly. Ideally, you should pick a framework that is open-source, consistently maintained, and home to an ever-growing community.<\/p>\n\n\n\n<p>We count ourselves lucky: Ruby has one of the largest tech communities in the world, with over <a href=\"https:\/\/www.statista.com\/statistics\/1241923\/worldwide-software-developer-programming-language-communities\/#:~:text=According%20to%20the%20survey%2C%20the,programmers%2C%20with%2015.7%20million%20developers.\">2 million active<\/a> developers. RoR\u2019s community is well-known for its friendliness. Meanwhile, the Rails GitHub page boasts over 4.6K contributors (frameworks like Express, Angular, and Vue.js hardly scrape 2K when combined). New gems are released every day.<\/p>\n\n\n\n<p><strong>Tip:<\/strong> Bear in mind that a framework\u2019s popularity isn\u2019t always an indicator of a helpful community. For example, the Javascript community is huge, but that\u2019s also what makes it more prone to infighting and lack of consensus.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why choose Ruby on Rails for your MVP?<\/h2>\n\n\n\n<p>Here are a few reasons why we consider Rails to be one of the best options for MVP backend development.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Supports rapid development<\/h3>\n\n\n\n<p>Why does Rails continue to be a popular choice among startups? Because it enables small teams to build powerful web applications in very little time. Here are some of the features that make that possible:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Convention over configuration. <\/strong>Rails promotes naming conventions and default assumptions over constantly having to specify how things work. This streamlines the process of writing code, saving startups precious time on development.<\/li>\n\n\n\n<li><strong>Generators and templates<\/strong> that give developers easy access to quality, boilerplate code. This is thanks to the Rails <strong>DRY (Don\u2019t Repeat Yourself)<\/strong> principle, which encourages developers to reuse existing code.<\/li>\n\n\n\n<li><strong>A built-in testing framework<\/strong> that allows engineers to quickly write automated tests, catching bugs that would otherwise slow development down.<\/li>\n<\/ul>\n\n\n\n<p>Of course, timelines differ from project to project, but in our experience, Rails MVPs typically don\u2019t take more than 3 months to build. This increased speed to market allows startups to gather feedback and iterate earlier than their competitors.<\/p>\n\n\n\n<p>As Reid Hoffman states in <a href=\"https:\/\/www.amazon.com\/Blitzscaling-Lightning-Fast-Building-Massively-Companies\/dp\/1524761419\"><em>Blitzscaling<\/em><\/a><em>, <\/em>\u2018&#8230;prioritizing speed over efficiency\u2014even in the face of uncertainty\u2014is especially important when your business model depends on having lots of members and getting feedback from them. If you get in early and start getting that feedback and your competitors don\u2019t, then you\u2019re on the path to success.\u2019<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">MVC architecture<\/h3>\n\n\n\n<p>In line with Rails\u2019 reputation for structure and simplicity, the framework uses MVC architecture. MVC, or Model-View-Controller, is a method of separating your web application into three interconnected parts. In our view, this design pattern makes applications much easier to maintain and iterate on. Segments are defined as so:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Models <\/strong>manage data and related business logic, including database interactions and validations.<\/li>\n\n\n\n<li><strong>Views <\/strong>handle what the user sees and interacts with, including the user interface and related inputs.<\/li>\n\n\n\n<li><strong>Controllers <\/strong>act as a connector between models and views, by handling user requests and providing the data on demand.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"557\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image2-2-1-1024x557.png\" alt=\"\" class=\"wp-image-15853\" style=\"width:1024px;height:557px\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image2-2-1-1024x557.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image2-2-1-360x196.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image2-2-1-768x418.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image2-2-1-1536x836.png 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image2-2-1.png 1601w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>This modular, monolithic structure promotes efficiency. Having separate modules allows more people to work on them independently. Teams can rapidly iterate on their MVP and add new features without compromising other parts of the codebase. And this \u2018independence\u2019 also makes it easier to grow the dev team.<\/p>\n\n\n\n<p>However, because MVC is monolithic, the biggest challenge is setting boundaries between parts of the application. For example, in the case of our product <a href=\"https:\/\/www.coupler.io\/\">Coupler.io<\/a>, we\u2019ve experienced difficulties with separating entire logic about executions from credentials management. It\u2019s not a dealbreaker; there are workarounds. But horizontal layering (e.g. microservices) has the advantage in this regard \u2013 it allows for smoother scaling of the application.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Concise language<\/h3>\n\n\n\n<p>Ruby is renowned for its simple and highly-readable syntax. It\u2019s an incredibly expressive object-oriented language with loose syntax rules (optional parens, for instance). Not only does this give developers more flexibility in how they write solutions, but it also helps increase productivity \u2013 developers can do more with less code. And Ruby is an accessible language, suitable for rapidly expanding development teams; even if new members don\u2019t know Ruby, they won\u2019t have a hard time learning or understanding it.<\/p>\n\n\n\n<div class=\"post-quote no-pad\" style=\"display: flex; position: relative; margin-right: 50px;\">\n<div class=\"post-quote-mark\" style=\"position: absolute; font-size: 100px; top: -52px; font-family: sans-serif; color: #4ba9e7; right: 0px; font-weight: bold;\">\u201c<\/div>\n<div style=\"color: #666; padding-right: 40px;\">\n<p>To put it simply \u2014 Ruby is a remarkably literate language. It\u2019s easy to write, and it\u2019s easy to read. And, for regular web applications \u2014 complicated, but not dangerous \u2014 this is what we need the most. The syntax is what allows programmers to construct such expressive DSLs in Ruby \u2014 most importantly, Rails. But your own business logic is easier to write in Ruby, too.<\/p>\n<\/div>\n<div style=\"display: flex; flex: 1 0 auto; flex-direction: column; font-weight: bold; color: #333333; align-items: center; text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-11983\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2022\/08\/imageedit_6_4809954508.png\" alt=\"Leonid comments on Ruby syntax\" width=\"180\" height=\"180\">\n<h4>Leonid Shevtsov<\/h4>\n<p style=\"margin-bottom: 0; color: #999;\">Full Stack Engineer at Railsware<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Ultimately, Ruby and RoR\u2019s simplicity makes it a good match for the MVP. There\u2019s nothing to be gained from making your code more complicated than it needs to be, especially at this critical stage of product development.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ruby Gems<\/h3>\n\n\n\n<p><a href=\"https:\/\/rubygems.org\/\">Ruby Gems<\/a> are code libraries that provide additional functionality to the Rails framework. Access to a wealth of high-quality, reliable, and reusable code allows Ruby engineers to build functional web applications, fast. As such, gems are an essential resource for Ruby developers and play a crucial role in the Ruby ecosystem.<\/p>\n\n\n\n<p>We wouldn\u2019t say there\u2019s a gem for absolutely <em>everything<\/em>, but the sheer number of them \u2013 over 175K, with more released every day \u2013 means Ruby developers have plenty of options. On the other hand, the abundance of options can make it hard to pick the right ones for your MVP. Since every product is different, it\u2019s impossible to narrow down the list. But here are three gems our Ruby engineers always recommend for MVP development:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/rubygems.org\/gems\/devise\">Devise<\/a> for flexible authentication.<\/li>\n\n\n\n<li><a href=\"https:\/\/rubygems.org\/gems\/sidekiq\">Sidekiq<\/a> for simple and efficient background processing.<\/li>\n\n\n\n<li><a href=\"https:\/\/rubygems.org\/gems\/activeadmin\">ActiveAdmin<\/a> for a solid administration framework to control\/inspect data.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">What about other popular backend frameworks?<\/h3>\n\n\n\n<p>Ruby on Rails isn\u2019t as celebrated as it once was. Over the past decade, several other backend frameworks \u2013 e.g. Express.js, Spring, and Django \u2013 have spiked in popularity, knocking RoR from the top of the table.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"800\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image1-1-1024x800.png\" alt=\"\" class=\"wp-image-15852\" style=\"width:1024px;height:800px\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image1-1-1024x800.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image1-1-360x281.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image1-1-768x600.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image1-1-1536x1200.png 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image1-1.png 1601w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p class=\"has-text-align-center\"><em>Size of programming language communities in 2022<\/em><\/p>\n\n\n\n<p>There have always been claims that RoR is slow, but the difference in runtime speed (microseconds) is marginal when compared to other frameworks. That is, as long as your app doesn\u2019t lean heavily on in-memory processing. We consider Express.js and Django the better options for memory-intensive applications (e.g. multiplayer games, social networking apps, AI tools, etc.).<\/p>\n\n\n\n<p>Meanwhile, as a JavaScript framework, Express has an advantage. It shares a common language with some of the most hyped frontend frameworks (e.g. React, Next). This helps improve project coherency and makes it easier for teams to collaborate.<\/p>\n\n\n\n<div class=\"post-quote\" style=\"display: flex; position: relative;\">\n<div class=\"post-quote-mark\" style=\"position: absolute; font-size: 100px; top: -52px; font-family: sans-serif; color: #4ba9e7; left: 0px; font-weight: bold;\">\u201c<\/div>\n<div style=\"display: flex; flex: 1 0 auto; flex-direction: column; font-weight: bold; color: #333333; align-items: center; text-align: center; margin-right: 50px;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-11983\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2022\/08\/imageedit_6_4809954508.png\" alt=\"Leonid Shevtsov on RoR benefits\" width=\"180\" height=\"180\">\n<h4>Leonid Shevtsov<\/h4>\n<p style=\"margin-bottom: 0; color: #999;\">Full Stack Engineer at Railsware<\/p>\n<\/div>\n<div style=\"color: #666; padding-right: 40px;\">\n<p>Rails is superb for a specific but very common scenario: when you need to have lots of complicated business logic, but it doesn\u2019t involve crunching large amounts of data at a time.<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Again, RoR\u2019s accessibility makes it faster in other ways \u2013 for instance, the literate nature of the Ruby language, and the sheer amount of community support. By comparison, Laravel\u2019s learning curve is much steeper.<\/p>\n\n\n\n<p>Even though some frameworks are more widely implemented, Rails can still be used to build just about anything \u2013 fintech, SaaS, and even video streaming applications. Thanks in part to Shopify\u2019s success, <a href=\"https:\/\/railsware.com\/blog\/ruby-on-rails-ecommerce\/\">Ruby on Rails for e-commerce<\/a> is still a popular implementation. The bottom line is: startups can easily leverage the framework to create performant, flexible, and investment-ready MVPs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How do low-code\/no-code platforms compare?<\/h3>\n\n\n\n<p>Market adoption of low-code and no-code platforms (such as Webflow, Bubble, or WordPress) has <a href=\"https:\/\/www.gartner.com\/en\/newsroom\/press-releases\/2021-11-10-gartner-says-cloud-will-be-the-centerpiece-of-new-digital-experiences\">soared since 2020<\/a>. And it\u2019s no surprise why \u2013 drag &amp; drop editors, growing marketplaces, and tons of built-in functionality make these platforms attractive to plenty of non-technical, cash-strapped entrepreneurs.<\/p>\n\n\n\n<p>But startups should think twice before jumping on the <a href=\"https:\/\/railsware.com\/blog\/nocode-mvp\/\">no-code MVP<\/a> train. It\u2019s worth noting that no tech unicorns have been built using these platforms. Creating an original and nuanced product can be tricky when server-side customization is so limited. Ultimately, more abstraction also means less control over the end result.<\/p>\n\n\n\n<p>And sure, you could build a simple low\/no-code app (let\u2019s say, an e-Commerce platform) with Airtable and Zapier for a backend, Webflow for a frontend, and Stripe as a payment facilitator. But if you\u2019re non-technical, it won\u2019t exactly be easy. You still need rudimentary product development skills to construct an application that leverages multiple different tools, APIs, and integrations.<\/p>\n\n\n\n<p>Meanwhile, Ruby on Rails is the definition of tried and tested. Products like Airbnb, Basecamp, and Zendesk are proof that Rails MVPs are scaleable, powerful, and capable of attracting serious investment. <a href=\"https:\/\/railsware.com\/services\/ruby-on-rails-web-development-services\/\">Ruby on Rails services<\/a> might be more expensive than low\/no-code tool subscriptions, but this often pays off in the long run.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Successful SaaS MVPs built with Ruby on Rails<\/h2>\n\n\n\n<p>Here are a few other examples of <a href=\"https:\/\/railsware.com\/blog\/b2b-saas\/\" title=\"\">B2B SaaS<\/a> applications that had Ruby on Rails under the hood at the MVP stage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Calendly<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"638\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-01-1-1024x638.png\" alt=\"\" class=\"wp-image-15764\" style=\"width:1024px;height:600px\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-01-1-1024x638.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-01-1-360x224.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-01-1-768x478.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-01-1-1536x957.png 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-01-1.png 1601w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><a href=\"https:\/\/calendly.com\/\">Calendly<\/a> is an online scheduling app that lets you schedule and manage appointments with ease. Railsware has been involved in its development since 2013, when the product was still in the idea stage. Over several months, we supported Tope Awotona, Calendly\u2019s founder, in bringing that idea to life.<\/p>\n\n\n\n<p>The process started with a <a href=\"https:\/\/railsware.com\/bridges-framework\/\">BRIDGeS session<\/a> (ideation) to identify user pains and shape the product vision based on those insights. Next up was building an MVP. From the get-go, the backend was built on Rails, with Postgres and Redis for database management. The frontend was powered by HTML5, CSS3, and JavaScript. Crucially, this robust tech stack has stood the test of time. Over the years, we have implemented countless changes based on user feedback and new requirements. Rails has proved flexible, reliable, and performant throughout \u2013 as of 2022, Calendly\u2019s architecture supports over 10 million active users. It\u2019s currently valued at over $3 billion.<\/p>\n\n\n\n<p>Read <a href=\"https:\/\/railsware.com\/blog\/what-comes-after-an-mvp\/\">What comes after MVP<\/a> to learn more about how we help our clients scale their products.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fiverr<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"544\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1-1024x544.png\" alt=\"\" class=\"wp-image-15856\" style=\"width:1024px;height:544px\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1-1024x544.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1-360x191.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1-768x408.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1-1536x816.png 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1.png 1601w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Today <a href=\"https:\/\/www.fiverr.com\/\">Fiverr<\/a> is one of the leading online marketplaces for freelance services. But when founders Micha Kaufman and Shai Wininger first launched the platform back in 2010, it had a very different look and feel.<\/p>\n\n\n\n<p>The Fiverr MVP was a basic web app that the two businessmen had built quickly with Rails. It allowed freelancers to sell their services for a fixed fee of $5 \u2013 hence the name. However, as demand for the product grew \u2013 and feedback from users rolled in \u2013 Fiverr expanded beyond $5 services. The company attracted more than $110 million in funding during its first five years in business.<\/p>\n\n\n\n<p>Fiverr\u2019s growing team continued to scale the product, and by 2020, the platform had launched Fiverr Business, a feature that allows companies to manage their freelancer workflows. Fiverr\u2019s tech stack has also expanded over the years, but Ruby on Rails still counts as one of their core technologies.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">TradeZella<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"544\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1-1-1024x544.png\" alt=\"\" class=\"wp-image-15857\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1-1-1024x544.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1-1-360x191.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1-1-768x408.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1-1-1536x816.png 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/In-article-image3-1-1.png 1601w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><a href=\"https:\/\/railsware.com\/case-studies\/tradezella\/\">TradeZella<\/a> is an all-in-one trading journal founded by Umar Ashraf, a seasoned entrepreneur and stock trader. Our team has worked with Umar since 2021, helping him shape and grow the TradeZella MVP into a full-featured product.<\/p>\n\n\n\n<p>Prior to our involvement, Umar worked with a couple of outsourced development teams to build the first version of his TradeZella. However, those co-operations didn\u2019t yield great results, and that\u2019s when Umar enlisted our help. We refactored code, redesigned the UI\/UX, and significantly enhanced the product\u2019s stability and performance. The result was a fully-functional MVP, with a backend built on Ruby and RoR, and a frontend built on JavaScript, React.js, HTML5, and Sass.<\/p>\n\n\n\n<p>The application quickly attracted early adopters, and we\u2019ve used their feedback to improve the product by adding new features like Replay, Zella Notebook, and Zella University. The continued success of TradeZella is proof that Ruby on Rails is still relevant this decade.<\/p>\n\n\n\n<p>For more practical examples, check out our round-up of highly-successful <a href=\"https:\/\/railsware.com\/blog\/ruby-on-rails-websites\/\">Ruby on Rails websites<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How Railsware can help<\/h2>\n\n\n\n<p>We aren\u2019t just a bunch of Ruby on Rails experts \u2013 at Railsware, we&#8217;re skilled in providing <a href=\"https:\/\/railsware.com\/services\/\">end-to-end product development services<\/a> for startups worldwide.<\/p>\n\n\n\n<p>Apart from Ruby and Ruby on Rails, we leverage technologies like React.js, React Native, Node.js, Python, Go, and AWS to create resilient and sophisticated solutions. Our team of product managers, designers, and software developers integrate seamlessly into your business, supporting your product\u2019s growth every step of the way. From ideation and prototyping to MVP development and long-term growth, we help you start small and scale.<\/p>\n\n\n\n<p>Interested in having us as your tech partner? Shoot us a message via our <a href=\"https:\/\/railsware.com\/contact\/\">contact page<\/a> and we\u2019ll be in touch!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Building a minimum viable product is all about keeping things simple. The early product development process is riddled with trial and error, and overengineering at the MVP stage can leave startups strapped for cash when they\u2019re forced to return to the drawing board. So, it\u2019s important to choose a backend framework that\u2019s optimized for MVP&#8230;<\/p>\n","protected":false},"author":69,"featured_media":15851,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3,5],"tags":[],"coauthors":["Artur Hebda"],"class_list":["post-15827","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","category-management"],"acf":[],"aioseo_notices":[],"categories_data":[{"name":"Engineering","link":"https:\/\/railsware.com\/blog?category=development"},{"name":"Product Management","link":"https:\/\/railsware.com\/blog?category=management"}],"post_thumbnails":"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/03\/Featured-image-3.jpg","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/15827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/users\/69"}],"replies":[{"embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/comments?post=15827"}],"version-history":[{"count":14,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/15827\/revisions"}],"predecessor-version":[{"id":16664,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/15827\/revisions\/16664"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/media\/15851"}],"wp:attachment":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/media?parent=15827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/categories?post=15827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/tags?post=15827"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/coauthors?post=15827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}