What was needed
People looking for food, housing, health care, immigration support, detention information, or rights resources are often already under stress. The information they need is spread across organizations, agencies, forms, PDFs, phone numbers, and programs that change. Searching all of that one page at a time is hard on a good day and much harder in a time-sensitive situation.
Some of those topics are sensitive. That made privacy and clarity part of the actual product requirement, not optional polish. The site had to turn scattered information into clear next steps without asking visitors to give up privacy just to find help.
Who it's for: South Metro and Dakota County neighbors looking for local help, plus the people helping a neighbor or family member find the next appropriate resource.
Constraints
- Sensitive subject matter meant the site could not collect data it did not need. The no-analytics, no-tracking, no-cookie, and no-account approach had to stay consistent across the experience.
- Hours, intake rules, forms, eligibility, and funding change. The interface needed visible update notices and a way to report stale listings instead of implying that every detail stays current forever.
- Visitors may arrive during a stressful or time-sensitive situation, so routing and next steps had to be understandable quickly, on a phone, without reading a whole page first.
- Language access had to be deliberate. Spanish needed its own routes and labels rather than an automatic translation overlay or a redirect based on browser settings.
- The site routes people toward outside organizations, clinics, legal intake lines, and government tools. It had to do that without implying that Rapid Mutual Aid MN is the provider, a legal authority, or an official agency.
What was built
Help routing
- Need-based resource categories: housing, rent, and utility help; immigration legal support; health, clinics, and crisis care; food and grocery help; laundry help
- City-based starting points for Dakota County cities that lead into the topic pages
- Quick paths from the homepage to the most urgent routes: find someone detained, know your rights, and volunteer
- A step-by-step detention-information flow: what to have ready, who to call first, then the official locator tools and legal intake lines
Language and rights information
- Explicit English and Spanish site routes with a visible language switch
- Know-your-rights resources organized by situation: at home, in a car or traffic stop, at work, in public, detained or in police custody
- Resource language filters for English, Spanish, Hmong, and Somali
- Format choices for each resource: wallet cards to carry, flyers to print, videos to watch, and guides to read
Privacy and trust
- No analytics, tracking pixels, cookies, or third-party scripts
- No accounts, logins, or sign-ups, and no browser-language redirects or location lookups
- Fonts and styles served from the site itself, and outside links opened without passing along browsing context
- Privacy and safety notices beside sensitive information, including a plain statement that the site shares routing, not legal advice
Source and update system
- A visible Before you go notice explaining that programs, hours, eligibility, forms, and funding can change, with a prompt to call or check the linked site first
- Outside-site privacy caveats on links that leave the site
- Listing-level flags when a detail still needs confirmation, and a Something out of date? contact path for reporting stale listings
- Routing to the original organization, clinic, legal intake line, or government tool rather than copying the service into the site
Key decisions
Privacy by architecture instead of privacy by cookie banner: the site simply does not run analytics, trackers, cookies, accounts, or location lookups.
For someone looking up sensitive resources, collecting behavior first and asking permission later would undermine the point of the site. Not collecting the data at all is simpler to build, simpler to explain, and easier to trust.
Route people by what they need, not by who they are: food, housing, health, immigration support, detention help, rights information, or a city, chosen by the visitor.
The site never needs to identify a visitor or read their location to be useful. The site does not need to ask for personal details or use a visitor's location to route them toward useful information.
Orient first, then route to the original source: listings explain what to have ready, who to call first, and what the next step is, then send people to the organization, clinic, legal intake line, or government tool that actually provides the service.
Rapid Mutual Aid MN should make the next step understandable without pretending to replace the people who provide the help. That keeps the site honest about what it is, and keeps visitors close to the source when details change.
Treat language access as part of the information architecture: explicit English and Spanish routes, a visible language switch, and rights resources that can be filtered by language.
High-stakes information needs deliberate labels, routing, warnings, and context in each language. Separate routes are safer and easier to understand than a translation overlay, and the language filters show which resources exist in which language instead of implying everything is available everywhere.
What works now
A live South Metro resource hub a visitor can use right now without creating an account or being tracked: need-based resource categories, city starting points, explicit Spanish routes, know-your-rights resources filterable by situation, language, and format, step-by-step detention guidance, visible privacy and update notices, and links out to the original service or information sources.



Role and tools
Information architecture, content systems, bilingual routing, privacy-first UX, implementation, source and update patterns.
- Next.js
- React
- OpenNext
- Cloudflare
Lessons and what's next
- On a high-stakes information site, reducing uncertainty matters more than adding interface. A clear label, a short notice, and one obvious next step do more than another feature.
- Privacy decisions shape navigation and architecture, not just the privacy page. Choosing not to identify visitors is why the site routes by need and by city instead of by profile or location.
- Resource information needs explicit staleness and source handling because real programs change. Update notices, confirmation flags, a correction path, and links to the original source are part of the product, not an afterthought.
- Language access works best when routing, warnings, labels, and content hierarchy are designed together. A translation overlay cannot carry the judgment that a separate route can.
