DevBlog: como O Botão do Fim foi construído
Um registro dos experimentos, decisões, erros e evoluções que transformaram um botão em um pequeno fim do mundo.
STATUS ATUAL
// FASE ATUAL // EXPANSÃO EDITORIAL
Jogo de Apocalipse Online, Guia, FAQ, Teorias e DevBlog organizam o conteúdo público do projeto.
Última atualização: O universo abre seu arquivoLINHA DO TEMPO
MARCO ZERO
Um contador, um botão e uma responsabilidade compartilhada
A proposta inicial: um contador global que começa em 1000 e um botão capaz de adiar o fim.
O projeto nasceu com uma regra simples: o tempo diminui, alguém aperta e o mundo ganha outro ciclo. A identidade anônima permite participar sem transformar o primeiro clique em um cadastro obrigatório.
Este site não foi criado. Ele escapou.
- // Contador
- // Botão
- // Identidade anônima
FASE INICIAL
O fim ganha testemunhas
Salvamentos, último salvador, Ranking Universal e chat dão contexto coletivo ao clique.
O botão deixa de ser uma ação solitária. Os salvamentos alimentam o histórico e o ranking, enquanto o chat cria um espaço para quem está acompanhando o mesmo contador.
Frases irônicas, skins e configurações ampliam a apresentação sem substituir a regra central.
- // Salvamentos
- // Ranking
- // Chat
FASE DE EXPANSÃO
As primeiras portas do universo
Arsenal, Origem e Hospital ampliam o mundo ao redor do botão.
A Origem apresenta a narrativa oficial. O Arsenal explora a preparação para o fim e o Hospital acrescenta uma experiência própria.
A expansão não troca o jogo principal por outro: cada área continua ligada ao mesmo universo.
- // Origem
- // Arsenal
- // Hospital
FASE DE EXPANSÃO
Nem toda emergência se resolve apertando
Sala de Espera, Rádio e Banheiro introduzem experiências com linguagens próprias.
A Sala de Espera traz um arcade. O Rádio propõe montagem, conexões, soldagem, diagnóstico e sintonia. O Banheiro funciona como um screensaver pixelado do bunker.
Essas experiências têm suas próprias interações, mas não criam um segundo contador global.
- // Arcade
- // Rádio
- // Banheiro
FASE DE INTEGRAÇÕES
Uma janela para o mundo de fora
Monitoramento Global reúne dados reais; Ritual e Mapa dos Crentes ampliam a presença do universo.
O Monitoramento reúne USGS, NASA e OpenWeatherMap. Cache, fallback e tratamento independente de falhas evitam que uma fonte indisponível derrube todas as outras.
O Mapa dos Crentes agrega registros aproximados. A localização pelo navegador é convertida em célula; o registro não guarda a coordenada exata. O Ritual oferece outra forma de explorar e compartilhar o universo.
- // Monitoramento
- // Privacidade
- // Mapa
FASE DE CONSOLIDAÇÃO
O relógio precisa sobreviver à aba esquecida
A transição de ciclo se ancora no horário oficial e o estado é atualizado ao retornar à página.
O ciclo global passa a ter transição oficial pelo horário e estado do servidor. Voltar do background, recuperar foco ou reconectar também provoca ressincronização.
A decisão preserva uma única fonte de verdade. Não há um cronômetro alternativo tentando decidir quando o mundo acaba.
- // Ciclo global
- // Realtime
- // Sincronização
FASE DE EXPANSÃO SOCIAL
O fim aprende a consultar o calendário
Eventos sazonais mudam a apresentação do botão sem mudar sua mecânica.
Carnaval, Halloween, Natal, Dia dos Namorados, Ano Novo, aniversário do site e sexta-feira 13 ganham variantes compartilhadas.
A seleção considera o calendário brasileiro e prioridades entre eventos. A aparência pode mudar; o salvamento continua sendo o mesmo.
- // Eventos sazonais
- // Calendário
- // Skins
FASE DE EXPANSÃO SOCIAL
O botão entra em transmissão
Modo Streamer e Ranking da Live organizam a experiência de acompanhar o jogo ao vivo.
O Modo Streamer reutiliza contador, botão, chat e identidade. O modo OBS ajusta a apresentação para transmissão.
O Ranking da Live considera os salvamentos universais dentro do intervalo da sessão. Ele não grava um segundo salvamento para o mesmo clique.
- // Streamer
- // OBS
- // Ranking da Live
FASE DE EXPANSÃO SOCIAL
A responsabilidade ganha uma sala
Modo Grupo reúne membros por link sem criar um ciclo separado.
As salas mantêm membros cadastrados mesmo quando estão offline. O status de cada participante é recalculado pelo ciclo global; apenas o relatório do ciclo encerrado fica congelado.
O rótulo Traidor pertence ao estado crítico atual e desaparece quando o participante salva. A sala continua acessível pelo mesmo link.
- // Modo Grupo
- // Ciclo global
- // Comunidade
FASE DE EXPERIÊNCIAS
O bunker precisa de energia
Gerador V8 acrescenta escorva, partida e controle de RPM, com energia global temporária.
O desafio exige preparar, dar partida e manter o motor. O visual evolui para um motor 3D inspecionável, ligado ao estado e ao RPM da experiência.
A energia utiliza um timestamp oficial no backend e cooldown global. O efeito visual em Home, Arsenal, Hospital e Origem deriva desse horário, não de uma duração salva localmente.
- // Gerador V8
- // 3D
- // Energia global
// FASE ATUAL // EXPANSÃO EDITORIAL
ÚLTIMA ATUALIZAÇÃO
O universo abre seu arquivo
Jogo de Apocalipse Online, Guia, FAQ, Teorias e DevBlog organizam o conteúdo público do projeto.
A base editorial reúne explicação do jogo, guia de sobrevivência, perguntas frequentes e teorias apresentadas como especulação. O DevBlog acrescenta este registro documental de evolução.
O conteúdo chega no HTML, com metadados próprios, canonical e inclusão no sitemap. O Arquivo do Fim usa a publicação de cada página para organizar seus links.
Este é o estado documentado nesta entrada, não um indicador de disponibilidade em tempo real. Novos marcos entram no registro após revisão editorial.
- // SEO
- // Arquivo do Fim
- // DevBlog
POR TRÁS DO BOTÃO
React e TypeScript organizam a interface; TanStack Start estrutura as páginas. O estado global vem do backend, com atualizações em tempo real e sincronização pelo horário oficial.
Salvamentos, ciclos e identidade são compartilhados. Modo Streamer e Modo Grupo reutilizam essa base em vez de criar versões concorrentes do jogo.
Regras de acesso e limites de frequência protegem operações sensíveis. Integrações externas usam cache e fallback. O PostHog existente acompanha a navegação e os eventos definidos para o projeto.
COISAS QUE DERAM ERRADO
- Ciclos e retorno à aba: foi necessário ancorar a transição no horário oficial e ressincronizar ao recuperar foco, visibilidade ou conexão.
- Energia do Gerador: reutilizar um canal já inscrito causava erro ao configurar novamente as atualizações em tempo real. A configuração passou a usar um canal novo.
- Acelerador no desktop: o arraste do mouse na etapa de manter o motor precisou de correção para responder continuamente, com progresso acumulado apenas na faixa ideal.
- Localização aproximada: a conversão em células e a validação de terra precisaram de ajustes para posicionar registros corretamente e impedir novos pontos oceânicos.
Aprendizado registrado: um botão simples não significa que todos os relógios, dispositivos e serviços concordem automaticamente.
DECISÕES QUE MUDARAM O PROJETO
- Um único ciclo global: o navegador apresenta o tempo, mas não é a autoridade sobre o fim.
- Ranking da Live como recorte temporal dos eventos universais: acompanhar uma sessão não duplica salvamentos.
- Modo Grupo como camada social: salas não criam contador nem confirmação de clique paralelos.
- Localização aproximada por células: o mapa não precisa guardar coordenadas exatas para reunir participantes por região.
- Energia por timestamp no backend: sair da página não pausa nem prolonga o efeito global.
- Conteúdo editorial revisado: o histórico cresce por entradas publicadas, não por registros automáticos de cada alteração.
DE UM BOTÃO PARA UM UNIVERSO
O núcleo continua sendo o contador e o botão. Ao redor dele surgiram narrativa, espaços de comunidade, experiências de precisão e montagem, monitoramento e arquivos editoriais. O botão permaneceu simples; o corredor ganhou portas.