{"id":13122,"date":"2025-03-06T20:52:43","date_gmt":"2025-03-06T17:52:43","guid":{"rendered":"https:\/\/railsware.com\/blog\/?p=13122"},"modified":"2025-03-06T20:52:44","modified_gmt":"2025-03-06T17:52:44","slug":"ruby-on-rails-guide","status":"publish","type":"post","link":"https:\/\/railsware.com\/blog\/ruby-on-rails-guide\/","title":{"rendered":"Everything You Need to Know about Ruby on Rails Web Application Framework"},"content":{"rendered":"\n<p class=\"intro-text\">Ruby on Rails, frequently referred to as just Rails or RoR, is a popular open-source framework. While it&#8217;s not the youngest kid on the block (it turned 19 in 2022), it\u2019s still among the top choices for web application developers.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"538\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2025\/03\/image-1024x538.jpeg\" alt=\"\" class=\"wp-image-18191\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2025\/03\/image-1024x538.jpeg 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2025\/03\/image-360x189.jpeg 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2025\/03\/image-768x403.jpeg 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2025\/03\/image-1536x806.jpeg 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2025\/03\/image-2048x1075.jpeg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"post-quote no-pad\" style=\"display: flex; position: relative; margin: 0 50px; margin-top: 70px; margin-bottom: 10px;\">\n<div style=\"color: #666; padding-right: 40px;\">\n<p style=\"font-size: 150%;\">Rails has done more for startups than a whole boatload of Venture Capitalists. Rails has had an incredible impact on the startup ecosystem.<\/p>\n<p style=\"margin-bottom: 0; font-size: 100%; color: #999;\"><strong>Eric Ries, founder of Lean Startup Movement<\/strong><\/p>\n<p>&nbsp;<\/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;\">\n<div class=\"post-quote-mark\" style=\"position: absolute; font-size: 90px; top: -52px; font-family: sans-serif; color: #4ba9e7; right: 0px; font-weight: bold;\">\u201c<\/div>\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-11983\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2020\/12\/ruby-on-rails-photo5.png\" alt=\"Eric Ries about RoR for business\" width=\"130\" height=\"130\"><\/figure><p><\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"intro-text\">It is frequently ranked as <a href=\"https:\/\/www.slant.co\/topics\/362\/~best-backend-web-frameworks\" target=\"_blank\" rel=\"noopener noreferrer\">one of the top backend frameworks for the web<\/a>. It\u2019s used by some of the world\u2019s biggest brands, such as Airbnb and Shopify. With good reason, RoR has also been built into macOS for many years. And there\u2019s a vibrant, ever-growing community around Rails. Thousands of user-built gems make development a breeze.<\/p>\n\n\n\n<p>Like it or not, Ruby on Rails is here to stay. But what is it really about? Is it the right choice in 2023, whether you want to quickly ship an MVP, build a full-fledged site, or migrate? Is it a good time to become an RoR developer? That\u2019s what we\u2019re here to discuss.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Ruby on Rails?<\/h2>\n\n\n\n<p><strong>Ruby on Rails is a framework built on top of Ruby<\/strong>, a programming language created in the 90s. The idea behind RoR is straightforward \u2014 to give developers an intuitive framework to quickly develop robust, high-performing web pages.<\/p>\n\n\n\n<div class=\"post-quote no-pad\" style=\"display: flex; position: relative; top: -80px; flex-direction: column; color: #666; align-items: center; text-align: center; margin-right: 50px; margin-top: -30px; margin-bottom: -40px;\">\n<div class=\"post-quote-mark\" style=\"position: relative; top: 80px; font-size: 100px; font-family: sans-serif; color: #4ba9e7; font-weight: bold;\">\u201c<\/div>\n<div style=\"color: #666; font-size: 150%;\">\n<p>Ruby\u2019s original heresy was indeed to place the happiness of the programmer on a pedestal.<\/p>\n<\/div>\n<div style=\"color: #666; font-size: 100%;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-11983\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2020\/12\/ruby-on-rails-photo.png\" alt=\"David Heinemeir Hanson - creator of Ruby on Rails framework\" width=\"120\" height=\"120\">\n<p>&nbsp;<\/p>\n<p><strong>David Heinemeir Hanson, creator of RoR<\/strong><\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Rails delivered on the promise. It gives you the structure to build nearly any web application. It simplifies the creation process and gives you an abundance of tools to handle tasks for you. And all of these contribute to what RoR creator, David Heinemeier Hansson, frequently emphasized\u2014engineers\u2019 happiness.<\/p>\n\n\n\n<p><em>\u201cRuby\u2019s original heresy was indeed to place the happiness of the programmer on a pedestal. Above many other competing and valid concerns that had driven programming languages and ecosystems before it.&#8221;<\/em><\/p>\n\n\n\n<p>And this wasn\u2019t just a marketing slogan. From the beginning, <strong>Ruby on Rails has been heavily focused on giving developers a clean, fun-to-use framework that is powerful<\/strong> and truly different from anything else. The community that grew around it and the abundance of resources they created only helped bolster the growth of RoR.<\/p>\n\n\n\n<p>As Hansson put it in <a href=\"https:\/\/rubyonrails.org\/doctrine\/#optimize-for-programmer-happiness\" target=\"_blank\" rel=\"noopener noreferrer\">the Rails Doctrine<\/a>:<\/p>\n\n\n\n<p><em>&#8220;Where Python might boast that there\u2019s &#8216;one, and preferably only one, way to do something,&#8217; Ruby relished expressiveness and subtlety. Where Java championed forcefully protecting programmers from themselves, Ruby included a set of sharp knives in the welcome kit. Where Smalltalk drilled a purity of message passing, Ruby accumulated keywords and constructs with an almost gluttonous appetite.\u201d<\/em><\/p>\n\n\n\n<p>The entire piece gives a much deeper insight into the underlying concept of Rails. We highly recommend giving it a read.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Principles of RoR<\/h2>\n\n\n\n<p>Ruby on Rails is known as an MVC (model-view-controller) full-stack framework. The code is separated into three interconnected layers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Model<\/strong> contains the logic of an application, all the essential data, and high-level classes.<\/li>\n\n\n\n<li><strong>View<\/strong> is the UI representation of the data present in Modal. It\u2019s what users interact with and see on their screens.<\/li>\n\n\n\n<li><strong>Controller<\/strong> connects Model and View, receives user input, and decides how to handle the input.<\/li>\n<\/ul>\n\n\n\n<p>To give you an example, let\u2019s assume we\u2019re building an app &#8211; an atlas of rare birds. The <strong>model<\/strong> is responsible for defining, for instance, how bird categories are defined and what data each listing contains. The <strong>view<\/strong> specifies how each screen of the app is rendered to users and what happens after each UI interaction. Finally, the <strong>controller<\/strong> receives each user\u2019s input (for example, a search query), requests the needed data from the <strong>model<\/strong>, and tells the <strong>view<\/strong> how to display it.<\/p>\n\n\n\n<p>Ruby on Rails centers around two main principles, also known from other programming frameworks.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Do Not Repeat Yourself (DRY)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>This first principle states: <em>\u201cEvery piece of knowledge or logic must have a single, unambiguous representation within a system.\u201d<\/em> The logic behind it is straightforward. Coding the same things repeatedly, in different parts of an application, clutters the codebase, slows down development, and makes maintenance a lot harder.<\/p>\n\n\n\n<p>When developing in RoR, you split the application\u2019s logic into smaller, reusable units. You then reuse them throughout the code by simply calling them. When you need to update either piece, you update once, and the change applies across the entire codebase.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Convention over Configuration (CoC)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>This second principle is also about simplifying development and cutting down on time needed to ship the code. Convention over Configuration means that the RoR assumes various logical situations for you, by using the underlying, native functions, classes, variables and procedures.<\/p>\n\n\n\n<p>In this way, it decreases the number of decisions you make, and cuts down on the complexity usually associated with configuring each application area. And if you\u2019re unhappy with the default settings, you can overwrite them with your code and adjust the environment to your needs.<\/p>\n\n\n\n<p>One self-evident example of a convention used in Rails is naming. Models we mentioned earlier are always named with a singular proper noun describing the object they represent: \u2018user\u2019, \u2018portfolio,\u2019 \u2018project\u2019. By default, Rails will name the corresponding tables with the plural versions of the modals and, to continue the example, a \u2018users\u2019 table will be created.<\/p>\n\n\n\n<p>It might not seem like a significant simplification, but if you were to name hundreds of tables with meaningful words manually, you would right away appreciate the convenience.<\/p>\n\n\n\n<div class=\"aspect-ratio\"><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/t_ispmWmdjY\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">History of Ruby on Rails<\/h2>\n\n\n\n<p>David Heinemeir Hanson released RoR in July 2004. He extracted it from his work on the project management app, 37Signals (today known as Basecamp), and has been developing it ever since &#8211; at first by himself, and now with a dedicated core team.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"973\" height=\"1024\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/ruby-on-rails-community-team-\u043a\u043e\u043f\u0438\u044f-973x1024.png\" alt=\"\" class=\"wp-image-15763\" style=\"width:730px;height:768px\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/ruby-on-rails-community-team-\u043a\u043e\u043f\u0438\u044f-973x1024.png 973w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/ruby-on-rails-community-team-\u043a\u043e\u043f\u0438\u044f-342x360.png 342w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/ruby-on-rails-community-team-\u043a\u043e\u043f\u0438\u044f-768x809.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/ruby-on-rails-community-team-\u043a\u043e\u043f\u0438\u044f-1459x1536.png 1459w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/ruby-on-rails-community-team-\u043a\u043e\u043f\u0438\u044f.png 1800w\" sizes=\"auto, (max-width: 973px) 100vw, 973px\" \/><\/figure><\/div>\n\n\n<p><strong>Rails wasn\u2019t just an enhanced version of Ruby. It was nothing short of a revolution in the programming world<\/strong>. As Tim O\u2019Reilly of O\u2019Reilly Media publishing house put it at the time:<\/p>\n\n\n\n<p><em>\u201cRuby on Rails is a breakthrough in lowering the barriers of entry to programming. Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days.\u201d<\/em><\/p>\n\n\n\n<p>Eric Ries, the man behind the famous Lean Startup movement and book, spoke in a similar tone in one of his keynotes:<\/p>\n\n\n\n<p><em>\u201cRails has done more for startups than a whole boatload of Venture Capitalists. Rails has had an incredible impact on the startup ecosystem.\u201d<\/em><\/p>\n\n\n\n<p>And RoR became nothing short of a significant success nearly overnight. In 2007, the newly-released Mac OS X v.10.5 (aka Leopard), shipped with RoR built-in. This led to a surge in popularity in developer communities worldwide and loads of applications shipped with Rails underneath.<br>Each year would bring a new release, enhancing the possibilities and making the language more accessible to newcomers. At the time of writing, Ruby on Rails 7.0.4.2 and, <a href=\"https:\/\/contributors.rubyonrails.org\/releases\" target=\"_blank\" rel=\"noopener\" title=\"\">as the release log would testify<\/a>, the team shows no sign of slowing down.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">But first, there was Ruby&#8230;<\/h3>\n\n\n\n<p>Before Rails took the market by storm, there was a Japanese guy named Yukihiro Matsumoto (or \u201cMatz\u201d). He created Ruby in 1993 and two years later released it to the world. He was fascinated with object-oriented languages, but none that existed at the time appealed to him. So he decided to do something about it. Here\u2019s his quote from a post he made back in 1999:<\/p>\n\n\n\n<p><em>\u201cAs a language maniac and OO fan for 15 years, I really wanted a genuine object-oriented, easy-to-use scripting language. I looked for but couldn&#8217;t find one. So I decided to make it.\u201d<\/em><\/p>\n\n\n\n<p>30 years later, Matz and his team still actively develop Ruby. Aside from being the code of RoR, Ruby is also a standalone language used to build web applications. Ruby v. 3.2.1 was released in February 2023.<\/p>\n\n\n\n<div class=\"post-quote no-pad\" style=\"display: flex; position: relative; top: -80px; flex-direction: column; color: #666; align-items: center; text-align: center; margin-right: 50px; margin-top: -30px; margin-bottom: -40px;\">\n<div class=\"post-quote-mark\" style=\"position: relative; top: 80px; font-size: 100px; font-family: sans-serif; color: #4ba9e7; font-weight: bold;\">\u201c<\/div>\n<div style=\"color: #666; font-size: 150%;\">\n<p>Rails is the killer app for Ruby.<\/p>\n<\/div>\n<div style=\"color: #666; font-size: 100%;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-11983\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2020\/12\/ruby-on-rails-photo4.png\" alt=\"Yukihiro Matsumoto, Creator of Ruby language about Ruby on Rails framework\" width=\"120\" height=\"120\">\n<p>&nbsp;<\/p>\n<p><strong>Yukihiro Matsumoto, Creator of Ruby<\/strong><\/p>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Popular applications built with Rails<\/h2>\n\n\n\n<p>Ruby on Rails has been a go-to language for many years. As a result, many sites have been developed with Rails under the hood, and developers have gone in many different directions with the language.<\/p>\n\n\n\n<p>Of course, everything started with 37Signals \/ Basecamp, and unsurprisingly, their site has been powered by Rails ever since. For years, it remained their <a href=\"https:\/\/www.digitalsilk.com\/web-design\/shopify\/\" target=\"_blank\" rel=\"noopener\" title=\"\">primary development platform<\/a>, shaping the framework\u2019s evolution. As the hype progressed, <strong>many famous brands joined the party: GitHub, Airbnb, Zendesk, Groupon, Shopify, Hulu, Kickstarter<\/strong>, and others. Twitter also ran on RoR in the early days but has rebuilt its platform ever since.<\/p>\n\n\n\n<p><strong>At our software agency, RoR has been the go-to solution for many years<\/strong>. We\u2019ve developed dozens of successful Rails projects. Here are several examples:<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><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\" 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><\/div>\n\n\n<p><a href=\"https:\/\/calendly.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Calendly<\/a> is a popular meeting scheduling app. The platform generates an individual link for your invitees to use to quickly schedule a meeting. The app integrates with your calendar and popular apps, such as Salesforce, PayPal, or Google Analytics.<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><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-02-1-1024x638.png\" alt=\"\" class=\"wp-image-15765\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-02-1-1024x638.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-02-1-360x224.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-02-1-768x478.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-02-1-1536x957.png 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-02-1.png 1601w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p><a href=\"https:\/\/www.brightbytes.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">BrightBytes<\/a> is a data analytics platform for the education sector. It gathers insights from the world\u2019s best experts and transforms it into evidence-based, actionable frameworks to improve education and boost students\u2019 well-being.<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><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-03-1-1024x638.png\" alt=\"\" class=\"wp-image-15766\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-03-1-1024x638.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-03-1-360x224.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-03-1-768x478.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-03-1-1536x957.png 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly-03-1.png 1601w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p><a href=\"https:\/\/mailtrap.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mailtrap<\/a> is our own product\u2014we took it from a small prototype to one of the world\u2019s most popular email delivery platforms, with over 150K monthly active users. Mailtrap lets its users set up a safe testing environment and capture all outgoing emails. Then, users can inspect and improve them without any risk of spamming real users.<\/p>\n\n\n\n<p>For more, check out our list of <a href=\"https:\/\/railsware.com\/blog\/ruby-on-rails-websites\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby on Rails websites<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Is Ruby on Rails the right choice for businesses in 2023?<\/h2>\n\n\n\n<p><a href=\"https:\/\/trends.google.com\/trends\/explore?date=all&amp;geo=US&amp;q=%2Fm%2F0505cl\" title=\"\">Search data shows<\/a> that interest in RoR has waned over the past 2 decades. In fact, its popularity peaked in the mid to late noughties. But <a href=\"https:\/\/www.infoworld.com\/article\/3687219\/whatever-happened-to-ruby.html\" title=\"\">according to Matthew Boeh<\/a>, Senior Staff Software Engineer at Lattice, this coincided with a period of web transformation and the emergence of JavaScript as a full-stack language. As frameworks like React.js and Node.js saw greater buy-in from the development community, old favorites like Rails began to fall by the wayside.<\/p>\n\n\n\n<p>It\u2019s not uncommon to hear that Ruby is dead or nearing extinction. It\u2019s certainly no longer the most popular framework. It\u2019s also not as sexy as it was back in the day. And yet, millions of developers still use it, and most are likely not going anywhere else.<\/p>\n\n\n\n<p>Even though RoR has lost its hype, it&#8217;s still considered one of the best frameworks for <a href=\"https:\/\/railsware.com\/blog\/ruby-on-rails-ecommerce\/\">building e-commerce apps<\/a>. Notably, Shopify still use Rails as their &#8216;primary development platform&#8217; and &#8216;act as something of a patron for Ruby,&#8217; i.e. the recent Shopify contribution of performance-boosting YJIT compiler (citation: <a href=\"https:\/\/www.infoworld.com\/article\/3687219\/whatever-happened-to-ruby.html\">Whatever Happened to Ruby?<\/a>).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1020\" height=\"1024\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly1-04-1-1020x1024.png\" alt=\"\" class=\"wp-image-15768\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly1-04-1-1020x1024.png 1020w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly1-04-1-358x360.png 358w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly1-04-1-180x180.png 180w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly1-04-1-768x771.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly1-04-1-1529x1536.png 1529w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2023\/02\/apps-built-with-the-ror-calendly1-04-1.png 1601w\" sizes=\"auto, (max-width: 1020px) 100vw, 1020px\" \/><\/figure><\/div>\n\n\n<p><em>The most commonly used programming languages, as a percentage of those that took <a href=\"https:\/\/survey.stackoverflow.co\/2022\/#most-popular-technologies-language\" title=\"\">the Stack Overflow survey<\/a>.<\/em><\/p>\n\n\n\n<p>Ruby on Rails has many distinct advantages that, in 2023, still make it a viable option for businesses\u2014but it won&#8217;t be perfect for all of them. Nineteen years after its inception, we still use it for nearly every project, and <a href=\"https:\/\/trends.builtwith.com\/framework\/Ruby-on-Rails\" target=\"_blank\" rel=\"noopener noreferrer\">over 1 million live sites<\/a> are run with RoR under the hood.<\/p>\n\n\n\n<p>There are several reasons for this. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>It\u2019s mature and continually evolving.<\/strong> Rails shows no sign of aging. Competitors might have taken the best parts and enhanced them. But RoR didn\u2019t stay far behind. It kept getting better over the years, introducing lots of new features and making sure the whole ecosystem works flawlessly. It\u2019s stable, predictable, and has a huge community of experienced developers around it.<\/li>\n\n\n\n<li><strong>It\u2019s got a vast ecosystem.<\/strong> Over the years, the community has created an abundance of so-called Ruby Gems that simplify and speed up development. These free packages (with just a few exceptions) handle common tasks in Rails apps, such as integrations, parsing, monitoring, encryption, and virtually anything else an app should handle. The number of gems has grown into tens of thousands, and dozens of new ones are added every day.<\/li>\n\n\n\n<li><strong>It\u2019s time- and cost-effective.<\/strong> Rails provides extensive ready-to-use code and assumes common conventions. As many parts of the code are reusable, you can ship code several times faster than you would with many other frameworks. And as an additional bonus, the code is cleaner, without the necessary boilerplate, and with a much shorter maintenance time.<\/li>\n<\/ul>\n\n\n\n<p>To give better advice on whether RoR is the right choice, let\u2019s consider two scenarios:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You\u2019re about to start building a site and are considering Ruby on Rails, or<\/li>\n\n\n\n<li>You have a site running on RoR and are contemplating a change.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Is RoR the right choice for new projects?<\/h3>\n\n\n\n<p>Rails became so popular, especially among startups, because of its development speed. When building a so-called Minimum Viable Product (MVP), time-to-market is of the utmost importance. You want to quickly ship a product, onboard the first users, and start iterating.<\/p>\n\n\n\n<div class=\"post-quote no-pad\" style=\"display: flex; position: relative; top: -80px; flex-direction: column; color: #666; align-items: center; text-align: center; margin-right: 50px; margin-top: -30px; margin-bottom: -40px;\">\n<div class=\"post-quote-mark\" style=\"position: relative; top: 80px; font-size: 100px; font-family: sans-serif; color: #4ba9e7; font-weight: bold;\">\u201c<\/div>\n<div style=\"color: #666; font-size: 150%;\">\n<p>Rails is the most well thought-out web development framework I\u2019ve ever used.<\/p>\n<\/div>\n<div style=\"color: #666; font-size: 100%;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-11983\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2020\/12\/ruby-on-rails-photo2.png\" alt=\"James Duncan Davidson about RoR web framework\" width=\"120\" height=\"120\">\n<p>&nbsp;<\/p>\n<p><strong>James Duncan Davidson, Creator of Tomcat and Ant.<\/strong><\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Ruby on Rails was built with all of these needs in mind, and is arguably <strong>the top choice for startups launching their products<\/strong>. It\u2019s quick to develop a prototype with Rails &#8211; many are ready to take on their first users in just a few weeks. RoR makes this possible because of the <a href=\"https:\/\/rubygems.org\/stats\" target=\"_blank\" rel=\"noopener noreferrer\">abundance of gems<\/a> (175k+ at the time of writing!) and the intuitive nature of a framework.<\/p>\n\n\n\n<p>Once you\u2019ve confirmed your assumptions or found a different, viable business model, there\u2019s no need to switch to another framework. Ruby on Rails is perfectly suitable for large projects with complex backends, thousands of users, and a wide array of functionalities.<\/p>\n\n\n\n<p>As such, Ruby is among the best options if you:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Want to quickly deliver an MVP<\/strong> or need to develop a web application with a tight deadline<\/li>\n\n\n\n<li><strong>Have a limited budget<\/strong> (as an additional bonus, RoR is open source and thus, free to use)<\/li>\n\n\n\n<li><strong>Need to quickly find a development team<\/strong> or hire experienced developers (as there are so many out there)<\/li>\n\n\n\n<li>Have the need to handle complex logic. Because of the MVC structure of a framework, <strong>Ruby on Rails makes it very easy (and quick) to write complicated business logic<\/strong> succinctly, without the clunkiness typical of many frameworks.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Should you migrate from RoR?<\/h3>\n\n\n\n<p>If you already have a product built on Ruby, you may be tempted to consider a switch to another, hotter framework. Ruby has several limitations that may give valid reasons for a move:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>It\u2019s not suitable for apps that heavily utilize modern trends, such as machine learning or blockchain.<\/strong> The gems library is huge, but focuses on more traditional capabilities and may have trouble handling very customized or unusual functionalities. For example, Python has a far richer ecosystem of libraries and resources focused on ML, and is a go-to framework for data scientists.<\/li>\n\n\n\n<li><strong>Rails isn\u2019t the performance king either, but neither is it slow by any comparison.<\/strong> It\u2019s entirely sufficient for the vast majority of sites on the web. However, those looking for ultrafast and lightweight frameworks with out-of-the-ordinary computing capabilities should probably look elsewhere.<\/li>\n\n\n\n<li><strong>RoR lacks some of the flexibility in scaling apps that JavaScript or PHP frameworks are famous for.<\/strong> It can be enhanced with various optimizations, such as rewriting computation-heavy parts or adding more CPU and RAM. Giant CRMs, CMSes, and many other platforms scale successfully and handle millions of users with ease. However, if you anticipate needing to handle billions of close to real-time interactions at a time (think, Twitter), RoR may not be the way to go.<\/li>\n<\/ul>\n\n\n\n<p>With this in mind, let\u2019s straighten up some common misconceptions about RoR.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Is Rails slow?<\/h3>\n\n\n\n<p><strong>Rails isn\u2019t slow by any definition<\/strong>. It can\u2019t match some JS frameworks or Golang, but it is absolutely in line with many other popular frameworks\u2019 performance. The speed can only be an issue with huge implementations that drive massive traffic. Even then, this can be often addressed with the right architecture and database structure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does RoR\u2019s age make it boring?<\/h3>\n\n\n\n<p>Rails is also referred to as a boring framework because of its age and waning hype (which was once RoR\u2019s trademark). But is that necessarily a bad thing? <strong>Maturity makes RoR stable and predictable<\/strong>. Hype comes and goes. RoR is here to stay.<\/p>\n\n\n\n<p>Having said that, if you\u2019re struggling to scale your Ruby on Rails app, <a href=\"https:\/\/railsware.com\/contact\/\" target=\"_blank\" rel=\"noopener noreferrer\">give us a shout<\/a>. We\u2019ll gladly jump on a call and advise, with full transparency, if RoR is still the way to go.<\/p>\n\n\n\n<p>If neither of the above points is a deal-breaker, then Rails will arguably serve you well for many years to come. The number of resources keeps growing, and the community is among the best and most active in the industry. The framework is actively developed and keeps getting better. And finding experienced developers or reputable agencies is as easy as it\u2019s ever been.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What are the typical Ruby on Rails implementations?<\/h2>\n\n\n\n<p>As we said earlier, RoR isn\u2019t perfect for all projects but handles many of them well. Here are the usual implementations:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Web applications of nearly any sort, with typical functionalities<\/li>\n\n\n\n<li>Content management systems<\/li>\n\n\n\n<li>Prototypes or MVPs<\/li>\n\n\n\n<li>E-commerce stores, large and small<\/li>\n\n\n\n<li>Accounting platforms and many others<\/li>\n<\/ul>\n\n\n\n<p><strong>MVPs and early-stage products are the typical implementations<\/strong>, for many of the aforementioned reasons &#8211; which you can explore further on our article about <a href=\"https:\/\/railsware.com\/blog\/ruby-on-rails-for-mvp\/\" title=\"\">Ruby on Rails for MVPs<\/a>. But there\u2019s a lot more <a href=\"https:\/\/railsware.com\/blog\/why-use-ruby-on-rails-for-your-product\/\" target=\"_blank\" rel=\"noopener noreferrer\">that you can build with RoR<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Should you learn Ruby on Rails in 2025?<\/h2>\n\n\n\n<p>It can be tough to make up your mind about the next framework to learn with so many available options.<\/p>\n\n\n\n<div class=\"post-quote\" style=\"display: flex; flex: 1 0 auto; position: relative; flex-direction: column; color: #666; align-items: center; text-align: center; margin-right: 50px; margin-top: -30px;\">\n<div class=\"post-quote-mark\" style=\"position: relative; top: 80px; font-size: 100px; font-family: sans-serif; color: #4ba9e7; font-weight: bold;\">\u201c<\/div>\n<div style=\"color: #666; font-size: 150%;\">\n<p>Ruby on Rails is a breakthrough in lowering the barriers of entry to programming<\/p>\n<\/div>\n<div style=\"color: #666; font-size: 100%;\"><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-11983\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2020\/12\/ruby-on-rails-photo3.png\" alt=\"Tim O\u2019Reilly about Ruby on Rails for development\" width=\"120\" height=\"120\">\n<p>&nbsp;<\/p>\n<p><strong>Tim O\u2019Reilly, Founder of O\u2019Reilly Media<\/strong><\/p>\n<\/div>\n<\/div>\n\n\n\n<p>Depending on your interests, RoR may be one of the best on the list. Why? Let\u2019s see.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>There\u2019s a vibrant community around it, and over <a href=\"https:\/\/github.com\/rails\/rails\" target=\"_blank\" rel=\"noopener noreferrer\">4.6k contributors to the RoR GitHub page<\/a> (the hugely popular Django, Laravel, or ReactJS don\u2019t even have half of that). The RoR community is active and known for being very open and helpful to newcomers.<\/li>\n\n\n\n<li><strong>It\u2019s relatively easy to learn<\/strong>, especially if you already know JavaScript or a similar framework. The language is expressive, and the syntax is clean and easy to comprehend.<\/li>\n\n\n\n<li><strong>It\u2019s quick to work with, and with the abundance of resources<\/strong>, you can deliver things in no time. Incredibly helpful if you\u2019re planning to work on your own prototypes or pet projects.<\/li>\n\n\n\n<li><strong>Working with RoR inevitably means working closely with products<\/strong>. RoR teams are often found in startups, and they\u2019re small and focused. Engineers are often exposed to customer insights and gain a deeper understanding of the product. This can be an invaluable experience if product management is your field of interest.<\/li>\n\n\n\n<li><strong>Coding in Ruby also pays well<\/strong>. According to the <a href=\"https:\/\/survey.stackoverflow.co\/2022\/#top-paying-technologies-programming-scripting-and-markup-languages\" target=\"_blank\" rel=\"noopener\" title=\"\">2022 Stack Overflow Developer Survey<\/a>, Ruby was among the frameworks guaranteeing the highest paycheck.<\/li>\n\n\n\n<li>Rails does many things with logical conventions, so you can focus on the core of your application. <strong>The code is clean and easy to understand and maintain<\/strong>. \u201cIt\u2019s just fun to use\u201d was a widespread response when we asked our devs why they love coding in Rails.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">When not to choose RoR?<\/h3>\n\n\n\n<p>When should you opt for one of the Ruby alternatives instead of choosing RoR? Whichever way you go, you\u2019ll need to have a general understanding of JavaScript along with HTML\/CSS to become a successful web developer. For this reason, if you\u2019re just getting started, picking up JS may be the right approach.<\/p>\n\n\n\n<p>If Rails appealed to you with its MVC architecture but something else didn\u2019t quite match, ReactJS could be a viable alternative. It\u2019s trendy, quickly growing, and is undoubtedly in demand. The same can be said about Laravel, which has grown a fantastic community around it and provides tons of resources for those just getting started.<\/p>\n\n\n\n<p>If you always want to be on top of the latest technology trends, you can\u2019t overlook Python and its most popular framework, Django. It offers a rich ecosystem and an abundance of features that simplify development. Many of them came from Rails and enhanced it, quickly becoming some of the all-time favorites.<\/p>\n\n\n\n<p>Among other popular options, Java-based Spring and a JS family of Angular, Vue.js, and Express should certainly not be overlooked.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ruby on Rails framework compared to popular alternatives<\/h2>\n\n\n\n<p>If you\u2019re interested in a further comparison of these popular frameworks, be sure to check our articles:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/railsware.com\/blog\/ruby-vs-php-in-quest-of-the-most-suitable-programming-language-for-your-startup\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby vs PHP<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/railsware.com\/blog\/ruby-vs-java-elegance-contra-ubiquity\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby vs Java<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/railsware.com\/blog\/python-vs-ruby-vs-node-js-which-platform-is-a-fit-for-your-project\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby vs Python vs Node.js<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/railsware.com\/blog\/django-vs-ruby-on-rails-comparison\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby on Rails vs Django<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Ruby on Rails resources<\/h2>\n\n\n\n<p>Tutorials &amp; Documentation:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/guides.rubyonrails.org\/getting_started.html\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby on Rails official documentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.ruby-lang.org\/en\/documentation\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby documentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=t_ispmWmdjY\" target=\"_blank\" rel=\"noopener noreferrer\">Really good, 4-hour video tutorial on the basics of Ruby<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.tutorialspoint.com\/ruby-on-rails\/index.htm\" target=\"_blank\" rel=\"noopener noreferrer\">Intro to Ruby on Rails from Tutorialspoint<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.railstutorial.org\/book\" target=\"_blank\" rel=\"noopener noreferrer\">Long tutorial &amp; sample app from railstutorial.org<\/a> (Chapter 1 is free)<\/li>\n\n\n\n<li><a href=\"https:\/\/www.freecodecamp.org\/news\/lets-create-an-intermediate-level-ruby-on-rails-application-d7c6e997c63f\/\" target=\"_blank\" rel=\"noopener noreferrer\">Long intermediate Rails tutorial from freecodecamp <\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.javatpoint.com\/ruby-on-rails-tutorial\" target=\"_blank\" rel=\"noopener noreferrer\">Key RoR concepts explained at javatpoint<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.freecodecamp.org\/news\/tag\/ruby-on-rails\/\" target=\"_blank\" rel=\"noopener noreferrer\">Collection of posts explaining RoR concepts from freecodecamp<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/JuanitoFatas\/fast-ruby\" target=\"_blank\" rel=\"noopener noreferrer\">A long list of Ruby idioms gathered on GitHub by @JuanitoFatas<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.learnenough.com\/blog\/best-ruby-on-rails-course\" target=\"_blank\" rel=\"noopener\" title=\"\">Best Ruby on Rails courses and tutorials<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.udemy.com\/topic\/ruby-on-rails\/\" target=\"_blank\" rel=\"noopener noreferrer\">RoR courses on Udemy<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/railsware.com\/blog\/best-books-to-learn-ruby-on-rails\/\" target=\"_blank\" rel=\"noopener noreferrer\">A selection of best books to learn Ruby on Rails<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.amazon.com\/gp\/most-wished-for\/books\/6134006011?ref_=Oct_d_omwf_S&amp;pd_rd_w=WNOkh&amp;content-id=amzn1.sym.e072086d-ffc5-4ad9-a220-9b87d8b0b18a&amp;pf_rd_p=e072086d-ffc5-4ad9-a220-9b87d8b0b18a&amp;pf_rd_r=CKBWYGJKAA3D4N5JVQQB&amp;pd_rd_wg=Oglp7&amp;pd_rd_r=89cbcf43-20f7-4ba8-b2c8-d80685d8b28b\" target=\"_blank\" rel=\"noopener\" title=\"\">Top-rated Ruby books on Amazon<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/railsware.com\/blog\/how-to-hire-good-ruby-on-rails-developer\/\" target=\"_blank\" rel=\"noopener noreferrer\">How to find Ruby on Rails developers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/railsware.com\/services\/ruby-on-rails-web-development-services\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby on Rails development services<\/a><\/li>\n<\/ul>\n\n\n\n<p>Community:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/rubyonrails.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby on Rails official site<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/discuss.rubyonrails.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Rails forums<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/rails\/rails\" target=\"_blank\" rel=\"noopener noreferrer\">Rails GitHub page<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/ruby-on-rails\" target=\"_blank\" rel=\"noopener noreferrer\">RoR tag on Stack Overflow<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.reddit.com\/r\/rails\/\" target=\"_blank\" rel=\"noopener noreferrer\">r\/rails on Reddit<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.rubyonrails.link\/\" target=\"_blank\" rel=\"noopener noreferrer\">RoR Slack channel<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/rubygems.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Official RubyGems community<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/guides.rubygems.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Guide to RubyGems<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Glossary<\/h2>\n\n\n\n<p>Here are the key concepts used throughout this page, in alphabetical order:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CoC<\/strong> &#8211; Convention over Configuration, an approach used in Ruby on Rails that prioritizes common conventions over the settings that would otherwise need to be configured manually. It speeds up and simplifies development.<\/li>\n\n\n\n<li><strong>CMS<\/strong> &#8211; A platform used to manage content creation and editing\u2014written text, audio, video, or any other media type.<\/li>\n\n\n\n<li><strong>DRY<\/strong> &#8211; Don\u2019t Repeat Yourself, another approach used in RoR and other frameworks. It promotes the creation of small pieces of code that can be reused throughout the application. It makes development and maintenance faster.<\/li>\n\n\n\n<li><strong>MVC<\/strong> &#8211; Model-View-Controller pattern used in RoR and a number of other programming languages. It separates the application\u2019s logic into three interconnected items.<\/li>\n\n\n\n<li><strong>Ruby<\/strong> &#8211; An open-source programming language developed by Yukihiro Matsumoto that became the core of Ruby on Rails. Ruby emphasizes simplicity and developer productivity.<\/li>\n\n\n\n<li><strong>Ruby Gem<\/strong> &#8211; A piece of Ruby code that handles a common task and can be freely used in Ruby applications. Gems can contain one or several lines of code but can also span multiple files and handle complex features.<\/li>\n<\/ul>\n\n\n\n<section class=\"writer\">\n  <div class=\"writer__image\">\n    <img alt='Piotr Ma\u0142ek' src='https:\/\/railsware.com\/blog\/wp-content\/uploads\/2021\/06\/piotr-malek-180x180.jpg' srcset='https:\/\/railsware.com\/blog\/wp-content\/uploads\/2021\/06\/piotr-malek.jpg 2x' class='avatar avatar-180 photo' height='180' width='180' \/>  <\/div>\n\n  <div class=\"writer-data\">\n    <span class=\"writer-data__label\">Article by<\/span>\n    <span class=\"writer-data__name\">\n      Piotr Ma\u0142ek    <\/span>\n    <div class=\"writer-data__bio\">\n      Piotr Ma\u0142ek is a self-taught analytics engineer, analyst, and also a technical content writer with a strong focus on working with data and building automations. His work combines technical know-how with the ability to explain complex ideas simply.    <\/div>\n    \n      <\/div>\n<\/section>","protected":false},"excerpt":{"rendered":"<p>Ruby on Rails, frequently referred to as just Rails or RoR, is a popular open-source framework. While it&#8217;s not the youngest kid on the block (it turned 19 in 2022), it\u2019s still among the top choices for web application developers. Rails has done more for startups than a whole boatload of Venture Capitalists. Rails has&#8230;<\/p>\n","protected":false},"author":77,"featured_media":18233,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[],"coauthors":["Piotr Ma\u0142ek"],"class_list":["post-13122","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development"],"acf":[],"aioseo_notices":[],"categories_data":[{"name":"Engineering","link":"https:\/\/railsware.com\/blog?category=development"}],"post_thumbnails":"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2025\/03\/image-1024x538.jpeg","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/13122","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\/77"}],"replies":[{"embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/comments?post=13122"}],"version-history":[{"count":103,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/13122\/revisions"}],"predecessor-version":[{"id":18189,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/13122\/revisions\/18189"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/media\/18233"}],"wp:attachment":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/media?parent=13122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/categories?post=13122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/tags?post=13122"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/coauthors?post=13122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}