Replace BEM-style &--modifier nesting (unsupported in native CSS) with &.class-modifier in shop/components.css and page_renderer.ex. Fix Elixir 1.19 type warnings comparing lists with != []. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
6.1 KiB
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) — 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)
| # | 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 |
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 — 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/. Completed plans are kept as architecture references.
| Plan | Status |
|---|---|
| admin-redesign.md | Complete |
| admin-font-loading.md | Complete |
| admin-ux-polish.md | Complete |
| setup-wizard.md | Complete |
| setup-and-launch.md | Complete |
| setup-auto-confirm.md | Complete |
| email-settings.md | Complete |
| search.md | Complete |
| shipping-sync.md | Complete |
| printful-integration.md | Complete |
| printify-integration-research.md | Reference |
| provider-strategy.md | Reference |
| css-migration.md | Complete |
| analytics-v2.md | Complete |
| page-builder.md | Complete |
| media-library.md | Complete |
| custom-pages.md | Complete |
| image-optimization.md | Complete |
| products-context.md | Complete |
| dry-refactor.md | Complete |
| abandoned-cart.md | Complete |
| activity-log.md | Complete |
| favicon.md | Complete |
| legal-page-generator.md | Complete |
| url-redirects.md | Complete |
| profit-aware-pricing.md | Planned |