Personal home maintenance management app. Tracks areas of the house, equipment, recurring maintenance tasks, completion logs, and supplies.
- Ruby 3.3.7, Rails 8.1.2, PostgreSQL 17
- Hotwire (Turbo + Stimulus), Tailwind CSS
- Solid Queue + Solid Cache (sharing the primary database)
- PWA with Web Push notifications (
web-pushgem, VAPID)
-
Install dependencies:
bundle install
-
Set up the database:
bin/rails db:setup
-
Run the test suite:
bin/rails test -
Start the development server:
bin/dev
All data management happens through Claude Code conversations — the web app is a read-only status dashboard. No admin UI, no forms.
brew install flyctl
flyctl auth loginflyctl launch --no-deployThis creates fly.toml. Edit it to set auto_stop_machines = 'off' and min_machines_running = 1 if you're using Solid Queue for background jobs.
flyctl postgres create --name your-app-db
flyctl postgres attach your-app-dbThis auto-sets the DATABASE_URL secret on your app.
Generate a new config/master.key and credentials file with your VAPID keys for Web Push:
# Generate new master key and credentials
bin/rails credentials:edit
# Inside the credentials file, add:
# vapid:
# public_key: <generate with: bin/rails runner "puts WebPush.generate_key.public_key">
# private_key: <generate with: bin/rails runner "puts WebPush.generate_key.private_key">flyctl secrets set RAILS_MASTER_KEY=$(cat config/master.key)flyctl deployOnce deployed, add your home's areas, equipment, and maintenance tasks via Claude Code:
# See what's in the database
bin/rails upkeep:status
# Or write a data entry script and run it
bin/rails runner tmp/my_data.rbSee lib/tasks/upkeep.rake for available rake tasks and CLAUDE.md for agent conventions.
GitHub Actions automatically:
- Runs security scans (Brakeman, Bundler Audit)
- Lints code with RuboCop
- Runs the test suite
- Deploys to Fly.io on pushes to
main(requiresFLY_API_TOKENsecret)
To enable auto-deploy:
- Get a Fly.io API token:
flyctl auth token - Add it to GitHub repository secrets as
FLY_API_TOKEN
CLAUDE.md— Agent notes and conventions for Claude Code sessionsSPEC.md— Full application specificationplans/— Feature implementation plans