Notas

Blog

Notas sobre frontend, SEO, IA, analytics e trabalho em produtos reais.

42 artigos

31 de agosto de 20267 min de leitura

Meu VPS da AVA Hosting teve média de 32,73% de CPU steal apesar de “Guaranteed Resources — No Sharing”

Meu VPS KVM na AVA Hosting registrou média de 32,73% de CPU steal, 0% de CPU idle e quase 99% de pressão de CPU sob tráfego normal de produção. Não é uma avaliação negativa, mas um relato técnico do que o Linux realmente mostrou dentro da VM.

AVA HostingVPSLinuxCPU stealDesempenho VPS
31 de agosto de 20269 min de leitura

Meu VPS da FDCServers funcionou bem com mais de 3 TB de tráfego. Depois, as leituras de disco começaram a levar 18 segundos

Meu VPS da FDCServers inicialmente processou tráfego real normalmente e transferiu mais de 3 TB de dados. Depois, uma carga comum começou a provocar stalls graves no disco virtual: CPU iowait chegou a 100%, a pressão de I/O do Linux quase a 100%, leituras chegaram a 18,7 segundos e flushes passaram de 53 segundos.

FDCServersVPSLinuxI/O de discoDevOps
31 de agosto de 20268 min de leitura

Meu VPS da REGXA mostrava 94% de CPU steal mesmo sem tráfego

Ao investigar graves problemas de desempenho em um VPS KVM da REGXA, encontrei 92–94% de CPU steal, requisições localhost levando vários segundos, filas de conexões crescendo e respostas HTTP 504 após mais de dois minutos. Depois de remover todo o tráfego de produção, o CPU steal subiu para 94,17%, e a REGXA posteriormente atribuiu o problema à contenção de recursos em sua infraestrutura compartilhada.

REGXAVPSLinuxCPU stealvirtualização
28 de agosto de 202612 min de leitura

Dois meses com Bunny Storage atrás do Nginx: por que movi imagens, vídeo e áudio para um servidor de mídia dedicado

Durante dois meses usei Bunny Storage como origin privado atrás do meu próprio cache Nginx, sem Bunny CDN. Os logs de produção revelaram long-tail connection timeouts em mídia fria e um problema separado em MP4 envolvendo Nginx Slice e ETags inconsistentes; no fim migrei para um media origin privado bem mais simples.

Bunny StorageNginxCache de vídeoCache missServidor de mídia
20 de agosto de 20269 min de leitura

SSIMULACRA2 no transcoding de WebP para AVIF: por que uso 60 para fontes e 65 para derivados com perdas

Ao criar AVIF a partir de um WebP que já foi comprimido com perdas, o SSIMULACRA2 mede apenas a segunda geração de degradação. Por isso uso 60/58 para fontes limpas e 65/63 para derivados lossy conhecidos.

AVIFWebPSSIMULACRA2Compressão de imagensDesempenho web
17 de agosto de 202612 min de leitura

A DeepSeek aumentou os preços — encontrei o mesmo V4 Flash mais barato que a tarifa antiga

Em 17 de agosto, meus gastos com a DeepSeek API subiram de repente para cerca de cinco vezes o normal. Depois encontrei e testei outro provedor com o mesmo checkpoint DeepSeek-V4-Flash-0731, cobrando aproximadamente 45% menos que as antigas tarifas da DeepSeek.

DeepSeekRunwareAPI de LLMInfraestrutura de IAModelos open-weight
13 de agosto de 202614 min de leitura

Como converto WebP animados, GIF e APNG para H.264 MP4 sem estragar os quadros nem a temporização

Meu fluxo de produção reconstrói os quadros completos que o usuário realmente vê, preserva a temporização da fonte, escolhe um único CFR para cada MP4 final, calcula a menor área comum sem ampliar, codifica segmentos H.264 compatíveis, concatena-os sem uma segunda codificação com perdas e valida tanto o arquivo quanto sua entrega por HTTP. Em uma execução medida, 217 WebP animados somando 1,49 GB viraram um único MP4 H.264 de 78,49 MB.

H.264FFmpegMP4WebP animadoGIFAPNGCompressão de vídeoProcessamento de mídia
13 de agosto de 202615 min de leitura

Eu alertava por tudo: como transformei o ruído de erros do navegador em monitoramento útil de produção

Meu sistema de reporte no frontend tratava bloqueios de anúncios, falhas do GTM, AbortError, Script error opacos e erros reais de chunks do Next.js da mesma forma. Reconstruí os alertas em torno da propriedade do recurso, do impacto no usuário, da qualidade da evidência, da correlação e da recuperação.

Monitoramento de erros do navegadorObservabilidade frontendErros JavaScriptMonitoramento de produçãoNext.jsPerformance web
13 de agosto de 202623 min de leitura

Por que abas antigas do Next.js quebram após uma implantação: HTML desatualizado, chunks ausentes e versões desencontradas

Depois de uma implantação, meu monitoramento de produção registrou a falha no carregamento de um chunk da própria aplicação Next.js. O registro comprovava a falha, não a causa. A partir desse incidente, o artigo explica abas antigas, HTML desatualizado, recursos /_next/static ausentes, desencontro de versões, retenção, deploymentId, ordem de publicação, monitoramento e recuperação controlada.

Next.jsImplantaçãoDesencontro de versõesCache na webConfiabilidade do frontendRecursos estáticos
13 de agosto de 20269 min de leitura

O tick que quebrou meu CFR: por que 5580 não era 5625 e 3751 não era 3750

Meu validador rejeitou repetidamente um MP4 a 16 fps porque um pacote durava 5580 ticks em vez de 5625; depois encontrou 3751 onde 24 fps exigiam exatamente 3750. Os dois erros me obrigaram a separar a temporização da origem, a quantização CFR, a base de tempo do MP4, PTS/DTS, a multiplexação e a validação no nível dos pacotes.

FFmpegH.264CFRMarcas de tempo de vídeoMP4Processamento de mídia
13 de agosto de 202613 min de leitura

Como reduzi um vídeo de produção de ~280 MB para ~50 MB usando H.264

Um vídeo real do sistema em produção caiu de cerca de 280 MB para cerca de 50 MB depois que refiz a configuração H.264 em torno de CRF 28, x264 veryslow, um limite de resolução da classe 720p, taxas de quadros úteis e exigências moderadas para o decodificador. Em uma etapa anterior, o mesmo exemplo já havia caído de cerca de 350 para 238 MB, e uma auditoria da biblioteca antiga mostrou que H.264 com vários megabits por segundo era comum.

H.264FFmpegx264Compressão de vídeoDesempenho na internetOtimização de mídia
16 de abril de 20267 min de leitura

Criei o Gitae para diagnosticar indisponibilidade além do simples “online ou offline”

Criei o Gitae para responder uma pergunta prática: o site está realmente indisponível ou a falha é local? A ferramenta combina testes em VDS externos em Moscou e Helsinque com DNS, HTTPS/TLS, portas, routing, IP, hospedagem e sinais de CMS, tratando cada resultado como evidência, não como prova definitiva.

GitaeDiagnóstico de sitesMonitoramentoDNSSSLPingTraceroutePortasHospedagemSEO
14 de abril de 20266 min de leitura

Por que TypeScript funciona tão bem com Codex em software de produção

Em produção, TypeScript dá ao Codex algo que um bom prompt não substitui: contratos verificáveis pela máquina, feedback rápido do compilador e um caminho mais seguro para grandes refactors.

TypeScriptCodexProgramação com IAEntrega de softwareJavaScriptFluxo de desenvolvimento
6 de abril de 20265 min de leitura

Criei o Jurfi.com: um estúdio no navegador para rascunhos jurídicos estruturados

Criei o Jurfi.com para transformar formulários e modelos em rascunhos jurídicos estruturados no navegador, manter rascunhos localmente e deixar a revisão como parte explícita do processo, sem afirmar que software substitui um advogado.

JurfiJurfi.comDocumentos jurídicosLegalTechSaaSRascunhos legaisFerramentas web
5 de abril de 20264 min de leitura

Minha primeira receita com SaaS: o que um único pagamento realmente provou

Meu primeiro pagamento por um produto SaaS que eu mesmo construí foi pequeno, mas mudou a qualidade das evidências que eu tinha. Aqui está o que uma única transação pode validar, o que ela não prova e por que a repetição importa mais do que o próprio marco.

SaaSPrimeira receitaDesenvolvedor indieValidação de produtoDesenvolvimento de produtoJornada de startupExperiência de desenvolvedor
3 de abril de 20269 min de leitura

Como uso o Codex para revisar 15 projetos sem abrir mão do controle manual

Revisar 15 projetos de software antes significava se perder em verificações repetitivas. O Codex me ajuda a investigar bugs, testes, SEO, traduções, localização e consistência muito mais rápido, mas continuo tratando cada finding da IA como uma pista, não como um veredito, e cada mudança como algo que eu mesmo preciso validar.

CodexAI codingCode reviewTestes de softwareDeveloper workflowLocalizaçãoSEO técnicoProdutividade de desenvolvedor
2 de abril de 20268 min de leitura

Por que uso os últimos 3–5% do meu limite do Codex no ChatGPT Plus em grandes tarefas de engenharia — Atualização: isso parou de funcionar no verão de 2026

Atualização: até o verão de 2026 esse workflow deixou de ser confiável para mim. O contador de 5 horas desapareceu da minha conta, ficou visível apenas o limite semanal e uma tarefa longa podia parar quando esse limite acabava.

CodexChatGPT PlusFerramentas de IA para códigoWorkflow de desenvolvedorEngenharia de softwareMigração para TypeScriptLimpeza de ESLintRefatoraçãolimites de uso do Codexatualização 2026
1 de abril de 202610 min de leitura

Publiquei 10.000 artigos de SEO com IA e meu site acabou com zero páginas indexadas no Google

A publicação em massa com IA parecia um atalho: o Google rastreou as 10.000 URLs dos artigos gerados, mas apenas cerca de 1.000 páginas foram realmente indexadas, apareceram na Busca e trouxeram tráfego real. Depois elas também desapareceram, até o site inteiro chegar a zero páginas indexadas. O experimento mudou minha visão sobre IA, SEO, tradução e responsabilidade editorial.

SEO com IAIA generativaGoogle SearchConteúdo em escalaIndexaçãoEscrita assistida por IASEO multilíngue
31 de março de 20266 min de leitura

Cinco anos com um MacBook M1 de 8/256 GB: por que ainda não o substituí

Comprei o MacBook M1 básico com 8 GB de memória e SSD de 256 GB por cerca de 1.000 dólares e o usei aproximadamente 15 horas por dia para desenvolvimento, mídia, escrita, estudo e projetos paralelos. Cinco anos depois, vejo claramente os limites, mas penso em trocar porque minha carga de trabalho cresceu, não porque a máquina deixou de ser útil.

MacBookAppleM1Apple SiliconDesenvolvimento de softwareAnálise de longo prazoLongevidade de hardware
30 de março de 20264 min de leitura

Traduzi meu blog para 20 idiomas com o ChatGPT — e comecei a receber tráfego de busca do mundo inteiro

A IA mudou a economia da publicação multilíngue para mim. Saí de um blog em um único idioma para artigos publicados em até 20 idiomas, criando novas portas de entrada orgânicas.

Localização com IASEO multilíngueChatGPTNext.jsSEO internacionalBlog
27 de março de 20265 min de leitura

Lancei o QRViz como gerador gratuito de QR codes estáticos — e apostei a distribuição no SEO

O QRViz é um gerador de QR codes estáticos no navegador, e não uma plataforma de campanhas. Lancei o qrviz.com como um gerador de QR Code gratuito, sem orçamento de anúncios, aquisição paga ou funil de monetização. Estou contando totalmente com SEO, por isso a distribuição continua sendo a maior incerteza do projeto.

Gerador de QR CodeQrvizLançamento de produtoSEOProjeto paraleloDesenvolvimento webDesenvolvimento de produto
18 de fevereiro de 20264 min de leitura

Por que conseguir clientes pareceu mais difícil do que construir um SaaS

Uma lição da minha experiência construindo SaaS: engenharia me dava feedback claro e verificável, enquanto distribuição, posicionamento, mensagem e retenção exigiam um ciclo diferente e muito menos previsível.

Crescimento SaaSAquisição de clientesMarketing de produtoBootstrappingBuild in publicDistribuição
17 de fevereiro de 20265 min de leitura

Construí sozinho um produto SaaS. Ativar pagamentos mudou o trabalho

Construí este produto sozinho, à noite, nos fins de semana e em feriados. Quando os pagamentos entraram no ar, bugs, onboarding, moderação, retenção e confiança deixaram de ser problemas para depois e passaram a fazer parte da operação de um produto real.

SaaSDesenvolvimento soloLançamento de produtoPaymentsReliabilityOperação de produto
22 de janeiro de 20264 min de leitura

I Got 550 Views from One Image, Voiceover, and Subtitles: What Three Shorts Tests Actually Taught Me

A simple YouTube Short built from one static image, a voiceover, and subtitles reached 550 views. After three early tests, the useful lesson was not a proven formula, but a repeatable way to experiment without confusing a promising signal with proof.

YouTube ShortsContent ExperimentsShort-form VideoVideo EditingCapCutCreator Workflow
20 de janeiro de 20266 min de leitura

Vi quase 6.000 candidaturas em uma vaga frontend em Moscou. O que isso diz — e não diz — sobre o mercado de TI russo

No fim de 2023, recrutadores me diziam que 300–500 candidatos por vaga já era muita gente. Em 20 de janeiro de 2026, vi uma vaga frontend de nível pleno em Moscou se aproximar de 6.000 candidaturas em poucas horas. Aqui separo o sinal real do que esse número não consegue provar e explico como eu o leria hoje como candidato.

CarreiraMercado de trabalho de TIFrontendRússiaMoscouContrataçãoBusca de emprego
1 de janeiro de 20265 min de leitura

Como o DeepSeek mudou meu workflow em Node.js: mais de 4.000 commits em seis meses

Meu gráfico do GitHub em 2025 passou de quase vazio para mais de 4.000 commits na segunda metade do ano. Este artigo mostra como o coding com AI mudou meu workflow em side projects Node.js, onde economizou tempo, onde errou e por que verificação continuou mais importante do que gerar código rapidamente.

Node.jsDeepSeekAI CodingDeveloper ProductivitySide ProjectsSoftware Engineering
30 de dezembro de 20256 min de leitura

My First TikTok at 28: What a Vertical Product Demo Taught Me About Traffic

At 28, I posted my first TikTok and cross-posted the same product demo to Reels and Shorts. The useful lesson was not the view count: it was how much a 9:16 frame changes a desktop interface, and how to measure short-form traffic without confusing reach with acquisition.

TikTokProduct MarketingProduct DemosAnalyticsIndie Dev
16 de novembro de 20256 min de leitura

Comprei um domínio de 25 anos e recebi 1.000+ requisições por dia em URLs mortas

Depois de lançar um site em um domínio registrado pela primeira vez em 2000, vi mais de 1.000 requisições diárias para URLs antigas e mais de 900 erros no Yandex Webmaster em uma noite. Explico o que eu realmente podia provar, por que usei 410 de forma direcionada e como eu auditaria um domínio antigo hoje.

SEOHTTPDevOpsDomíniosRastreamento web
14 de novembro de 20256 min de leitura

O Yandex tinha indexado 12.500 páginas, mas eu quase não recebia tráfego da Rússia: o problema do Cloudflare que eu não vi

O Yandex havia indexado 12.500 páginas, mas o tráfego da Rússia era quase zero. Isolei o problema na rota de rede, desativei o proxy do Cloudflare, levei cache, compressão e proteção básica para o Nginx no meu VDS e restaurei a acessibilidade.

DevOpsSEONginxCloudflareRedesInfraestrutura
27 de outubro de 20255 min de leitura

Meu site Next.js estático recebe milhares de scans de vulnerabilidade por dia. O Nginx quase não percebe

Meus logs estão cheios de probes procurando WordPress, backdoors PHP, .env e .git/config. No meu setup estático com Next.js + Nginx, a maioria termina em misses baratos e 404, enquanto a carga da CPU permaneceu estável. Eis o que essa experiência realmente diz sobre segurança de sites estáticos — e o que ela não prova.

SegurançaNext.jsNginxDevOpsHospedagem estáticaSuperfície de ataque
27 de outubro de 20254 min de leitura

Yandex trouxe tráfego ao meu site novo enquanto o Google quase não reagia

No mesmo projeto novo, o Google somou apenas cerca de 300 cliques ao longo de um período extenso, enquanto o Yandex Webmaster mostrava uma alta clara, incluindo +500% em cliques. O ponto é separar o que esses números comprovam do que continua sendo hipótese.

SEOGoogle SearchYandexGoogle Search ConsoleYandex WebmasterSEO técnico
17 de outubro de 20255 min de leitura

Yandex indexou 4.278 das minhas páginas Next.js em uma noite — o que isso realmente provou

Yandex passou a indexar 4.278 das minhas páginas geradas estaticamente com Next.js quase de uma vez. Foi um marco técnico real, mas não uma prova de ranking ou tráfego. Aqui está o que esse resultado dizia de fato sobre SSG e SEO programático — e o que não dizia.

SEONext.jsSSGYandexSEO programáticoIndexação
16 de outubro de 20256 min de leitura

Meu primeiro mês de SEO: 632 visitantes orgânicos e uma checagem sobre tráfego de bots

Usei um projeto pessoal para me preparar para uma iniciativa maior de SEO no trabalho. Depois de um mês, ele tinha 632 visitantes orgânicos, mas um dia com 83 visitantes mostrou como tráfego suspeito e artefatos de analytics podem distorcer a leitura do resultado.

SEOWeb analyticsTráfego de botsYandex MetricaExperimentos de SEO
6 de outubro de 20254 min de leitura

Quase ignorei o Yandex Webmaster. Duas semanas depois, ele trazia mais tráfego que o Google

Criei um side project em Next.js para praticar antes de um projeto de trabalho em que SEO seria crítico. Nas primeiras duas semanas registrei 58 visitantes do Google e 200 do Yandex, e aprendi a separar tráfego, indexação e diagnóstico.

SEONext.jsGoogle SearchYandexSearch ConsoleIndexação
5 de outubro de 20256 min de leitura

Yandex Metrica vs. Google Analytics: por que preferi o Metrica depois de uma semana

Rodei Google Analytics e Yandex Metrica em paralelo por uma semana em um projeto novo. O Metrica ganhou minha preferência principalmente por causa do Webvisor e dos replays de sessão, mas isso descreve meu fluxo de trabalho — não prova que uma plataforma seja melhor para todos.

Web analyticsUXReplay de sessãoYandex MetricaGoogle AnalyticsGA4
3 de outubro de 20254 min de leitura

O Yandex rastreou meu blog sem /en. Redirects 308 evitaram uma onda de 404

Depois de adicionar cerca de 3.000 páginas /en/blog/... ao sitemap, vi o Yandex tentar os caminhos correspondentes em /blog/.... Redirects 308 que já existiam impediram que essas requisições terminassem em 404. A principal lição não foi que o Yandex “quebrou” meu sitemap, mas o valor de uma camada de redirecionamento bem definida.

SEOYandexSitemapRedirect 308SEO técnicoRastreamento
2 de outubro de 20255 min de leitura

Dois sites novos dispararam no Google — e dias depois o tráfego caiu cerca de 10×

Em dois lançamentos seguidos, vi as impressões no Google subirem rapidamente e o tráfego cair aproximadamente dez vezes poucos dias depois. O padrão foi real; não consigo provar que foi uma suposta “lua de mel” do Google.

SEOGoogle SearchSearch ConsoleTráfego orgânicoSEO técnico
1 de outubro de 20254 min de leitura

2.000 páginas sumiram da busca do Yandex de uma noite para outra. O que isso realmente me mostrou

Abri o Yandex Webmaster e vi que 2.000 de cerca de 8.000 páginas deixaram de participar da busca. A queda de 25% era grande, mas a lição mais útil foi não confundir uma mudança observada no status de busca com uma causa comprovada.

SEOYandex WebmasterIndexaçãoVisibilidade na buscaSEO técnico
11 de julho de 20253 min de leitura

Fiz mais de 10 perguntas no MoscowJS 66 e ganhei dois prêmios

No MoscowJS 66, fiz mais de 10 perguntas durante talks sobre bots do Telegram, LangChain.js, arquitetura de um construtor de sites e testes de tipos em TypeScript. Duas foram escolhidas como as melhores perguntas e eu saí com dois prêmios.

EventosJavaScriptTypeScriptIALangChain.jsComunidadeMoscowJS
23 de junho de 20255 min de leitura

O que levei do PiterJS #79: monólitos legados, FrontOps, performance web e perguntas melhores

O PiterJS #79 em São Petersburgo focou na manutenção do que já existe: monólitos legados, FrontOps e métricas de performance web. Saí com anotações práticas, dois prêmios no Q&A e um lembrete do valor de participar de verdade de meetups presenciais.

PiterJSJavaScriptFrontOpsDockerPerformance webComunidade
17 de junho de 20256 min de leitura

I Launched a Next.js Blog in 21 Languages. Here’s What 439 Google Impressions Actually Told Me

In its first week, my 21-language Next.js blog recorded 439 Google impressions and 5 clicks. Later, 436 of 471 pages were indexed. The useful lesson was learning to separate visibility, indexing, and actual search performance.

Next.jsSEOI18nMultilingual SEOGoogle SearchWeb Development
7 de junho de 20253 min de leitura

MoscowJS 65 depois de seis anos com JavaScript: por que ainda vou a meetups locais

Em 5 de junho de 2025 participei do MoscowJS 65 no T Bank. As quatro palestras abordaram IA por ângulos diferentes, mas minha principal conclusão foi mais simples: meetups locais ainda me oferecem algo que documentação e gravações não substituem por completo.

JavaScriptMoscowJSMeetupsComunidade de desenvolvedoresIA