One great benefit of open-source projects lies in their ability to encourage a diverse and collaborative learning environment. They allow developers from different backgrounds to compare and contrast methodologies, and most importantly, learn from each other. One such open-source initiative, which is changing the way we view demo apps, is the RealWorld project.
Introducing the RealWorld Project
The RealWorld project is an open-source specification for a medium.com clone called ‘Conduit.’ It allows any developer to create both backend and frontend implementations of the spec. Through this platform, you can see how the exact same application is constructed using different languages, frameworks, and databases.
While demo apps play a crucial role in understanding the functionalities of frameworks and databases, their implementations often lack practicality. These applications are scattered all over, making it challenging to locate and compare. The RealWorld project aims to improve the landscape and make it easier for developers to get started.
What is Conduit?
The project has developed a specification for both frontend and backend applications. This specification creates a clone of Medium.com, a social blogging site, known as ‘Conduit’.
Contributors can implement frontends or backends in the languages, frameworks, and databases of their choice. Since they all adhere to the same specification, frontends and backends can be interchanged.
At present, there are approximately 100 backend examples available on the site, employing 20 languages and a multitude of frameworks.
My Contribution: Building with ASP.NET + Couchbase
Inspired by this initiative, I embarked on a journey to build an ASP.NET + Couchbase implementation. Upon completion, this project will be submitted to the RealWorld index site, offering .NET developers a solid starting point for creating their own applications with Couchbase.
This project will include a suite of automated tests, ensuring that the project remains maintainable and up-to-date. Another unique feature is its construction: it is being built live and in public, on Twitch.tv.
Live Building on Twitch.tv
Why Twitch? It’s a home to a sizable “live coding” community. The live coding sessions allow others to join in, watch, chat, contribute, and even collaborate. However, I am considering branching out to other live video platforms such as YouTube and LinkedIn shortly.
As an added bonus, I am using LLM tools like ChatGPT and GitHub Copilot Chat to experiment with ways to build this project faster. I aim to help developers understand the pros and cons of these tools along the way.
All the live streams are recorded and subsequently posted on YouTube, thus creating a rich repository of resources for developers worldwide. Shorter, summary videos are also being created. You can check out the playlist of summary videos or browse a collection of video links in the GitHub README.
A Blueprint for Future Contributions
This project aims to establish a blueprint for future contributions using other languages and frameworks. We can commence with the Conduit spec and add all Couchbase-specific details and architectural choices. For instance, for those new to Couchbase, it’s not always clear how to model data (embed? refer?) and which data operations to use (key-value? SQL++?)
Good News for Non-.NET Developers!
For those not building with .NET, fret not! There are already two completed projects using other languages and frameworks.
- Node.js (created by Laurent Doguin)
- Java (created by Marlo Aquino and jericho161616)
This project uses Java, with Spring Boot, Spring Data, and Couchbase.
To get started with running these Conduit apps, I recommend first signing up for Couchbase Capella. It is the most straightforward and easy way to get started in your database journey.
If you have any questions or want to share your status along the way, join the discussion on the Couchbase Discord.