Open source · TypeScript-first · Self-hosted

Constrói a tua aplicação. O Bando trata do conteúdo.

Bando é um CMS headless open source para developers. Define o teu conteúdo em TypeScript e deixa o Bando tratar da infraestrutura necessária para armazenar, gerir e disponibilizar os dados da tua aplicação.

$ npm install bando-cms
bando.local — schema.ts
1 import { defineCollection, text, image, richText } from 'bando-cms'
2
3 export const post = defineCollection({
4   name: 'posts',
5   fields: {
6     title: text({ required: true }),
7     cover: image(),
8     body: richText(),
9     published: boolean(),
10   },
11 })
schema definido Studio + API + tipos
title string
cover image
body richText
published boolean
Bando Studio

O teu conteúdo.
Num Studio feito para ele.

O Bando Studio foi pensado para trabalhar com o conteúdo definido pelo teu projeto. O objetivo é manter a experiência editorial próxima da arquitetura da aplicação.

bando.local / studio
Bando Studio — interface de gestão de conteúdo
Recursos

Infraestrutura de conteúdo pensada para developers.

O Bando transforma schemas TypeScript numa infraestrutura completa para definir, gerir e consumir conteúdo nas tuas aplicações.

Schema como código

Define tipos, validações, relações e configurações diretamente em TypeScript. O schema vive no teu projeto e pode ser versionado com Git.

API

O conteúdo fica disponível através da API do Bando para ser consumido pelas aplicações que construíres.

Studio em React

Uma interface editorial construída para trabalhar com as collections e campos definidos pelo teu projeto.

Developer-first

A configuração e a arquitetura do conteúdo fazem parte do código, permitindo trabalhar com Git, revisão e colaboração.

Evolução contínua

O Bando continua a evoluir com novas capacidades, integrações e ferramentas para tornar a infraestrutura de conteúdo cada vez mais completa.

Self-hosted

Corre o Bando na tua máquina, num VPS ou na tua própria infraestrutura. Os teus dados permanecem sob o teu controlo.

Developer experience

Define. Consulta. Renderiza.

O mesmo schema que define o conteúdo serve de base para trabalhar com os dados na tua aplicação.

1 import { defineCollection, text, image, slug } from 'bando-cms'
2
3 export const post = defineCollection({
4   name: 'posts',
5   fields: {
6     title: text({ required: true }),
7     slug: slug({ source: 'title' }),
8     cover: image(),
9   }
10 })
1 import { createBandoClient } from 'bando-cms'
2
3 const bando = createBandoClient({
4   baseUrl: 'http://localhost:3333',
5 });

6 const { data, total } = await bando
7  .collection('posts')
8  .findMany({
9   limit: 10,
10   sort: '-createdAt',
11   filters: {
12     published: true,
13   }
14 });
1 import { createBandoClient } from 'bando-cms'
2
3 const bando = createBandoClient({
4   baseUrl: 'http://localhost:3333'
5 });
6
7 export async function getPosts() {
8   const { data } = await bando
9     .collection('posts')
10     .findMany({
11       limit: 12
13     });
14     return data;
15 }
Open source

O código é teu. A infraestrutura também.

O Bando é open source e pode ser executado na tua própria infraestrutura. Tens acesso ao código, aos teus dados e à forma como o conteúdo é integrado na tua aplicação.

Bando-CMS
Estado Disponível
Licença MIT
Linguagem TypeScript
Arquitetura Self-hosted
  • 01

    Código aberto

    O código-fonte está disponível publicamente para consulta, utilização e contribuição.

  • 02

    Contribuições abertas

    Issues, pull requests e propostas da comunidade fazem parte da evolução do Bando.

  • 03

    Sem vendor lock-in

    O projeto pode ser executado na tua própria infraestrutura e os teus dados continuam teus.

Começa agora

Menos infraestrutura. Mais produto.

Define o teu conteúdo, executa o Bando e concentra-te na aplicação que estás realmente a construir.

$ npm install bando-cms
Ver no GitHub