If you're planning to customize your marketplace with code, it's useful to understand the big picture of Sharetribe's technical architecture. The diagram below describes Sharetribe's technical architecture (click the diagram to make it larger). In this article, we'll explain how the different parts described in the diagram work.
Sharetribe's "headless" approach
In software engineering, the terms "frontend" and "backend" refer to the separation of the presentation layer (how things look like to the users) and the data access layer (how data is stored and processed behind the scenes). "Frontend" code runs in the browser or phone of the users, while "backend" code runs on a web server.
Sharetribe can be considered a Headless Marketplace Solution. "Headless" is a software engineering term that refers to a system that provides a backend and APIs for accessing it (the "body"), and allows any kind of frontend (the "head") to be built on top of it. This approach allows you to build your marketplace the way you want while letting Sharetribe take care of the heavy lifting related to managing the backend infrastructure.
Template & Console
To make it super fast and easy for anyone to build and launch a fully functional marketplace, Sharetribe comes with a default "head", called the Sharetribe Web Template. The Template is a client application that provides a default marketplace user interface. It comes with configurations: you can switch between default layouts and transaction flows, add custom listing fields and content pages, and so on. These configurations allow it to be adjusted to power multiple different types of marketplaces without code changes.
Sharetribe hosts, maintains, and upgrades a version of the Template. Thanks to this hosted version, you can build, launch, and run your marketplace without having to write code, install anything, or worry about software updates. You can change the configuration of the Template through the Sharetribe Console. Console is the admin user interface Sharetribe provides to marketplace operators. In addition to changing the configurations, you also use it to manage the data created by your users: user profiles, listings, transactions, and so on.
If you want to customize your marketplace with code, you can install the Template on your own web server. You can still use the features of the no-code marketplace builder for editing content pages, custom fields, and other such configurations. However, it's possible for you to start making customizations to the Template codebase and see them appear in your marketplace. This gives you full control over how your marketplace looks and works.
Sharetribe Core
Template receives all its data and configurations via APIs from the Sharetribe Core. Core is the "body" hosted and maintained by Sharetribe. Sharetribe Core is an extremely flexible marketplace backend. It handles storing and processing the user data of your marketplace (users, listings, transactions, reviews, messages, and so on) and your marketplace configuration (content pages, custom listing fields, commission settings, and so on). Even when you have installed the Template on your own server, it will continue to receive its data and configurations from Core, so Sharetribe's hosted infrastructure still does all the heavy lifting.
Sharetribe Core also provides flexible tooling for custom development, including a customizable data schema that allows you to store any type of structured data to your users and listings and a transaction engine that allows you to describe your ideal user journey to it and get back an API that matches your specific workflow. Thanks to these developer platform features, you typically need to do very little backend development and maintenance when building a marketplace with Sharetribe, as Sharetribe Core handles most of the heavy lifting for you. You can simply call Sharetribe's APIs from your custom frontend code to store and retrieve data. This approach saves you a lot of time and money when building and growing your marketplace.
Sometimes a feature you're building might require you to write some backend code. For example, you might want to integrate a third-party payment gateway. Some of the code for this integration needs to run on a web server to keep things secure.
โ
The Template comes with a small backend of its own. It's used mainly for a process called server rendering, which speeds up the loading time of your website. In addition, the Template backend is used to ensure that every transaction is initiated securely. You can easily expand this backend whenever you need some custom backend functionality. Sharetribe's Integration API and event-based architecture ensure that customizing your backend and integrating any third-party software into your marketplace is a seamless experience.
This approach allows you to customize your marketplace infinitely. No matter what feature or change you need, there's always a way for you to build it.
In some situations, you might need something even more custom. For example, you might want to build a native mobile app or integrate the features of your marketplace into your existing web or mobile application. In these cases, it's also possible to build a Sharetribe-powered marketplace without utilizing the Template at all. Instead, you can tap directly into the APIs of Sharetribe Core, and build the user interface yourself.