{"name":"Fernando Moreira Costa","headline":"Desenvolvedor de software e engenheiro de IA, do dado à produção","url":"https://nandomoreira.dev/","updatedAt":"2026-10-07","language":{"human":"pt-BR","machine":"en"},"availability":{"status":"open","updatedAt":"2026-10-07"},"entries":[{"type":"page","url":"https://nandomoreira.dev/","title":"Home"},{"type":"page","url":"https://nandomoreira.dev/sobre","title":"About"},{"type":"page","url":"https://nandomoreira.dev/portfolio","title":"Portfolio"},{"type":"page","url":"https://nandomoreira.dev/lab","title":"Lab"},{"type":"page","url":"https://nandomoreira.dev/posts","title":"Posts"},{"type":"page","url":"https://nandomoreira.dev/mcp","title":"MCP"},{"type":"page","url":"https://nandomoreira.dev/setup","title":"Setup"},{"type":"page","url":"https://nandomoreira.dev/now","title":"Now"},{"type":"case","url":"https://nandomoreira.dev/portfolio/abracce","title":"ABRACCE","summary":"Site institucional de uma organização sem fins lucrativos, feito para explicar a causa e receber apoio sem depender de rede social alheia. Construído em React Router no modo full-stack, para a mesma base servir as páginas de hoje e uma área autenticada no futuro, sem trocar de stack no caminho.","collection":"portfolio","tech":["TypeScript","React Router"],"markdown":"https://nandomoreira.dev/portfolio/abracce.md"},{"type":"case","url":"https://nandomoreira.dev/lab/noctalia-aibar","title":"AI Bar","summary":"Plugin para o Noctalia Shell que mostra na barra quanto do plano do Claude Code e do Grok já foi usado: a porcentagem da janela mais crítica, o tempo até ela reiniciar e uma barra de progresso. No painel, cada janela aparece com o ritmo de uso, adiantado ou atrasado em relação ao tempo que passou.","collection":"lab","tech":["QML","JavaScript","Noctalia Shell","Vitest"],"markdown":"https://nandomoreira.dev/lab/noctalia-aibar.md"},{"type":"case","url":"https://nandomoreira.dev/lab/amnesia-claude-code","title":"Amnesia","summary":"Camada de memória persistente e determinística para o Claude Code. Merge, deduplicação e validação saem do modelo e vão para um CLI em Python, então o resultado é o mesmo em toda execução e o agente para de responder com um dado lembrado errado. Uso diário no meu próprio fluxo de trabalho.","collection":"lab","tech":["Python","Claude Code"],"markdown":"https://nandomoreira.dev/lab/amnesia-claude-code.md"},{"type":"case","url":"https://nandomoreira.dev/portfolio/atelie-eh-pique","title":"Ateliê éh Pique","summary":"Loja de artes digitais para máquinas de corte, que tirou do atendimento manual a venda de cada arquivo. Vitrine e painel ficam separados, para a autora publicar sem depender de quem desenvolveu, e o painel roda num tema WordPress próprio em vez de uma plataforma de loja com mensalidade.","collection":"portfolio","tech":["TypeScript","WordPress","PHP"],"markdown":"https://nandomoreira.dev/portfolio/atelie-eh-pique.md"},{"type":"case","url":"https://nandomoreira.dev/portfolio/bragstack","title":"BragStack","summary":"Registro de conquistas profissionais em dez segundos, em texto livre, com a IA estruturando tudo no formato STAR na hora de gerar o brag document. É um PWA mobile-first, porque a conquista acontece longe do editor, e está no ar em bragstack.app.","collection":"portfolio","tech":["Next.js","TypeScript","Firebase","IA generativa"],"markdown":"https://nandomoreira.dev/portfolio/bragstack.md"},{"type":"case","url":"https://nandomoreira.dev/lab/coachbot-cli","title":"CoachBot","summary":"Coach antimotivacional para o terminal: a cada shell aberto, uma frase sarcástica num balão, dita por um robozinho em pixel art. São mais de cem frases em inglês e outras tantas em português, e instala com uma linha só.","collection":"lab","tech":["Shell","JSON"],"markdown":"https://nandomoreira.dev/lab/coachbot-cli.md"},{"type":"case","url":"https://nandomoreira.dev/portfolio/croonos","title":"Croonos Multi-Track","summary":"Rastreamento de tempo e gestão de projetos para quem atende vários clientes ao mesmo tempo e perde a conta de onde as horas foram. Monorepo em Next.js, com rastreador e painel compartilhando os tipos do domínio, e registro por projeto desde o início, porque o dado que falta na hora não volta.","collection":"portfolio","tech":["Next.js","TypeScript"],"markdown":"https://nandomoreira.dev/portfolio/croonos.md"},{"type":"case","url":"https://nandomoreira.dev/lab/noctalia-daybar","title":"Daybar","summary":"Plugin para o Noctalia Shell que reúne o dia numa barra: um campo de captura rápida que entende texto livre (\"comprar pão amanhã 9h\" vira tarefa, \"/e reunião sexta 15h-16h\" vira evento no Google Calendar), além de checklist de hoje, pomodoro e timer (que também abrem numa janela própria ou fixos num canto da tela), favoritos com prévia da página e notas em Markdown.","collection":"lab","tech":["QML","JavaScript","Noctalia Shell","Google Calendar"],"markdown":"https://nandomoreira.dev/lab/noctalia-daybar.md"},{"type":"case","url":"https://nandomoreira.dev/lab/noctalia-desktop-sticky-notes","title":"Desktop Sticky Notes","summary":"Plugin para o Noctalia Shell que prende notas adesivas na área de trabalho como widgets: cada nota pode ser arrastada e redimensionada, tem cor de post-it e texto em Markdown, abre um editor ao clique e pode ficar ligada a um arquivo .md no disco, atualizando quando o arquivo muda.","collection":"lab","tech":["QML","JavaScript","Noctalia Shell","Markdown","Vitest"],"markdown":"https://nandomoreira.dev/lab/noctalia-desktop-sticky-notes.md"},{"type":"case","url":"https://nandomoreira.dev/portfolio/encantos-brincantes","title":"Encantos Brincantes","summary":"Vitrine de recursos lúdicos para educação infantil, que levou para a web uma venda que dependia de mensagem direta. Feita em Svelte com renderização estática, porque o conteúdo muda por lote e não por visita, o que mantém a hospedagem perto de custo zero. No ar em encantosbrincantes.com.br.","collection":"portfolio","tech":["Svelte","TypeScript"],"markdown":"https://nandomoreira.dev/portfolio/encantos-brincantes.md"},{"type":"case","url":"https://nandomoreira.dev/lab/flipclock-app","title":"FlipClock","summary":"Relógio de flip para o desktop, feito em Go com Fyne, com animação de virada em duas fases, modo tela cheia e um modo protetor de tela que cobre todos os monitores conectados. A fonte vai embutida no binário, então o app roda sem depender de nenhum arquivo externo.","collection":"lab","tech":["Go","Fyne","OpenGL"],"markdown":"https://nandomoreira.dev/lab/flipclock-app.md"},{"type":"case","url":"https://nandomoreira.dev/lab/flipclock-screensaver-ascii","title":"FlipClock ASCII Screensaver","summary":"Protetor de tela para Hyprland que desenha a hora em ASCII grande dentro de um terminal em tela cheia, um por monitor, com transições do Terminal Text Effects a cada minuto. Entra pelo hypridle quando a máquina fica ociosa e sai no primeiro movimento.","collection":"lab","tech":["Python","Shell","Hyprland"],"markdown":"https://nandomoreira.dev/lab/flipclock-screensaver-ascii.md"},{"type":"case","url":"https://nandomoreira.dev/lab/forja","title":"Forja","summary":"Cliente desktop que reúne Claude Code, Codex e Gemini numa só interface, para não perder contexto alternando entre três terminais. Feito em Electron, React e TypeScript, com xterm.js para o terminal e uma camada de adaptação por CLI em vez de impor um protocolo comum às três. É o meu cliente principal no dia a dia.","collection":"lab","tech":["Electron","React","TypeScript"],"markdown":"https://nandomoreira.dev/lab/forja.md"},{"type":"case","url":"https://nandomoreira.dev/lab/forja-plugins","title":"Forja Plugins","summary":"Registro oficial e monorepo de plugins do Forja: relógio, Pomodoro e tarefas em Markdown, sobre um SDK compartilhado com tipos da API de plugins. Cada plugin declara as permissões que usa, e um script gera o registro que o Forja consulta para instalar.","collection":"lab","tech":["TypeScript","Vite","pnpm","Vitest"],"markdown":"https://nandomoreira.dev/lab/forja-plugins.md"},{"type":"case","url":"https://nandomoreira.dev/lab/noctalia-gistbar","title":"Gistbar","summary":"Plugin para o Noctalia Shell que traz os meus gists do GitHub para a barra: busca por descrição, nome de arquivo, linguagem e conteúdo, cópia pelo teclado, gist novo a partir da área de transferência, prévia e edição, tudo pelo gh CLI.","collection":"lab","tech":["QML","JavaScript","Noctalia Shell","GitHub CLI","Vitest"],"markdown":"https://nandomoreira.dev/lab/noctalia-gistbar.md"},{"type":"case","url":"https://nandomoreira.dev/lab/grab-sh","title":"grab-sh","summary":"Script mínimo de screenshot para Wayland e Hyprland que copia direto para a área de transferência, sem salvar arquivo no disco. Dois atalhos de teclado: tela inteira ou uma área escolhida com a mira.","collection":"lab","tech":["Shell","Hyprland","Wayland"],"markdown":"https://nandomoreira.dev/lab/grab-sh.md"},{"type":"case","url":"https://nandomoreira.dev/lab/hypr-switcher","title":"Hypr Switcher","summary":"Alt+Tab visual para o Hyprland, que não traz um alternador de janelas próprio. Em Rust sobre a camada layer-shell do Wayland, para o overlay aparecer acima de tudo sem roubar o foco, e com a latência de abertura como critério principal, porque é ela que decide se a ferramenta é usada ou abandonada.","collection":"lab","tech":["Rust","Wayland","Hyprland"],"markdown":"https://nandomoreira.dev/lab/hypr-switcher.md"},{"type":"case","url":"https://nandomoreira.dev/lab/job-radar","title":"job-radar","summary":"Varre sites de vagas, descarta o que não combina com o seu perfil e publica as compatíveis no Discord, rodando sozinho algumas vezes por dia. Python puro, sem dependências: filtros duros decidem o que passa, uma pontuação de 0 a 100 ordena o resto, e as qualificações saem do próprio currículo em markdown.","collection":"lab","tech":["Python","pytest","Discord","systemd"],"markdown":"https://nandomoreira.dev/lab/job-radar.md"},{"type":"case","url":"https://nandomoreira.dev/portfolio/mousai","title":"Mousai","summary":"Mood boards minimalistas para artistas, compartilháveis por um código curto e sem exigir cadastro de quem visita. A interface sai do caminho para o acervo ser o centro, e não a ferramenta. Produto próprio em produção, no ar em mousai.gallery.","collection":"portfolio","tech":["Next.js","TypeScript"],"markdown":"https://nandomoreira.dev/portfolio/mousai.md"},{"type":"case","url":"https://nandomoreira.dev/portfolio/financial-normalization","title":"Normalização de dados financeiros","summary":"Serviço que normaliza os dados financeiros heterogêneos das incorporadoras atendidas pela Liquid AI, mais de 20 bases ativas. A regra de cada incorporadora entra como adaptador numa arquitetura hexagonal, e não como desvio no núcleo. Reduziu de cerca de cinco dias para até 30 minutos o preparo de uma base, protegido por mais de 4.800 casos de teste.","collection":"portfolio","tech":["Python","DDD","Arquitetura hexagonal"],"markdown":"https://nandomoreira.dev/portfolio/financial-normalization.md"},{"type":"case","url":"https://nandomoreira.dev/portfolio/data-insights-platform","title":"Plataforma de data insights","summary":"Plataforma de análise e transformação de dados com IA generativa, em produção paga na Liquid AI. Leva a IA para dentro do fluxo de análise, no lugar de dashboards estáticos que envelhecem a cada pergunta do negócio, e separa orquestração de execução para o modelo nunca ser o único caminho de confiar no resultado.","collection":"portfolio","tech":["Node.js","TypeScript","IA generativa"],"markdown":"https://nandomoreira.dev/portfolio/data-insights-platform.md"},{"type":"case","url":"https://nandomoreira.dev/portfolio/portfoliosnap","title":"PortfolioSnap","summary":"Registro de atividades para professores de educação infantil, feito em segundos no momento da atividade, com a IA gerando o relatório pedagógico do mês já alinhado à BNCC. O alinhamento acontece na geração, então o professor não precisa saber o código da habilidade na hora. No ar em portfoliosnap.com.br.","collection":"portfolio","tech":["Next.js","TypeScript","Google Gemini"],"markdown":"https://nandomoreira.dev/portfolio/portfoliosnap.md"},{"type":"case","url":"https://nandomoreira.dev/lab/rdo-solo","title":"rdo-solo","summary":"Controlador de sessão solo para Red Dead Online e GTA Online, que bloqueia o tráfego peer-to-peer do jogo no gateway Linux por onde o console passa. Começou como script de iptables e ganhou uma TUI em Rust, com jogadores na sessão e GeoIP, e um painel web para ligar e desligar o modo solo pelo celular.","collection":"lab","tech":["Rust","Ratatui","Shell","iptables","Next.js"],"markdown":"https://nandomoreira.dev/lab/rdo-solo.md"},{"type":"case","url":"https://nandomoreira.dev/portfolio/seu-atelie-aqui","title":"Seu Ateliê Aqui","summary":"Plataforma de anúncio de ateliês por proximidade geográfica, para quem procura um ateliê perto de casa e para quem hoje depende de grupo de mensagem para ser encontrado. A busca por distância é o eixo da navegação, e não um filtro secundário, porque é ela que decide a escolha nesse mercado.","collection":"portfolio","tech":["TypeScript","React"],"markdown":"https://nandomoreira.dev/portfolio/seu-atelie-aqui.md"},{"type":"case","url":"https://nandomoreira.dev/portfolio/sudadhara","title":"Sudadhara","summary":"Site institucional de uma terapeuta autônoma, que explica o método antes do primeiro contato em vez de deixar toda a explicação para a conversa inicial. Página única, com o contato direto logo depois do método e sem formulário nem agenda integrada, porque o volume de atendimentos não justificava a manutenção.","collection":"portfolio","tech":["TypeScript","React"],"markdown":"https://nandomoreira.dev/portfolio/sudadhara.md"},{"type":"case","url":"https://nandomoreira.dev/lab/tumodori","title":"Tumodori","summary":"Pomodoro de terminal com dígitos grandes, legíveis de longe sem aproximar do monitor. Feito em Rust com Ratatui, para o cronômetro viver no mesmo lugar que o trabalho, e com os dígitos desenhados em bloco, para o tamanho não depender da fonte configurada no terminal de quem usa.","collection":"lab","tech":["Rust","Ratatui"],"markdown":"https://nandomoreira.dev/lab/tumodori.md"},{"type":"post","url":"https://nandomoreira.dev/scratchpad-no-niri-janelas-que-somem-com-um-atalho","title":"Scratchpad no Niri: janelas que somem e voltam com um atalho","summary":"O Niri não sabe minimizar janela. Um script de 199 linhas e um workspace escondido fazem o WhatsApp, o Obsidian e o YouTube aparecerem e sumirem com uma tecla, e o Discord, o Spotify e o LocalSend voltarem para a bandeja.","date":"2026-10-16"},{"type":"post","url":"https://nandomoreira.dev/espanso-substituicao-de-texto-no-linux","title":"espanso: a substituição de texto do iPhone, agora no meu Linux","summary":"Usei a Substituição de texto do macOS por anos e ainda uso no iPhone todo dia. No CachyOS com Niri, o espanso faz o mesmo em qualquer campo de texto, depois de três ajustes que a documentação não conta.","date":"2026-10-16"},{"type":"post","url":"https://nandomoreira.dev/de-cinco-dias-para-trinta-minutos","title":"De cinco dias para trinta minutos: IA numa esteira de ETL","summary":"Como a preparação de uma base de dados passou de quase uma semana de trabalho manual para meia hora: automação por API, IA onde ela ajuda, testes onde ela pode errar e o prazo como regra do produto.","date":"2026-10-15"},{"type":"post","url":"https://nandomoreira.dev/job-radar-radar-de-vagas-em-python-puro","title":"job-radar: parei de rolar lista de vaga e deixei o Python descartar por mim","summary":"Sete fontes de vagas, filtros que descartam antes da nota, o currículo como lista de qualificações e um canal do Discord que recebe só o que sobrou. Sem nenhuma dependência para rodar, e com o código aberto.","date":"2026-10-15"},{"type":"post","url":"https://nandomoreira.dev/analytics-sem-script-medindo-no-servidor-e-lendo-no-terminal","title":"Sem JavaScript no browser: criei um analytics para o meu site e acompanho pelo terminal, em Rust","summary":"Eu queria só o básico de analytics, sem injetar script no site e sem mandar dado de visitante para ninguém. Acabou virando um middleware, um pixel de 1×1, um cookie que se chama __session e uma TUI em Rust.","date":"2026-10-14"},{"type":"post","url":"https://nandomoreira.dev/sessoes-do-red-dead-online-p2p-relays-e-nat-duplo","title":"Meu estudo sobre as sessões do Red Dead Online: P2P, relays da Rockstar e o NAT duplo que eu mesmo criei","summary":"Passei dez dias olhando o tráfego do meu Xbox para entender como uma sessão do Red Dead Online se forma. Aprendi a separar jogador de relay numa captura, descobri que o meu gateway tinha derrubado o tipo de NAT para Moderado e que esconder o IP de casa custa um ajuste de MTU.","date":"2026-10-13"},{"type":"post","url":"https://nandomoreira.dev/rdo-solo-red-dead-online-sozinho-pelo-gateway","title":"rdo-solo: Red Dead Online sozinho pelo gateway de casa, agora com código aberto","summary":"Abri o rdo-solo, o controlador que me deixa sozinho numa sessão pública de Red Dead Online no Xbox. O console passa por um gateway Linux, o gateway derruba o P2P do jogo, e dá para ligar e desligar pelo terminal, por uma TUI em Rust ou pelo celular.","date":"2026-10-11"},{"type":"post","url":"https://nandomoreira.dev/memoria-para-agentes-em-4-camadas","title":"Memória para agentes: um backbone em quatro camadas","summary":"Como o Claude Code lembra decisões entre sessões sem carregar tudo no contexto: o que é sempre lido, o que só entra quando alguém pergunta, e a migração que só terminou quando um portão deixou.","date":"2026-10-11"},{"type":"post","url":"https://nandomoreira.dev/criei-quatro-plugins-para-o-noctalia-100-com-ia-no-meu-cachyos","title":"Criei quatro plugins para o Noctalia 100% com IA no meu CachyOS","summary":"Quatro plugins para a barra e a área de trabalho do Noctalia: captura rápida e agenda, uso do plano do Claude Code e do Grok, gists do GitHub e notas adesivas. Todos feitos com IA, no fluxo RPI, e o que mais deu trabalho foi a interface.","date":"2026-10-11"},{"type":"post","url":"https://nandomoreira.dev/fluxo-rpi-claude-code-grok-codex","title":"Fluxo RPI com três agentes: o Claude Code planeja, o Grok implementa e o Codex revisa","summary":"Pesquisa e plano antes de qualquer feature, como eu já trabalhava. O Claude Code conduz, o Grok escreve, o Codex revisa, e o teste vem antes do código mesmo quando isso deixa a IA mais lenta.","date":"2026-10-10"},{"type":"post","url":"https://nandomoreira.dev/como-construi-meu-site-que-conversa-com-ia-via-mcp","title":"Como eu construí meu novo site em 2026 que conversa com IA via MCP","summary":"Casa de ferreiro, espeto de pau: um engenheiro de IA sem site que conversa com IA. Como reconstruí o meu, com servidor MCP, versão para máquina de cada página e sete portões automatizados.","date":"2026-10-10"},{"type":"post","url":"https://nandomoreira.dev/customizando-a-mensagem-noscript-no-gatsby","title":"Customizando mensagem da tag noscript no Gatsby","summary":"Nesse artigo vou explicar como customizar a mensagem da tag noscript usando o recurso do próprio Gatsby para alterar o HTML base da aplicação.","date":"2019-03-19"},{"type":"post","url":"https://nandomoreira.dev/como-esta-voce-agora-e-como-estara-daqui-30-anos","title":"Como está você agora e como estará daqui 30 anos?","summary":"Todo mundo já fez essa pergunta para si próprio: “Afinal, quem sou eu?”, se você ainda não fez, vai por mim, um dia você irá parar e refletir sobre sua essência e sua personalidade.","date":"2019-01-07"},{"type":"post","url":"https://nandomoreira.dev/role-aleatorio-com-conversas-aleatorias","title":"Role aleatório com conversas aleatórias gerou pensamentos aleatórios","summary":"Domingo, 14 de outubro de 2018, eu passei por um dos meus melhores finais de semana, conheci pessoas novas e troquei muitas ideias aleatórias com essas pessoas.","date":"2018-10-14"},{"type":"post","url":"https://nandomoreira.dev/hoje-o-momento-e-de-ser-e-estar","title":"Hoje o momento é de SER e ESTAR e não de TER!","summary":"Você já parou para pensar o quanto você é manipulado pelos outros? Já parou para pensar em que ponto da sua vida você está nesse momento?","date":"2018-10-05"},{"type":"post","url":"https://nandomoreira.dev/como-testar-erros-na-funcao-wp_mail-no-wordpress-usando-hooks","title":"Como testar erros na função wp_mail() no WordPress usando hooks","summary":"A dica hoje será bem rápida, iremos testar erros na função wp_mail() no WordPress usando hooks.","date":"2018-03-14"},{"type":"post","url":"https://nandomoreira.dev/como-exibir-calendario-do-terminal","title":"Como exibir o calendário rápido direto do terminal","summary":"Uma dica rápida e super útil para visualizar o calendário completo de qualquer ano diretamente no terminal","date":"2018-01-17"},{"type":"post","url":"https://nandomoreira.dev/criando-um-blog-com-vuejs-o-nuxtjs","title":"Criando um blog com Vue.js e Nuxt.js","summary":"Essa é a parte 1 de uma série onde iremos usar a tecnologia SSR (Server Side Rendering) para criar um blog e no final hospeda-lo no GitHub pages e no Netlify.","date":"2017-11-05"},{"type":"post","url":"https://nandomoreira.dev/programador-a-comunidade-precisa-de-voce","title":"Programador a comunidade precisa de você!","summary":"Sobre o porquê de alguns desenvolvedores não contribuem com a comunidade open-source.","date":"2017-03-12"},{"type":"post","url":"https://nandomoreira.dev/comece-com-gulp","title":"Comece com Gulp!","summary":"Eu particularmente gosto muito de ganhar tempo com o desenvolvimento dos meus projetos e usar automatizador de tarefas me dá esse poder.","date":"2017-01-08"},{"type":"post","url":"https://nandomoreira.dev/retro-2016-planing-2017","title":"Retro 2016, Planning 2017","summary":"2016 não foi um ano ruim, tanto na minha vida profissional quando na minha vida pessoal, confesso que tive alguns obstáculos, mas todos foram ultrapassados com sucesso.","date":"2017-01-01"},{"type":"post","url":"https://nandomoreira.dev/como-um-time","title":"Como um time","summary":"Trabalhar como um time é elevar o projeto a um nível superior, que nem mesmo você nem seus superiores imaginariam chegar, mas só conseguiram chegar lá porque viram a necessidade de trabalhar em equipe.","date":"2016-12-27"},{"type":"post","url":"https://nandomoreira.dev/ativando-o-tema-dark-nativo-do-chrome-dev-tools","title":"Ativando o tema Dark nativo do Chrome DevTools e indo para o lado negro da força","summary":"O Google Chrome em uma de suas atualizações implementou o tema “Dark” para o Chrome DevTools.","date":"2016-09-24"},{"type":"post","url":"https://nandomoreira.dev/usando-o-selector-target-para-criar-modal-apenas-com-css","title":"Usando o pseudo selector :target para criar modal apenas com CSS","summary":"Um pseudo selector das CSS3 muito útil é o :target, ele fornece recursos de estilo para um elemento cujo o ID está visivel na url","date":"2016-09-23"},{"type":"post","url":"https://nandomoreira.dev/agradeca-mais-e-reclame-menos","title":"Reflexão: agradeça mais e reclame menos","summary":"Você já parou pra pensar quantas vezes você reclama por dia, ou quantas vezes você reclamou hoje?","date":"2016-08-23"},{"type":"post","url":"https://nandomoreira.dev/como-converter-todos-arquivos-scss-de-um-diretorio-para-extensao-sass","title":"Como converter todos arquivos .scss de um diretório para extensão .sass","summary":"Iremos usar o comando sass-convert do próprio SASS para realizar a conversão dos arquivos, mas já sabemos que ele converte apenas um único arquivo","date":"2016-07-05"},{"type":"post","url":"https://nandomoreira.dev/usando-browsersync-em-uma-aplicacao-ruby-on-rails","title":"Usando Browsersync em uma aplicação Ruby on Rails","summary":"Hoje vou explicar como integrar e usar o Browsersync.io dentro de uma aplicação Ruby on Rails","date":"2016-06-20"},{"type":"post","url":"https://nandomoreira.dev/criando-a-bandeira-do-brasil-apenas-com-css","title":"Criando a bandeira do Brasil 🇧🇷 apenas com CSS","summary":"Hoje eu vou demonstrar nesse artigo como eu criei a bandeira do Brasil usando apenas com CSS","date":"2016-01-23"},{"type":"post","url":"https://nandomoreira.dev/como-incluir-videos-do-youtube-no-jekyll","title":"Como incluir vídeos do youtube no seu blog Jekyll de forma fácil","summary":"Hoje vamos usar um plugin bem bacana para incluir vídeos do youtube no seu blog Jekyll sem precisar copiar e colar o iframe do youtube","date":"2016-01-10"},{"type":"post","url":"https://nandomoreira.dev/wp-cli-uma-interface-de-linha-de-comando-para-wordpress","title":"WP-CLI: Uma interface de linha de comando para WordPress","summary":"Nesse artigo vou mostrar como instalar a WP-CLI, uma interface de linha de comando para WordPress","date":"2016-01-10"},{"type":"post","url":"https://nandomoreira.dev/yo-wordpress-iniciando-projetos-para-wordpress-em-segundos","title":"YeoPress, iniciando projetos WordPress em segundos","summary":"Sim, existe um Generator para WordPress, o YeoPress faz o download do WP e inicia uma estrutura complata pra você já sair codificando o seu projeto","date":"2016-01-02"},{"type":"post","url":"https://nandomoreira.dev/fazendo-sistema-de-busca-no-jekyll-com-angularjs","title":"Fazendo um sistema de busca simples no Jekyll usando AngularJS","summary":"Por alguns meses eu usei o plugin Simple Jekyll Search que funcionou muito bem no meu blog","date":"2015-12-27"},{"type":"post","url":"https://nandomoreira.dev/ei-front-end-voce-conhece-o-panda","title":"Ei front-end! Você conhece o Panda? 🐼","summary":"Essa é uma dica rápida para quem ama e trabalha com desenvolvimento de interfaces para o usuário","date":"2015-12-11"},{"type":"post","url":"https://nandomoreira.dev/nao-seja-apenas-um-recortador-de-psd","title":"Não seja apenas um recortador de PSD!","summary":"Durante minha trajetória até aqui eu já trabalhei com alguns programadores e designers que discordariam completamente da minha opinião","date":"2015-12-10"},{"type":"post","url":"https://nandomoreira.dev/sass-e-atomic-design","title":"SASS + Atomic design","summary":"SASS é um pré-processador incrível não acha? Mas muitos não sabem como organizar seus projetos com ele","date":"2015-11-16"},{"type":"post","url":"https://nandomoreira.dev/usando-categorias-e-tags-no-jekyll","title":"Usando categorias e tags no Jekyll","summary":"GitHub Pages serviço é simplesmente incrível! E com a integração Jekyll ele fica ainda mais impressionante! Mas existem algumas limitações neste grande sistema automatizado","date":"2015-10-13"},{"type":"post","url":"https://nandomoreira.dev/faco-front-end-de-graca","title":"Faço front-end de graça, saiba como!","summary":"É isso mesmo que você leu, Faço front-end de graça, mas tem alguns requisitos necessários para que isso aconteça, vem comigo que te explico como","date":"2015-10-12"},{"type":"post","url":"https://nandomoreira.dev/8-meses-de-malapronta-e-o-fim","title":"8 meses de MalaPronta e o fim.","summary":"Eu queria poder dizer que to feliz com tudo isso, mas não to. Eu amava trabalhar lá, apesar de muitas intrigas e desavenças, eu amava meu emprego.","date":"2015-09-30"},{"type":"post","url":"https://nandomoreira.dev/sass-parte-5-placeholder","title":"#5 - Conhecendo o pré-processador SASS | Placeholder","summary":"Uma das funcionalidades mais legais do SASS é você poder criar placeholders para agrupamento de códigos repetidos","date":"2015-09-27"},{"type":"post","url":"https://nandomoreira.dev/yeoman-generator-gulp-boilerplate","title":"Yeoman Generator Gulp Boilerplate","summary":"Eu criei um repositório no Github onde mantenho atualizado com um boilerplate para Gulp, o repositório era pra ser pessoal mas eu resolvi compartilhar.","date":"2015-09-27"},{"type":"post","url":"https://nandomoreira.dev/como-instalar-o-gulp-4","title":"Como instalar o Gulp 4","summary":"Gulp 4 não foi liberado ainda e se você não pode esperar para colocar suas mãos sobre ele, aqui vai como instalar o Gulp 4.","date":"2015-09-26"},{"type":"post","url":"https://nandomoreira.dev/blog-wilson-luiz-prosdocimo","title":"Blog Wilson Luiz Prosdocimo com Jekyll","summary":"Meu amigo Wilson gostou muito da ideia de poder publicar o blog dele no github usando Jekyll. Pode-se dizer que eu sou um “Evangelista do Jekyll” porque ele é um convertido da minha palavra.","date":"2015-09-13"},{"type":"post","url":"https://nandomoreira.dev/sass-parte-3-mixins","title":"#3 - Conhecendo o pré processador SASS | Mixins","summary":"Mixin foi definitivamente algo novo para mim, você consegue passar valores por parâmetros assim como funções","date":"2015-09-05"},{"type":"post","url":"https://nandomoreira.dev/sass-parte-4-funcoes","title":"#4 - Conhecendo o pré processador SASS | Funções","summary":"Quarta parte da série sobre Sass: como escrever funções próprias com @function e @return, com exemplos de cálculo.","date":"2015-09-05"},{"type":"post","url":"https://nandomoreira.dev/sass-variaveis-parte-2","title":"#2 - Conhecendo o pré-processador SASS | Variáveis","summary":"Se você está começando agora no mundo do desenvolvimento você precisa ter uma base de como funciona variáveis.","date":"2015-09-02"},{"type":"post","url":"https://nandomoreira.dev/conhecendo-o-pre-processador-sass-parte-1","title":"#1 - Conhecendo o pré-processador SASS | Instalação","summary":"Todo desenvolvedor web deveria conhecer algum pré-processador CSS, seja ele Less, SASS, Stylus ou qualquer outro","date":"2015-09-01"},{"type":"post","url":"https://nandomoreira.dev/meu-ambiente-de-trabalho-em-7-itens","title":"Meu ambiente de trabalho em 7 itens","summary":"Aderi ao GNU linux como OS padrão no final de 2014, apesar de usá-lo desde 2009.","date":"2015-08-01"},{"type":"post","url":"https://nandomoreira.dev/wordpress-plugins-x-functions-php","title":"Wordpress - plugins x functions.php","summary":"Muitos amigos e colegas de trabalho sempre me perguntam porque eu sou contra o uso de plugins no Wordpress.","date":"2015-07-24"}],"machineRoutes":[{"path":"/llms.txt","url":"https://nandomoreira.dev/llms.txt","description":"LLM summary index of the site"},{"path":"/llms-full.txt","url":"https://nandomoreira.dev/llms-full.txt","description":"Full LLM-oriented dump of profile, cases and posts"},{"path":"/ai-index.json","url":"https://nandomoreira.dev/ai-index.json","description":"Machine-readable index of pages, cases and posts"},{"path":"/AGENTS.md","url":"https://nandomoreira.dev/AGENTS.md","description":"Hiring brief for agents: services, availability, endpoints"},{"path":"/sitemap.xml","url":"https://nandomoreira.dev/sitemap.xml","description":"XML sitemap of indexable public URLs"},{"path":"/api/resume.json","url":"https://nandomoreira.dev/api/resume.json","description":"Résumé in JSON Resume schema"},{"path":"/api/resume.txt","url":"https://nandomoreira.dev/api/resume.txt","description":"Plain-text résumé, LLM friendly"},{"path":"/api/mcp","url":"https://nandomoreira.dev/api/mcp","description":"MCP server for profile, projects, resume and availability"},{"path":"/api/hire","url":"https://nandomoreira.dev/api/hire","description":"POST a project brief on behalf of your user"}]}