Introdução ao EmDash

Nesta página

O EmDash é um sistema de gestão de conteúdos nativo do Astro. Traz padrões de CMS familiares—coleções, taxonomias, menus, widgets e uma interface de administração polida—diretamente para o seu site Astro com suporte completo a TypeScript e implementação portátil.

O que é o EmDash

O EmDash é um CMS construído especificamente para o Astro. Usa as Live Content Collections do Astro 6 para servir conteúdo em tempo de execução sem reconstruções. O conteúdo fica em bases compatíveis com SQLite (D1, libSQL, SQLite local) e a multimédia em armazenamento compatível com S3 (R2, sistema de ficheiros local).

Características principais:

  • Esquema orientado à base de dados — Coleções e campos são definidos na base de dados, não no código. Crie e altere tipos de conteúdo a partir do painel de administração.
  • Coleções em tempo real — As alterações de conteúdo ficam disponíveis de imediato. Não são necessárias reconstruções estáticas.
  • Sistema de plugins — Ganchos inspirados no WordPress, armazenamento, definições e extensões da UI de administração.
  • Portável na cloud — Corre em Cloudflare (Workers + D1 + R2), Node.js, SQLite local e qualquer armazenamento compatível com S3.

O que o EmDash não é

  • Não é um CMS headless — O EmDash está fortemente integrado com o Astro. Não é um serviço separado chamado via API.
  • Não é compatível com WordPress — Sem PHP, sem plugins WordPress a correr diretamente. Mas conteúdo e conceitos WordPress migram de forma limpa.
  • Não é um construtor de páginas — O EmDash foca-se em conteúdo estruturado. Para construção visual de páginas, use componentes Astro.

Para quem é o EmDash

Programadores em agências

Lance sites de clientes rapidamente com plugins e temas reutilizáveis. Sem atualizações de segurança PHP, sem conflitos entre plugins.

Programadores a solo

Framework full-stack com CMS integrado. Sem um CMS headless separado para gerir.

Equipas de conteúdo

Painel de administração intuitivo. Crie e edite conteúdo sem mexer no código.

Utilizadores WordPress

Caminho de migração para conteúdo e plugins. Ferramentas modernas, conceitos familiares.

Arquitetura em resumo

┌─────────────────────────────────────────────────────────────┐
│                    O seu site Astro                         │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                 Integração EmDash                     │  │
│  │                                                       │  │
│  │  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐   │  │
│  │  │  Motor de   │  │   Painel    │  │   Plugins    │   │  │
│  │  │  conteúdo   │  │   admin     │  │              │   │  │
│  │  └─────────────┘  └─────────────┘  └──────────────┘   │  │
│  │                                                       │  │
│  │  ┌───────────────────────────────────────────────────┐│  │
│  │  │                  Camada de dados                  ││  │
│  │  │    SQLite/D1      ←→  Kysely  ←→  R2/S3/Local     ││  │
│  │  └───────────────────────────────────────────────────┘│  │
│  └───────────────────────────────────────────────────────┘  │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                   Framework Astro                     │  │
│  │        Live Collections • Sessões • Middleware          │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

Conceitos centrais

Antes de aprofundar, familiarize-se com estes conceitos:

  • Collections — Tipos de conteúdo definidos na base de dados (artigos, páginas, produtos, etc.)
  • Fields — Propriedades de uma coleção (título, conteúdo, preço, etc.)
  • Taxonomies — Sistemas de classificação (categorias, etiquetas, taxonomias personalizadas)
  • Menus — Estruturas de navegação editáveis no admin
  • Widget Areas — Regiões de conteúdo configuráveis para barras laterais e rodapés
  • Plugins — Extensões que acrescentam funcionalidade via ganchos, armazenamento e UI

Próximos passos