Skip to content

Import/export, branding options and Pro feature gating #43

Description

@mukto90

Problem

Several commercial polish and adoption features are missing:

  • Teams moving from another tool (Canny, Trello, GitHub Issues, CSV) have to re-enter every item manually.
  • The board offers only CSS variable overrides; non-developers can't brand it.
  • Free vs Pro packaging has no technical mechanism yet.

Proposal

1. Import

  • NiroRoadmap -> Import wizard with source adapters:
    • CSV (title, description, status, product, tags, votes, date) with column mapping and a dry-run preview.
    • Canny export (JSON/CSV).
    • Trello board JSON export (lists -> statuses, cards -> items, labels -> tags).
    • GitHub issues (repo + token, labels -> tags, state -> status, reactions -> votes optional).
  • Creates statuses/products/tags that don't exist, skips duplicates by title+source ID, batches in AJAX chunks with progress, and logs errors.
  • Matching export (CSV/JSON) for backups and migration out (trust builder).

2. Branding and appearance

  • Visual settings: accent, radius, fonts inherit, density (compact/comfortable), light/dark/auto, card shadow style, column width.
  • Custom CSS field with live preview.
  • Optional "Powered by NiroRoadmap" link: on by default in free, removable in Pro.
  • Translatable custom labels (button texts, "Nothing here yet", etc.) without .po files.

3. Licensing / feature gating (foundation)

  • Central niroroadmap_is_pro() and niroroadmap_feature_enabled( $key ) helpers so free and Pro features gate through one place; Pro features appear in the UI as disabled with an upsell, not hidden.
  • Pick licensing provider (Freemius / custom) - decision needed, create a follow-up ADR.
  • Everything in the free plugin that WordPress.org guidelines require stays free; no remote calls without opt-in.

Acceptance criteria

  • CSV import round-trips with the CSV export (import -> export -> identical data).
  • Dry-run shows exactly what would be created/skipped; nothing is written until confirmed.
  • Imports of 2,000 items complete without timeouts (chunked) and can be resumed.
  • Trello and Canny adapters have fixtures and tests.
  • Imported content is sanitized like normal submissions.
  • Branding settings output via CSS custom properties; invalid CSS values are sanitized.
  • Feature-gating helper has a single filterable source of truth and tests.
  • "Powered by" link is rel="noopener", toggleable, and compliant with wp.org rules (not forced for the free version if it conflicts with the guidelines - verify before shipping).

Priority rationale

Low. Commercial/packaging work; schedule once the main feature set is stable. Split into separate issues when scheduled (Import/Export, Branding, Licensing).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureSomething we want to add

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions