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

Melhorar a performance de app React para processar imagens

Fala galera, espero que estejam bem! Espero que não fique muito longo esse texto, mas quero explicar ao máximo a situação.

Bem, eu estou desenvolvendo um projeto pessoal para ajudar num processo de "aplicar assinaturas" em fotos, pelo menos é assim que eu chamo. Eu ajudo num grupo que sempre cobre vários eventos, e no fim precisa aplicar assinaturas (uma imagem png) em cima das fotos dos eventos, deixando elas todas no formato da assinatura.

Eu queria até poder futuramente automatizar a edição dessas fotos, mas no momento estou na parte das assinaturas mesmo. Aqui está a versão live pra poderem testar. E o repo do GitHub.
Como podem ver, eu fiz um backend especificamente pra poder fazer o trabalho pesado, porque estou usando a lib sharp.

Eu coloquei inicialmente um limite de 25 fotos (o que é pouco), mas já assim está ficando bem lento. E eu imagino que o principal fator é a latência entre os servidores, porque fiz o deploy do front na Vercel e do back na Railway. Aí eu até tentei resolver isso usando o Next, junto com as API routes e fazendo o stream na edge, mas houveram vários problemas ao longo do caminho e no fim eu desisti. O código ainda tá no branch feat/next-api-routes.

Eu sei que o projeto é idealmente simples, mas pra eu passar pras outras pessoas do mesmo grupo poderem usar, preciso melhorar a performance. Então, queria saber de vocês o que sugerem para poder resolver essa questão da latência, ou amenizar o problema!

Carregando publicação patrocinada...
1

Olá, Bruno. Usei a ferramenta e pude perceber que você mantém o usuário na página aguardando o resultado. Naturalmente, se você enviar 10 fotos com 2mb cada, mais uma foto para mesclar com 1mb. Isso já são 21mb.
Minha sugestão, antes de pensar em otimizar performance, seria melhorar a experiência (principalmente pra vc). E se você capturasse um email para enviar o link para download depois que o processamento for concluído? Nesse caso, tu não seguraria a pessoa por muito tempo na página e ainda teria um meio de contato pra construir relacionamento, ou qualificar o lead. Faz sentido pra ti isso?

1

Obrigado pelo retorno! Pois é, eu já pensei em fazer assíncrono mas queria que fosse mais simples... ao menos inicialmente. Pensei também em diminuir o limite dos arquivos, mas ainda assim não poderia diminuir muito.
Mas realmente vou pensar nessa possibilidade...