Skip to content
Stack e Tecnologias

Stack e Tecnologias

O James é construído sobre uma fundação moderna, robusta e focada em simplicidade operacional. A escolha de cada ferramenta foi pensada para maximizar a produtividade e a consistência visual.

Back-end e Infraestrutura

  • Linguagem / Framework: PHP com Laravel.
  • Autenticação Headless: Laravel Fortify gerencia todo o core de autenticação permitindo focar apenas nas views personalizadas.
  • Banco de Dados: PostgreSQL.
  • Infraestrutura Local: Docker gerenciado via Laravel Sail.
  • Ferramentas de Desenvolvimento:

Front-end e UI

  • Páginas e Estrutura: Blade Components altamente modularizados (namespaces lógicos como ui, form, layout).
  • Estilização: TailwindCSS (v4) focado em classes utilitárias para construir interfaces limpas e responsivas.
  • Interatividade Leve: Alpine.js (v3) gerencia a reatividade no cliente (modais, tooltips, dropdowns, validações e manipulação interativa).
  • Ícones: Heroicons integrados nativamente via componentes Blade (<x-icons.*>). Eles são sincronizados e atualizados localmente através de um script Python (scripts/sync-heroicons.py).

Ferramentas e Bibliotecas Integradas

  • Gestão de Imagens e Arquivos:
    • Spatie Media Library: Trata todo o armazenamento e associação polimórfica de arquivos anexos. Opera estritamente no disco local para garantir 100% de privacidade.
    • Cropper.js: Integrado através de um componente customizado (form-image-cropper) e Alpine.js para recorte (crop) visual de imagens (como avatares) antes do upload.
  • Editor Rico (Rich Text):
    • EasyMDE: Usado para edição de textos ricos como notas e descrições (através do componente form-markdown-editor). Os dados são salvos como Markdown puro no banco, garantindo extrema segurança contra injeções de HTML e facilidade de exportação.

Padrões Arquiteturais e Banco de Dados

  • PostgreSQL Extensions:
    • unaccent: Habilitado para buscas textuais precisas ignorando acentuação.
    • pg_trgm: Utilizado para indexação otimizada e buscas por similaridade/relevância.
  • Soft Deletes: Deleção lógica aplicada às entidades principais da aplicação, fornecendo uma “lixeira” para evitar perdas catastróficas de dados.
  • Dados Dinâmicos em JSONB: Utilização agressiva do tipo JSONB nativo do PostgreSQL para armazenar múltiplas propriedades simples (como listas de telefones e e-mails) sem precisar poluir o banco com dezenas de tabelas de relacionamento. O componente form-key-value-repeater facilita toda a gestão visual desse JSON.
Última modificação