simpleshop_theme/ROADMAP.md
Jamey Greenwood 8e9a10e9b7 docs: rename to SimpleShop in docs, plan full rename for later
- Update README title to "SimpleShop"
- Update ROADMAP title to "SimpleShop Roadmap"
- Add "Rename Project to SimpleShop" to Technical Debt section
  with list of files that would need updating

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 23:09:42 +00:00

176 lines
5.0 KiB
Markdown

# SimpleShop Roadmap
This document tracks future improvements, features, and known gaps.
## Quick Wins (Low Effort)
### CSS Cache Warming on Startup
**Status:** Not implemented
**Effort:** Small
Currently the CSS cache (ETS) is created on startup but not pre-warmed. The first request after server restart generates CSS on-demand.
**Implementation:**
Add cache warming to `lib/simpleshop_theme/application.ex`:
```elixir
# After supervisor starts
Task.start(fn ->
settings = SimpleshopTheme.Settings.get_theme_settings()
css = SimpleshopTheme.Theme.CSSGenerator.generate(settings)
SimpleshopTheme.Theme.CSSCache.put(css)
end)
```
### Navigation Links Between Admin and Shop
**Status:** Not implemented
**Effort:** Small
No links exist to navigate between the theme editor (`/admin/theme`) and the public shop (`/`).
**Implementation:**
- Add "View Shop" button in theme editor header
- Add "Edit Theme" link in shop header (when authenticated)
### Collection Slug Routes
**Status:** Partial
**Effort:** Small
Currently we have `/products` but the original plan included `/collections/:slug` for filtered views by category.
### Enhanced Contact Page
**Status:** Not implemented
**Effort:** Small
The current contact page has subtle footer social icons that are easy to miss. Improvements:
1. **Newsletter signup card** - Prominent card encouraging newsletter subscription as the best way to stay updated (already in footer, but deserves dedicated placement)
2. **Social media links card** - Full-width card listing social platforms with icons and text labels:
```
[Instagram icon] Instagram
[Patreon icon] Patreon
[TikTok icon] TikTok
[Facebook icon] Facebook
[Pinterest icon] Pinterest
```
This makes social links more discoverable than the current small footer icons.
**Implementation:**
- Add `newsletter_card/1` component to ShopComponents
- Add `social_links_card/1` component with configurable platforms
- Update contact page template to include both cards
- Consider making platforms configurable via theme settings
---
## Medium Features
### Page Builder (Database-Driven Pages)
**Status:** Planned (see `docs/plans/page-builder.md`)
**Effort:** Large
Allow shop owners to build custom pages by combining pre-built sections:
- Hero, Featured Products, Testimonials, Newsletter, etc.
- Drag-and-drop section ordering
- Per-section configuration
- Database-backed page storage
---
## Future Features (Large Scope)
### Products Context
Real product management instead of preview data:
- Product CRUD
- Variant support (size, colour)
- Inventory tracking
- Image galleries
### Orders & Cart Functionality
Currently cart is display-only with mock data:
- Session-based cart persistence
- Add to cart functionality
- Checkout flow
- Order creation and history
### Multi-Admin Support
Currently single-user authentication:
- Multiple admin users
- Role-based permissions
- Audit logging
### Custom Domains
Allow shops to use their own domain:
- Domain verification
- SSL certificate provisioning
- DNS configuration guidance
### Theme Export/Import
Backup and restore theme settings:
- JSON export of all settings
- Import with validation
- Preset sharing between shops
### Advanced Theme Features
- Custom CSS injection
- Custom JavaScript snippets
- Code-level overrides for developers
---
## Technical Debt
### Test Coverage
Phase 9 testing is basic. Areas needing better coverage:
- Shop LiveView integration tests
- CSS cache invalidation flow
- Theme application across all pages
- Responsive behaviour
- Accessibility validation
### Error Handling
- Better error states for missing products
- Graceful degradation when theme settings are invalid
- Network error handling in LiveView
### Rename Project to SimpleShop
**Status:** Not implemented
**Effort:** Medium
The project is currently named `simpleshop_theme` (reflecting its origins as a theme system), but it's now a full e-commerce storefront. Rename to `simple_shop` or `simpleshop` to reflect this.
**Files to update:**
- `mix.exs` - app name
- `lib/simpleshop_theme/``lib/simple_shop/`
- `lib/simpleshop_theme_web/``lib/simple_shop_web/`
- All module names (`SimpleshopTheme` → `SimpleShop`)
- `config/*.exs` - endpoint and repo references
- `test/` directories
- Database file name
---
## Completed (For Reference)
### Sample Content ("Wildprint Studio") ✅
- 16 POD products across 5 categories
- Nature/botanical theme with testimonials
- UK-focused (prices in £)
- Printify API integration for mockup generation (`mix generate_mockups`)
### Phase 1-8: Theme Editor ✅
- Theme settings schema and persistence
- CSS three-layer architecture
- 8 theme presets
- All customisation controls
- Logo/header image uploads
- SVG recolouring
- Preview system with 7 pages
### Phase 9: Storefront Integration ✅
- Public shop routes (/, /products, /products/:id, /cart, /about, /contact)
- Shared PageTemplates for shop and preview
- CSS injection via shop layout
- Themed error pages (404/500)
- Dev routes for error page preview