Executando verificação de segurança...
2

Duvida: Lógica de negócios totalmente no frontend, boa ou má ideia? E se meu código for pirateado?

Estou desenvolvendo um sistema que pode ser simplificado a um editor de documentos no sentido que basicamente o sistema irá consistir em o usuário irá selecionar um "documento" e edita-lo, e no fim, salvar.

Percebi que é possível e até mais fácil jogar toda a lógica de negócios no frontend:

O usuário acessa uma pagina que mostra sua lista de documentos, seleciona qual editar, nesse momento o documento é carregado no front e toda a lógica de edição acontece no front, por fim salvando no back novamente.

Agora resta a duvida, isso é uma boa ou má ideia?

Para deixar claro, estou ciente que nunca devemos confiar no código executado no lado do frontend, más meu sistema tem as seguintes características:

Os documentos são privados, somente o usuário/organização que o criou pode acessa-lo.
A edição maliciosa de um documento não pode prejudicar outros usuários/organizações.

E eu pretendo garantir que:

A edição maliciosa de um documento não pode prejudicar o servidor/sistema.

E a pirataria ?

Pretendo cobrar pelo meu sistema, más como a lógica existe totalmente no frontend, existe a possibilidade de piratear/burlar limites.

O quanto devo me preocupar com a possibilidade de pirataria?

Sinceramente, pretendo fazer dessa forma

Alguma motivações:

É mais simples e rápido

Acredito que será mais fácil copiarem do zero do que piratear.

Uma vez que eu valide a ideia e ganhe alguma grana, me preocupo em proteger melhor tudo.

Carregando publicação patrocinada...
2

até mais fácil jogar toda a lógica de negócios no frontend

Acha uma boa ideia colocar lógica de negócios onde o usuário pode modificar?

o que é essa lógica de negócios?

é algo que o usuário pode explorar se quiser?

2

Pelo que eu entendi é tipo o doc do google com mais funcionalidades voltadas a coloboração, mas sem ser em tempo real.

Se pretende que a coloboração seja em tempo real, precisa ser backend.

Se for só um editor de documentos, será mais um em um milhão, mesmo que seu código esteja no backend, o conceito e as funcionalidades são muito básicas, a IA copia em menos de um dia ou alguém mais esperto acha em menos de 2 horas um clone com mais funcionalidades do seu projeto no github.

Lembrando que ser fácil de copiar não é motivo de desistir, por exemplo no vídeo do cara de touca que esqueci o nome sobre o Lucas Montano, é compartilhado a opnião de que apesar do Persua ser um projeto que dê para copiar em uma semana, o trabalho que dá para fazer, acaba sendo mais prático apenas pagar pelo treco. E o que importa no final é se tem um meio de distribuição para seu projeto, se não vira estaticista de Saas que deram errado.

1

O usuário acessa uma pagina que mostra sua lista de documentos

Como é feito o controle de acesso, para garantir que somente o usuário (e ninguém mais) consegue acessar seus próprios documentos? Como vc controla que um usuário não consegue ver ou alterar documentos de outro usuário? Acho que pelo menos essa parte tem que estar no backend.

Já a lógica de edição, que entendo que seria alterar o texto (mudar fonte, formatação, etc), essa pode ficar no frontend sem problema. Mas na hora de salvar, tem que ter validação no backend, pra garantir que o usuário só pode alterar documentos que sejam dele.

Sem mais detalhes sobre o sistema, é o que dá pra sugerir.


Quanto a alguém "piratear o código", acho que as pessoas superestimam demais essa questão. Desculpe se parecer rude, mas pouquíssimos códigos são tão únicos e geniais assim a ponto de justificar escondê-los a todo custo. A esmagadora maioria do código existente é variação do que já existe, mediano e replicável (ainda mais em tempos de IA), e eu humildemente me incluo nisso :-)

Talvez, em alguns contextos específicos, uma pequena parte dele possa ser algum segredo industrial que valha a pena esconder, mas não parece ser o caso. Sem contar que, se seu produto for um sucesso, vão querer piratear de qualquer jeito. E se não for, ninguém vai se dar ao trabalho...

A história mostra que o que vale mais é a ideia, o marketing, a capacidade de atrair e manter clientes, estar no momento certo na hora certa, etc. Código sozinho - geralmente - não vale nada, ainda mais em categorias que já possuem trocentos concorrentes.

1

Meus 2 cents,

No meu ponto de vista: depende.

Se teu SaaS envolve algo com pagamentos (como carrinho de compras, checkout), voce nao pode colocar a logica no front porque fica aberto a fraudes.

Alem disso, se tem coisas como controles/niveis de acesso (ACL), tambem nao pode ir para o front por ser de facil manipulacao.

Lembre-se, nada que existe no front eh confiavel para o sistema, tudo pode ser alterado, vide este post:

https://www.tabnews.com.br/obrunoanastacio/eu-anotei-aqui-todos-os-termos-e-conceitos-do-video-do-yurirdev-invadindo-a-plataforma-do-ruyter

Quanto a pirataria, se o codigo esta no front o risco existe em maior nivel.

Mas tambem eh verdade que hoje em dia com a IA eh relativamente facil copiar um sistema (pelo menos no basico) so tendo acesso as telas.

Como a descricao do funcionamento do sistema foi bem vaga (da para notar a paranoia com a copia de ideias que voce tem) nao eh possivel aprofundar muito uma analise.

Reforcando: se o sistema "faz coisas" e voce "nao quer" que o usuario tenha possibiliade de manipulacao indesejada: regras de negocio no backend.

Se isso nao eh um problema ("nao faz sentido a acao de um manipulador devido a propria natureza do sistema"), entao faz no front de boa.

E quanto a pirataria, nao acho um problema real: se tua aplicacao for realmente boa vao piratear de qualquer forma, e o que faz diferenca no final das contas geralmente eh a estrutura (como suporte, pos-venda, estabilidade, aperfeicoamentos, a experiencia de uso) que a empresa do SaaS oferece.

Saude e Sucesso !

-2

Primeiro: você está certo Sua aplicação não precisa de backend. Só precisa de um lugar pra salvar. Isso é diferente.

Não tem "lógica de negócio no servidor". O servidor é um HD glorificado.

O insight real: Local-First

A pergunta certa não é "frontend ou backend?"

A pergunta certa é: "Minha aplicação funciona sem internet?"

Se a resposta é não, seu design está quebrado. Pra um editor de documentos, isso é inaceitável. Imagina: você tá no avião, quer editar um documento, e... "Conectando ao servidor..."

O melhor design (provavelmente)

[Core via WASM] ← eventos de mouse/teclado + canvas ← [JS mínimo no browser]

Prós:

  • JS só faz o que JS faz bem: UI

Sobre pirataria

Ninguém vai piratear.

Sabe por quê? Porque existem 500 alternativas gratuitas. Se alguém é técnico o suficiente pra piratear seu JS, é técnico o suficiente pra usar qualquer alternativa open-source melhor.

As pessoas pagam por:

  • Conveniência
  • Suporte
  • Não ter que pensar

O código em si não vale nada. O produto vale.


Minha sugestão

Fase 1: TypeScript + Service Workers + IndexedDB

  • Funciona offline e salva em qualquer backend burro (até um s3 resolve)

Fase 2: Se precisar de performance ou "esconder" segredos

  • Considere WASM pra partes críticas

Fase 3: Se precisar de colaboração real-time

  • Aí sim, adicione um "backend"..

TL;DR

Sua intuição está certa. Frontend-first. Salva no servidor. Acabou.