Capybara: open beta test

Capybara: open beta test

Capybara is a unique project created by a group of enthusiasts in response to changes to the Peekaboo that lost its original spirit. The project aims to preserve the best sides of Peekab, providing a space for creative self-expression, where users determine the value of the content. A distinctive feature of “Capybara” is that trends here are created by users, and not by algorithms, which contributes to the formation of a community of like-minded people and the expression of opinions.

The project went through several stages of development, including functional requirements generation, CJM, Feature List, architecture definition, development and a successful alpha test where the most critical issues were identified and fixed. At the moment, “Capybar” is entering a new stage of its development – an open beta test. This stage is an important milestone on the way to the full launch of the project. The opening of the beta test gives everyone the opportunity to join the community, evaluate the resource and contribute to its development. The project code is publicly available, allowing contributors to contribute suggestions and improvements as authors, users, testers, and developers.

History of the project

Project “Capybara”, how idea, was spawned on July 24, 2023 in response to the announcement of key changes to the peekaboo. The response post only lived for an hour before it was removed, but during that time it garnered a huge number of comments of support and offers of help in creating a new portal. Immediately after the announcement of the idea, a Telegram chat was created, to which 3.5 thousand people came in the first day, and in a few days the number of participants reached 9 thousand. From this number, a team of developers was formed. The main concept of “Capybara” was to create a portal with an emphasis on honest self-regulation of content by users, transparency of algorithms and open source code. In response to the authors’ urgent need for a platform to publish unique content, the team quickly created a Telegram bot that accepted user posts and published them in a channel where others could rate and comment on them.

On November 11, 2023, the Capybara project launched closed alpha test, in which more than 500 alpha testers posted their posts, filling the portal with content and testing functionality. Over 800 bugs were closed during the alpha test, a new post editor based on the Codex Editor was implemented, and the comment system was completely redesigned.

On December 31, 2023, “Capybara” entered the open stage beta test. At the moment, more than 2,000 users are registered on the site, and according to Google and Yandex analytics, the project attracted about 20 thousand unique users in the last month, although SimilarWeb indicates 86.2 thousand, but these data raise some doubts.

Features and solutions.

tape “Trends. The formation of this feed is based on user activity: posts get here when they receive 15 or more positive ratings, provided that the share of pluses is more than 70% of the total number of ratings (including minuses. Yes, yes, we have minuses!). Thus, the “Trends” feed displays the most popular and interesting content for the community.

tape “Top. It is formed from posts that have received 35 or more positive ratings, while the share of pluses must be more than 80% of the total number of ratings (including minuses). This allows you to highlight the most highly rated content by the community.

tape “Author’s. This is a separate feed into which posts with tags go. [свое] and [авторское], which have a positive rating. This feed is highlighted specifically because under the tag [свое] various materials can be published – from photos of cats to homemade crafts, while [авторское] means more significant creative works that require considerable effort and talent.

Tape “New. It includes all posts at the time of publication. Here, users who have taken on the role of Knights of the New, play a key role in determining which content is considered suitable (and goes to Trends, and then to the Top), and which is not and is doomed to drown in the minuses without leaving the New. After all, Capybara was built on the principles of honesty, openness and transparency of processes.

Tape “Discussed. It includes posts that have received a large number of comments, regardless of rating. A bright indicator of the most dynamic and lively topics.

Full transparency algorithms. Anyone can not only get acquainted with the mechanisms of the platform, but also contribute to their improvement. This allows the community to actively participate in the development of the project, quickly fix errors and implement new functionality.

Active participation Communities. The “Capybara” project began its life with a powerful social impulse. And now users who are far from development are participating in the development of the portal. The name of the project was invented by them, the internal mass media is conducted, a list of achievements is drawn up and who should be awarded with them, competitions are held and right now the users themselves, through collective brainstorming, are sketching variants of the project’s slogan.

Authors. And, of course, we will not miss the opportunity to express special thanks to the authors who, since the beginning of the alpha test, have filled the site with their high-quality and diverse author’s content, they are the ones who create the basis for the growth and development of the portal.

Selection of technologies, platforms and development tools

Backend. Python3.11 was chosen as the main language of the project. Architecture was made by monolith + microservices. For the monolith, we took Django, and we can proudly say that we followed one of the most canonical ways of preparing Django.

We use the capabilities of DRF to create a RESTful API, which greatly simplifies the process of API development and user access control and authentication, which allows us to precisely manage access rights to different parts of the API. Permissions and access policies are where they should be. Serialization: Each issue is wrapped in its own serializer, this allows us to precisely control how the data is converted to JSON and back, providing validation and complex data processing logic.

Our Django models are optimized for database efficiency. We use different fields and relationships (ForeignKey, ManyToMany, OneToOne) to accurately reflect business logic. We also actively use save and delete methods, custom managers and QuerySet requests to increase the efficiency of working with data, and our models fully correspond to real tables. A classic application of Django Filter for creating powerful and flexible query filters. Actively using DjangoORM for secure and efficient database queries, aggregate functions, annotations, all in place.

And quality coverage with unit tests.

For microservice authorization took FatApi + SQLAlchemy. It was made a separate service precisely to ensure security and flexibility in authorization. In the same microservice, a bot was made for user verification via Telegram. We do not collect users’ phone numbers in order to avoid complications related to the storage and processing of personal data. But due to verification through Telegram, we realized the uniqueness of “one phone number = one user” without using phone numbers.

Infrastructure: For the production environment, we use the DigitalOcean cloud infrastructure. The databases (standard PostgresSQL) are deployed in a cluster in that environment. Most often, the action is the setting of the estimate, and in order not to load the database of the estimated delivery to the table and other asynchronous tasks, we use Celery every time. We use Redis for caching. ArgoCD is used for continuous integration and delivery, and Terraform is used for infrastructure management. All this beauty is containerized and deployed in Kubernetes, which provides convenient management and scaling of the application.

Frontend: Our frontend is written using Vue 3, TypeScript and Pinia for state management. I will not dwell on it in detail, see for yourself: https://gitlab.com/vortex185330/frontend/vortex-frontend

Scalability: Our system is designed to scale automatically based on load, ensuring high availability and application performance.

Links and Resources

Main site: kapi.bar – the Capybara portal is located here.

Main channel: Capybara – the project community

Repositories on Gitlab: backend, frontend, authorization microservice, bot for posting, bayanometer (will be), media work microservice (will be), load tests.

Social networks: VK, Instagram

About the Team

Behind the “Capybara” project is a team of enthusiasts who decided to create an alternative space for communication and content sharing. I, Olga, the initiator of the project and a Senior Backend Developer with experience in Python, am proud to have been able to unite such talented developers. The team is dynamic, the core consists of 12 people, at the peak of activity the team consisted of more than 40 professionals with experience from 4 to 14 years in commercial development. We all contribute our knowledge and skills to the creation of Capybara, striving to implement a project that will meet the expectations of our community.

I will also supplement here the list of those members of the development group who would like to introduce themselves:
Oleksandr @larikov
Mykhailo https://t.me/chicobambuni
Timur [email protected]
Elena @ally_g
Sergey: vk.com/sergej_serov
Emin @Iameminmammadov

Related posts