miguel.moutinho
firebase react-native ios android copy-cola clip-sync

Copy-Cola entre dispositivos e entre pessoas usando Firebase

Ctrl+C entre dispositivos: construindo um clipboard multiplataforma com Firebase

21/03/2026 miguel.moutinho
Copy-Cola entre dispositivos e entre pessoas usando Firebase

Uma das pequenas frustrações do dia a dia de quem trabalha em escritório e com computador é essa:

Você copia algo no celular… e precisa colar no desktop. Ou o contrário.

Simples. Frequente. E surpreendentemente difícil fora de alguns ecossistemas fechados.

Foi daí que surgiu a ideia:
e se eu criasse meu próprio Ctrl+C / Ctrl+V multiplataforma?

💡 A ideia

O objetivo era direto:

  • 📱 copiar algo no celular
  • 💻 colar no desktop
  • ⚡ quase instantâneo
  • 🌐 independente de sistema operacional

Sem depender de:

  • AirDrop
  • iCloud
  • soluções proprietárias

🧠 O modelo mental

Pensei nisso como um clipboard na nuvem.

Dispositivo A → envia texto → nuvem → dispositivo B recebe

Ou seja:

  • um lugar central (temporário)
  • dois clientes (mobile e web)
  • sincronização em tempo real

Depois aprimorei: transformei em canais para que seja compartilhável entre pessoas.

🏗️ Arquitetura escolhida

Inicialmente pensei em backend próprio (Django), mas isso rapidamente pareceu… exagero.

Acabei optando por:

  • Firebase
  • Realtime Database
  • Hosting (para o widget web)

Resultado:

📱 React Native

Firebase Realtime DB

💻 Web (widget simples)

Sem servidor. Sem deploy complexo. Sem custo.

⚙️ Implementação (resumo prático)

🔹 Estrutura no banco

clipboard: {
 canal123: {
 content: "texto copiado",
 updatedAt: 1710000000
 }
}

🔹 Web (recebendo em tempo real)

onValue(ref(db, 'clipboard/canal123'), (snapshot) => {
 const data = snapshot.val();
 if (data?.content) {
 textarea.value = data.content;
 }
});

🔹 Mobile (enviando)

database()
 .ref('/clipboard/canal123')
 .set({
 content: text,
 updatedAt: Date.now()
 });

⚠️ Restrição de segurança (e inesperado)

Aqui está o ponto que mais influencia o UX:

❗ O browser NÃO permite colar automaticamente

Por questões de segurança:

navigator.clipboard.writeText(text)

👉 só funciona com interação do usuário

🎯 Solução adotada

Em vez de lutar contra o browser, ChatGPT Codex sugeriu adaptar:

  • Widget mostra o conteúdo
  • Botão “Copiar”
  • Um clique → pronto

Simples. Funcional. Sem fricção.

🚀 Por que Firebase foi a escolha certa

O Firebase resolveu tudo que eu precisava:

  • 🔄 realtime nativo
  • 🌐 hosting integrado
  • ⚡ baixa latência
  • 🧱 zero backend

E o mais importante:

Eu consegui sair do zero ao funcionando em poucas horas e sem custo.

📊 E o custo / tráfego?

Praticamente irrelevante.

  • payload pequeno (texto)
  • poucos eventos
  • sincronização sob demanda

👉 perfeito para esse tipo de aplicação

💡 Insights interessantes

1. Nem tudo precisa de backend próprio

Eu poderia lançar o Django ou FastAPI

Mas seria:

  • mais código
  • mais infra
  • mais manutenção

Firebase foi suficiente para teste. Como produto final realmente não serve.

2. UX > automação perfeita

Eu queria:

“copiar aqui → colar lá automaticamente”

Mas o mundo real (browser) disse “não”.

A solução?

👉 reduzir fricção, não eliminar totalmente

3. Pequenas dores viram bons produtos

Esse tipo de problema:

  • é recorrente
  • é simples
  • tem valor imediato

👉 exatamente o tipo de coisa que vira produto

🧩 Próximos passos possíveis

  • 🔐 autenticação por usuário
  • 📜 histórico de clipboard
  • 📎 suporte a imagens
  • 🔄 sync bidirecional automático
  • 🔑 criptografia do conteúdo

🧠 Conclusão

No fim, o que começou como uma pequena dor virou:

  • um experimento técnico
  • uma solução prática
  • e um ótimo exercício de arquitetura

E o melhor:

Funcionou. Simples assim.
clip-sync

Para experimentar a aplicação, acesse gratuitamente e livremente:

https://clip-sync-c7ca4.web.app/

  1. Crie seu canal;
  2. Compartilhe o canal com outras pessoas e/ou entre seus dispositivos
  3. Faça um CTRL+C e cole ali (CTRL+V)
  4. Verifique que é possível pegar o conteúdo nos demais dispositivos que estiverem lendo este canal
  5. Você tem o QRCode à sua disposição para facilitar a abertura do canal em outros dispositivos
  6. Não cole informações sensíveis ali no canal: a demonstração não nos oferece uma segurança tão reforçada. Quem acertar o endereço do seu canal (por mais difícil que pareça) poderia ler seu último texto.

Deixe seu comentario

Ainda nao ha comentarios neste artigo.