Inspiration

Lots of Hispanic and Latino folks who don't come from
money or are underrepresented in their communities struggle to find real opportunities — from legal advice
and health clinics to scholarships, English classes, and social groups where they actually feel at home. Information exists, but it's scattered across dozens of sites, buried in English-only PDFs, or locked behind forms that ask for immigration status up front. We wanted to build something that meets our community where it is: bilingual, warm, private by default, and honest about what it knows. Corazón - Hispanic at Heart - is our love letter to the parents, students, and neighbors who keep showing up even when the systems around them don't.

What it does

Corazón is a bilingual (Spanish/English) web app that
brings community, legal, health, scholarship, housing, food, and job resources into one calm, trustworthy space. Users can browse or search verified organizations across Chicago, filter by category, and save the ones they care about. A privacy-first onboarding lets people optionally share their country of origin, immigration status, and interests so the app can surface the most relevant resources — and that information is never shared, sold, or shown to anyone else. A built-in AI assistant answers questions in the user's language, explains unfamiliar processes, and points to real organizations instead of generic advice. Profiles, saved resources, and discovery all work together so returning users pick up exactly where they left off.

How we built it

The frontend is a React + TypeScript app built with Vite
and Tailwind, using a custom design system grounded in warm, culturally resonant color tokens and the Belgrano / Playfair Display type pairing. Global state lives in a
lightweight React Context layer, and routing is handled with React Router. Supabase powers auth, the Postgres database of opportunities and organizations, and row-level security for user profiles and saved resources. We wrote a data-normalization layer on top of the raw active_opportunities table that cleans up organization names, fills in category-aware fallback descriptions in both languages, and deduplicates near-identical rows by hostname so users see unique, useful cards instead of repeats. The AI assistant is wired to the Anthropic Claude API with prompt caching, and the whole app is deployed on Vercel.

Challenges we ran into

Real-world community data is messy. Scraped rows came in
with URLs as titles, empty descriptions, duplicate
branches of the same organization, and inconsistent
tagging — so a huge amount of work went into quietly
cleaning that up at the API layer without hiding legitimate variety. Designing a bilingual UI that feels native in both Spanish and English (not just machine-translated) meant writing every string twice and constantly tuning tone. Getting the onboarding flow to feel optional and safe — especially around immigration status — took several passes; we had to make the privacy promise impossible to miss while still keeping the step flow fast. And balancing a dark, modern aesthetic with warmth and accessibility pushed us to rework our color tokens more than once.

Accomplishments that we're proud of

We're proud that Corazón feels like it was built by the
community it serves, not just for it. The bilingual experience is real end-to-end — onboarding, discovery, AI chat, profile, and empty states all speak both languages naturally. The privacy-first onboarding actually respects the user: every field is skippable, nothing sensitive leaks, and the UI says so in plain words. The resource discovery page finally feels trustworthy thanks to deduplication, category-aware descriptions, and Latino-focused sorting. And the AI assistant gives answers that are specific, kind, and grounded in real local organizations — which is exactly the kind of help we wished we'd had growing up.

What we learned

We learned that building for an underserved community is
10% clever code and 90% listening — to language, to fear, to the unspoken question behind the search bar. We got
much better at data hygiene: when your users can't afford to waste a click on a broken link or a duplicate card, your backend has to earn their trust every single query. We learned how much design tokens, typography, and tone carry cultural meaning, and how quickly an app can feel cold if you get that wrong. Working with Supabase RLS taught us to think about privacy as a schema decision, not a feature. And integrating the Claude API showed us how much better AI feels when it's scoped, bilingual, and anchored to real resources instead of open-ended chat.

What's next for Spanish App

Next, we want to expand beyond Chicago — starting with
other cities with large Latino populations like Houston, Los Angeles, and New York — and partner directly with
community organizations so listings stay verified and up to date. We're planning a mobile-first PWA build so families can access resources from any phone, offline-friendly. On the AI side, we want the assistant to help users prepare for appointments, understand legal documents, and follow up on applications step by step. We also want to add community features — verified reviews, neighborhood tips, and volunteer-contributed translations — so Corazón grows from a directory into a living network. Long term, our goal is simple: every Latino family in the U.S. should have one trusted, bilingual place to turn to when they need help, and we want Corazón to be it.

Built With

  • appifex
  • claude
Share this project:

Updates