Project — 2025
Levelup
A personal growth platform with guided journeys, journaling, and goal tracking, self-hosted on a Raspberry Pi.
- Node.js
- Express
- SQLite
- React
- Vite
What it is
Level Up is a full-stack journaling and self-improvement app built for personal use. The core concept is “guided journeys” — structured programs a user enrolls in and progresses through at a configurable cadence (daily, weekly, bi-weekly). Two journeys ship by default: a couples communication course called “A Year of Conversations” and a behavioral interview prep track. Each journey is composed of tasks and reflection questions; the app tracks per-task completion and surfaces an overall progress percentage.
Beyond journeys, the app includes a daily gratitude prompt, a free-form journal, a goal tracker, and a photo memories section.
How it works
The backend is an Express server written entirely in ES modules, organized into routes, services, and a BaseRepository data-access layer. The frontend is a React 18 SPA built with Vite, using React Router for navigation and Axios for API calls. User accounts are secured with JWT tokens and bcrypt-hashed passwords, with optional Google OAuth sign-in. An admin dashboard controls feature flags such as whether new signups are open, using a system_settings key-value table in SQLite.
In production the app runs under PM2 on a Raspberry Pi at home, exposed to the internet through a Cloudflare tunnel. The tunnel was offline at time of writing.
Where it’s at
The project is actively developed — recent commits added Google OAuth, an admin dashboard, auto-save for journal responses, and security patches. Tests exist for backend routes and frontend components.