Um Livro Que Se Lê Online e Não Se Descarrega
Um Livro Que Se Lê Online e Não Se Descarrega
Uma autora independente tinha um livro terminado de 406 páginas e um requisito concreto e incómodo.
Quem pagasse devia poder ler o livro online. Ninguém devia conseguir sair dali com o ficheiro.
É um problema mais difícil do que parece, e quase todas as respostas óbvias estão erradas. Um PDF atrás de um início de sessão é um PDF que alguém descarrega uma vez e partilha para sempre. Uma plataforma de DRM significa entregar o livro, a relação com o cliente e uma parte da receita a outra empresa. Uma versão web paga significa voltar a compor um livro que já está composto.
O que construímos
Um leitor com sessão obrigatória, em que o PDF nunca passa pela rede.
Cada página é convertida em imagem a 300 DPI antes da publicação, nunca no navegador, e servida uma de cada vez a uma sessão autenticada. O navegador recebe uma imagem da página 42, e só depois de pedir a página 42 com sessão iniciada.
| Camada | Escolha |
|---|---|
| Frontend | Next.js 16, React 19, Tailwind, Radix, bilingue PT/EN |
| Backend | PocketBase, instância dedicada |
| Alojamento | O nosso próprio VPS, Traefik com TLS automático, alojado na Europa |
| Fornecedor transacional, entrega verificada numa caixa de correio real com SPF, DKIM e DMARC a passar |
A pesquisa é feita no servidor. O índice devolve apenas números de página, por isso uma pesquisa nunca entrega texto ao navegador. Zero caracteres do manuscrito chegam ao cliente através da pesquisa.
Verificado em produção: um pedido de imagem de página sem sessão devolve 401. Não existe nenhuma rota de descarga em bloco. Uma sessão válida sem acesso é recusada.
O manuscrito não está no repositório de código e nunca esteve. Auditámos o histórico completo dos dois repositórios, objeto a objeto: todos os ficheiros guardados são código ou ícones da aplicação, e não há um único artefacto do manuscrito. Nenhuma imagem de página, nenhum PDF, nenhum índice de pesquisa.
A única coisa que dizemos a toda a gente que lê este caso
O PDF não se descarrega. As páginas individuais podem ser capturadas em ecrã.
Dissemos isto à autora antes de construirmos, e dizemo-lo aqui pela mesma razão. Uma promessa de proteção exagerada é pior do que nenhuma, porque mais tarde ou mais cedo alguém aborrecido vai testá-la.
O que este desenho derrota é a redistribuição fácil do ficheiro. Não derrota uma pessoa determinada, com a tecla de captura de ecrã e paciência para 406 páginas. Quem lhe disser que o leitor web dele derrota está a vender-lhe alguma coisa.
A decisão que retirou quase todo o risco
Os pagamentos ficaram deliberadamente fora do âmbito.
A autora vende e cobra. Confirma um leitor que pagou e passa-nos um endereço de email. O sistema cria a conta e envia um link de convite de utilização única, e o leitor define a sua própria palavra-passe.
Convém ser exato neste ponto, porque a palavra "sem palavra-passe" anda muito gasta: nunca enviamos uma palavra-passe e o leitor nunca recebe nenhuma. A conta é criada com uma sequência aleatória que ninguém chega a ver, e o leitor define a sua através de um link que expira ao fim de 72 horas e só serve uma vez. Voltar a convidar alguém invalida o link anterior, coisa que a plataforma não faz sozinha.
Essa única fronteira retirou do projeto o IVA, a faturação, os reembolsos e toda a superfície de dados de cartão. É a decisão menos vistosa do projeto e provavelmente a de maior valor.
Verificação
Voltar a publicar o livro inteiro é um único comando, com um controlo de qualidade que tem de ficar verde antes de seja o que for sair.
- 8 verificações em 8 verdes: número de páginas confirmado por três vias distintas, todas as páginas descodificam, dimensões uniformes nas 406 páginas e 0,000% de desvio de palavras face à origem.
- 587 verificações de renderização aprovadas, 0 falhadas depois da publicação. Cada execução escurece também uma página real num valor conhecido de 0,35 e exige que o estimador o recupere. Recupera 0,349, e é assim que sabemos que a verificação vê mesmo o defeito que procura, em vez de se limitar a dar verde.
- Cerca de 7 minutos de ponta a ponta para republicar um livro real de 406 páginas, sem novo deploy e sem qualquer passo manual.
Provámos este último ponto com um ensaio sobre um ficheiro propositadamente diferente, de 376 páginas, e a primeira execução do ensaio falhou: o servidor já tinha o livro novo enquanto o site continuava a responder com a contagem de páginas antiga, porque uma cache sobreviveu à publicação. É para isto que servem os ensaios. Um segundo defeito de cache, desta vez no navegador dos leitores, só apareceu na publicação a sério e foi corrigido nessa altura.
Referimos os dois porque um processo de publicação com passos manuais é um processo que corre mal às 23 horas, e um processo que ninguém tentou partir ainda não se sabe se é sólido.
O que honestamente ainda não existe
Não há números de leitores, porque ainda não há leitores. Todas as contas do sistema são nossas. O leitor está no ar e é demonstrável. Não foi lançado, o site de divulgação ainda não existe, e a data de lançamento é da autora, não nossa.
Podíamos ter deixado este parágrafo de fora. Mas um caso de estudo que sugere discretamente uma adesão que não tem é o mesmo defeito que uma promessa de proteção exagerada.
A parte que vale a pena notar
Não existe IA nenhuma neste produto. Nenhuma.
Verificámos em vez de assumir: nenhum fornecedor de modelos, nenhuma framework de agentes, nada do género. A lista de dependências é uma framework web, uma base de dados e uma biblioteca de validação.
O problema da autora nunca foi um problema que a IA resolva. Era um problema de controlo de acessos e de renderização de páginas. Construímos sistemas de IA para viver, e aqui a resposta certa era não usar nenhuma, o que é uma decisão pela qual preferimos ser conhecidos.
Se isto lhe soa familiar
O padrão não é sobre livros. É sobre qualquer trabalho que vale precisamente por ser um ficheiro, vendido a pessoas que precisam de o ver sem lhes ser entregue: um relatório, um curso, um conjunto de dados, um portefólio.
Se isto descreve alguma coisa que vende, vale uma conversa de vinte minutos.
Este caso é publicado de forma anónima. Não é identificado nenhum cliente, título ou marca.
Perguntas Frequentes
É possível impedir que um leitor descarregue um livro que consegue ler online?
É possível impedir que fique com o ficheiro. Se cada página for convertida em imagem antes da publicação e servida uma de cada vez a uma sessão autenticada, o PDF nunca passa pela rede. O que não se impede são capturas de ecrã. Qualquer fornecedor que afirme o contrário está a exagerar, e uma promessa de proteção exagerada é pior do que nenhuma, porque alguém acabará por a testar.
Um produto destes precisa de IA?
Este não tem nenhuma, e verificámos em vez de assumir: nenhum fornecedor de modelos, nenhuma framework de agentes. O problema era de controlo de acessos e de renderização de páginas, não de linguagem. Construímos sistemas de IA para viver, e aqui a resposta certa era não usar nenhuma.
Pronto para automatizar o seu negócio?
Construímos ferramentas de IA e sistemas de automação para PMEs europeias — desde MVPs rápidos até sistemas em produção, sempre em conformidade com o GDPR.
it's human stuff
Insights semanais de IA para PMEs europeias. Sem exageros, apenas o que funciona.
Continue a Ler
A Consultora Que Não Tinha Tempo Para Publicar
Uma consultora imobiliária independente precisava de presença profissional visível e não tinha um dia de trabalho para lhe dedicar. Uma cadeia de publicação semanal, um site que nenhum motor de busca conseguia ler, e os números seis meses depois.
Dez Mil Livros Num Único Ficheiro Excel
Uma biblioteca privada cresceu para além da folha de cálculo. O que é preciso para mover 10.000 registos para um sistema a sério e provar, campo a campo, que só se alterou o que era suposto.