- ROLE
- Design and engineering
- TIMELINE
- Sep 2025 to now
- STACK
- Next.js, Convex, Vercel
The organization
The International Council for Refugees and Immigrants (ICRI) is a nonprofit in Omaha that helps refugees and immigrants build a life here. It runs more than a dozen programs, from immigration legal services and job placement to housing help, public benefits, and English classes.
The problem
Every program kept its own records: a spreadsheet here, a paper ledger there, files on a shared drive. Intake happened on paper and was typed in again later. Watching one intake, I saw the same family’s information written down three separate times in a single visit. And when a grant report was due, someone rebuilt the numbers by hand from all of those sources.
What I built
One system that all of ICRI’s programs share, built around how the staff already work rather than the other way around:
- Client and case records with households, so a family is one family across every program it touches.
- Intake that mirrors the paper forms staff already knew, in English, Spanish, Arabic, and Nepali.
- A front desk lobby for checking people in and routing them to the right case manager, with a notification when someone walks in.
- Program access controls. Everyone sees basic demographics, case details stay within a program, and anything more needs a request and an approval. Sensitive programs are walled off entirely.
- An import engine that brought years of spreadsheet history in safely: every import ran as a dry run first, caught duplicates, and could be undone.
- Program setup, surveys, and exports so each program can shape the system to its own work.
- Digital signing, now rolling out: clients, staff, and interpreters sign on screen, and the signed form files itself to the client’s record.
Because the records are people’s lives, the security is strict by default: every server function denies access unless it’s explicitly allowed, every file download is checked against the record it belongs to, and sensitive actions are logged.
How it’s going
The system went live in August 2026 after in-person training with the whole staff. It holds a few thousand clients and cases, the front desk runs on it every day, and staff log hundreds of intakes a month. I hold weekly office hours with the team, and every week’s feedback shapes what gets built next. The next step is getting more of the follow-up work after intake into the system, so it becomes the one place ICRI’s story lives.
Our programs are stronger and more impactful because of your skills. We are deeply grateful for your contributions and the difference you made in our system.
