Skip to content

Project — 2025

Levelup

A personal growth platform with guided journeys, journaling, and goal tracking, self-hosted on a Raspberry Pi.

Role: Creator
  • 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.