Feito com Chinaski

Princípios de design

O Chinaski descreve o seu próprio livro de regras no material de origem: algumas regras são posições de engenharia, outras são promessas sobre comportamento, e outras ainda são regras de estilo voltadas a contribuidores. Esta página reúne as regras a que o projeto se obriga , úteis se você está avaliando o software ou planejando trabalhar nele.

As promessas

  • Lista pequena de dependências. São nove dependências de produção, e esse número é um alvo que o projeto se recusa a fazer crescer sem cuidado. Cada uma delas vem com o sistema operacional, e é isso que torna instalações novas reproduzíveis e auditorias tratáveis.
  • Nenhum código em execução para os leitores. O site público são arquivos simples; a aplicação de publicação nunca responde a requisições de leitores. As páginas voltadas a leitores não carregam JavaScript em runtime , isso é estrutural: não existe mecanismo pelo qual um rastreador ou beacon pudesse ser adicionado, logo não pode ser embarcado "acidentalmente".
  • O site funciona após a instalação sem um bando de serviços em nuvem. Sem telemetria, sem servidor de licenças para acionar, sem fontes ou ícones puxados dos CDNs de outras pessoas. Operação em air-gap é uma regra declarada; até o licenciamento comercial planejado foi desenhado para funcionar offline.
  • Builds são deliberados. A publicação nunca acontece silenciosamente em segundo plano: um build é algo que você dispara , pelo painel, por um webhook ou pela linha de comando , sempre com logs que você pode inspecionar depois.
  • Os trade-offs são declarados, não enterrados. O projeto diz com franqueza o que não fará: ainda não há editor de arrastar e soltar, não há ecossistema de plugins, o banco de dados é single-tenant e a responsabilidade do self-hosting fica com você. Nada nesta lista é negociável-pelo-marketing; se algo não existe, a documentação diz que não existe.

O raciocínio por trás delas

  • O chato vence o esperto , a linguagem do core não mudou seus idiomas em décadas, o banco de dados trata seus dados como um arquivo, e as dependências não se renomeiam por baixo de você. Um programa escrito há anos ainda roda, e um operador que não conhece o sistema consegue ler o código de ponta a ponta às 2 da manhã.
  • A superfície de ataque é uma decisão de design. Toda funcionalidade que alguém propõe faz uma aposta: a capacidade vale a superfície que ela adiciona? A posição do projeto é que a maioria das apostas perde em produção, então o padrão mais seguro é dizer não até que se prove o contrário , daí a ausência de hooks, de registro de plugins e de marketplace.
  • Assistida por IA, auditável por humanos. A base de código é desenvolvida com assistência de IA, e o projeto trata a fluência em IA, e não a fluência em Perl, como a habilidade de entrada para contribuidores , justamente porque código chato e estável permanece legível por pessoas e LLMs igualmente, com trinta anos de idioma consistente de uma vez.

As regras para contribuidores

Se você vai trabalhar na interface de administração, as notas de implementação são explícitas:

  • Nada de estilos inline , use as classes utilitárias fornecidas.
  • Nada de ícones decorativos; todo ícone precisa vir acompanhado de um rótulo de texto visível.
  • A paleta de cores é fechada , cores novas quebram a consistência do sistema; use as CSS custom properties existentes.
  • Mantenha o aninhamento raso; a nomenclatura de classes segue convenções no estilo BEM.
  • Botões em cabeçalhos e rodapés de cards vão nos contêineres de ação prescritos.

Para templates de blocos, a especificação de blocos é a referência autoritativa , escrita para ser seguida por um humano ou uma IA trabalhando apenas a partir da especificação, com cada tipo de bloco consistindo de um template de builder e um partial de formulário de administração como um par correspondente. Tipos de bloco precisam ser registrados no sistema antes do uso.

Trabalhando no sistema de temas públicos em vez disso? A Template Reference tem regras próprias , variáveis planas, partials com prefixo _, diretivas proibidas, o requisito do portão de senha , e elas se aplicam a autores de temas, não a contribuidores da UI de administração.

O que está planejado (e declarado como não lançado)

  • Um editor visual de arrastar e soltar , no roadmap, bloqueado por decisões de estrutura de página; não existe hoje.
  • Geração de conteúdo por LLM ligada à biblioteca de blocos , planejado, tier comercial.
  • Rastreamento de cliques com atribuição de campanhas , o módulo comercial planejado.
  • Multi-tenancy com Postgres , no roadmap, não iniciado; o caminho de migração ainda não está definido.

Os módulos comerciais Pro são desenhados para serem licenciados localmente (arquivos de licença assinados, sem validação externa), de modo que a promessa de air-gap sobreviva à monetização , e o core permanece sob licença MIT, com as funcionalidades Pro vivendo em um namespace separado.

O resumo em uma linha

Toda regra acima se reduz à mesma disciplina: reduza a superfície, prefira nada que precise de rede ou de um plugin para ser seguro, mantenha a saída burra, registre logs em abundância, documente os trade-offs com honestidade , e resista à tentação quando uma funcionalidade tentadora pedir para quebrar a regra.

Leia este site em