This section assumes that Conduit is already installed and running locally.
If you haven't done so already, please follow the relevant instructions on how to bootstrap Conduit from the Overview section.
Building a backend using Conduit requires that you familiarize yourself with a few key aspects of the project.
We're going to brief you on the essentials here and help you navigate the sections of the documentation that are actually most relevant to your needs.
Conduit is a microservice-based backend where services can function in a distributed environment.
Some of them are simple enough to require no configuration whatsoever, while others provide just enough default values to get their service started, with additional options for further modifying their behavior.
Certain modules depend heavily on third party service credentials, making it impossible for them to function without initial configuration.
The latter actually rely on the administrators providing configuration values before these modules can be activated for the first time.
Some configuration option examples could include the delivery of message reads in a chat module or enforcing user verification in an authentication module.
By now, we have established how most modules provide some form of configuration, whether they rely on it or not.
But how does one actually configure all of these distributed service modules?
Conduit provides a centralized form of module configuration, meaning administrators are capable of specifying their desired config options for any individual module through Conduit itself.
Conduit offers a plethora of options when it comes to routing.
You get support for both REST and GraphQL without duplicating any of your code, as well as WebSockets, all of which are available as API transports for both application and administration level requests.
You even get GraphQL-style populates on your REST endpoints ootb, plus auto-generated Swagger and whatnot.
Most modules usually expose a bunch of routes for you to make use of.
Some of them are administrative routes to be used only by you and your project's staff, while others are meant to be used by your clients.
You may choose to make use of either REST or GraphQL for both application and administration level requests alike.
WebSockets are also supported across the board, but due to their use is naturally restricted to specific operations.
Conduit is built around microservices and, as such, modules are where most of its functionality comes from.
Modules are more or less the bread and butter of Conduit and what would ultimately allow your projects to incorporate additional functionality without you needing to worry about implementing it yourself over and over again for each and every single one of them.
Official modules are built to be extremely versatile and configurable, but they are also entirely optional and replaceable.
If there's any reason why you'd wish to swap out our database our application router implementations you could just go ahead and do that and everything else would continue to function as expected, as long as you replace them with something that reimplements all of the expected service functions.
Check out the documentation on our officially provided modules.
Conduit also comes with an admin panel to facilitate the administration of your project.
Using it is completely optional and it can connect to remote Conduit instances, so you don't really need to deploy it online either.
I'm back. Now what?
Hopefully, the above should be enough to get you started and put you on the right track to build a fast and reliable backend.
This is just the tip of the iceberg of course. Backends can be pretty versatile, thus there's much more to be covered on how to build one.
Depending on your project's needs, you might just get by with solely using our Database module's CMS functionality, or you might as well end up requiring every single one of our modules. You might even consider building your own services on top of Conduit.
In any case, we suggest that you take a look at the rest of the sections in these docs.
Conduit is a project offering readily available functionality for a vast variety of different use cases and as such its complexity can feel somewhat daunting at times.
If you're having trouble figuring out the best way to approach things or simply wish that a certain feature were supported,
make sure you contact us and let us know about it, we'd be more than happy to help.
And if you come across a bug, please do report it on our issue tracker so that we can get it sorted 🐛🔨.
If you enjoy using Conduit, feel free to join our Discord server and let us know about it, we're always chatty,
except when we're building things... we're less chatty then and we kinda do that a lot.
Look, what I'm trying to say is we'd love to hear from you.
Thanks for bearing with us through this quick start guide.
You can check the rest of the pages in this Getting Started section to familiarize yourself with Conduit! See you around 😎.