Background

Introduction

Backend infrastructure shouldn't slow down solo developers and small teams who want to focus on building great user experiences. Pendulum is an open source Backend as a Service (BaaS) platform built with these developers in mind, enabling quick prototyping of reactive web applications with automated deployment to an existing AWS account. Pendulum is ideal for building collaborative applications like real-time dashboards, project management tools, chat systems, or any application where multiple users need to see live updates automatically.

Cloud Service Models

Cloud infrastructure can be generally categorized into three main levels of abstraction, with each level building on the previous one: Infrastructure, Platform, and Backend.

IaaS (Infrastructure as a Service)

AWS, GCP, and Azure provide compute, storage, and networking resources without requiring physical hardware management. Developers maintain control over operating systems, runtime environments, and application code while the provider manages the underlying hardware.

PaaS (Platform as a Service)

Platforms like Heroku, Fly.io, and Render abstract away infrastructure provisioning, load balancing, and scaling. By managing these components, developers can worry less about infrastructure and deployment while maintaining control over data stores and application code.

BaaS (Backend as a Service)

Services like Convex, Firebase, and Supabase handle typical backend services including API endpoints, database management, and authentication. With BaaS, developers focus primarily on frontend code and connect to the managed backend through the platform’s SDK.

This progression toward greater abstraction allows developers to focus more on building user experiences rather than managing infrastructure complexity.

Cloud Platform Comparison

Modern Web Application Structure

Modern web applications typically consist of three distinct tiers:

Modern Web Application Structure

The frontend is the Presentation tier of an application. Static files run in the browser to control the user interface and make API requests to the Application tier for fetching and sending data.

The backend of an application incorporates both the Application and Data tiers. It handles frontend requests, executes business logic, and manages storing and retrieving data.

The Use Case for BaaS

Infrastructure and deployment aside, building full stack web applications is complex! Developers who want to prototype applications quickly and build great UI’s are bogged down with backend implementation details — many of which are the same across projects. Backend as a Service platforms offer a variety of backend features so developers can quickly build user-facing applications without provisioning servers or infrastructure.

Three popular BaaS platforms illustrate different approaches to solving these challenges:

Convex

Convex is a reactive database that also acts as a BaaS platform for building applications. With Convex, database schema, queries, and mutations are defined using TypeScript functions and all database operations are performed through server-side functions that provide real-time synchronization of application state. Convex also handles configuration and deployment of backend services like user authentication and file storage.

Firebase

Firebase is a BaaS platform from Google that provides developers with a fully-managed backend infrastructure for prototyping and building applications quickly. It uses a NoSQL database and offers real-time updates.

Supabase

Supabase is an open-source alternative to Firebase that allows developers to easily build and manage the backend of their applications. One of its primary differentiating factors is its use of PostgreSQL, which makes it ideal for applications with a well-defined data model.

Existing BaaS Solutions

These platforms demonstrate the value of BaaS, but existing solutions either require significant custom code for basic operations or create dependencies on third-party infrastructure and data hosting. Pendulum addresses these challenges by providing BaaS convenience while maintaining ownership of your data and infrastructure.