export const siteUrl = "https://evandro.dev.br"; export const siteName = "Evandro.dev.br"; export const regionCities = [ "Garuva", "Joinville", "São Francisco do Sul", "Itapoá", "Balneário Barra do Sul", "Barra Velha", "Jaraguá do Sul", "Curitiba", ]; export interface ServicePageContent { slug: string; navLabel: string; eyebrow: string; seoTitle: string; metaDescription: string; headline: string; intro: string; audience: string[]; outcomes: string[]; process: string[]; stack: string[]; ctaLabel: string; ctaHref: string; relatedCaseIds: string[]; faq?: { question: string; answer: string }[]; } export interface CaseStudyContent { id: string; title: string; subtitle: string; summary: string; impact: string; stack: string[]; demoUrl?: string | null; githubUrl?: string | null; } export const servicePages: ServicePageContent[] = [ { slug: "criacao-de-sites", navLabel: "Criação de Sites", eyebrow: "Presença digital", seoTitle: "Criação de Sites em Garuva, Joinville e Curitiba", metaDescription: "Criação de sites institucionais e sistemas web para empresas em Garuva, Joinville, São Francisco do Sul, Itapoá, Jaraguá do Sul e Curitiba. Sites rápidos, responsivos e otimizados para SEO com Next.js.", headline: "Criação de sites institucionais e sistemas web para empresas de Garuva, Joinville e Curitiba.", intro: "Desenvolvo sites e sistemas web rápidos, responsivos e com SEO técnico desde a primeira entrega, para empresas de Garuva, Joinville, Norte de Santa Catarina e Curitiba que precisam aparecer bem nas buscas locais e converter visitantes em clientes.", audience: [ "Empresas e profissionais em Garuva, Joinville e região que ainda não têm site ou precisam trocar um site lento e desatualizado.", "Negócios em Curitiba e no Norte de Santa Catarina que querem aparecer melhor no Google para buscas da própria cidade e região.", "Marcas que precisam de um site institucional rápido, com boa performance e pronto para escalar para um sistema web completo.", ], outcomes: [ "Site institucional rápido, responsivo e com boa nota em Core Web Vitals.", "Estrutura de SEO técnico (title, metadata, dados estruturados e sitemap) desde o lançamento.", "Presença digital pronta para captar clientes que pesquisam por serviços na sua cidade.", "Base de código organizada, fácil de evoluir para loja, sistema ou painel administrativo.", ], process: [ "Levantamento do objetivo do site, público local e páginas necessárias.", "Definição de estrutura, conteúdo e palavras-chave locais relevantes.", "Implementação em Next.js com foco em performance, acessibilidade e SEO.", "Publicação, configuração de domínio e orientação sobre indexação no Google.", ], stack: ["Next.js", "TypeScript", "Tailwind CSS", "SEO técnico", "Vercel"], ctaLabel: "Quero um site para minha empresa", ctaHref: "/#contact", relatedCaseIds: ["sc-plus", "nutriscan"], faq: [ { question: "Quanto custa um site profissional?", answer: "O custo de um site profissional depende do escopo: número de páginas, funcionalidades, integrações e exigências de SEO técnico e performance. Um site institucional enxuto custa menos do que um sistema web completo. Como desenvolvedor de sites em Joinville e região, eu prefiro definir o orçamento depois de entender o objetivo do projeto, em uma conversa inicial sem compromisso.", }, { question: "Site sob medida ou WordPress: qual escolher?", answer: "Escolha WordPress quando o conteúdo muda toda semana e alguém da equipe precisa publicar sem ajuda técnica; escolha um site sob medida quando performance, SEO técnico e evolução futura pesam mais. Sites feitos sob medida em Next.js carregam mais rápido, têm menos superfície de manutenção e escalam para sistema web sem migração. Para muitos negócios locais, o sob medida compensa pela velocidade e pela longevidade.", }, { question: "Você faz manutenção de site depois do lançamento?", answer: "Sim. Além do lançamento, eu estruturo projetos pensando na manutenção do site: atualizações de dependências, ajustes de conteúdo, monitoramento de performance e evolução incremental de funcionalidades. Um site profissional não termina na publicação; ele precisa continuar rápido, seguro e bem posicionado. Por isso a entrega inclui orientação sobre indexação no Google e uma base de código organizada, fácil de evoluir.", }, { question: "Você atende empresas só de Joinville ou de outras cidades?", answer: "Eu atendo empresas em Garuva, Joinville, São Francisco do Sul, Itapoá, Jaraguá do Sul, Balneário Barra do Sul, Barra Velha e Curitiba, além de projetos remotos em todo o Brasil. O trabalho funciona igual nos dois formatos: conversa inicial, levantamento de escopo e entregas acompanhadas de perto. Para buscas locais, cada site já sai com SEO técnico pensado para a cidade e o segmento do cliente.", }, ], }, { slug: "engenharia-de-software", navLabel: "Engenharia de Software", eyebrow: "Serviço principal", seoTitle: "Engenharia de Software para Produtos e Sistemas Críticos", metaDescription: "Engenharia de software para evolução de produtos, integrações complexas e sistemas críticos. Entrega ponta a ponta com foco em arquitetura clara, estabilidade e velocidade de execução.", headline: "Engenharia de software para evoluir produto sem aumentar o caos técnico.", intro: "Atuo em discovery, arquitetura, implementação e sustentação de software para empresas de Joinville, Curitiba e de todo o Brasil que precisam entregar com previsibilidade, sem sacrificar clareza técnica nem operação.", audience: [ "Times que já tem produto em operação e precisam voltar a ganhar velocidade.", "Empresas que sofrem com integrações, retrabalho e backlog técnico acumulado.", "Operações em que confiabilidade e continuidade pesam mais do que velocidade teatral.", ], outcomes: [ "Arquitetura mais legível para manter e escalar.", "Entrega incremental com menos retrabalho entre produto e engenharia.", "Integrações mais robustas entre sistemas, APIs e fluxos internos.", "Base técnica preparada para crescer sem depender de improviso constante.", ], process: [ "Diagnóstico do contexto técnico, do risco e do gargalo principal.", "Definição do recorte de entrega com prioridades e trade-offs claros.", "Implementação com rastreabilidade, code review e critério de produção.", "Handoff ou continuidade com documentação e próximo ciclo recomendado.", ], stack: ["Next.js", "TypeScript", "Node.js", "PostgreSQL", "APIs REST"], ctaLabel: "Agendar conversa sobre engenharia", ctaHref: "/#contact", relatedCaseIds: ["nutriscan", "reddit-explorer", "sc-plus"], faq: [ { question: "Como contratar um desenvolvedor para integração de sistemas?", answer: "Procure um desenvolvedor que comece pelo diagnóstico: entender os dois sistemas, os dados envolvidos e o impacto de falha antes de escrever código. Peça clareza sobre contratos de API, tratamento de erros e observabilidade, não apenas prazo. Na integração de sistemas, o critério principal é reduzir risco operacional; um profissional que explica trade-offs com honestidade costuma entregar com mais previsibilidade.", }, { question: "Quanto custa desenvolver um sistema sob medida?", answer: "O investimento em um sistema sob medida acompanha a complexidade: regras de negócio, integrações, volume de usuários e requisitos de confiabilidade. Antes de qualquer proposta, eu faço um diagnóstico do contexto para dimensionar o recorte certo e evitar pagar por complexidade desnecessária. Assim o orçamento reflete o problema real, e não uma estimativa genérica por hora ou por tela.", }, { question: "Você trabalha com sistemas legados?", answer: "Sim. Parte do trabalho de engenharia de software é justamente evoluir sistemas legados sem parar a operação: mapear acoplamentos, estabilizar pontos críticos e migrar aos poucos, com testes e rastreabilidade. Nem todo legado precisa ser reescrito; muitas vezes a decisão certa é isolar o que funciona e modernizar o que trava a entrega. O diagnóstico define esse recorte antes de qualquer refatoração.", }, { question: "Como funciona o início do trabalho com você?", answer: "Tudo começa com uma conversa objetiva sobre o contexto: o produto, o gargalo e o risco. Depois disso eu proponho um recorte de entrega com prioridades e trade-offs claros, e a implementação segue com code review e critério de produção. Você acompanha o progresso em ciclos curtos, com documentação e handoff estruturado ao final de cada etapa.", }, ], }, { slug: "consultoria-nextjs", navLabel: "Consultoria Next.js", eyebrow: "Stack especializada", seoTitle: "Consultoria Next.js para Produtos, SEO e Performance", metaDescription: "Consultoria Next.js para App Router, SEO técnico, performance, arquitetura e evolução de produto. Ideal para projetos que precisam escalar sem perder clareza e Core Web Vitals.", headline: "Consultoria Next.js para produto, performance e SEO técnico sem gambiarra.", intro: "Ajudo equipes a usar Next.js com mais critério arquitetural, melhor separação entre server e client, e foco real em performance, indexação e experiência de produto.", audience: [ "Produtos em Next.js que perderam clareza com o crescimento da base.", "Sites e plataformas que dependem de SEO técnico e performance para converter.", "Times que precisam migrar, estabilizar ou revisar arquitetura App Router.", ], outcomes: [ "Estrutura mais consistente para App Router, Server Components e dados.", "Melhoras práticas em title, metadata, schema, semântica e links internos.", "Redução de gargalos em renderização, bundle e fetch.", "Base mais pronta para crescer sem regressão de SEO ou UX.", ], process: [ "Auditoria de arquitetura, rotas, metadata e performance.", "Priorização das correções de maior impacto comercial e técnico.", "Implementação ou acompanhamento do time interno nas partes críticas.", "Validação final com build, semântica e consistência entre páginas.", ], stack: ["Next.js", "React", "TypeScript", "Tailwind CSS", "SEO técnico"], ctaLabel: "Solicitar consultoria Next.js", ctaHref: "/#contact", relatedCaseIds: ["nutriscan", "twins-lab", "sc-plus"], faq: [ { question: "Next.js vale a pena para site institucional?", answer: "Vale, principalmente quando o site institucional precisa competir por busca orgânica. Next.js entrega renderização no servidor, Core Web Vitals bons e controle fino de metadata e dados estruturados, fatores que pesam no ranking. Para um site simples demais, pode ser mais stack do que o necessário; para quem quer performance, SEO técnico e caminho para evoluir a plataforma, é uma escolha sólida.", }, { question: "Quando faz sentido contratar uma consultoria de Next.js?", answer: "Faz sentido quando o projeto cresceu e o time perdeu clareza: rotas confusas, mistura excessiva entre client e server, queda de performance ou regressão de SEO. Uma consultoria Next.js audita arquitetura e metadata, prioriza as correções de maior impacto e implementa junto com o time interno nas partes críticas. O retorno aparece em build mais previsível, indexação estável e menos retrabalho.", }, { question: "Quanto custa uma consultoria de Next.js?", answer: "Depende do formato de trabalho: uma auditoria pontual de arquitetura e performance tem peso diferente de um acompanhamento contínuo ou da implementação completa das correções. O que define o investimento é o tamanho da base, o número de rotas críticas e a urgência dos gargalos. Depois de uma leitura inicial do projeto, eu consigo propor um escopo com expectativa clara de esforço.", }, { question: "Você atende times remotos ou só presencial?", answer: "Sim, atendo equipes em Joinville, Curitiba e em qualquer cidade do Brasil, presencial ou remoto. A consultoria funciona bem à distância: auditoria documentada, sessões de alinhamento com o time e implementação guiada nas partes críticas. Para empresas da região Norte de Santa Catarina e de Curitiba, também há a opção de encontros presenciais nos momentos de diagnóstico e validação.", }, ], }, { slug: "tauri-rust", navLabel: "Tauri + Rust", eyebrow: "Desktop e performance", seoTitle: "Desenvolvimento Tauri e Rust para Apps Desktop", metaDescription: "Desenvolvimento com Tauri e Rust para apps desktop mais leves, seguros e eficientes. Consultoria técnica para produtos que precisam de performance, integração local e distribuição confiável.", headline: "Tauri e Rust para apps desktop mais leves, seguros e prontos para operar.", intro: "Uso Tauri e Rust quando o produto precisa de executável desktop com footprint menor, melhor controle do ambiente local e mais previsibilidade do que stacks mais pesadas.", audience: [ "Produtos desktop que precisam integrar recursos do sistema operacional.", "Ferramentas internas com demanda por distribuição leve e manutenção simples.", "Times avaliando migração de stack desktop ou construindo um MVP técnico robusto.", ], outcomes: [ "Aplicações desktop com melhor eficiência de recursos.", "Fluxos locais e integrações nativas com critério técnico mais alto.", "Arquitetura preparada para distribuição, atualização e manutenção.", "Menos atrito entre interface moderna e motor de execução confiável.", ], process: [ "Definição da necessidade real de desktop e do papel de Rust no produto.", "Desenho da arquitetura entre frontend, camada nativa e distribuição.", "Implementação dos fluxos críticos com foco em confiabilidade e ergonomia.", "Empacotamento, validação e estratégia de evolução do aplicativo.", ], stack: [ "Tauri", "Rust", "TypeScript", "Desktop apps", "System integration", ], ctaLabel: "Conversar sobre Tauri e Rust", ctaHref: "/#contact", relatedCaseIds: ["gcc-installer"], faq: [ { question: "Vale a pena criar app desktop com Tauri e Rust?", answer: "Vale quando o aplicativo precisa ser leve, seguro e próximo do sistema operacional. Apps desktop em Tauri usam o WebView do próprio sistema em vez de embutir um navegador inteiro, o que reduz bastante o tamanho do executável e o consumo de memória. Rust entra onde há processamento local crítico. Se o produto é só um formulário em janela, talvez uma web app resolva.", }, { question: "Tauri ou Electron: qual escolher?", answer: "Prefira Tauri quando distribuição leve, segurança e consumo de recursos importam: o executável final é muito menor porque reaproveita o WebView do sistema. Electron ainda faz sentido quando o time já domina Node.js e precisa de ecossistema maduro. Em projetos novos que exigem integração nativa e desempenho, eu costumo recomendar Tauri com lógica crítica em Rust e interface web moderna.", }, { question: "Rust é difícil de manter para times pequenos?", answer: "Rust tem curva de aprendizado real, mas a manutenção tende a ficar mais fácil no longo prazo: o compilador elimina categorias inteiras de bugs antes da produção. Para times pequenos, a estratégia é usar Rust apenas na camada que justifica o investimento, como integração com o sistema, performance e segurança, e manter a interface em TypeScript. Assim a complexidade fica onde traz retorno.", }, { question: "Você desenvolve apps desktop para empresas em Santa Catarina?", answer: "Sim. Eu desenvolvo aplicativos desktop para empresas em Joinville, Curitiba e em todo o Brasil, com atendimento presencial ou remoto. O fluxo cobre da arquitetura ao empacotamento: definição do papel de Rust, implementação dos fluxos críticos, estratégia de distribuição e atualização do executável. Ferramentas internas que precisam rodar em máquinas da operação são um caso muito comum nesse formato de trabalho.", }, ], }, { slug: "integracao-hardware-software-iot", navLabel: "Hardware + Software + IoT", eyebrow: "Produtos conectados", seoTitle: "Integração Hardware + Software e IoT", metaDescription: "Integração hardware + software, IoT e fluxos conectados para produtos e operações críticas. Da coleta de dados ao painel, com APIs, telemetria e arquitetura de software confiável.", headline: "Integração hardware + software para produtos conectados que precisam operar de verdade.", intro: "Atuo na camada que costuma quebrar primeiro: a fronteira entre dispositivo, backend, painel e operação. Estruturo esses fluxos para que dados, comando e observabilidade funcionem como produto, não como remendo.", audience: [ "Empresas com dispositivos, sensores ou equipamentos conectados ao software.", "Operações que dependem de telemetria, dashboards e troca de dados em tempo real.", "Times que precisam ligar produto digital a processos físicos com confiabilidade.", ], outcomes: [ "Fluxos mais robustos entre dispositivo, API, banco e interface.", "Menos perda de contexto entre operação física e produto digital.", "Arquitetura com observabilidade e manutenção mais previsível.", "Base melhor para evoluir IA, automação ou analytics em cima dos dados.", ], process: [ "Mapeamento de sinal, eventos, integrações e pontos de falha.", "Definição de contratos entre hardware, backend e interfaces.", "Implementação do fluxo com testes e tratamento de exceções relevantes.", "Entrega com documentação de operação, limites e próximo passo.", ], stack: [ "IoT", "WebSockets", "APIs", "Dashboards", "Integração de sistemas", ], ctaLabel: "Falar sobre integração e IoT", ctaHref: "/#contact", relatedCaseIds: ["twins-lab"], faq: [ { question: "Como integrar equipamentos e sistemas legados?", answer: "Comece mapeando o que o equipamento realmente expõe: portas seriais, sinais digitais, arquivos, protocolos industriais ou APIs antigas. A partir desse inventário, eu desenho uma camada de integração com contratos claros entre hardware, backend e interfaces, com tratamento de falha e observabilidade desde o primeiro dia. Sistemas legados raramente precisam ser substituídos; quase sempre precisam ser conectados com segurança.", }, { question: "O que é integração hardware e software na prática?", answer: "É fazer o dado físico virar informação útil: o sensor registra, o backend valida e armazena, o painel mostra e o comando volta para o equipamento quando necessário. Na prática, isso envolve telemetria, WebSockets ou filas para tempo real, contratos de API e tratamento dos casos em que o dispositivo cai. Quando essa fronteira é bem desenhada, a operação física e o produto digital falam a mesma língua.", }, { question: "Vale a pena investir em IoT na indústria?", answer: "Vale quando existe dado físico hoje desperdiçado: leitura manual, planilha isolada, decisão por estimativa. Projetos de IoT industriais transformam esse dado em telemetria e painéis que sustentam decisão em tempo real, especialmente em parques fabris como o de Joinville e região. O investimento só compensa, porém, quando a integração é tratada como produto, com observabilidade e manutenção previstas, e não como remendo pontual.", }, { question: "Como funciona um projeto de integração com você?", answer: "O projeto começa com o mapeamento de sinal, eventos, integrações existentes e pontos de falha. Em seguida eu defino os contratos entre hardware, backend e interfaces, implemento o fluxo com testes e tratamento das exceções relevantes, e entrego com documentação de operação, limites conhecidos e próximo passo recomendado. Atendo indústrias e empresas de tecnologia em Joinville, Curitiba e remotamente.", }, ], }, { slug: "arquitetura-de-software", navLabel: "Arquitetura de Software", eyebrow: "Diagnóstico e decisão", seoTitle: "Arquitetura de Software e Consultoria Técnica", metaDescription: "Arquitetura de software para reduzir complexidade, destravar evolução e organizar integrações críticas. Consultoria técnica para produtos que precisam de direção antes de mais código.", headline: "Arquitetura de software para times que precisam de clareza antes de acelerar.", intro: "Quando o problema não é falta de código, mas excesso de acoplamento, retrabalho e decisão mal distribuída, a arquitetura certa devolve velocidade, leitura e confiança ao time.", audience: [ "Produtos que cresceram rápido e perderam legibilidade técnica.", "Times travados entre refatorar tudo ou seguir acumulando dívida.", "Operações com muitas dependências, integrações ou regras sensíveis.", ], outcomes: [ "Mapa claro dos gargalos e do risco técnico real.", "Prioridades de arquitetura ligadas a impacto de negócio.", "Plano executável de refatoração, estabilização ou reestruturação.", "Mais qualidade de decisão entre produto, engenharia e operação.", ], process: [ "Leitura da base, fluxos, integrações e dores do time.", "Diagnóstico escrito com pontos de risco, oportunidades e trade-offs.", "Proposta de arquitetura alvo e plano de transição realista.", "Acompanhamento da execução ou handoff estruturado para o time interno.", ], stack: [ "Arquitetura de software", "APIs", "Performance", "Integrações", "Sistemas críticos", ], ctaLabel: "Solicitar diagnóstico arquitetural", ctaHref: "/#contact", relatedCaseIds: ["nutriscan", "twins-lab", "reddit-explorer"], faq: [ { question: "Quando investir em arquitetura de software?", answer: "Invista quando o custo de mudança começou a crescer mais rápido que o valor entregue: toda feature demora, todo deploy assusta e a dívida técnica vira pauta constante. Arquitetura de software vale o investimento nesse ponto, porque organiza acoplamento, integrações e responsabilidades antes que o problema multiplique. Antes do primeiro produto validado, geralmente basta uma base simples e bem separada.", }, { question: "O que é dívida técnica e como resolver?", answer: "Dívida técnica é o acúmulo de decisões rápidas que hoje custam velocidade: código duplicado, acoplamento excessivo, falta de testes e integrações frágeis. Ela se resolve com diagnóstico antes de refatoração: mapear os gargalos reais, priorizar o que trava entrega e operação, e evoluir em incrementos seguros. Reescrever tudo raramente é a resposta; a maioria dos sistemas melhora com transição planejada.", }, { question: "Como funciona um diagnóstico de arquitetura?", answer: "Eu leio a base de código, os fluxos, as integrações e as dores do time, e devolvo um diagnóstico escrito com pontos de risco, oportunidades e trade-offs explícitos. A partir dele vem a proposta de arquitetura alvo e um plano de transição realista, priorizado por impacto de negócio. O formato funciona tanto para times internos quanto para fundadores técnicos conduzindo a própria evolução.", }, { question: "Você faz consultoria de arquitetura remota ou presencial?", answer: "Dos dois jeitos. Atendo empresas em Joinville, Curitiba e em todo o Brasil, com diagnóstico e acompanhamento funcionando bem à distância; encontros presenciais ficam para os momentos de maior densidade, como kickoff e validação. Como a entrega central é um diagnóstico escrito e um plano executável, o formato remoto não reduz a profundidade da análise nem a qualidade do handoff para o time.", }, ], }, ]; export const caseStudies: CaseStudyContent[] = [ { id: "nutriscan", title: "NutriScan", subtitle: "PWA com Next.js para análise nutricional e operação offline", summary: "Projeto em Next.js 14 com App Router, histórico de uso, scanner de código de barras e cache estratégico para reduzir dependência de rede.", impact: "Bom exemplo de engenharia de software orientada a produto, performance e experiência de uso em contexto real.", stack: ["Next.js 14", "TypeScript", "MongoDB", "PWA", "Tailwind CSS"], demoUrl: "https://nutriscan.evandro.dev.br", githubUrl: "https://github.com/evandrodevbr/nutriscan", }, { id: "twins-lab", title: "Twins Lab", subtitle: "Plataforma IoT industrial com dados em tempo real", summary: "Produto com dashboards, autenticação, WebSockets e camada de IA para monitoramento de dispositivos e operação industrial conectada.", impact: "Case forte para integração hardware + software, telemetria e sistemas críticos com atualização em tempo real.", stack: ["Next.js", "TypeScript", "NextAuth", "WebSockets", "OpenRouter AI"], demoUrl: "https://twins.evandro.dev.br", githubUrl: "https://github.com/evandrodevbr/twins-lab", }, { id: "reddit-explorer", title: "Reddit Posts Explorer", subtitle: "Aplicação orientada a dados com API, cache e busca", summary: "Projeto em Astro e MongoDB para explorar conteúdo com filtros, ordenação e cache, mantendo boa experiência em consultas frequentes.", impact: "Mostra capacidade de desenhar consumo de API, camada de persistência e experiência de busca sem sobrecarregar a aplicação.", stack: ["Astro.js", "MongoDB", "Mongoose", "TypeScript", "Reddit API"], githubUrl: "https://github.com/evandrodevbr/reddit-search", }, { id: "sc-plus", title: "SC Plus Aquicultura", subtitle: "Site institucional em Next.js com foco em performance e SEO", summary: "Landing page em Next.js 15 otimizada para Core Web Vitals, metadata e estrutura técnica de indexação.", impact: "Exemplo de projeto em que clareza de mensagem, velocidade e SEO técnico trabalham juntos.", stack: ["Next.js 15", "React 19", "Tailwind CSS 4", "TypeScript"], demoUrl: "https://scplus.evandro.dev.br", githubUrl: "https://github.com/evandrodevbr/scplus", }, { id: "gcc-installer", title: "MinGW GCC Installer", subtitle: "Ferramenta desktop para automação de ambiente de desenvolvimento", summary: "Aplicação em Python para simplificar setup local no Windows, com download assíncrono, checagem de compatibilidade e integração com PATH.", impact: "Mostra familiaridade com software desktop, integração com sistema operacional e automação de setup técnico.", stack: ["Python", "Tkinter", "Win32 API", "Threading", "7-Zip"], githubUrl: "https://github.com/evandrodevbr/gcc-installer", }, { id: "as-servicos", title: "AS Serviços", subtitle: "Site institucional multidisciplinar com cena 3D procedural", summary: "Site institucional em Next.js 16 com cena 3D procedural em Three.js: uma casa wireframe que se transforma em placa-mãe conforme o scroll. Quatro áreas de engenharia — civil, elétrica, eletrônica/automação e software — sob o mesmo teto.", impact: "Demonstra engenharia de software aplicada a presença digital: cena 3D gerada em runtime sem assets externos, animação dirigida por scroll e código 100% tipado.", stack: [ "Next.js 16", "React 19", "Three.js", "TypeScript", "Tailwind CSS 4", "shadcn/ui", ], demoUrl: "https://asservicos.com", githubUrl: "https://github.com/evandrodevbr/as-servicos", }, ]; export const serviceHubLinks = servicePages.map((service) => ({ href: `/servicos/${service.slug}`, label: service.navLabel, description: service.metaDescription, })); export function getServicePage(slug: string) { return servicePages.find((service) => service.slug === slug); } export function getRelatedCases(caseIds: string[]) { return caseStudies.filter((caseStudy) => caseIds.includes(caseStudy.id)); }