berrypod/PROGRESS.md
jamey 5a5103bc42
Some checks failed
deploy / deploy (push) Failing after 10m12s
update docs for completed social links editor
- Mark tasks 1-9 and 15-16 as done in editor-reorganisation plan
- Update plan status from Planned to In Progress
- Add implementation notes documenting social links architecture
- Update test count to 1800+ in PROGRESS.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-28 10:13:03 +00:00

15 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
  • Unified on-site editing (page/theme/settings in 3-tab panel, URL state sync, browser back support)
  • 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 6 adapter options, no-JS support, 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)
  • 1800+ 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

Onboarding UX v2 (plan) — Complete

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 done
B Guided setup flow with progress bar (multi-step, skippable, explains "why") 4h done
C Forgiving API key validation (strip whitespace, format checks, helpful errors) 1.5h done
D Email provider setup UX rework (6 adapters, no-JS, :has(:checked) CSS, test email) 2h done
E Contextual prompts for skipped steps (products, checkout, order detail) 2h done
F Dashboard checklist and messaging rework 2h done
G Coming soon page fixes (logo layout, admin login link) 30m done
H External links UX (new tabs, icons, aria labels) 1h done
I Input styling — WCAG AA/AAA compliance 1h done

Notification system overhaul (plan) — Complete

Replaced floating toast/flash messages with inline feedback and persistent top banners. Form saves use inline "Saved" checkmarks, page-level outcomes use document-flow banners (not fixed overlays).

# Task Est Status
1 Build inline feedback component 1.5h done
2 Build persistent top banner component (replaces flash) 1.5h done
3 Migrate admin forms to inline feedback (theme, pages, settings, email, providers) 3h done
4 Migrate remaining admin pages (media, products, activity, newsletter, redirects, nav) 2h done
5 Migrate shop pages (cart, contact, checkout, auth) 2h done
6 Migrate setup wizard notifications 1h done
7 Remove old flash/toast CSS and JS 30m done

Unified on-site editing (plan) — Complete

Extend the existing page editor (PageEditorHook + editor_sheet) to include theme editing. Admin clicks "Theme" → taken to actual shop with a 3-tab panel (Page | Theme | Settings). See changes live on the real site instead of a fake preview.

Phase Description Est Status
1 Add theme editing state to PageEditorHook 2h done
2 Add 3-tab UI to editor panel (Page/Theme/Settings) 2h done
3 Extract theme editor into reusable component 3h done
3b Create settings editor component 2h done
4 Image upload handling in hook context 2h done
5 URL-based mode activation (?edit=theme) 1h done
6 Admin routing redirect 30m done
7 Polish and testing 2h done

Quick fixes (from usability testing)

# Task Est Status
1 Fix double radio button dots in theme editor 30m done

Competitive gaps (plan)

Close critical gaps identified in the competitive analysis. Phased approach: core commerce first, then retention/growth, then scale.

Phase 1: Core commerce gaps

# Task Depends on Est Status
75 Customer authentication schema 2h planned
76 Customer auth flows (login, register, reset) 75 3h planned
77 Link orders to customers 75, 76 1.5h planned
78 Customer account dashboard 76 2h planned
79 Saved addresses 76 1.5h planned
80 Guest checkout linking 75, 76 1h planned
81 PayPal SDK integration 2h planned
82 PayPal checkout flow 81 3h planned
83 PayPal webhooks 82 1.5h planned
84 Reviews schema 1.5h planned
85 Review submission 84 2h planned
86 Review moderation 84 1.5h planned
87 Reviews display 84 1.5h planned
88 Review schema markup 87 1h planned
89 Provider stock sync done (already existed)
90 Availability display 89 1h done

Phase 2: Retention & growth

# Task Depends on Est Status
91 Returns schema 1.5h planned
92 Return request flow 91, 78 2h planned
93 Return admin 91 2h planned
94 Return policy settings 91 1h planned
95 Email sequence schema 2h planned
96 Sequence triggers & sending 95 3h planned
97 Sequence admin 95 2h planned
98 Customer data export (GDPR) 75 1.5h planned
99 Customer data deletion (GDPR) 75 2h planned

Phase 3: Scale

# Task Depends on Est Status
100 Blog post type 3h planned
101 Staff accounts & RBAC 4h planned

Editor panel reorganisation (plan) — In Progress

Restructure the 3-tab editor panel for better discoverability. Replace Settings tab with Site tab for site-wide content (announcement bar text, social links, nav items, footer content). Move branding from Theme to Site. Merge page settings inline into Page tab.

# Task Est Status
1-4 Data model + Site tab skeleton 3h done
5-7 Announcement bar (editable text, link, styles) 1.5h done
8-9 Social links editor (CRUD, reorder, platform detection, URL normalization) 2h done
10-14 Header & footer navigation editors 3h planned
15-16 Footer content (about, copyright, newsletter toggle) 1.25h done
17-18 Move branding from Theme to Site 1.5h planned
19-20 Merge page settings into Page tab, remove Settings tab 1h planned
21-22 Polish and testing 2h planned

Social links now support 40+ platforms (grouped by category), auto-detect platform from pasted URLs (including deep links like tg:// and spotify:), normalize bare domains to https://, preserve custom protocols, and filter empty URLs from shop display.

Unified editor session (plan) — Complete

Unified "optimistic preview with explicit save" across all editor tabs. Changes show immediately but only persist on Save. Free tab switching without warnings. Navigation blocking with Save/Discard/Cancel modal.

Phase Description Est Status
1 Site tab preview without auto-save 1h done
2 Theme tab preview without auto-save 1.5h done
3 Unified Save button (saves all dirty tabs) 1h done
4 Visual indicators (dirty dots on tabs, "Unsaved" text) 0.5h done
5 Navigation warning modal (Save & continue, Discard, Cancel) 1h done

SEO enhancements (plan)

Comprehensive SEO tooling to rival Yoast/RankMath. Per-page SEO controls, enhanced schema, SEO preview panel, focus keyword with scoring, FAQ schema, Search Console integration.

# Task Est Status
1-4 Per-page SEO controls (noindex/nofollow, meta descriptions) 2h planned
5-8 Enhanced Organization schema (business info, social profiles) 2h planned
9 Image sitemap entries 1h planned
10-13 SEO preview panel (Google search + social card) 4h planned
14-18 Focus keyword & SEO score/checklist 4h planned
19-21 FAQ block with FAQPage schema 2h planned
22-25 Google Search Console integration 6h planned

Draft-then-publish workflow (plan)

Auto-save drafts, explicit publish. No more lost work or beforeunload warnings. Visitors always see published version.

Phase Description Depends on Est Status
1 Page drafts (auto-save, publish/discard) unified-editing-mode 5h planned
2 Theme drafts Phase 1 4h planned
3 Settings drafts Phase 2 4h planned
4 Polish (age indicator, conflict handling) Phase 3 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
onboarding-ux.md Complete
notification-overhaul.md Complete
live-site-editor.md Superseded by unified-editing-mode
unified-editing-mode.md Complete
profit-aware-pricing.md Planned
security-hardening.md Planned
draft-publish-workflow.md Planned
editor-reorganisation.md In Progress
seo-enhancements.md Planned
competitive-gap-analysis.md Reference
competitive-gaps.md Planned