Skip to content

Import / Export

The Import / Export page centralizes the three backup and restore flows. All files produced are JSON, validated on import by strict Zod schemas; nothing is written until you confirm.

Import / Export page with its six actions: export/import rules, sessions, and workspace.Import / Export page with its six actions: export/import rules, sessions, and workspace.

From the Rules page or Import / Export, click the Export button. Every rule in the active workspace is serialized to JSON, copied to the clipboard, or downloaded as a .json file depending on the split button sub-action.

The format embeds, for every rule: domain, label, title and URL regexes, configuration mode, deduplication mode, ignored parameters, category, enabled state. No workspace identifier: a rule is portable across workspaces.

Import wizard: choose between File, Text, or Pack.Import wizard: choose between File, Text, or Pack.
  1. Open the import wizard from the Rules page or from Import / Export.
  2. Pick the source: a JSON file (drag and drop or browse), pasted text, or the packs gallery (see Categories and packs).
  3. The wizard validates the structure and classifies each incoming rule.

Each incoming rule is compared against the rules already in the active workspace:

StatusDefinitionProposed action
NewNo rule with this domain and this label in the workspace.Added on import.
ConflictingA rule exists with the same domain and label, but one or more properties differ.Property-by-property resolution (see below).
IdenticalA rule exists with the exact same values.Skipped.
Resolving an import conflict: choose between current and imported version, property by property.Resolving an import conflict: choose between current and imported version, property by property.

For each conflicting rule, the wizard shows a two-column table: Current and Imported. For every differing property, you pick which one to keep. A Use imported for all or Use current for all button settles the whole rule in one click.

The export wizard offers three checkboxes for the three buckets:

BucketChecked by default
PinnedYes
ActiveYes
ArchivedNo

Archived sessions are unchecked by default so a light export (a daily backup) does not drag along the whole archive. Check Archived for a complete export.

The export also exposes an optional Note field, embedded in the archive and shown on import.

Same mechanism as for rules: pick the source (file, pasted text), Zod schema validation, classification into new / conflicting / identical based on name and content. Resolution is case by case: keep the existing version, overwrite, or add by suffixing the name.

Exporting a workspace produces a self-contained archive with the entire configuration of that workspace: rules, sessions, settings, and optionally statistics.

  1. From the Workspaces page or from Import / Export, open Export Workspace.
  2. The dialog shows a summary (rule count, session count).
  3. Options: Note (free text embedded) and Include statistics history (unchecked by default; counters are not essential to the transfer and can be considered personal).
  4. Confirm. The file produced follows the format smarttab_organizer_workspace_{slug}.json.

The export always targets the active workspace. To export another workspace, switch to it first.

  1. Open Import Workspace from the Workspaces page or from Import / Export.
  2. Pick the source (JSON file or pasted text).
  3. The dialog validates the structure and shows a summary (rules, sessions, statistics presence, optional note).
  4. Pick the import mode (see below) and confirm.
ModeBehavior
Create a new workspace from this exportCreates a fresh workspace with the name and color provided by the archive. You can override the name in the Workspace name field before confirming.
Replace the contents of the active workspaceAdds the archive’s rules and sessions to the active workspace. Any conflicts (already-present IDs) are handled case by case.

Every archive is Unicode JSON, readable by eye. The schema for each archive type lives in src/schemas/importExport.ts. The schema used on import is intentionally relaxed (no form-level refinements), so it tolerates archives produced by older versions.