Bludia Concepts
Understanding a few core concepts will make it much easier to work with Bludia. Bludia is built around a simple idea: your application is composed of data, APIs, users, permissions, backend logic, and infrastructure. Bludia provides the building blocks for each of these layers while allowing your frontend and application-specific code to remain under your control. This page explains the concepts you will encounter throughout the Bludia documentation.Projects
A Project represents an application or backend environment in Bludia. A project contains the resources required to build and run your application, including:- Collections
- Records
- API configuration
- Authentication
- Roles and permissions
- Hooks
- Messaging configuration
- Reports
- Other project-level settings
Collections
A Collection is the primary way you model application data in Bludia. A collection is conceptually similar to a database table. It defines the type of records your application stores and the fields available on those records. For example:Records
A Record is an individual piece of data stored inside a collection. Ifcustomers is a collection, each customer is a record.
Fields
A Field defines a piece of data stored on a record. For example, acustomers collection might contain:
Relations
Applications rarely consist of isolated collections. A customer can have many bookings. A booking can belong to a customer. A product can belong to a category. Relations allow collections to reference one another. For example:API
The Bludia API is the interface between your application and your Bludia backend. Your frontend does not need direct access to the underlying database. Instead, it communicates with Bludia through the API.API Keys
An API Key identifies and authorizes an application or integration when communicating with Bludia. API keys can be used when an application needs to access project APIs. For example:Authentication
Authentication answers one fundamental question:Who is this user?Bludia authentication allows your application to establish the identity of users interacting with your backend. A typical flow looks like:
Authentication Guards
An Authentication Guard connects authentication to a user collection in a Bludia project. For example:Authorization
Authorization answers a different question:What is this user allowed to do?For example, a user may be authenticated but still not have permission to delete a booking.
Roles
A Role is a collection of permissions that represents a type of user. For example:Permissions
A Permission defines an allowed operation. Examples might include:Row-Level Authorization
Traditional authorization often answers:Can this user access this resource?Row-level authorization goes further:
Can this user access this specific record?For example, a customer may be allowed to read bookings, but only bookings belonging to that customer.
Hooks
A Hook is custom backend logic that runs at a defined point in a Bludia operation or lifecycle. For example:- Validation
- Business rules
- Data transformation
- Notifications
- Integrations
- Custom calculations
- Backend automation
Hook Versions
Bludia stores versions of hook code so that changes to backend logic can be managed independently. Conceptually:Messaging
Messaging allows your backend to communicate with users through supported messaging channels. Email is one example. A typical flow can look like:Message Templates
A Message Template defines reusable content for messages sent by your application. Instead of hard-coding email content inside backend logic, you can create a template and reuse it whenever that message needs to be sent. For example:Reports
Reports transform application data into information that can be analyzed or presented to users. A report can be based on your project’s records and may include operations such as:- Filtering
- Grouping
- Aggregation
- Sorting
- Calculations
- Tables
- Charts
Hosting
Bludia is designed to provide more than backend APIs. Hosting represents the infrastructure used to run your application and its backend services in production. This includes capabilities such as:- Deployments
- Domains
- SSL
- Logs
- Backups
- Environment configuration
- Production infrastructure
Environments
An Environment represents a separate execution context for your application. A typical development workflow might eventually look like:Frontend
Bludia does not require you to use a specific frontend technology. Your frontend is responsible for the user interface and client-side application experience. It communicates with Bludia through the API. Common examples include:- React
- Next.js
- Flutter
- JavaScript
- TypeScript
- Mobile applications
- Custom applications
External Integrations
Bludia applications can communicate with services outside the platform. External integrations can be used for things such as:- Third-party APIs
- Payment providers
- External services
- Custom applications
- Webhooks
- Email providers
