Desenvolvi um app de namoro em 100 dias com o Cursor (US$ 20/mês). Lançamento simultâneo na Google Play e App Store
(wctokyoseoul.com)Parece que o interesse por vibe coding está enorme.
Compartilho o registro de um projeto de 100 dias, do planejamento ao design, frontend e backend, até o lançamento do app, tudo com o Cursor (US$ 20/mês).
📱 Projeto: WeConnect
É um app de intercâmbio de idiomas e namoro voltado para usuários do mundo todo.
- iOS/Android: Flutter (cross-platform)
- Backend: Supabase (Auth, DB)
- Web Landing, Admin Dashboard: Next.js + Vercel
- Key Feature: mensageiro com tradução em tempo real para 18 idiomas
🛠️ Processo de desenvolvimento:
- Equipamentos de desenvolvimento: nos primeiros 70 dias, desenvolvi com um notebook Windows e um Galaxy S20+.
Na fase final, usei um M4 Mac mini comprado usado no Karrot por 650 mil won e um iPhone 17 (preso a um contrato de fidelidade de 24 meses).
O novo Mac mini realmente parece ser um item com custo-benefício absurdo!! Sensacional, recomendo. - Design: não havia um designer dedicado.
Por isso, recorri ao Dribbble e ao Readdy.
Se você tira um screenshot de uma UI que gostou e joga no Cursor com um prompt como "faça exatamente igual a isso", ele gera um código com mais de 90% pronto.
Para UI básica, um desenvolvedor sozinho conseguiu dar conta tranquilamente. Claro, houve muitas coisas em que senti falta de um designer. - Gargalos
- Notificações push: depois de perder tempo com o Firebase, mudei para o OneSignal e passei vários dias lutando com um problema de JWT no Supabase.
- Compras no app e SSO: só com o Cursor não deu para resolver. Implementei fazendo validação cruzada até com os tiers gratuitos de Claude, Gemini e Grok.
- Login com Zalo: como não havia SDK oficial do Flutter, acabei desistindo.
🤖 Impressões sobre o uso do Cursor Pro
- Talvez por causa do benefício inicial de cadastro, nos primeiros 3 meses pude usar o Auto Mode de forma ilimitada. Com a assinatura de US$ 20 por mês, cheguei a consumir mais de US$ 1.000 por mês.
- Mas a partir do 4º mês, o Auto Mode também passou a ter limite; em apenas 4 dias bati o limite de uso e recebi a mensagem para pagar mais. Até agora, não consigo usar nada até a próxima cobrança.
- Também usei ao máximo os tiers gratuitos de Gemini, Grok e Claude em paralelo, e ainda contei com a ajuda do Antigravity, lançado bem nessa época.
Em uma frase, o Cursor parece uma equipe full stack que não se cansa nem reclama.
Meu papel ficou mais próximo de comandar esse time do que de codar diretamente.
Não faz muito sentido ficar quebrando a cabeça sozinho para descobrir como resolver um problema.
Nesse tempo, é muito mais rápido perguntar para a IA.
💡 Reality Check (fantasia vs. realidade)
O que costumam chamar de "Vibe Coding" no YouTube é diferente da realidade.
- As disciplinas básicas de ciência da computação continuam sendo essenciais: entender a estrutura do código gerado pela IA e fazer debugging ainda é tarefa humana. Claro, acho que um dia isso também será algo em que a IA será muito melhor do que as pessoas, mas...
- Se você não entende de arquitetura, o resultado vira um código espaguete impossível de manter. Se não for refatorando no meio do caminho, a coisa realmente descarrila.
- Quando o código não sai e você dá bronca mandando fazer direito, ele comete a barbaridade de apagar o código de vez.
- Alavancagem da experiência: paradoxalmente, quanto mais experiência de desenvolvimento você tem, mais a utilidade das ferramentas de IA explode. Se para um iniciante elas fazem andar mais rápido, para um experiente elas fazem voar. É triste e assustador ao mesmo tempo, mas acho que não haverá muitas empresas dispostas a contratar desenvolvedores juniores daqui para frente.
🏁 Para encerrar
Nos últimos 100 dias, minha esposa sofreu bastante cuidando sozinha do nosso filho. Nem nos fins de semana consegui brincar com a criança.
O mercado de apps de namoro é um verdadeiro oceano vermelho... então agora estou pensando em como fazer o marketing daqui para frente.
No momento, ainda estamos na fase de conquistar os primeiros usuários, então o matching pode não funcionar de forma muito fluida.
App Store: https://apps.apple.com/us/app/weconnect-cultural-exchange/id6755277858
Google Play: https://play.google.com/store/apps/…
Website: https://www.wctokyoseoul.com
Se tiverem perguntas sobre a stack técnica ou sobre o uso de IA, deixem nos comentários.
Responderei da melhor forma possível dentro do que eu souber.
Obrigado por lerem até aqui.
15 comentários
Uau, que serviço interessante. Vou dar uma olhada!
Qual serviço vocês usam para tradução em tempo real? Também tenho curiosidade sobre o custo haha
Eu usava o Cursor, mas o limite enchia muito rápido, então agora estou usando o Claude no Zed. O que eu gosto muito no Claude é que, ao longo do dia, ele reinicia a cada poucas horas, e o limite semanal também é resetado toda semana.
Existe algum motivo para vocês usarem junto com o zed? Fiquei curioso.
É possível conectar diretamente o Claude Agent ao zed e, assim, o limite é redefinido periodicamente, então o uso fica bem folgado.
Estou um pouco confuso... a redefinição do limite não é um recurso nativo do próprio Claude Code?
Isso mesmo. O Cursor usa um limite que eles mesmos definem no meio do processo, mas no Zed, como a conexão é feita diretamente com o Claude, o limite é resetado.
Ah, então o problema é o Cursor.
No começo eu não tinha entendido porque usei o Claude no terminal.
Ah... então você estava usando diretamente no terminal.
Ouvi dizer que, ultimamente, a combinação Cursor + Claude é a que está dominando. O Antigravity também é bem útil, então estou me virando mais ou menos com Cursor + Antigravity. Invejo mesmo esse reset do limite do Claude...
Vá em Cour Settings
no menu à esquerda, selecione Indexing & Docs..
Se você verificar Codebase,
logo abaixo vai aparecer Codebase Indexing.
E ele será exibido em verde como 100%
e logo abaixo
vai aparecer o número total de arquivos que o Cursor está usando como referência na codebase.
E para verificar a lista de arquivos indexados...
Ignore Files in .cursorignore
clique em View included files logo abaixo.
Aqui vão aparecer todos os arquivos usados como referência.
Olhando isso... adicione diretórios e arquivos desnecessários ao arquivo
.cursorignoreEm Codebase Indexing, faça Delete Index
e depois sincronize de novo para ver a contagem final de arquivos carregados...
e então selecione View included files para conferir
Se continuar repetindo isso...
você consegue fazer o Cursor indexar apenas os arquivos realmente necessários.
Eu estava programando sem saber disso...
e a cada prompt, vários milhões de tokens eram consumidos rapidamente.
Pesquisei aqui e ali e fiz alguns testes,
e consegui economizar bastante tokens.
No momento, o OpenAI Codex é gratuito. Embora provavelmente também vá limitar tokens, como o Cursor faz.
Se você registrar códigos e documentos desnecessários no
.cursorignore,pode reduzir bastante os custos causados pela quantidade de tokens
(pode ser um conselho desnecessário, já que você provavelmente tem mais experiência do que eu..).
O Codex da OpenAI também dá para usar razoavelmente bem. Em compensação, é bem mais lento que o Cursor.
Depois de tentar fazer desenvolvimento full stack com o Cursor...
hmm... com a geração de código tão rápida,
fiquei com dificuldade para revisar tudo o que era gerado.
E também...
começaram a aparecer efeitos colaterais de usar IA.
Como eu fico codando com concentração demais(?),
parece que vou ficando esgotado? É esse tipo de sensação que começa a surgir.
Acho que essa expressão está correta. Dá um cansaço danado kkk ;_;
Concordo 100% quando você diz que é exaustivo. É até meio frustrante ver um trabalho que levaria uma semana ser concluído em 10 minutos com um clique... Quando larguei um pouco a pressão de ter que ficar passando tarefa o tempo todo, fiquei mais tranquilo.
Nos primeiros 3 meses, como o AutoMode era ilimitado, nem pensei em usar ativamente o
.cursorignore. Daqui para frente, vou procurar entender melhor isso.Obrigado.
Pessoalmente, acho que se você tivesse usado o plano de US$ 100 do Claude Code, provavelmente não teria sofrido tanto estresse com o limite de uso.