Inspiration

92% of nonprofits operate on budgets under $1M and rely on spreadsheets and paper forms. Enterprise solutions like Bonterra cost $50–150+/user/month — completely out of reach. We built SafeCase to solve this problem for 9+ OHack nonprofits including NMTSA, Chandler CARE Center, and ICM Food Bank, all of whom share the same core need: register clients, record services, and report outcomes.

What it does

SafeCase is a lightweight, AI-native case management platform for nonprofits:

  • Photo-to-Intake: Snap a photo of a paper intake form — AI extracts all fields instantly in any language
  • AI Follow-up Detection: Case notes automatically generate follow-up reminders so no client falls through the cracks
  • AI Assistant Bot: Ask natural language questions like "Which clients have pending housing follow-ups?"
  • Funder Report Generator: One-click quarterly narrative reports for grant applications
  • Scheduling Calendar: Book and track client appointments with in-app reminders
  • CSV Import/Export: Migrate from spreadsheets in seconds
  • Audit Log: Real-time access monitoring with anomaly detection
  • Document Uploads: Attach intake forms, waivers, and photos to client profiles
  • Configurable Fields: Admins add custom fields without code changes
  • Role-Based Access: Admin and Staff roles with full separation
  • Mobile Responsive: Works seamlessly on phones and tablets for field workers
  • Multilingual Support: Forms in any language are auto-translated to English on upload

How we built it

Frontend: Next.js 14 App Router with TypeScript, Tailwind CSS, and shadcn/ui components. Role-based layouts using Next.js middleware and client-side route guards.

Backend: Next.js API Routes handling all business logic — client CRUD, CSV import/export, AI orchestration, document uploads, and audit logging.

Database: Supabase (PostgreSQL) with 9 tables: clients, service_entries, follow_ups, appointments, audit_logs, alerts, user_roles, custom_field_definitions, custom_field_values. Row Level Security (RLS) for data protection.

Auth: Supabase Auth with Google SSO. Role assignment via user_roles table, enforced at both UI and API level using x-user-email headers.

AI: Anthropic Claude API powers all 4 AI features:

  • Claude Vision (claude-sonnet) for Photo-to-Intake field extraction and multilingual translation
  • Claude for AI Follow-up Detection from case notes
  • Claude for AI Assistant Bot with real-time Supabase data context
  • Claude for Funder Report narrative generation

Storage: Supabase Storage for client document uploads with signed URL access control.

Real-time: Supabase realtime subscriptions for live audit log updates and anomaly detection alerts.

Deployment: Vercel with environment variables for all API keys. CI/CD via GitHub push.

Challenges we ran into

  • Vercel deployment returning 404 on all routes — resolved by changing the Framework Preset from "Other" to "Next.js" in Vercel's Build and Deployment settings
  • Implementing real-time audit log with anomaly detection using Supabase realtime subscriptions
  • Building Photo-to-Intake with Claude Vision that works across multiple languages and form layouts
  • Designing a role-based access system that works both at the UI and API level

Accomplishments that we're proud of

  • Full P0 + P1 + most P2 features shipped in 24 hours
  • AI features that actually solve real nonprofit pain points — not AI for the sake of AI
  • Clean, mobile-responsive UI that nonprofit staff can actually use without training

What we learned

  • Claude Vision is remarkably good at extracting structured data from unstructured paper forms
  • Supabase realtime makes building live dashboards surprisingly straightforward
  • Nonprofit workflows are more nuanced than they appear — follow-ups and handoffs are where clients fall through the cracks

What's next for SafeCase

  • Multi-tenant support for multiple nonprofits on one deployment
  • Voice-to-case-notes using Web Speech API
  • Semantic search across all case notes using pgvector
  • Zapier integration for no-code workflow automation

Built With

  • anthropic-claude-api
  • next.js-14
  • papa-parse
  • postgresql
  • recharts
  • shadcn/ui
  • supabase
  • tailwind-css
  • typescript
  • vercel
Share this project:

Updates