A chave não vai pro navegador
O navegador baixa o JavaScript da página e executa na máquina de quem visitou. Qualquer valor que esse arquivo contenha pode ser lido. Por isso senha de banco, chave secreta e token de administrador não entram nesse arquivo.
Onde guardar
No servidor, o valor mora numa variável de ambiente. No seu computador isso é um arquivo .env, fora do Git. Na Vercel, o mesmo nome entra em Environment Variables. O código só lê process.env.NOME.
SUPABASE_SECRET_KEY=coloque-aqui-e-nao-commite
SITE_URL=https://seu-dominio- O
.gitignoreprecisa cobrir.env. Conferir comgit statusantes de commitar. - O arquivo que sobe no repositório é o
.env.example, com o nome da variável e sem o valor. - Cada ambiente tem a sua chave. A de desenvolvimento não é a de produção.
O prefixo que publica
No Next.js, variável cujo nome começa com NEXT_PUBLIC_ é copiada para o JavaScript que vai ao navegador. Serve para um endereço público. Não serve para segredo. Se a chave deixa a pessoa ler e gravar o banco inteiro, ela não leva esse prefixo, e nenhum componente de cliente pode importá-la.
Como testar
Abra o site, veja o código-fonte e busque um pedaço da chave. Se aparecer, ela está pública. Busque também no bundle em _next/static. O teste demora um minuto e evita descobrir a mesma coisa num print de outra pessoa.
