First launch
Sign in
The app opens on /login. Authentication is email and password against the
companion server, with forgot-password and reset flows. If the server is not
running, you will be bounced back to /login — the dashboard and editor are
both behind an auth guard.
| Route | Screen |
|---|---|
/login | Sign in |
/register | Create an account |
/forgot-password | Request a reset email |
/reset-password | Set a new password from the token in that email |
/dashboard | Project dashboard (requires auth) |
/editor/:projectId | The editor, bound to a project (requires auth) |
Sessions are long-lived: refresh tokens live for 90 days and are stored in the operating system’s keychain rather than in the renderer.
The dashboard
The dashboard is where compositions are born. One project holds one composition to begin with, and you choose its size, frame rate and duration at creation time from a shared preset catalogue — the same catalogue the viewport header uses later, so the two never disagree.
There is deliberately no “New Composition…” item in the editor’s menus. In-project composition management lives in the Project panel instead; see Compositions.
Create a project
Pick a name, then a size preset (or type a custom width and height), a frame rate, and a duration.
It opens in the editor
The editor loads at /editor/:projectId. The dashboard keeps a local SQLite
index of known projects so the list is instant on next launch; if the native
driver is unavailable the app falls back to an in-memory index rather than
failing.
The onboarding tour
On first run an overlay offers a short tour of the workspace. Step one asks “Coming from After Effects?” and offers to import an AE-style shortcut map — worth accepting if you have muscle memory to protect. You can replay the tour at any time from Help → Take a Tour.
What you are looking at
┌──────────────────────────────────────────────────────────────┐
│ TitleBar window chrome: minimize / maximize / close │
├──────────────────────────────────────────────────────────────┤
│ TopNav menu bar + tool rail + Animate/Insert menus │
│ ToolOptionsBar contextual options for the active tool │
├───────────┬──────────────────────────────┬───────────────────┤
│ Left │ │ Right Inspector │
│ Sidebar │ Workspace (viewport) │ (8 tabs) │
│ (5 tabs) │ │ │
├───────────┴──────────────────────────────┴───────────────────┤
│ BottomTimeline Timeline / Graph Editor + transport │
├──────────────────────────────────────────────────────────────┤
│ StatusBar info readout · FPS meter · VU meter · account │
└──────────────────────────────────────────────────────────────┘Every region is a dock: panels register into a region, tabs reorder, move between the two sidebars, close and reopen. The layout is JSON-serialisable and persisted, and View → Reset Layout puts it back.
Any panel can be popped out into its own window, which stays live-synced with the editor — useful on a second monitor.
Full walkthrough: The interface.
The one shortcut to learn first
Ctrl/⌘ + Shift + P opens the command palette. It reaches every registered command, every layer, every composition and any timecode, and it works even while a text field has focus.
| Prefix | What it searches |
|---|---|
| (plain text) | everything |
> | commands |
@ | layers |
# | compositions |
: | timecode — jump to a time |