Um Livro Que Se Lê Online e Não Se Descarrega

Paulo Rodrigues5 min de leitura

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.

CamadaEscolha
FrontendNext.js 16, React 19, Tailwind, Radix, bilingue PT/EN
BackendPocketBase, instância dedicada
AlojamentoO nosso próprio VPS, Traefik com TLS automático, alojado na Europa
EmailFornecedor 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