Nosso preço vem do catálogo, e não pode ser digitado novamente
As páginas de comparação codificaram KamoCRM em $29 Starter e $64 Business enquanto o catálogo vendeu-os em $34 e $72. Nove arquivos, quarenta e dois menções, e...
Citar o nosso próprio preço por assento, não por usuário
As páginas do concorrente preçoam KamoCRM em uma unidade que não vendemos – "$29/usuário/mês Starter, $64/usuário/mês Negócios" — nas mesmas páginas que descrev...
Dê aos cartões de reserva as sobrancelhas herdadas que faltavam
Os três planos superiores não herdaram, por isso, numa construção fria. que é o que uma nova implantação serve até o primeiro revalidate — Starter mostrou "Até ...
Uma mesada de armazenamento, assentos não usuários, e parar de analisar prosa
O armazenamento é de 4 GB por assento em cada plano. As cartas não precisam de um caso especial para parar de repetir: ladderAs características já mostram o del...
Pare de colocar o texto verde no verde e mude o armazenamento para por assento
Contraste. Corrigi apenas os botões de gradiente sólido da última vez e deixei tinta verde em superfícies verdes, que é o que realmente lê mal. Auditado Todos o...
Starter is 5 seats, Business is 25
I had this right, then reversed it on bad reasoning and shipped 25 / 100. The volume-discount bands (Starter 11-25, Business 26-50, 51-100) are seat PRICING ro...
Cartas de plano mostram o que um nível ADDS, não tudo o que ele tem
As cartas listadas cada recurso incluído - 16 no Free, 30 no Starter, 52 no Negócios, 57 na Enterprise. Quatro cartas de altura muito desigual, cada uma de text...
Desquebrar a construção - desfazer uma varredura que causei
c8ec175 era para ser um commit de reconstrução vazio. Não foi: `git commit --allow-vaty` PERMITA um resultado vazio, não força um - ainda commits o índice, e es...
Rebuild to pick up the early-bird offer copy
The dictionary change landed after the last build, and messages/ is pulled at build time.
O título do banco lê um padrão, não um teto
O cartão impresso "Até 5 usuários" do plan.maxSeats, diretamente acima do seu próprio lista de recursos lendo "Utilizadores (25)" e uma coluna de comparação len...
A página contradisse-se, e a calculadora faturava e-mail por usuário
O distintivo incluído deu o plano errado. Todos os quatro módulos por assento estão incluídos em Negócios e Enterprise, e o crachá escolheu o primeiro ID incluí...
Give the phone add-ons a phone icon
PER_EXTENSION already renders as "extension/month" - addOnUnitLabel handles it and needs no change. The icon map does: it is keyed on the lowercased catalog cod...
Um add-on por mailbox não tem preço por usuário
PER MAILBOX caiu para o braço padrão, então a página de preços público anunciou os dois add-ons de e-mail como "/usuário/mês" contra uma caixa de e-mail preço. ...
Leia a marca da plataforma a partir de sua pasta alias
A pasta de tema foi derivada do nome do host — kamocrm.com tornou-se kamocrm-com — que é o local onde a marca foi escrita até que um domínio se tornou facultati...
Largar o título do banner superior
Remove "Executar o seu negócio sem Kamo é um erro." do topo fixo banner, conforme relatado. Confirmado ao vivo antes da mudança — a cápsula em execução servida ...
Pare de contar as visitas de um membro ao seu próprio link
Um membro verificando se seu próprio link de rastreamento funciona é o mais comum primeiro visitar qualquer código já recebe, e é pior do que inútil: infla o nú...
Mostrar centavos em uma taxa adicional que os tem
Armazenamento adicional é de US $ 2,50 por 10 GB bloco, eo catálogo armazena que como um número — assim 2.50 chega como 2.5 e renderizado diretamente no cartão ...
Definir o título entre aspas
Citações em torno da linha do banner, como solicitado — mas renderizadas a partir de CSS («open-quote`/`close-quote` contra «quotes: auto`) em vez de dactilogra...
Reconstruir e67f59b contra o commit dicionário que precisa
e67f59b renomeado previewBanner.now Live -> previewBanner.headline e foi empurrado antes da combinação kamo-tradução-dictionary commit (f4627d31). A construção ...
Troque o crachá NOW LIVE pela manchete que estava escondendo
A faixa superior levou com uma pílula de seis caracteres — bordado, maiúscula, pulsante — e colocar a mensagem real depois dela. A pílula agora carrega a mensag...
Citar a taxa anual sob a legenda "billed anualmente"
Os cartões de homepage ler a taxa de mês a mês fora do catálogo e impresso acima de uma linha dizendo "billed anualmente", assim Starter anunciou $34 e Business...
Comprimir cada resposta, não apenas o documento
server-nonce.js pede upstream para `identity` para que o HTML possa ser carimbado com uma nonce CSP sem uma descompressão/recompressão ida e volta, então Recomp...
Dreno de trabalho diferido um item por período de inactividade
Quatro componentes esperaram que o fio principal ficasse quieto antes de fazer seu trabalho — o pacote torrado/consent, o cromado de rolagem, o toque varrer o a...
Leia a posição de rolagem de um observador, não da disposição
O estado rolado/no topo do navegador veio de um manipulador de rolagem que leu window.scrollY, e o efeito de montagem chamado aquele manipulador síncrono durant...
Servir ativos estáticos como brotli de tempo de construção
O pedaço marcado é reactive-dom, e eu verifiquei-o corretamente antes de concluir qualquer coisa: é a construção de produção (sem marcadores dev, e os ganchos d...
Largue o pré-conectar não utilizado, e corrigir os 565 ms de brotli que eu adicionei
Duas descobertas, e a segunda foi minha. O DOCUMENTO TOMOU 1.259 Ms POR CAUSA DO NONCE WRAPPER. Medido com o site ao vivo: o HTML respondeu em ~900 ms enquant...
Põe as manchetes de volta
Restaurado exatamente como era — mesmo gradiente de duas camadas, mesma faixa de 120deg, mesmo 9s/1.1s cronometragem e facilidade — após removê-lo no passe de c...
Mover cada animação em loop para o compositor
Todos os 26 elementos do farol listados em "evitar animações não compostas" foram o mesmo erro em quatro lugares: animando uma propriedade de pintura. Medida co...
Pegue a versão silenciosa de "som não é permitido aqui"
Seguimento para o silêncio. Testando tap-to-play contra o site implantado apareceu um modo de falha que o recuo mudo não cobriu. A recusa `play()` rejeita, e i...
A contagem de microservices é 64+, não 30+
O número é 64+ serviços agora. Cinco superfícies não traduzidas ainda alegaram 30+: a resposta tecnológica na página inicial FAQ JSON-LD (que é o que uma busca ...
Mostrar uma parada do movimento cambaleante em vez de um pulso cinzento
Adiciona public/img/hero-still.wepp — 1280x720, correspondendo aos 16/9 da abertura Exatamente — e faz com que seja o que o herói mostra até que alguém pression...
63 solicitações HTTP até 22
Aplica o relatório de pedido de orçamento. Medida da mesma forma que foi escrito — Chrome sobre o protocolo de depuração, emulação móvel, janela de dezesseis se...
O parâmetro de referência é ?discount= e o token é um UUID
A ligação que um membro tem é: Costumava ser... ?mrt=<memberId>.<iteration>, que coloca um id de membro real em cada URL compartilhada e deixe alguém enumerar a...
O carretel nunca estava usando hls.js, e telefones pagos para ele
Perseguindo "fazer menos solicitações HTTP" encontrou duas coisas reais, e a segunda é muito maior do que a auditoria que lhe conduziu. Ninguém estava a levar ...
Repetir o npm ci através da corrupção de transferência do corredor
A compilação falhou em: código de erro npm ERR SSL CIPHER OPERATION FAILED operação ossl gcm stream update:cipher falhou Esta é uma incompatibilidade de auten...
Limpar todos os erros de console e DevTools
Diagnosticado com o Chrome sobre o protocolo de depuração em vez de pelo raciocínio, coletando exatamente os erros de Lighthouse-em-console e questões de inspet...
Servir um verdadeiro nonce CSP por pedido com estrita dinâmica
Limpa ambos os resultados elevados restantes no script-src: o 'inseguro-inline' um e "host allowlists pode frequentemente ser contornada". Só um nonce com 'str...
Enforce Tipos de Confiança, local- scope o script allowlist
Limpa o cabeçalho "Nenhum Conteúdo-Segurança-Política com a diretiva Tipos de Confiança encontrado" descobrindo movendo-se tipo-confiável-para na política força...
Limpe o console e restaure a renderização estática que quebrei
Três coisas da consola, uma delas muito maior do que as outras duas. O grande. Perseguir as linhas de "A obtenção falhou ao carregar" levou à prefetch carga út...
A política Trusted Types estava sendo injetada pelo próximo/escrito
O console somente de relatório mostrou duas violações, e uma delas era a política Ao fazer o próprio componente: Este documento requer atribuição 'TrustedScrip...
CSP e COOP aplicados; Trusted Types report-only
Re-terra os cabeçalhos de segurança depois de eu ter derrubado o site com eles, menos o Uma directiva que o fez, mais um guarda de construção para que não possa...
Reverter "feat(security): fazer cumprir um CSP, COOP e tipos confiáveis"
Isto reverte o commit ****************************
Aplicar um CSP, COOP e tipos confiáveis
Adiciona os três cabeçalhos da auditoria de Confiança e Segurança solicitados, mais Referência-Política e Permissões-Política. Todas as origens da política fora...
Parar de remedir o documento em cada moldura de rolagem
Dois ouvintes de rolagem na página inicial ler `scrollHeight` por evento. Isso é um consulta de layout, e esta página é o pior lugar para fazer uma repetidament...
Soltar filtro de fundo nos telefones
A página inicial renderiza 94 elementos que carregam `filtro de fundo: borrão(20px)`. Cada uma é uma camada de composição separada que tem que ler de volta tudo...
Tire o rodapé e o cromado de rolagem do cliente
Três mudanças, todas removendo trabalho da janela onde a página está sendo julgada. `(pages)/layout.tsx` transportado `"use client"` e nunca precisou dele — ne...
Impedir três recursos de superar o elemento LCP
A desagregação LCP é o período restante e as suas duas subpartes de carga — 270 ms de atraso na carga de recursos, 500 ms de duração da carga — são um problema ...
Um banner de posição fixa não pode usar uma revelação orientada por rolagem
Caiu da varredura, apanhado antes que pudesse importar. Os mapas de reescrita animações de entrada em `.reveal`, que é impulsionado por `animação-timeline: view...
Remover o gsap, o segundo tempo de execução da animação na página inicial
Framer era o Farol do pedaço chamado. GSAP é aquele que não fez, porque ele chega tarde o suficiente para cair fora do " JavaScript não usado" — mas é 69 KB em ...
A plataforma executa YugabyteDB, não BarataDB
Não relacionado com o trabalho de desempenho — encontrado ao ler a página inicial em linha carga útil, onde a string apareceu nas respostas FAQ. BarataDB foi a...
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.