Tem no SUS!
Produto que ajuda pessoas a descobrir serviços gratuitos do SUS, encontrar atendimento próximo e entender como acessar cada direito.
- Para quem
- Projeto próprio, criado para o Desafio Liga Jovem 2026
- Ano e andamento
- 2026 · em andamento

O ponto de partida
O SUS oferece mais de cem serviços gratuitos, e quase ninguém sabe quais existem nem onde ficam. A pessoa não procura por nome de serviço: ela procura por necessidade, com as palavras dela. Nenhuma busca comum traduz preciso de psicólogo para o CAPS mais próximo com horário de atendimento.
O que foi construído
Aplicativo em Expo com uma base de código para Android, iOS e web, apoiado em Postgres com PostGIS. Os dados do CNES são ingeridos para o banco próprio, então a busca nunca depende da API do governo. Busca textual em português com correspondência aproximada, mapa com os pontos mais próximos e leitura em voz alta para quem tem pouca familiaridade com telas.
O produto em uso
As principais telas e o que a pessoa pode fazer em cada uma. Selecione uma captura para ampliar.
Ampliar captura em uma nova abaBuscar pelo que precisa ou escolher uma das demandas mais pedidas.
Ampliar captura em uma nova abaConsultar os serviços encontrados e a distância até o atendimento.
Ampliar captura em uma nova abaVer endereço, telefone, turnos de atendimento e a fonte dos dados.
Ver outras 4 telas
Ampliar captura em uma nova abaEntrar no aplicativo.
Ampliar captura em uma nova abaLocalizar no mapa.
Ampliar captura em uma nova abaValidar em comunidade.
Ampliar captura em uma nova abaAdaptar à pessoa.
Minha participação
Produto, pesquisa, arquitetura e desenvolvimento na equipe
Decisões importantes
- Manter protótipos e documentos do projeto no mesmo histórico.
- Usar TypeScript na aplicação publicada.
- Registrar as etapas de planejamento junto do desenvolvimento.
O que funcionou
- A aplicação em TypeScript chegou a uma versão pública que pode ser demonstrada.
- O histórico reúne desenvolvimento, protótipos e materiais do desafio em um único lugar.
Limites atuais
- A ausência de README impede entender com precisão o problema e as contribuições individuais.
- Os resultados do projeto ainda não estão documentados publicamente.
Próximo passo
Adicionar um README que explique o problema, a contribuição de cada pessoa e o resultado alcançado.
Por dentro da construção
Arquitetura, tecnologias e as escolhas de implementação deste projeto.
- Expo
- React Native
- Supabase
- PostGIS
- TypeScript
Como o sistema é montado
Três camadas com uma regra que organiza todas: o dado público entra por um pipeline agendado e nunca no meio de uma busca. Assim a resposta é rápida mesmo com rede ruim, que é a condição normal do público no interior.
Aplicativo
Expo, React Native e TypeScript- Expo Router
- TanStack Query
- Zustand
- react-native-maps
- expo-speech
Uma base de código para Android, iOS e web, com cache local para uso offline.
HTTPS, REST e RPC
Backend
Supabase- Postgres com PostGIS
- Auth com RLS
- RPC buscar_servicos()
- Full text search e pg_trgm
A busca roda dentro do banco, perto dos dados, em vez de num serviço intermediário.
Escrita agendada
Ingestão
pg_cron e GitHub Actions- CNES e DATASUS
- Normalização por município
- Dicionário de necessidade para serviço
O cadastro nacional é fonte, não dependência em tempo real.
Stack e o porquê de cada peça
Aplicativo
- Expo (React Native)
- Android, iOS e web da mesma base
- TypeScript strict
- Segurança de tipos conforme o app cresce
- Expo Router
- Rotas por arquivo e deep linking nativo
- TanStack Query
- Cache e repetição automática em rede instável
- Zustand
- Estado de interface sem cerimônia
Dados
- Postgres com PostGIS
- Consulta geográfica nativa e rápida
- Full text search e pg_trgm
- Busca tolerante a erro de digitação
- Supabase Auth e RLS
- Acesso anônimo com regra no próprio banco
Acessibilidade
- expo-speech
- Leitura em voz para baixa literacia digital
- expo-location
- Serviço mais próximo sem digitar endereço
Pinheiro, terracota e uma gota
A identidade precisa parecer serviço público sem parecer repartição: confiável como o SUS, acolhedora como quem atende bem. Landing e aplicativo compartilham a mesma paleta e os mesmos nomes de token, então o que se decide num lugar vale no outro.
verde#0d6a51
Cor de marca. Pinheiro, não o verde-bandeira do serviço público.
verde-deep#062f25
Fundo dos blocos de busca, onde o texto precisa de contraste alto.
verde-bright#18a878
Confirmação e estado positivo.
verde-wash#e2efe8
Superfície de apoio para avisos e blocos de comunidade.
coral#d65a3c
Terracota: o calor humano que o verde sozinho não carrega.
amber#e0a23f
Destaque pontual, reservado para o que muda de estado.
paper#f4f1e7
Creme quente no lugar do branco puro, que cansa em tela ao sol.
ink#14211c
Tinta principal, esverdeada, para não brigar com a paleta.
Fraunces para dizer, Inter para ler
A serifa variável abre as chamadas e dá voz à marca; o texto corrido, os rótulos e os dados ficam em Inter, que aguenta tamanho pequeno em tela de celular barato.
O token que foi escurecido por reprovar
O cinza de apoio nasceu #76837b e falhava AA 4.5:1 abaixo de 18px. Virou #506059 e a razão ficou escrita no próprio token, para ninguém reverter sem saber o que estava comprando.
Alto contraste é tema, não filtro
A variante acessível redefine a paleta inteira à mão (verdes mais profundos, bordas reforçadas, tinta preta) em vez de aplicar um filtro genérico por cima. A identidade sobrevive ao modo.
Pingo
A silhueta do Pingo é uma gota e um pin de mapa ao mesmo tempo, em terracota, com a cruz da saúde no corpo. A forma resolve duas coisas de uma vez: diz saúde e diz lugar, que é exatamente o que o aplicativo faz. Ele aparece onde a tela poderia assustar (onboarding, lista vazia, o que levar na consulta) e some no resto, para não virar enfeite. São seis poses, animadas em Lottie no aplicativo e reduzidas a SVG estático na web, onde a animação se mostrou instável. Cada pose carrega o próprio rótulo para leitor de tela.
Acenando: abre o onboarding
Apontando: indica o próximo passo
Checklist: o que levar na consulta