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

Shyft: projeto de hospedagem segura de arquivos

TL;DR: tô planejando o Shyft, um app pra subir arquivos de até 500MB, criptografar e compartilhar com segurança (quem não tiver o hash de descriptografia, não abre). Cada arquivo dura só 24h, é controlado por IP e fica armazenado no Google Drive. Ainda tá no papel, mas já defini stack e identidade.


O problema 🤯

Mandar arquivo grande hoje é um teste de paciência. Link que expira sem aviso, Drive cheio, app que comprime tanto que a imagem vira mosaico… e quando não é isso, é link suspeito que parece armadilha.

Quero algo simples, bonito e seguro: subiu o arquivo, gerou o link + hash, compartilhou e pronto.


A ideia 💡

Daí nasceu o Shyft. O plano é:

  • Arquivos de até 500MB
  • Criptografia de ponta a ponta (sem hash, sem acesso)
  • Arquivos temporários de 24h
  • Controle por IP pra aumentar a segurança
  • Armazenamento via Google Drive (com gestão automática)
  • Visual dark em preto, azul e um detalhe em roxo (da paleta da logo)

Não quero que o usuário tenha que pensar muito: só mandar e confiar que o sistema faz o resto.


Stack (planejada) 🛠️

Minha ideia é usar:

  • Next.js 15
  • TypeScript
  • TailwindCSS
  • Vercel Cron Jobs (pra deletar os arquivos depois de 24h)
  • Hono
  • Postgres
  • Prisma ou Drizzle (ainda vou bater o martelo)
  • Google Drive API (pra armazenamento)

Sim, é bastante coisa pra um app de upload, mas prefiro pecar pelo excesso do que refazer tudo depois.


Status atual 📜

Tá só no papel, mas já defini algumas coisas:

  • Paleta: preto, azul e roxo
  • Logo: minimalista, já pronta
  • Rotas pensadas (front-end):
    • / → home
    • /upload → envio
    • /files/[id] → acesso com hash

E sim, eu sei… fiz a logo antes do MVP. Cara de 🤡, mas motiva.


Próximos passos 🚀

O desafio vai ser equilibrar criptografia + performance, sem deixar pesado.
Objetivo: rápido, seguro e sem burocracia.


Bora trocar ideia 🤝

Você já teve dor de cabeça compartilhando arquivo?
Teria alguma dica pra otimizar esse esquema de 24h + IP + Google Drive sem virar pesadelo de manutenção?


📌 Me acompanha também:

Footer

Carregando publicação patrocinada...
1

Aqui vão algumas perguntas e sugestões:

Shyft

Qual o significado do nome? A tradução seria "tímido"?

Cada arquivo dura só 24h / Arquivos de até 500MB

Seria interessante um plano pago que desse limites maiores.

Controle por IP pra aumentar a segurança

Acho algo que mais atrapalharia, quando quero transferir arquivos que estão próximos, prefiro usar um pendrive ou usar ferramentas de transferência ponto a ponto como o ShareIt.

Acredito verdadeiramente interessante seria permitir transferências entre IPs diferentes.

subiu o arquivo, gerou o link + hash

Seria interessante gerar dois links, um para visualização, e outro administração, que permita apagar o arquivo quando quiser por exemplo. Obs: Quem fez upload iria compartilhar somente o link de visualização, e manter o de administração privado.

Algumas funcionalidades que eu acharia interessante

Api

Como você declarou que vai usar Next e Hono, acredito que você vai usar uma arquitetura de frontend + api.

Nesse caso, você poderia fazer uploads e downloads também através do console via Curl ou Wget, ou através de clients http em qualquer linguagem de programação.

Seria possível desenvolver um ferramenta cli também, podendo ser só um script bash que user Curl ou Wget por baixo.

Pastas

Seria interessante permitir organizar arquivos em pasta, pode proibir pastas dentro de pastas se quiser simplificar

Upload e download de pastas

Visualização de arquivos no front

Permitir visualizar alguns formatos de arquivos diretamente no frontend, como videos, texto, pdf, markdown, dentre outros.

Edição de arquivos de texto

Edição de arquivos de texto diretamente no front. (Para isso seria necessário ter o sistema de links de visualização e edição pelo menos).

Ferramentas semelhantes:

Se você pretende desenvolver para praticar, achei a ideia fenomenal.

Más se pretende apenas resolver sua dor, aqui vão alguns links:

dontpad.com

Qualquer coisa que você escrever depois o do / vira um id para um arquivo de texto editável no próprio navegador:

Por exemplo: dontpad.com/tabnews (Não me responsabilizo pelo que vai estar escrito quando você ler, já que qualquer um pode editar)

Ele também permite aninhar os ids: tabnews/tabnews

Se quiser um pouco de segurança, você pode inventar um senha "segura", más que seja fácil de memorizar, então gera o hash dessa senha usando uma ferramenta online e usa o hash como id do arquivo. Uso isso para acessar o arquivo em outros computadores.

Você também pode tambem criar arquivos GoogleDocs e pastas no Gdrive, compartilhar eles através de link, e guardar o link no dontpad.

transfer.sh

A pouco tempo conheci essa ferramenta que pela descrição permite fazer upload e download pelo console usando Curl e Wget. Acredito que também permita pelo frontend.

Infelizmente o site tá offline, más acredito que seja possivel auto hospedar já que o repositório é publico.

1

✨ Opa! Tudo certo? Espero que sim!

O nome Shyft vem da ideia de remeter ao computador, lembra a tecla shift, e pra dar um estilo diferente eu troquei o “i” pelo “y”.

Sobre planos pagos, ainda tô em cima do muro porque meu foco inicial é aprender mais sobre esse mundo de upload de arquivos. Mas confesso que seria massa integrar com a API do Mercado Pago, até porque tenho interesse em entender melhor como funciona essa parte de pagamentos.

O controle por IP seria só no caso de quem usa sem autenticação. Nesse cenário, cada IP poderia subir no máximo 2 arquivos, com limite de 100MB cada e duração de apenas 4 horas. Se houver um usuário autenticado no mesmo IP, ele poderia subir arquivos normalmente sem essas restrições, já que os arquivos ficariam vinculados à conta dele.

Achei bem legal a ideia de gerar dois links. Minha dúvida é: você imagina que só o dono do arquivo usaria o link de administração, ou qualquer pessoa que tivesse ele poderia apagar também? Caso o user com o link de admin não for o dono, bastaria ele informar o hash de acesso ou seria melhor gerar um hash exclusivo só para o link de admin?

Sobre a parte de pastas, acho que faz mais sentido em um app estilo cloud. Como o Shyft é focado em arquivos temporários, talvez não combine tanto, mas não descarto pensar nisso mais pra frente.

Já funcionalidades como visualização ou edição de arquivos direto no front eu preciso estudar com calma. Não quero simplesmente jogar uma lib pesada e deixar o app travado — a ideia é manter ele performático e simples de usar.

Valeu demais pelas sugestões de ferramentas, foram bem úteis pra expandir as ideias! 🙌