tidy docs: condense progress, trim readme, mark plan statuses
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
122
ROADMAP.md
122
ROADMAP.md
@@ -1,78 +1,68 @@
|
||||
# Berrypod Roadmap
|
||||
|
||||
> Vision and future features. For current status, see [PROGRESS.md](PROGRESS.md).
|
||||
> Forward-looking vision and planned features. For current status, see [PROGRESS.md](PROGRESS.md).
|
||||
|
||||
## What's done
|
||||
|
||||
Tiers 1-3 are complete. The shop handles real orders end-to-end: browse products, add to cart, Stripe Checkout, order submission to Printify/Printful, fulfilment tracking, transactional emails. Full admin with theme editor, page builder, analytics, media library, activity log, URL redirects, and dead link monitoring. Tailwind-free CSS, 99-100 PageSpeed, 1679+ tests.
|
||||
|
||||
See [PROGRESS.md](PROGRESS.md) for the full list.
|
||||
|
||||
---
|
||||
|
||||
## Core MVP: Cart & Checkout ✅
|
||||
## Profit-aware pricing & sales
|
||||
|
||||
Session-based cart, Stripe-hosted Checkout, order persistence, and webhook handling are all complete. See [PROGRESS.md](PROGRESS.md) for details.
|
||||
Complete cost visibility for shop owners. [Plan](docs/plans/profit-aware-pricing.md).
|
||||
|
||||
### Orders & Fulfillment (next up)
|
||||
- Submit paid orders to Printify for fulfillment
|
||||
- Track fulfillment status updates via webhook
|
||||
- Display order status to customers
|
||||
- Fix Printful cost sync (catalog API cross-reference for variant costs)
|
||||
- Snapshot `unit_cost` on order items at time of sale
|
||||
- Exact Stripe fees from Balance Transaction API (not estimated)
|
||||
- Tax as a toggle: Stripe Tax at checkout, "inc. VAT" / "+ tax" display based on shop country
|
||||
- Admin profit dashboard: per-product margins, per-order P&L, overall business health
|
||||
- Price editor shows live margin as you set prices
|
||||
- Sales & promotions: time-limited, scoped to catalogue/category/products, % or fixed
|
||||
- Margin guard: prevent discounts that breach minimum profit threshold
|
||||
- Announcement bar for active sales
|
||||
|
||||
### Cost Verification at Checkout
|
||||
Verify Printify costs haven't changed before completing checkout to prevent selling at a loss.
|
||||
## Production hardening
|
||||
|
||||
- **Litestream / SQLite replication** — continuous backup to S3-compatible storage with point-in-time recovery. For the hosted platform, evaluate Turso/libSQL with embedded read replicas
|
||||
- **End-to-end & accessibility tests** — Wallaby browser tests for critical flows with A11yAudit (axe-core) assertions. WCAG 2.1 AA compliance
|
||||
- **Security** — evaluate Paraxial.io for runtime security monitoring, bot detection, rate limiting
|
||||
- **AGPL licensing & code hosting** — proper LICENSE file, contribution guidelines, release process. Decide on GitHub vs Codeberg vs self-hosted Forgejo
|
||||
|
||||
## Newsletter & email marketing
|
||||
|
||||
Email list collection (signup forms on shop pages). Campaign sending for product launches and sales. Simple to start: collect emails, send via Swoosh. Ties into sales & promotions for sale announcement blasts.
|
||||
|
||||
## Product page improvements
|
||||
|
||||
- Pre-checkout variant validation (verify provider availability)
|
||||
- Cost change monitoring/alerts (warn if provider costs increased)
|
||||
- Better image gallery (zoom, multiple angles)
|
||||
- Product reviews system
|
||||
|
||||
## Platform vision
|
||||
|
||||
### Marketing site
|
||||
Berrypod.com as the public face: brochure pages, pricing, comparison with Shopify/Squarespace, sign-up flow, demo store. Clear separation between the commercial platform site and the AGPL open source core.
|
||||
|
||||
### Hosted platform infrastructure
|
||||
Multi-tenancy with per-tenant databases. OAuth connect flows for providers (Printify, Printful) and payments (Stripe Connect). The setup UI already supports this: check for OAuth credentials and show the connect button, fall back to API key form on self-hosted.
|
||||
|
||||
### Migration & export
|
||||
Let shop owners export their data (products, orders, theme settings). Import from Shopify, WooCommerce. Portable data as a selling point for the self-hosted story.
|
||||
|
||||
### Internationalisation
|
||||
Multi-language via Gettext, currency formatting, RTL layout support. Note: `ex_money`/`ex_cldr` currently only used for GBP formatting but add ~13 MB to the release. Consider replacing with a lightweight `format_price/2` until proper locale-aware formatting is needed.
|
||||
|
||||
---
|
||||
|
||||
## Medium Features
|
||||
## Design philosophy
|
||||
|
||||
### Page Builder
|
||||
Database-driven pages with drag-and-drop sections:
|
||||
- Hero, Featured Products, Testimonials, Newsletter
|
||||
- Per-section configuration
|
||||
- See: [docs/plans/page-builder.md](docs/plans/page-builder.md)
|
||||
|
||||
---
|
||||
|
||||
## Future Features
|
||||
|
||||
### Multi-Admin Support
|
||||
- Multiple admin users
|
||||
- Role-based permissions
|
||||
- Audit logging
|
||||
|
||||
### Custom Domains
|
||||
- Domain verification
|
||||
- SSL certificate provisioning
|
||||
- DNS configuration guidance
|
||||
|
||||
### Theme Export/Import
|
||||
- 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
|
||||
|
||||
### Multi-Provider Support
|
||||
Support multiple POD providers beyond Printify:
|
||||
- Prodigi (better for art prints)
|
||||
- Gelato (global fulfillment)
|
||||
- Provider-agnostic product model
|
||||
- Price comparison across providers
|
||||
|
||||
---
|
||||
|
||||
## Technical Debt
|
||||
|
||||
### Test Coverage
|
||||
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
|
||||
The project is named `berrypod` but it's now a full storefront. Consider renaming to `simple_shop`.
|
||||
1. **"One theme, infinite variations"** — one solid foundation with curated customisation
|
||||
2. **Constrained creativity** — limit choices to prevent poor design outcomes
|
||||
3. **No professional photography required** — works with product mockups
|
||||
4. **Mobile-first** — all features work on touch devices
|
||||
5. **Ethical design** — no dark patterns or fake urgency
|
||||
6. **Privacy-first** — cookie-free analytics, GDPR-compliant cart recovery, no tracking pixels
|
||||
|
||||
Reference in New Issue
Block a user