A privacy-first, trauma-informed web app for LGBT+ youth to create a personalized safety plan during mental health emergencies.
This project is a frontend-first React application designed to help users build a safety plan in a calm, accessible, and non-judgmental way. The experience is structured around privacy, autonomy, and clarity, with the content easy to update through a simple browser-based admin screen.
The current implementation includes:
- a welcome page introducing the concept of a safety plan
- a resources page with crisis and support links
- a six-step wizard for building a plan
- a completed plan page that can be printed
- an admin page protected by a shared password for editing the app content
- Privacy first: no accounts, no analytics, no persistent user tracking
- Trauma-informed: supportive, low-pressure language
- Accessibility: mobile-first, readable, keyboard-friendly, and focused on clarity
- Autonomy: users stay in control of what they write and what they share
- React + TypeScript
- Vite
- Tailwind CSS
- React Router
- Browser-based persistence using sessionStorage and localStorage
- Node.js 18 or newer
npm installnpm run devThen open:
http://localhost:5173/
npm run build- src/pages: page-level views for the experience
- src/components: reusable UI elements and layout
- src/data: default content and config defaults
- src/lib: local persistence helpers
- src/types: shared TypeScript types
The admin screen is currently a simple password-protected interface for editing:
- app title and description
- welcome intro text
- resources
- wizard step content
This is intentionally lightweight and browser-based for the current phase.
- User safety plan data is stored only in the browser session
- Admin content is stored locally in the browser for the prototype version
- No database or server-side user storage is used in the current implementation
The app is intended for deployment on Vercel-style hosting. The current design assumes HTTPS and avoids third-party tracking.
- Push the project to a GitHub repository.
- Create a new Vercel project and import the repository.
- Vercel will detect the Vite app automatically.
- Use the default build settings:
- Build Command: npm run build
- Output Directory: dist
- Deploy the project.
After deployment, the app will be available from the Vercel URL.
This app is a supportive tool and is not a substitute for professional crisis help. If someone is in immediate danger, they should contact emergency services or a crisis hotline right away.