# UpDock Edition Feature Comparison

This document describes the intended feature boundaries for the current UpDock Free, UpDock+, and UpDock Pro builds. UpDock Free and UpDock+ are the same Mac App Store app; UpDock+ is unlocked with an in-app purchase. UpDock Pro is a separately licensed, direct-download app.

## At a Glance

| Feature | UpDock Free | UpDock+ | UpDock Pro |
|---|---:|---:|---:|
| Distribution | Mac App Store | Mac App Store | Direct download |
| License | Free | StoreKit in-app purchase | UpDock Pro license |
| Maximum mini-docks | 5 | 100 | Unlimited |
| Maximum items per mini-dock/folder | 7 | 50 | Unlimited |
| Applications, files, folders, URLs, separators | Yes | Yes | Yes |
| Nested UpDock folders and hierarchy editor | Yes | Yes | Yes |
| Finder and special folders | Yes | Yes | Yes |
| BBEdit project folders and UpDock Auto folders | Yes | Yes | Yes |
| Custom dock-item icons and icon library | Yes | Yes | Yes |
| Accessibility modes and Speak on Hover | Yes | Yes | Yes |
| Application-wide Accessibility override | Yes | Yes | Yes |
| Accessibility starter mini-dock | Yes | Yes | Yes |
| Automatic backups, restore, diagnostics | Yes | Yes | Yes |
| Export/share | Yes | Yes | Yes |
| Import `.updock` and legacy `.json` | No | Yes | Yes |
| Settings ABC view and Option menu sorting | No | Yes | Yes |
| Shift supplemental items | Fixed defaults | Customizable | Customizable |
| Palette mini-docks | No | Yes | Yes |
| Finder drops directly into Settings | No | Yes | Yes |
| Double-click mini-dock enable/disable | No | Yes | Yes |
| App-paired temporary mini-dock activation | No | Yes | Yes |
| Live running indicator on application items | No | Yes | Yes |
| Automatic Apple Dock edge detection | No | No | Yes, always on |
| Show Package Contents | No | No | Yes |
| Full unrestricted filesystem import/export | No | No | Yes |
| Inline/file/bundled AppleScript execution | No* | No* | Yes |
| Shell script dock items | No | No | Yes |
| UpDock Search | No | No | Yes |
| Shortcuts library picker | Yes | Yes | Yes |
| Automator workflow execution | No | No | Yes |
| Scriptable application/SDEF commands | No | No | Yes |
| Sparkle updates | No | No | Yes |

\*All editions include the built-in Accessibility Settings action. Free and Plus do not permit arbitrary AppleScript dock items.

## Features Shared by All Editions

### Mini-Docks

- Create, rename, duplicate, delete, enable, disable, select, and manually reorder mini-docks within edition limits.
- Place mini-docks on the left, right, or bottom edge and use them across multiple displays.
- Configure icon size, label behavior, edge trigger thickness/delay, auto-hide delay, accessibility sizing, and hover speech.
- Save mini-dock settings as defaults and use factory/user item defaults.
- Trigger from the screen edge, hover, open items, and use contextual actions.
- Discover one or more shortcuts from the Shortcuts app, add them to a mini-dock, and run them from their dock items.

### Items and Organization

- Add applications, files, folders, URLs, separators, multiple Finder selections, special folders, and Finder icons.
- Treat applications, Xcode projects/workspaces, AppleScript bundles, Automator workflows, and other packages as files/apps rather than ordinary folders.
- Use regular UpDock folders, nested folders, Finder/special folders, BBEdit project folders, and UpDock Auto folders.
- Edit the complete hierarchy, select multiple items, create nested folders, and move items into/out of folders.
- Move items within a dock, copy between docks, and add Finder items with insertion animation.
- Rename, reorder, remove, reveal, retarget, and choose Open With behavior.
- Retrieve URL favicons and apply custom icons from pasted, selected, or stored images.

### Accessibility, Safety, and Recovery

- Use the Accessibility starter dock and built-in System Settings > Accessibility action.
- Enable per-dock accessible icons/labels and Speak on Hover.
- Apply an application-wide Accessibility override without overwriting per-dock settings.
- Use VoiceOver labels/help and keyboard-accessible settings controls.
- Export/share mini-docks and settings, create automatic backups, restore backups, and generate Diagnostics reports.
- Use supported App Intents/Shortcuts actions to show, hide, toggle, and open mini-docks/items.

## UpDock+ Adds to Free

- Capacity increases from 5 to 100 mini-docks and from 7 to 50 items per mini-dock/folder.
- Import of `.updock` packages and legacy `.json` settings/dock files.
- ABC alphabetical presentation in Settings without changing saved manual order.
- Live Option-key alphabetical sorting in app and dock-item menus, with exact order restoration on release.
- User-selectable and customizable Shift Items source dock; Free uses fixed Shift items.
- Palette mini-docks whose items copy rather than move when dragged.
- Finder drops directly into mini-dock rows/editor areas in Settings.
- Double-click enable/disable behavior in the Settings mini-dock list.
- Pair up to two mini-docks with one application, activating them temporarily while the app is frontmost (default) or running.
- Display a live green diamond beside application dock items while the application is running.
- StoreKit purchase, entitlement persistence, offline entitlement use, and Restore Purchases.

UpDock+ remains sandboxed and does not add arbitrary AppleScript, shell, search, Automator, package-content browsing, automatic Apple Dock detection, Pro licensing, or Sparkle.

## UpDock Pro Adds Beyond UpDock+

- Unlimited mini-docks and unlimited items per mini-dock/folder; UpDock+ retains its 100/50 limits.

### Direct Distribution and Licensing

- Developer ID signed/notarized direct installation.
- UpDock Pro key activation, license-file import, activation/deactivation, and offline licensed launch.
- Sparkle full and delta updates, including background update availability reminders.
- Full user-selected filesystem locations for import/export rather than App Store sandbox boundaries.

### System and Package Integration

- Automatic Apple Dock edge detection is always active.
- Show Package Contents for applications and supported bundles/packages.
- AppleScript bundles execute as scripts; applications launch; document packages open in their associated apps.

### Automation Dock Items

- Inline, compiled, file-based, and bundled AppleScript with automatic, in-process, and applet runner modes.
- Shell scripts with interpreter selection, templates, arguments, prompted/dropped input, environment, working directory, Terminal mode, and confirmation.
- UpDock Search with text/regex matching, filters, context, special content modes, and result actions.
- Automator workflow discovery, editing, and execution.
- Separate automation histories and diagnostics for AppleScript, shell, and Automator activity.

### AppleScript Dictionary

- Read-only application identity, path, version/build, logs, diagnostics, backup directory, and scripts directory.
- Scriptable mini-docks, nested folders/dock items, settings backups, settings windows, and accessibility override.
- Read/write mini-dock layout, trigger, label, accessibility, palette, and enabled/default properties.
- Dock-item owner, one-based position, name, target, script source, BBEdit project-folder mode, and UpDock Auto Folder mode.
- Commands to create, duplicate, reposition, move, remove, delete, open, and run mini-docks/items.
- Commands to add applications, paths, URLs, and separators to mini-docks or nested folders.
- Commands for settings visibility, diagnostics, import/export, defaults, backup/revert, and accessibility override.

## Boundaries to Verify Before Every Release

- Free must enforce 5 docks/7 items and keep Plus organization features unavailable without deleting saved excess data.
- Plus must enforce 100 docks/50 items and unlock only after a valid StoreKit entitlement.
- Free and Plus must not mention, advertise, link to, or import licenses for the separately distributed Pro edition.
- Free and Plus must not expose or run arbitrary Pro automation or Show Package Contents.
- Pro must not expose StoreKit purchase/restore UI and must use Pro licensing and Sparkle.
- Every edition must preserve shared settings and exported data that are valid for that edition without silent corruption.
