Open source · Roadmap público

Veja para onde o Bando está indo a seguir.

O Bando já está disponível na versão v1.0.0, com sua infraestrutura principal implementada: motor de schemas, camada de banco de dados, API, autenticação, client, CLI e Studio. Este roadmap mostra o que já existe hoje e o que vem a seguir.

Licença MIT TypeScript Local-first Self-hosted React PostgreSQL
A ideia

O CMS deve trabalhar para o desenvolvedor.

O Bando começou com uma ideia simples: o conteúdo da sua aplicação deve poder viver na sua própria infraestrutura.

Criamos um headless CMS moderno baseado em uma filosofia diferente: local-first, open source, self-hosted e pensado para a forma como os desenvolvedores realmente trabalham.

Hoje, o Bando oferece a base necessária para definir conteúdo em TypeScript, armazená-lo com PostgreSQL, disponibilizá-lo através de uma API, proteger o acesso com autenticação, consultá-lo através de um client tipado e gerenciá-lo através do Bando Studio.

$ npm install bando-cms
Arquitetura

Uma base modular. Um sistema completo.

O Bando é organizado como um monorepo modular. Cada parte possui uma responsabilidade clara, trabalhando em conjunto como uma infraestrutura completa de conteúdo.

bando/
bando/
│
├── apps/
│   ├── cli/
│   ├── server/
│   └── studio/
│
├── packages/
│   ├── client/
│   ├── config/
│   ├── core/
│   ├── database/
│
├── examples/
│   ├── nextjs/
│   ├── react/
│   └── node/
│
├── docs/
├── tests/
│
├── docker-compose.yml
├── pnpm-workspace.yaml
└── package.json
01

Schema

Defina seu conteúdo usando TypeScript e defineCollection().

02

Engine

O motor de schemas descobre suas collections, campos, relacionamentos e configurações.

03

Database

A camada de banco de dados armazena seu conteúdo e fornece operações CRUD através do PostgreSQL.

04

Studio

O Bando Studio descobre collections e permite gerenciar documentos através de uma interface visual.

05

API

A API REST disponibiliza seu conteúdo para as aplicações e frontends que você construir.

Experiência do desenvolvedor

Defina seu conteúdo em código.

O Bando permite definir seu modelo de conteúdo diretamente em TypeScript, mantendo o schema próximo da sua aplicação.

schema.ts Bando Core
1import {
2  defineCollection,
3  text,
4  image,
5  richText,
6} from "bando-cms"
7
8export const post =
9  defineCollection({
10    name: "posts",
11
12    fields: {
13      title: text({
14        required: true,
15      }),
16
17      cover: image(),
18
19      body: richText(),
20    },
21  })
query.ts Bando Client
1import { createBandoClient }
2  from "bando-cms"
3
4const bando = createBandoClient({
5  baseUrl: "http://localhost:3333",
6});
7
8const { data, total } = await bando
9  .collection("posts")
10  .findMany({
11    limit: 10,
12    sort: "-createdAt",
13    filters: {
14      published: true,
15    },
16  });
17
18// conteúdo consumido através do client
Roadmap público

O que existe hoje. O que vem a seguir.

O Bando v1.0.0 fornece a infraestrutura principal necessária para executar e utilizar a plataforma. O roadmap agora foca na expansão das suas capacidades e da experiência do desenvolvedor. As prioridades podem evoluir de acordo com o feedback da comunidade.

Fase 0
Fundação

Fundação do Projeto

O monorepo, as ferramentas, a configuração TypeScript, o workspace, o ambiente Docker e a estrutura principal do projeto estão implementados.

Monorepo TypeScript pnpm Docker PostgreSQL Estrutura do projeto
● Concluído
Fase 1
Schema

Motor de Schemas

O motor de schemas fornece definições de collections, descoberta de schemas, definição de campos, relacionamentos, validação de referências e tipos TypeScript.

defineCollection() Campos Descoberta de schemas Tipos TypeScript Validação Relacionamentos Validação de referências Proteção de referências
● Concluído
Fase 2
Database

Motor de Banco de Dados

A persistência com PostgreSQL está funcional, com operações CRUD, queries, adapters e integração com collections.

PostgreSQL Persistência CRUD Queries Database adapter
● Concluído
Fase 3
API

Camada de API

A API HTTP fornece operações para collections e documentos, incluindo leitura, criação, atualização, exclusão, filtragem e validação.

REST Collections Documentos Queries Filtros Validação
● Concluído
Fase 4
Auth

Autenticação e Autorização

A autenticação e autorização fornecem a base para proteger o Studio e a API através de controles de acesso seguros.

Login JWT Sessões Logout RBAC Permissões
● Concluído
Fase 5
Studio

Bando Studio

O Bando Studio conecta-se à API real, fornece um dashboard, descobre collections e schemas e permite gerenciar documentos através da interface.

React Autenticação Explorador de collections Listagem de documentos Criar Editar Excluir Dashboard Seletores de relacionamentos
● Concluído
Fase 6
Client

Experiência do Desenvolvedor

O client TypeScript fornece operações CRUD, queries com filtros, paginação e tipagem genérica de collections para trabalhar com o Bando diretamente na sua aplicação.

Client Queries tipadas Tipagem genérica Geração de tipos Integrações com frameworks CLI
● Concluído
Fase 7
Conteúdo

Experiência de Conteúdo

Expandir a experiência editorial com fluxos de conteúdo mais completos e capacidades mais avançadas de mídia e publicação.

Rich Text Mídia Uploads Rascunhos Publicação Preview Revisões
○ Planejado
Fase 8
Extensibilidade

Sistema de Extensões

Dar aos desenvolvedores mais controle sobre o Bando através de plugins, adapters, campos personalizados, hooks e integrações.

Plugins Adapters Campos personalizados Hooks Integrações
○ Planejado
Fase 9
Realtime

Tempo Real

Adicionar atualizações em tempo real, WebSockets, presença e fluxos de trabalho colaborativos.

WebSockets Atualizações em tempo real Presença Colaboração
○ Planejado
Fase 10
Produção

Preparação para Produção

Fortalecer o Bando para ambientes de produção mais exigentes, com maior segurança, migrations, backups, observabilidade e ferramentas operacionais.

Segurança Migrations Backups Observabilidade Docker para produção Documentação
○ Planejado

Versão atual

v1.0.0
Infraestrutura principal disponível v1.0.0
Princípios

Algumas coisas não são negociáveis.

01

Local-first

O desenvolvimento deve funcionar localmente e dar aos desenvolvedores controle sobre como e onde sua infraestrutura é executada.

02

Open source

O core é aberto, auditável e desenvolvido publicamente junto com a comunidade.

03

Self-hosted

Os desenvolvedores podem executar o Bando em sua própria infraestrutura e manter o controle sobre seus dados.

04

TypeScript-first

Schemas, APIs, queries e ferramentas devem oferecer uma experiência de desenvolvimento fortemente tipada.

05

Extensível

O Bando deve se adaptar a diferentes stacks, aplicações e necessidades dos desenvolvedores.

06

Sem lock-in

Seus dados e sua infraestrutura permanecem sob seu controle.

Desenvolvimento aberto

O trabalho permanece visível.

O Bando é desenvolvido de forma aberta. A comunidade pode acompanhar releases, discutir decisões, reportar problemas e contribuir diretamente para o projeto.

  • Issues públicas
  • RFCs para decisões importantes
  • Pull requests abertos
  • Roadmap público
  • Releases públicas
  • Documentação desde o primeiro dia
bando/
├── issue define schema API
├── rfc database adapters
├── pull request #12
├── commit schema engine
├── release v1.0.0
└── community contribute
O que vem a seguir

O Bando v1.0.0 é apenas o começo.

Use o Bando hoje, explore o código, acompanhe o roadmap ou entre na comunidade e ajude a definir o que vem a seguir.