- Desktop: horizontal navigation menu as before
- Mobile: hamburger dropdown menu with theme toggle visible
- Breakpoint at md (768px)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add phx-update="ignore" to prevent LiveView from overwriting the
Leaflet map container when re-rendering after business selection.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The import process now shows a preview before importing, listing any
missing categories. Users can create missing categories with one click
before proceeding with the import.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add docker-compose.yml with app and postgres services
- Add .env.example with required environment variables
- Add .env to .gitignore to prevent committing secrets
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Run mix compile before mix assets.deploy so colocated hooks are generated
- Fix Docker warnings: use AS instead of as, ENV key=value format
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Use correct tag: 1.17.3-erlang-27.1.3-debian-bookworm-20250610-slim
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Dockerfile for Phoenix release builds
- Add .dockerignore to optimize build context
- Add Forgejo workflow that runs tests then builds/pushes Docker image
- Update test config to support DATABASE_URL for CI
- Add release.ex and rel/ overlay scripts
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
31 locally owned businesses from Mentor, Chardon, Chagrin Falls,
Willoughby, Geneva, and surrounding areas including restaurants,
coffee shops, breweries, wineries, retail, and farm markets.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add AdminLive.Businesses at /admin/businesses for business management
- Support deactivate/reactivate (soft delete) and permanent deletion
- Filter tabs for All, Active, and Inactive businesses
- Delete confirmation modal to prevent accidental deletion
- Add admin functions to Businesses context (list_all, get_any, deactivate, activate, delete)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Import module for parsing JSON and creating businesses with associations
- Add `mix localspot.import` task for CLI-based imports
- Add admin import page with drag-and-drop file upload at /admin/import
- Include sample import JSON and Buffalo NY business data (40 businesses)
- Support for importing hours and photos with each business
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace Phoenix default navigation with LocalSpot nav
- Add links to Businesses, Categories, Map, and Add Business
- Update home page with hero, feature cards, and CTA
- Update page title suffix to LocalSpot
- Change pre-commit hook to auto-format instead of check
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- CategoryLive.Index: browse categories with business counts
- CategoryLive.Show: view businesses filtered by category
- BusinessLive.Index: search/filter businesses with geolocation
- BusinessLive.Show: detailed business profile with hours
- BusinessLive.New: submission form for new businesses
- BusinessLive.Map: interactive Leaflet.js map view
- Seed data with sample Columbus, OH businesses
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Document James Shore's patterns for clean architecture:
- A-Frame: Logic and Infrastructure as independent peers
- Testing Without Mocks: state-based tests, Nullables, no mocking
- Testing approach by layer (Logic, Infrastructure, Application)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add scripts/pre-commit hook that runs format check and tests
- Add mix hooks.install alias to install the hook
- Document git hooks in AGENTS.md
- Fix test database config to use local user
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Set up localspot as a Phoenix 1.8 LiveView application with:
- Erlang/Elixir via asdf
- PostgreSQL database (local user config)
- Tailwind CSS v4 with daisyUI
- Updated AGENTS.md with project setup and guidelines
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>