Começar pelas pessoas e pelo sinal do produto
Uma funcionalidade de produção tem uma razão para existir e uma maneira de entender se é útil. Analytics introduz essa camada de medição: identificar atividades relevantes e usá-las para orientar decisões de produto, em vez de tratar números coletados como um objetivo por si só.
Integrar serviços numa experiência coerente
APIs de IA e Stripe oferecem capacidades externas diferentes: uma pode trazer comportamento baseado em modelos, enquanto a outra participa de fluxos de pagamento. Em ambos os casos, a integração precisa de um lugar claro no produto, comportamento previsível e configuração tratada com cuidado.
Entender o que mantém a aplicação no ar
Uma funcionalidade não termina quando funciona no computador de quem a desenvolve. Os conceitos de VPS apresentam o ambiente de servidor que pode hospedar uma aplicação ativa e o contexto operacional ao redor dela. A etapa conecta intenção de produto, serviços externos e pensamento de publicação.
Do conceito ao código funcional
Estes trechos mostram como os conceitos de cada nível aparecem em projetos reais. São pontos de partida para ler, questionar, adaptar e testar — não código para copiar sem entender.
Manter credenciais do serviço no servidor
A rota valida a solicitação antes de chamar o serviço de IA. A chave vem de uma variável de ambiente do servidor e erros externos viram respostas controladas; o segredo nunca é enviado ao navegador.
export async function POST(request) {
const { prompt } = await request.json();
if (typeof prompt !== "string" || !prompt.trim()) {
return Response.json({ error: "Prompt is required." }, { status: 400 });
}
const upstream = await fetch(process.env.AI_API_URL, {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.AI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ prompt: prompt.trim() }),
});
if (!upstream.ok) {
return Response.json({ error: "The service is unavailable." }, { status: 502 });
}
return Response.json(await upstream.json());
}Tornar a execução reproduzível
O Dockerfile instala dependências bloqueadas, compila em uma etapa separada e executa em produção com usuário sem privilégios. Para publicar, adicione verificação de saúde, fixe a imagem base e injete segredos pela configuração de deploy.
FROM node:22-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:22-alpine AS runtime
ENV NODE_ENV=production
WORKDIR /app
COPY --from=build /app .
EXPOSE 3000
USER node
CMD ["npm", "start"]Leia e depois adapteAltere um requisito, preveja o resultado e execute o código para conferir. Na revisão, explique a escolha feita e uma melhoria que faria a seguir.