ESTA DOCUMENTAÇÃO ESTÁ EM DESENVOLVIMENTO E CONSTANTE ATUALIZAÇÃO.

Visual Site Builder (Canvas V2)

Nosso construtor visual proprietário de sites completos e portais institucionais multi-páginas, baseado em um canvas de posicionamento flexbox avançado.

1. Diferença entre Landing Pages e Construtor de Sites

Enquanto o módulo de Landing Pages é voltado a páginas únicas de alta conversão estruturadas em blocos verticais estáticos (focado em campanhas), o **Visual Site Builder** é uma plataforma completa de design:

  • Landing Pages: Edição rápida em bloco único, focada em templates pré-definidos de vendas e formulários simples.
  • Construtor de Sites (V2): Layout livre baseado em grid flexível de elementos aninhados (seções, contêineres e componentes), barras de navegação globais e páginas ilimitadas interligadas por rotas customizadas.

2. Arquitetura do Canvas de Layout Flexbox

Diferente dos formulários e landing pages, o Site Builder foi escrito 100% sob medida pelo time de engenharia da DevCod utilizando a API @dnd-kit/core, sem uso de Puck ou outros editores de terceiros. A estrutura do editor é dividida em quatro componentes reativos:

  • Element Palette (Paleta de Blocos): Catálogo lateral de componentes estruturais e visuais que podem ser arrastados para a tela (Ex: Headers, Contêiner Flex, Formulários, Rodapés, Sliders).
  • Interactive Canvas Layer (Área de Desenho): Painel de visualização em tempo real (WYSIWYG) que renderiza o layout com detecção precisa de pontos de inserção (hit-targets) e overlay de arrastamento.
  • Element Navigator (Árvore Outline): Navegador lateral que expõe a estrutura do documento em árvore aninhada, facilitando a inspeção e a movimentação rápida de elementos pais e filhos.
  • Element Inspector (Painel de Propriedades): Painel flutuante reativo para alteração fina de estilos (tamanho de fonte, espaçamento padding/margin, cores, cantos arredondados, bordas e alinhamentos flex).

3. Componentes e Controles Avançados

O editor suporta customizações de design profissionais:

  • Contêiner Flexbox Dinâmico: Bloco de layout com suporte a alinhamento (justify-content, align-items), direção (row/column), quebra de linha (wrap) e espaçamento uniforme (gap).
  • Custom Code Block: Bloco de código livre para inserção direta de scripts customizados, pixels de conversão ou widgets externos que rodam em sandbox isolado.
  • Editor de Navegação e Menus: Gerenciador integrado para criar barras de cabeçalho dinâmicas com links para subpáginas e âncoras de rolagem.

4. Modelo de Dados e Gravação do Documento

A página é salva no banco de dados na tabela PublicPage sob a estrutura de grafo do tipo PublicPageDocumentV2:

{`
model PublicPage {
  id           String               @id @default(cuid())
  siteId       String
  name         String
  slug         String
  documentData Json                 // Grafo contendo PublicPageDocumentV2
  published    Boolean              @default(false)
  createdAt    DateTime             @default(now())
  updatedAt    DateTime             @updatedAt
}
          `}

5. Renderização SSR (High-Performance Engine)

No ambiente público de produção, a renderização utiliza o componente PublicPageRendererV2, responsável por percorrer de forma recursiva a árvore de elementos JSON e gerar o HTML estático. Isso garante um tempo de carregamento (LCP) extremamente baixo e otimização total de SEO.

Próximo: E-mail Marketing →