A modern Rails 8.0.2 application for managing todos.
brew install misePostgreSQL requires several Homebrew packages to compile successfully:
brew install icu4c openssl@3 ossp-uuid readline zlibgit clone <repository-url>
cd todosThe project uses mise to manage tool versions. Simply run:
mise installThis will install:
- Ruby 3.4.4
- PostgreSQL 17.5
Note on PostgreSQL installation: If the PostgreSQL installation fails with missing library errors, you may need to set environment variables to help it find the Homebrew dependencies:
LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib -L/opt/homebrew/opt/icu4c@77/lib -L/opt/homebrew/opt/ossp-uuid/lib" \
CPPFLAGS="-I/opt/homebrew/opt/openssl@3/include -I/opt/homebrew/opt/icu4c@77/include -I/opt/homebrew/opt/ossp-uuid/include" \
PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@3/lib/pkgconfig:/opt/homebrew/opt/icu4c@77/lib/pkgconfig" \
mise install postgres@latestAfter PostgreSQL is installed, you need to create a database user:
# Create a superuser role with your username
mise exec postgres -- psql -U postgres -c "CREATE ROLE $USER WITH SUPERUSER LOGIN;"
# Create a database with your username
mise exec postgres -- createdb $USERbundle installbin/rails db:create
bin/rails db:migrate
bin/rails db:seed # if you have seed dataStart the development server and Tailwind CSS watcher:
bin/devVisit http://localhost:3000
bin/rails console- Interactive Rails consolebin/rails db:migrate- Run database migrationsbin/rails spec- Run RSpec test suitebin/rubocop- Run Ruby style checksbin/brakeman- Run security vulnerability scanner
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres postgresql://127.0.0.1/todos_developmentclaude mcp add puppeteer -- npx -y @modelcontextprotocol/server-puppeteerThis Rails 8.0.2 application uses:
- Import Maps for JavaScript (no bundling required)
- Stimulus for JavaScript behavior
- Turbo for SPA-like navigation and real-time updates
- Tailwind CSS for styling
- PostgreSQL for the database
- Solid Cache/Queue/Cable (database-backed, no Redis needed)
- RSpec with comprehensive test suite (47 tests)
If you get "role does not exist" errors, ensure you've created the database user as shown in step 5.
The .tool-versions file ensures the correct Ruby and PostgreSQL versions are activated when you enter the project directory. If tools aren't activated automatically, run:
mise trust