Lockdown regimes and shop closures caused by the COVID-19 global pandemic encouraged consumers to use online shopping for their necessities. Even with the recent opening of shops, many consumers still prefer to buy online to avoid any risks.
There has been a considerable growth in e-commerce globally and it is predicted that this lever will remain high even when the situation returns to normal. So if you want to start your online marketplace, this is the best moment to do so.
If you have no technical background, it's very likely that you start wondering which technology to use to build your marketplace. If you're in that point, keep reading. With this article, you'll understand what is needed when developing an online marketplace and why you should consider Ruby on Rails.
Building an online marketplace
When starting your online marketplace, you first need to identify its archetype and be aware of its strengths and weaknesses. This is vital as later, during development, the language or framework you decided for can become a blessing and not a liability. The goal of online marketplaces is to facilitate the connection between suppliers and customers. It can fall into three different categories based on their audience: B2B (business-to-business), B2C (business-to-customer), or C2C (customer-to-customer), also referenced as peer-to-peer. Let’s zoom in at each one of them:
In a marketplace with a B2B model, business buyers connect with a wide range of distribution suppliers and vice-versa. Usually, these types of marketplaces serve as platforms for placing orders and where the money transactions between buyers and sellers are made via bank transfer. Examples of marketplaces with this model include Alibaba and Amazon.
In the B2C model, businesses (suppliers, vendors) sell their products directly to their customers. Like in a real supermarket, individual customers buy products that are represented by a brand and payment is done using a credit card or PayPal. Examples of this model include giants like AliExpress and Ebay.
The beauty of a customer-to-customer model is that it is presumed that all users are equal. A customer can be both an individual seller and an individual buyer. In a marketplace with this type of model, the user can interchangeably buy and sell products. We also have seen marketplaces that follow this model but are not web stores. Instead, they act as a platform for users to provide services between themselves. Examples include Uber and Airbnb.
Horizontal vs Vertical
Additionally to these models, online marketplaces can also be categorized as vertical or horizontal, depending on their focus. An horizontal marketplace consists of a wide range of products or services and can generate huge profits because it has a broad target audience. It is tempting to create a new horizontal marketplace, but the e-commerce market is already saturated with giant horizontal marketplaces like Amazon, Alibaba, AliExpress and Ebay, making it very difficult to enter the business. On the contrary, a vertical marketplace focuses solely on one service or product and often provides a unique solution for a specific problem of a niche audience. Again Uber and Airbnb are examples of this type of model.
Building an marketplace
Certain frameworks can help you with the development of your marketplace (like Shopify or Magento) that are worth looking at. Nevertheless, they can often provide limited functionalities or limited styling. If you want to develop something specific and unique, you will need to resort to a generic web application framework. At Imaginary Cloud, we deliver tailor made marketplaces with the exact features and styling you want. Building a marketplace is no easy task and a lot of work needs to be put into it to create a simple but functional platform.
Here are some core features of a standard marketplace:
Payment options - Definitely a core feature of a marketplace. Buyers should have several secure payment options. Split payments should also be a thing if you want buyers to be able to buy from two or more sellers at once.
User roles - Differentiation between administrators, buyers and sellers is a distinct feature but not a trivial one. Additional code needs to be done to implement this feature and in the case of a C2C model the roles buyer and seller are interchangeable.
Custom search - An effective way for buyers to search the products they want via categories, keywords or sellers.
Seller’s listings - A seller must be able to list and manipulate the products he is selling. Remove, add products, change their prices, etc...
Seller’s page - A good way for the sellers to present themselves to their clients (this features is more important in the C2C model)
Products review system - A review system must be implemented to protect the buyers, ensuring that the product they want to buy has quality. On the other hand, sellers can improve their products based on buyers' feedback.
Responsive UI or mobile application - Today, if you want to have more buyers, having a marketplace compatible with mobile platforms is a must. We can achieve this by developing a responsive UI capable of adapting to any mobile platform. Or develop a mobile application alongside the website.
Admin Interface - An admin interface would be your operations station that is meant to give you control over your application. Many features can be implemented in the admin interface, depending on the likes of your marketplace. Accepting or refusing new sellers or products, sending informative notifications or censoring derogatory dialog, to name a few.
These were the features we deemed necessary to create a tailor made marketplace.
Besides these features, others can be added to create a functional online marketplace.
Creating a marketplace with Ruby on Rails
There are many programming languages available to choose from, but Ruby on Rails comes as a perfect choice to build a marketplace. This decision comes down to the availability and productivity provided by Ruby on Rails.
It is a mature language, meaning that many developers dominate it, reducing the possibility of implementation errors. Additionally, Rails’s motto “convention over configuration” means that once you understand Rails’s “magic” it is easy to read and understand code. This is crucial if new features need to be implemented and you have newcomers in the team.
Rails also has an extensive library of tools (gems) to help develop some features. Here we present some gems that can help on the implementation of core features:
Security - Two-factor authentication (2FA) is an excellent way of increasing the security of your user’s data. It validates the user identity twice. First, the user needs to login to your app and then a one-time code is sent to their mobile device. Some third-party programs like Devise can handle this task and luckily, Rails has a respective gem (devise-two-factor) to aid us with its integration in our app.
Online payments - Some gems can help you integrate third-party payment gateways services like Paypal and Stripe into your application. These services handle the payment data and money transaction for you so that your application doesn´t have to store any sensitive information. Some users find reassuring that a well known third party program is handling their sensitive data. Additionally, the gem money-rails can help you to display formatted money values.
Admin Interface - Ruby on Rails does not fall short when providing tools to help you develop a customizable admin interface. We are not explaining in detail each one, but here are the three most popular: - activeadmin, - rails_admin, - administrate.
Of course, Rails's utility extends much further than this. But these (gems) were some of the most useful tools for developing an online marketplace.
The gems described above will help you integrate these features with the backend of your application. Rails framework can also help develop your front-end but newer and more complete frameworks, like React or Angular are more suitable for that task. We can let Rails handle the backend and integrate one of these frameworks to deal with the front-end to have the best of both worlds.
For all the reasons described above, many online marketplaces are built using Ruby on Rails, including like Airbnb or Fiverr. Also in this list, there's a British online platform for buying and selling off-market properties, developed by us, called Invisible Homes . It's a Ruby on Rails web application where buyers are matched with properties based on their search patterns. The app allows buyers to connect with sellers directly and vice-versa and was developed to answer the demands of this growing market in the UK.
Using Ruby on Rails to build your marketplace
We are not trying to compete with “do it yourself” type solutions like Shopify, which are suitable for developing small and simple marketplaces. When you need to build your complex and unique idea and make your marketplace standout, the best option is to choose a web application framework like Ruby on Rails.
Ruby on Rails is an amazing language for web development. The combination of experienced developers and a significant tool’s library (gems) not only speeds up development, but it's an excellent advantage in the rapidly growing e-commerce market, where businesses race with each other to fill customer’s niches. Plus, Rails can be integrated with newer and advanced front-end technologies to develop a project with 100% customizable styles and features. Ruby’s good readability and Rails’s motto make it easy for a changing team to keep adding new features and maintain a project for years to come.