Como Criar e Preparar um Backend TypeScript Profissional
Aprenda, em um roteiro prático, como configurar um backend robusto, com validação e documentação de API de primeira, usando ferramentas modernas like Fastify, TSX, Zod, Scalar e Biome.
Por que isso é importante
Setup Node completo: HTTP/auth/DB/logs/deploy — clean architecture cedo é procrastinação.
Leitura relacionada: Curso Node.js · Aprender Node.js · Clean Vertical Slice · Cursos CrazyStack.
Comece pelas bases: Initialização de Projeto com pnpm e TypeScript
A pressa normalmente leva ao caos, mas aqui o passo a passo é claro: esqueça iniciar o app web e foque 100% na API. Dentro da pasta da sua API, rode pnpm init (sem -y , pois o padrão já te poupa prompts à toa). O resultado: seu package.json pronto para nascer limpo e sob controle.
Atenção
Muitos confundem o -y no init dos gerenciadores de pacotes: o pnpm já assume defaults, diferente do npm que exige essa flag.
Estrutura mínima: Pastas e setup do projeto
Com package.json criado, crie a pasta source para separar sua lógica. Não jogue arquivos soltos na raiz: organização economiza horas no médio prazo.
Escolha do executor: TSX para rodar TypeScript com poder real
Ao invés de contar só com suporte nativo do Node, instale tsx no backend: ele garante features valiosas como aliases e paths inteligentes de importação. Já previne dor de cabeça, pois só com o TSX você usa tsconfig-paths e realocações limpas de arquivos, fugindo de importações quebradas.
Atenção
Sem o TSX, o Node puro ainda não suporta aliases avançados por tsconfig. Muita import quebrando no futuro.
tsconfig.json: Referencie e customize como um profissional
Chame pnpm tsc --init : isso cria um tsconfig.json inicial. Torne-o robusto copiando bases prontas do repositório oficial no Github ( tsconfig-bases ). Escolha o preset para sua versão Node, cole o conteúdo, ajuste os aliases (ex: @/* para source/* ) na seção paths .
Atenção
Aliasing bem feito ( @/algo vira source/algo ): mantém a escalabilidade e facilita refatorações, principalmente para times grandes.
Scripts de dev e produção: automatize execução e builds
Monte scripts no package.json para acelerar seu fluxo. No modo dev: tsx watch source/server.ts . No build, compile para dist e rode via node dist/server.js . Você isola ambiente de desenvolvimento de produção, prevenindo bugs e confusões.
Atenção
Separe SEMPRE ambientes dev e prod: rodar TypeScript direto em produção pode deixar sua API lenta e mais vulnerável.
Na raiz da escalabilidade: Fastify, o Server para performance
Instale Fastify e crie seu server.ts expondo a API na porta 3333 e host 0.0.0.0 . Esse host permite deploy fácil em plataformas como Railway e amplia compatibilidade. Capriche nos logs de inicialização: exiba a rota principal da API e a URL da documentação.
Variáveis de ambiente: mantenha segredos e configs isolados
Adote um arquivo .env para variáveis sensíveis desde o primeiro commit. Configure o TSX para ler automaticamente seu .env , prevenindo exposição de dados críticos no versionamento.
Atenção
NUNCA versionar .env . Adicione logo ao .gitignore .
Biome: lint e format em segundos, sem dor
Configure Biome com biome init para padronizar formatação e estilos no projeto. Prefira espaço sobre tab, 2 espaços de indentação, limite linhas a 80 caracteres, strings simples e pontuação só quando necessário.
Atenção
Garanta que o Biome esteja integrado ao seu editor (VSCode, Zed, IntelliJ) para salvar e ver seu código limpo em tempo real.
Scripts de formatação: padronização com um comando
No package.json , crie um script format utilizando biome format . --write para uniformizar o código com facilidade a cada commit.
Plug-ins Fastify: CORS, Swagger, Scalar e Validação tipada com Zod
Dê superpoderes ao seu server instalando os plugins oficiais Fastify: @fastify/cors para habilitar CORS, @fastify/swagger para gerar documentação OpenAPI, zod para validação e fastify-type-provider-zod para integrar tipos e validações nativas. Adicione também o Scalar para uma UI de docs free e moderna.
Configurações inteligentes: Integre, customize e valide cada endpoint
No seu server.ts , registre cada plugin: Cors (permitindo origin: true ), Swagger com informações personalizadas e jsonSchemaTransform , Scalar UI com o prefix /docs . Use o Type Provider do Zod para tipagem automática e aponte todos os imports necessários.
Autenticação e segurança: preparing para o próximo nível
Antecipe funcionalidades comentando as opções de credentials: true no CORS, preparando para cookies e sessões futuras necessárias em flows autenticados.
Atenção
Cookies automáticos via CORS apenas se credentials: true e front+back compartilharem origem. Perigoso para apps públicos sem autenticação forte.
Documentação de API bonita, automática e sempre atualizada
Ao rodar o server, acesse /docs para ver toda documentação via Scalar, já consumindo as configs OpenAPI via Swagger. Cada endpoint será documentado automaticamente, reduzindo bugs em integrações.
Atenção
API sem documentação é receita de desastre em times e parcerias. Docs vivas = velocidade na entrega e suporte.
Validação e inferência: Zod como guardião dos dados
Configure o uso do Zod em todas as rotas. Ele valida as entradas e define tipos, garantindo que o payload está correto antes de processar. Isso previne bugs difíceis e aumenta a qualidade.
Pronto para crescer: Invista na cultura de código preparado
Com esse setup, você prepara seu backend para qualquer desafio: produtividade, qualidade, documentação viva e segurança robusta. Invista tempo aqui e ganhe semanas no futuro — e se quiser técnicas avançadas do zero ao produto, confira meu canal para mergulhar fundo na prática real!
Atenção
Assista à série completa de backend TypeScript e mais hacks no canal Dev Doido: youtube.com/@DevDoido
Perguntas frequentes
Setup backend Node.js completo: o mínimo?
HTTP, auth, DB, logs, deploy e testes. O resto é opinião.
Framework?
Fastify/Nest/etc. Escolha e aprofunde.
TypeScript?
Sim se o time for crescer.
Clean architecture?
Quando a complexidade pedir.
Continue explorando
Continue: Curso Node.js · Aprender Node.js · Clean Vertical Slice · Cursos CrazyStack.
Perguntas frequentes
Setup backend Node.js completo: o mínimo?
HTTP, auth, DB, logs, deploy e testes. O resto é opinião.
Framework?
Fastify/Nest/etc. Escolha e aprofunde.
TypeScript?
Sim se o time for crescer.
Clean architecture?
Quando a complexidade pedir.