Add AnalyticsHook to the coming_soon live session — the shop layout fires an analytics:screen JS event but the session had no handler, crashing the page on connect. Centre the logo image (display:block from CSS reset needs margin-inline:auto). Add a subtle "Admin" link at the bottom using flex flow rather than fixed/absolute positioning so it works in iframes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
154 lines
9.4 KiB
Markdown
154 lines
9.4 KiB
Markdown
# Berrypod Progress
|
|
|
|
> Single source of truth for project status and task tracking.
|
|
|
|
## Current status
|
|
|
|
Tier 1 MVP complete. Tier 2 production readiness complete (except Litestream and e2e tests). Tier 3 compliance and quality complete. Tier 3.5 business tools mostly complete (activity log, order lookup, abandoned cart all done). Tier 4 growth and content mostly complete (page editor, legal pages, media library, custom CMS pages all done). Newsletter and product page improvements remain.
|
|
|
|
**What's working:**
|
|
- Complete shop: home, collections, products, cart, checkout, about, contact, custom CMS pages, legal pages
|
|
- Theme editor with 8 presets, instant switching, full customisation
|
|
- Image optimisation pipeline (AVIF/WebP/JPEG responsive variants)
|
|
- Printify + Printful integration (sync, orders, shipping, webhooks, mockup enrichment)
|
|
- Stripe Checkout with order persistence, webhook handling, shipping costs
|
|
- Session-based cart (cross-tab sync, drawer + page, quantity controls)
|
|
- FTS5 full-text search with live modal, keyboard nav, ARIA
|
|
- Privacy-first analytics with comparison mode, filtering, CSV export
|
|
- Database-driven page builder with 26 block types, undo/redo, live editing
|
|
- Custom CMS pages with data-driven navigation, page templates, SEO
|
|
- Media library with alt text, usage tracking, orphan management
|
|
- Activity log with real-time global feed, order timeline, contextual retry
|
|
- URL redirects with auto-redirect on slug change, dead link monitoring
|
|
- Legal page generator with auto-regeneration from settings
|
|
- Abandoned cart recovery (GDPR-compliant, single email)
|
|
- Favicon generation from source image (PNG variants, SVG dark mode, webmanifest)
|
|
- Complete SEO (OG/Twitter cards, JSON-LD, sitemap, canonical URLs, meta descriptions)
|
|
- Email settings admin with 10 adapter options and test email
|
|
- No-JS support across all key flows
|
|
- Fully Tailwind-free CSS (12 KB gzipped shop+theme, 95 KB gzipped admin total)
|
|
- CI pipeline (compile warnings, format, credo, dialyzer, tests)
|
|
- Deployed on Fly.io with observability (LiveDashboard, ErrorTracker, structured logging)
|
|
- 1679+ tests passing, 99-100 PageSpeed mobile
|
|
|
|
## Next up
|
|
|
|
### Admin CSS refactor ([plan](docs/plans/css-migration.md)) — Complete
|
|
|
|
All 4 phases done. Tailwind utility clone deleted, all templates migrated to semantic classes, layout primitives added, `@layer` cascade in place. Post-refactor cleanup: dead CSS removal (9 classes), color-mix token extraction (5 `--admin-text-*` tokens replacing 80 inline calls), and theme CSS extracted into standalone `theme.css` bundle shared across all page types (eliminates 28 KB duplication). Image optimizer hardened against tiny placeholder stubs. Theme editor mobile overlay bug fixed.
|
|
|
|
### Profit-aware pricing & sales ([plan](docs/plans/profit-aware-pricing.md))
|
|
|
|
| # | Task | Depends on | Est | Status |
|
|
|---|------|------------|-----|--------|
|
|
| 63 | Fix Printful cost sync (cross-reference catalog API for variant costs) | — | 45m | planned |
|
|
| 64 | Cost snapshot on orders (`unit_cost` on order_items, `total_cost`/`gross_profit` on orders) | 63 | 1.5h | planned |
|
|
| 65 | Exact Stripe fees (fetch from Balance Transaction API post-payment, not estimated) | 64 | 45m | planned |
|
|
| 66 | Tax toggle + Stripe Tax (shop country, registered Y/N, `automatic_tax` on checkout) | 65 | 1.5h | planned |
|
|
| 67 | Admin profit dashboard (per-product margins, per-order profit, overall P&L) | 64, 65, 66 | 3h | planned |
|
|
| 68 | Profit-aware price editor (show margin/profit when setting prices, warn on low margin) | 67 | 2h | planned |
|
|
| 69 | Sales & promotions (% or fixed discount, scoped to catalogue/category/products, scheduled) | 68 | 3h | planned |
|
|
| 70 | Margin guard on sales (prevent discounts that breach minimum profit threshold) | 69 | 1h | planned |
|
|
| 71 | Announcement bar (dismissable shop banner for active sales) | 69 | 1.5h | planned |
|
|
|
|
### Onboarding UX v2 ([plan](docs/plans/onboarding-ux.md))
|
|
|
|
Based on usability testing (March 2026). Reworks the entire setup flow into a single guided journey with progress bar, forgiving validation, and contextual prompts.
|
|
|
|
| # | Task | Est | Status |
|
|
|---|------|-----|--------|
|
|
| A | Simplify initial setup to account creation only (email, password, shop name) | 1.5h | planned |
|
|
| B | Guided setup flow with progress bar (multi-step, skippable, explains "why") | 4h | planned |
|
|
| C | Forgiving API key validation (strip whitespace, format checks, helpful errors) | 1.5h | planned |
|
|
| D | Email provider setup UX rework (recommended pick, grouping, guided flow, test email) | 2h | planned |
|
|
| E | Contextual prompts for skipped steps (products, checkout, order detail) | 2h | planned |
|
|
| F | Dashboard checklist and messaging rework | 2h | planned |
|
|
| G | Coming soon page fixes (logo layout, admin login link) | 30m | done |
|
|
| H | External links UX (new tabs, icons, aria labels) | 1h | planned |
|
|
| I | Input styling — WCAG AA/AAA compliance | 1h | planned |
|
|
|
|
### Notification system overhaul ([plan](docs/plans/notification-overhaul.md))
|
|
|
|
Replace floating toast/flash messages with inline feedback and persistent top banners. 110+ flash messages across 28 files to migrate.
|
|
|
|
| # | Task | Est | Status |
|
|
|---|------|-----|--------|
|
|
| 1 | Build inline feedback component | 1.5h | planned |
|
|
| 2 | Build persistent top banner component (replaces flash) | 1.5h | planned |
|
|
| 3 | Migrate admin forms to inline feedback (theme, pages, settings, email, providers) | 3h | planned |
|
|
| 4 | Migrate remaining admin pages (media, products, activity, newsletter, redirects, nav) | 2h | planned |
|
|
| 5 | Migrate shop pages (cart, contact, checkout, auth) | 2h | planned |
|
|
| 6 | Migrate setup wizard notifications | 1h | planned |
|
|
| 7 | Remove old flash/toast CSS and JS | 30m | planned |
|
|
|
|
### Live site editor ([plan](docs/plans/live-site-editor.md))
|
|
|
|
On-site editing overlay for admins: browse the real shop with a sidebar for theme and page editing. Inline contenteditable for text, live CSS variable injection for theme changes. Responsive layout (split view on desktop, overlay on mobile).
|
|
|
|
| Phase | Description | Est | Status |
|
|
|---|---|---|---|
|
|
| 1 | Design: sketch approaches, pick one | 2h | planned |
|
|
| 2 | Extract shared components from theme editor and page editor | 4h | planned |
|
|
| 3 | Build editor wrapper LiveView with sidebar shell | 3h | planned |
|
|
| 4 | Theme editing in sidebar (re-use theme controls, live CSS vars) | 3h | planned |
|
|
| 5 | Block list and block settings in sidebar | 3h | planned |
|
|
| 6 | Block selection: click-to-select with highlight on page | 2h | planned |
|
|
| 7 | Inline text editing with contenteditable + phx-hook | 4h | planned |
|
|
| 8 | Responsive layout (split view / overlay) | 2h | planned |
|
|
| 9 | Save/discard/undo flow | 2h | planned |
|
|
| 10 | Edit mode toggle (floating button for admins on shop pages) | 1h | planned |
|
|
| 11 | Polish and testing | 4h | planned |
|
|
|
|
### Quick fixes (from usability testing)
|
|
|
|
| # | Task | Est | Status |
|
|
|---|---|---|---|
|
|
| 1 | Fix double radio button dots in theme editor | 30m | done |
|
|
|
|
### Platform site
|
|
|
|
| # | Task | Depends on | Est | Status |
|
|
|---|------|------------|-----|--------|
|
|
| 73 | Platform/marketing site — brochure, pricing, sign-up | — | TBD | planned |
|
|
| 74 | Separation of concerns: platform site vs AGPL open source core | 73 | TBD | planned |
|
|
|
|
## Future enhancements
|
|
|
|
Tracked in [ROADMAP.md](ROADMAP.md) — includes Litestream backup, e2e/a11y tests, AGPL licensing, security, newsletter, product reviews, hosted platform infrastructure, i18n, data export/import.
|
|
|
|
## Plan files
|
|
|
|
All plans in [docs/plans/](docs/plans/). Completed plans are kept as architecture references.
|
|
|
|
| Plan | Status |
|
|
|------|--------|
|
|
| [admin-redesign.md](docs/plans/admin-redesign.md) | Complete |
|
|
| [admin-font-loading.md](docs/plans/admin-font-loading.md) | Complete |
|
|
| [admin-ux-polish.md](docs/plans/admin-ux-polish.md) | Complete |
|
|
| [setup-wizard.md](docs/plans/setup-wizard.md) | Complete |
|
|
| [setup-and-launch.md](docs/plans/setup-and-launch.md) | Complete |
|
|
| [setup-auto-confirm.md](docs/plans/setup-auto-confirm.md) | Complete |
|
|
| [email-settings.md](docs/plans/email-settings.md) | Complete |
|
|
| [search.md](docs/plans/search.md) | Complete |
|
|
| [shipping-sync.md](docs/plans/shipping-sync.md) | Complete |
|
|
| [printful-integration.md](docs/plans/printful-integration.md) | Complete |
|
|
| [printify-integration-research.md](docs/plans/printify-integration-research.md) | Reference |
|
|
| [provider-strategy.md](docs/plans/provider-strategy.md) | Reference |
|
|
| [css-migration.md](docs/plans/css-migration.md) | Complete |
|
|
| [analytics-v2.md](docs/plans/analytics-v2.md) | Complete |
|
|
| [page-builder.md](docs/plans/page-builder.md) | Complete |
|
|
| [media-library.md](docs/plans/media-library.md) | Complete |
|
|
| [custom-pages.md](docs/plans/custom-pages.md) | Complete |
|
|
| [image-optimization.md](docs/plans/image-optimization.md) | Complete |
|
|
| [products-context.md](docs/plans/products-context.md) | Complete |
|
|
| [dry-refactor.md](docs/plans/dry-refactor.md) | Complete |
|
|
| [abandoned-cart.md](docs/plans/abandoned-cart.md) | Complete |
|
|
| [activity-log.md](docs/plans/activity-log.md) | Complete |
|
|
| [favicon.md](docs/plans/favicon.md) | Complete |
|
|
| [legal-page-generator.md](docs/plans/legal-page-generator.md) | Complete |
|
|
| [url-redirects.md](docs/plans/url-redirects.md) | Complete |
|
|
| [onboarding-ux.md](docs/plans/onboarding-ux.md) | Planned (v2) |
|
|
| [notification-overhaul.md](docs/plans/notification-overhaul.md) | Planned |
|
|
| [live-site-editor.md](docs/plans/live-site-editor.md) | Design exploration |
|
|
| [profit-aware-pricing.md](docs/plans/profit-aware-pricing.md) | Planned |
|