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

Pitch: Criei o Web Notepad: um bloco de notas online público, sem login e já em produção

Sempre achei interessante a ideia de ter um bloco de notas online que fosse simples de verdade: abrir, escrever e compartilhar.

Sem cadastro.
Sem fluxo complicado.
Sem transformar uma tarefa simples em um mini sistema de produtividade.

Foi com essa proposta que eu coloquei no ar o Web Notepad:
https://webnotepad.com.br/

A ideia é direta: o usuário entra no site, cria um bloco e recebe uma URL. Quem abrir essa mesma URL consegue acessar o mesmo conteúdo.

Como ele funciona na prática

O fluxo é simples:

  • ao abrir a aplicação, é criado um novo bloco
  • o sistema gera um slug e navega para uma URL única
  • quem acessar aquela URL vê o mesmo conteúdo
  • conforme a pessoa digita, o texto é salvo automaticamente
  • se o mesmo bloco estiver aberto em outra aba ou navegador, as atualizações podem ser refletidas em tempo real

A proposta foi manter a experiência o mais enxuta possível, mas sem abrir mão de uma base técnica sólida.

Stack do projeto

Backend
No backend, eu usei:

  • Java 21
  • Quarkus 3
  • MongoDB
  • API REST pública para criação, leitura, atualização e exclusão dos blocos
  • suporte a SSE para atualização entre clientes
  • documentação via OpenAPI/Swagger
  • internacionalização das mensagens da API

Frontend
No frontend, eu segui com:

  • Angular
  • Angular Material
  • Signals
  • Reactive Forms
  • autosave com debounce
  • tratamento de estados de edição, salvamento, erro e atualização remota

Algumas decisões do projeto

Como a proposta é ser um bloco de notas público e simples, o sistema foi pensado sem autenticação obrigatória. Ou seja: quem tiver o link pode acessar o conteúdo daquele bloco.

Isso deixa a experiência muito rápida, mas também traz discussões interessantes sobre:

  • privacidade
  • retenção de dados
  • abuso por bots
  • expiração por inatividade
  • observabilidade sem transformar o produto em algo invasivo

Foi justamente esse tipo de equilíbrio que eu quis trabalhar no projeto: manter a simplicidade do uso, mas com preocupação real com arquitetura, API, deploy e evolução do produto.

O que já existe hoje

O projeto não está só no papel: ele já está publicado e funcionando em produção.

Se alguém quiser testar:
https://webnotepad.com.br/

Se fizer sentido, eu também posso trazer em outro post detalhes mais técnicos sobre:

  • arquitetura do backend
  • estratégia de autosave
  • atualização em tempo real com SSE
  • deploy
  • cuidados com CORS, domínio e API pública
  • retenção/expiração dos blocos

Quero muito ouvir feedback de vocês, principalmente sobre:

  • experiência de uso
  • decisões de arquitetura
  • riscos de produto nesse modelo sem login
  • ideias de evolução sem perder a simplicidade
Carregando publicação patrocinada...
1

Bacana, parabéns!

Esses dias estava procurando algo assim, mas com opção de acesso/edição via API para servir como "repositório público" de um script de auditoria local.

Uma sugestão: Que o usuário, quando logado, possa habilitar/desabilitar a edição por outras pessoas - nem sempre quero que os outros apaguem minhas anotações.

1

+2

Recomendação para proximo post, coloque prints.

Como está ou irá cuidar para que não usem o sistema como meio de trocar informações de merda ? tem filtro ? Tome cuidado para não usarem esse app para trafegarem informações que o felca mataria. Acredito que isso é um dos maiores problemas de serviços assim.

Há, e se alguém colocar informações sensiveis ? talvez não fosse interessante na hora de criar poder restrigir por ip ou colocar senha ? um scriptkid poderia só ficar tentando varias rotas até pegar uma que tenha infos usaveis.

1

Obrigado pelo feedback, de verdade.

Boa recomendação sobre os prints — vou editar o post e incluir algumas imagens para ficar mais visual e fácil de entender.

Sobre o ponto do abuso, concordo com você: esse é um dos maiores desafios de qualquer serviço desse tipo. No Web Notepad, a proposta é ser algo simples e rápido, então ele já nasce com esse cuidado de deixar claro que quem tiver o link pode acessar o conteúdo e, por isso, não é a ferramenta ideal para dados sensíveis.

Sobre informações mais importantes, já existe a possibilidade de proteger uma nota com senha quando fizer sentido, além de poder excluir o bloco quando ele não for mais necessário. Então a ideia nunca foi tratar isso como um cofre, e sim como uma ferramenta prática para compartilhamento rápido, com alguns mecanismos de proteção quando o usuário quiser adicionar essa camada extra.

Esse ponto de restringir por IP também é válido e faz sentido como evolução, principalmente para cenários mais específicos.

Quando o link não é personalizado e o usuário deixa o campo em branco, o sistema gera um nome aleatório. Isso não elimina o risco, claro, mas já ajuda a reduzir tentativas triviais de adivinhação de rota. Mesmo assim, a orientação continua sendo: não usar a plataforma para trafegar informação sensível.

Valeu mesmo pelo comentário, porque ele toca justamente em um dos pontos mais importantes desse tipo de aplicação.