berrypod/ROADMAP.md
jamey 8c053f7495
All checks were successful
deploy / deploy (push) Successful in 59s
reference SEO enhancements plan in progress and roadmap
2026-03-10 08:54:15 +00:00

4.6 KiB

Berrypod Roadmap

Forward-looking vision and planned features. For current status, see 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 for the full list.


Profit-aware pricing & sales

Complete cost visibility for shop owners. Plan.

  • 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

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.

SEO enhancements

Comprehensive SEO tooling to rival best-in-class WordPress plugins (Yoast, RankMath). Plan.

  • Per-page noindex/nofollow controls and meta descriptions
  • Enhanced Organization schema (business info, logo, contact, social profiles)
  • Image sitemap entries
  • SEO preview panel (Google search + social card mockups)
  • Focus keyword with SEO score/checklist
  • FAQ block with FAQPage schema
  • Google Search Console OAuth integration

Multiple print providers

Support connecting multiple print providers simultaneously during setup and in general use. Route products to different providers based on product type, cost, or seller preference. Allow experimentation with providers before committing.

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.


Design philosophy

  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