Projectly — User Guide

Everything you need to get around the system, for solo work and teams.

Getting started

Sign in and you land on Overview — a snapshot of what needs attention. The left sidebar is your map: task views up top, your projects and tags below, and your account at the bottom. New accounts may need admin approval before full access is enabled.

Desktop app (Mac & Windows) NEW

Projectly is also a native desktop app. Same product, no browser tabs. Lives in your dock or taskbar, persists your session, fires real OS notifications when someone @mentions you or replies to your message. Download from projectly.workDownload in the top nav, or:

First launch — security warnings (expected). The apps aren't paid-cert signed yet, so each OS asks for your one-time consent:

Then grant notification permission by clicking anywhere inside the app once — the OS will prompt; click Allow. See the Desktop notifications section below for tips on making them stay-until-dismissed on Mac.

Intel Macs and a universal binary are on the list — for now Apple Silicon only. The web app at projectly.work works identically in any browser if you're not on a supported platform yet.

Projectly is keyboard-friendly. Press g then a letter to jump between views:

ShortcutGoes to
g vOverview
g tToday
g uUpcoming
g oOverdue
g cCalendar
g mAssigned to me
g rTime
g dCompleted
g aAll tasks
g iAnalytics
nOpen quick-add (new task)
Cmd KOpen quick-add (new task)
Cmd JJump to any task — the global task switcher
/Focus the search box on the current list
?Show all keyboard shortcuts (cheatsheet)

Can't remember a shortcut? Press ? anywhere (outside a text field) to pop up this whole list — also linked from the quick-add box.

Jump to any task — Cmd+J NEW

Open the global task switcher from any page. Two ways:

The popover shows your 3 most recently visited tasks at the top — instant return-to-where-you-were. Start typing and the recent list is replaced by search results across every task you can access (cross-workspace). Use the arrow keys to navigate, Enter to open, Esc to close.

The recent list lives in your browser's localStorage, so it stays personal — doesn't sync across devices, doesn't leak to other accounts on the same browser.

Create & quick-add

Use the New task button (sidebar) or press ⌘K (Mac) / Ctrl+K (Windows). The quick-add bar understands shorthand so you can type a task in one line:

Auto-open after create: as soon as you hit Enter, the task panel for the new task opens automatically — so you can add a description, set the assignee, or change the deadline without having to find the row in a long list. Close the panel when you're done; the task is already saved.

Type thisEffect
!p1!p4Priority (1 = Urgent → 4 = Low)
#tagAdd a tag
+Project · +"Two Words"File into one of your existing projects (case/accent-insensitive). Quote names with spaces.
~30mTime estimate
tomorrow 5pm, friday, next mondayNatural-language deadline

Example: Send invoice #finance !p2 ~20m friday +Acme.

+Project only ever matches a project you already have in the current workspace — a typo will never silently create a stray project. If the name doesn't match, the task is still captured and a bar offers “Create & move task here”: one click makes the project (in the current workspace) and files the task into it — or dismiss it to keep the task without a project. Prefer not to type it? The New task dialog also has a project picker, and an explicit pick there overrides any +Project in the text. (Inside a specific project's own page, new tasks go to that project automatically.)

The task panel

Click any task to open its panel (a flyout from the right). Edits save as you make them — fields commit when you change or leave them, so you can simply close the panel and your changes are kept. The footer also has an explicit Save button — it commits anything pending and closes the panel — plus Close, Delete, and Save as template.

The panel is grouped into When (deadline, recurrence, reminders), What it is (status, priority, project, assignee, tags) and Effort (estimate, time tracking), plus subtasks, comments, attachments, followers and a full activity history.

Description: a rich-text editor with a formatting toolbar — bold, italic, strikethrough, a heading, bullet & numbered lists, quotes, links, inline code and code blocks. Click Edit to write and Done when finished; it saves when you click away or hit Save. Notes written before this update are kept and shown as-is.

Subtasks: break a task into a checklist of subtasks from the panel. Each is a real task (it can have its own deadline, assignee and status); the parent row shows a done/total count, and completing the parent doesn't force-complete the children.

Recurrence & reminders: under When, set a task to repeat (daily / weekly / monthly, an interval, optional weekday picker, and an optional “until” date) — completing it spawns the next occurrence. Add one or more reminders as an offset before the deadline (e.g. 1 hour before); they arrive by email/Telegram per your notification settings. Moving the deadline re-times any unsent reminders.

Attachments: attach files to a task (up to 10 MB each; executable/script types are rejected). Files are stored privately and download through an authorized link — anyone who can't see the task (including on a private project) can't reach its attachments. The uploader, the task owner, or an admin can remove an attachment.

Waiting on (dependencies): in the task panel, add other tasks a task is waiting on — it shows Ready once they're all done, or how many are still open. On the list and board, a gated task carries a Waiting on N tasks badge so you can see it's waiting without opening it (hidden once you've manually set its status to On hold — no double). Self-references, duplicates and circular chains are rejected, and you can only depend on tasks you can see. (Marking a blocked task done isn't prevented — the state is informational.)

The other side. A task that others are waiting on shows a calm N waiting on this badge, and the panel lists everything Blocking under it — so a bottleneck is obvious from either end. When you complete a task that was someone's last blocker, that task's followers are told it's ready to start (Inbox, plus email/ Telegram if they've enabled those). And when you set a task to wait on someone else's, that task's followers hear it's now on the critical path. These reuse your existing task-update notification preferences — nothing new to configure.

Followers: in the task panel, hit Follow to get a task's comment, status and deadline-change updates even if it isn't assigned to you (in-app, plus email/Telegram per your notification settings). The assignee is always an implicit follower — so if someone moves a task's deadline, the person on the hook is told, not left to notice it in the activity log. Commenting on a task, or being assigned one, follows it automatically; Following → unfollows. You're never notified of your own actions, and one save is one notification (status + deadline together won't double-ping).

Templates: on any task, the footer's Save as template snapshots its shape — title, description, priority, estimate, tag names and subtask titles — as a reusable personal template. Spin up a fresh copy anytime from the New task dialog: pick a chip under From a template and it creates the task plus its subtasks and tags (with the usual +3h default deadline — templates don't carry dates). The × on a chip deletes that template. Project-wide templates are a planned follow-up.

Undo a delete: deleting a task no longer destroys it — tasks are soft-deleted, so a bar appears at the bottom for ~10 seconds with Undo to bring it (and its comments, attachments, time entries) straight back. After that window it disappears from the app, and is permanently removed a year later by a daily cleanup job — so the database stays lean without you ever having to think about it.

Undo a completion: ticking a task off slides a calm bar at the top of the screen for ~10 seconds — “Marked done · Undo”. Misclick? Hit Undo and it's restored to To-do. For recurring tasks, Undo also rolls back the deadline jump and any rescheduled reminders, so it's a real reversal, not a half one. (You can also always tap the checkbox again to unmark — Undo just makes the affordance obvious in the moment.)

Assignees NEW

Every task has an owner (whoever created it / whose workspace it lives in) and an optional assignee — the person actually doing it.

“Assigned to me”

The sidebar has an Assigned to me view (shortcut g m) — every open task anyone has assigned to you, across all the workspaces you belong to. You can also Group → By assignee on any List or Board to see who's carrying what.

Subtasks (nested under parents) NEW

Subtasks now render visually nested under their parent task in the list view, indented one level. A parent with three subtasks shows four rows: the parent, then three indented children with a subtle background tint to set them apart. No clicking required to see the tree shape.

Subtasks never appear as standalone rows in the main list — they live under their parent. The full hierarchy (sub-subtasks and deeper) is still visible inside the task panel.

Per-task chat NEW

Every task is a discussion thread. Open the conversation from the chat-bubble icon that appears on row hover, or via Open full in the task panel.

Rich-text compose

The message compose is a real rich-text editor — bold, italic, strikethrough, headings, bullet & numbered lists, blockquotes, links, inline code, code blocks. Use the toolbar above the input OR the usual shortcuts:

ShortcutWhat it does
Cmd BBold
Cmd IItalic
Cmd K (with selection)Insert link
EnterSend the message
Shift EnterNewline within the same message

Threaded replies

Hover any message → Reply. A side pane opens with the same rich-text compose, scoped to that thread. The main stream stays clean; in-thread replies live in their own column.

Real-time

When the admin has enabled real-time (Pusher or Reverb), messages appear instantly for everyone watching the task — you'll also see typing indicator dots when someone's composing a reply. Without real-time, the chat still works fine; you'll see new messages on next refresh.

@mentions & slash commands NEW

@ to mention

Type @ in a chat message — a picker shows teammates with their avatar. Pick one (arrow keys + Enter, or click) and the mention becomes a coloured chip. The mention is tied precisely to that person's account, so name collisions are impossible. Mentioned users get pinged via their notification channels and are auto-subscribed to future updates on the task.

/ to run a command

Type / at the start of a message — a picker shows every command. Pick one to insert it.

CommandWhat it does
/assign @nameSet the task's assignee
/unassignClear the assignee
/status todo|in progress|blocked|doneChange status
/priority urgent|high|normal|lowSet priority
/due today|tomorrow|YYYY-MM-DDSet deadline
/clear-dueClear the deadline
/helpPost the command list in the thread

Slash commands run silently — the change applies and a small system message in the thread records who did what. You can Undo the change for 60 seconds from that system message.

Attachments & image lightbox NEW

Drag-drop files onto the chat or click the paperclip icon to attach them to your next message. Up to 10 files per message, 10 MB each. Executables and shell scripts are silently filtered out for safety.

Attachments render as chips on the message — every file shows its name, size, and a download button. Images additionally show a thumbnail; click the thumbnail to open it fullscreen with a download button and ESC to close.

Need to find a file shared in a long thread? On the full task page, the right rail has a foldable Attachments index — every file shared in the thread, newest first. Click any entry to jump to the message where it was attached.

Views

ViewShows
OverviewAt-a-glance dashboard
TodayDue today + anything overdue
UpcomingScheduled ahead (defaults to a weekly window)
OverduePast deadline, not done
Assigned to meOpen tasks assigned to you, across every workspace
CalendarTime-anchored view of your deadlines — defaults to week; switchable to month / year. See Calendar in depth below.
TimeTime tracked across tasks (the Time report)
CompletedWhat you've finished
All tasksEverything, unfiltered
AnalyticsOutput over a window — yours, the team's, per member
ActivityA “who did what” stream across what you can see

Select & batch-edit NEW

Triaging a pile of tasks? Click Select (top-right of any list). Checkboxes appear on each row — tick the ones you want and a bar slides up from the bottom to act on all of them at once: mark done, set status or priority, reschedule, snooze, or delete (deletes stay recoverable). Select all grabs everything currently shown; Cancel leaves select mode. You can only ever act on tasks you have access to, and changing a filter or search clears your selection so a batch never hits a hidden task.

Today, at a glance NEW

The Today view now lifts an Overdue section above Today, so one look separates "behind" from "on track". The header also shows your total estimated effort for the day (e.g. "≈ 3h 30m of work") — handy for sizing the day before you dive in.

Calendar in depth UPDATED

The Calendar got a full rebuild. It now opens to Week by default (switch to Month or Year via the toggle).

Date window & drag-to-reschedule

On Upcoming and All tasks there's a date-window control: All / Day / Week / Month, with prev/next arrows and a Today button. It's a separate axis from the layout — it just bounds which dates you see.

With a window active, the view becomes a day-by-day agenda. Drag a task onto another day to reschedule it — its deadline moves to that day (the time of day is kept; undated tasks land at 09:00). The drag grip appears on the left of each row in agenda mode, and the whole row is grabbable; the move is logged in the task's activity.

List & Board

The List / Board toggle is pure layout and is always available.

Time tracking

Every task has a built-in stopwatch in its panel (under Effort):

The Time view (sidebar, g r) rolls everything up into a report across tasks and a selectable period. Time is always your time — entries are per person.

Jarvis — AI chat assistant NEW

The floating sparkles icon in the bottom-right of every page is Jarvis, Projectly's AI assistant. Click it (or press / / Ctrl /) to open the slide-over chat panel.

Talk to it like you would a teammate. Jarvis is a human-like helper for the whole app — plain, natural conversation, not a command syntax. Ask it to do things, look things up, or explain how Projectly works, and it keeps your context as you move around. It sticks to your Projectly world (your tasks, projects, time, people) and the app itself — ask something off-topic and it'll politely point you back rather than make something up. (And it won't introduce itself unless you actually ask who it is.)

It can act, plan, look up — and explain & guide:

Plus deeper look-ups — time logged ("how much time on #42 this week?"), find a person, search across chat threads ("where did we discuss pricing?"), a project's status & risk, team workload, and stale projects.

Ask how the app works. Jarvis knows Projectly end-to-end. Ask "how do I set up Telegram?", "where do I change who gets emails?", or "how do recurring tasks work?" and it answers in plain language and links you straight to the right page. For things it can't do directly (like changing a setting or creating a project), it points you there instead of refusing.

Chat memory — your conversation persists across page reloads and navigation within your session. Click the refresh icon at the top of the panel to clear it.

Behaviour rules — Jarvis is instructed never to invent task IDs, project names, or features. If it can answer from a query, it will; if not, it'll say so plainly and suggest the closest action it can do. AI service hiccups (overloads, rate-limits, expired keys) surface as one-line friendly messages, not raw API errors.

What powers it — Jarvis runs on whichever AI provider/key is resolved by the standard your key → workspace key → workspace-owner-shared key → global admin key chain. No new setup if you've already configured Settings → AI. Every call attributes to you (or the global fallback) on the Admin → AI usage page.

AI: Plan my day, Smart sort, Break down

Three AI features, all bring-your-own-key — set a provider in Settings → AI with your own model and API key. Your key stays in your account and is only used for your requests. No provider configured → Smart sort, Break down and Summarize aren't shown, and Plan my day falls back to a simple deadline-and-priority plan (see below).

Supported providers: Anthropic (Claude), OpenAI, Google Gemini, OpenRouter (one key for many models, no lock-in), and any OpenAI-compatible endpoint (Ollama, LiteLLM, vLLM).

Per-provider key memory NEW: switching providers no longer makes you re-paste a key you've used before. Save a Gemini key, switch to OpenRouter, save a key there, switch back to Gemini — your Gemini key is still there. Each provider remembers its own. The API key field's placeholder tells you the state: "Saved · leave blank to keep this provider's key" when one exists for the selected provider, or "Paste your <Provider> key" when one doesn't.

If your admin has set a global fallback key, the AI features work even without your own key — but the team admin can see all calls attributed to "global" on the Admin AI usage page, so use it conscientiously.

AI usage & cost NEW

Settings → AI now shows a transparent breakdown of what you're spending. Last 30 days, per-call detail, no surprises.

Costs are estimates from a published price table — your provider's invoice is the source of truth. Cached responses (when you trigger the same AI action twice in quick succession) cost zero and are marked as such.

Workspace AI: share one key with your team

Workspace owners can add a shared AI key in Settings → Workspace for the workspace's members to use — useful when the team should share one bill. The workspace's usage breakdown appears in the same place, including a per-member table so the owner can see who's using the shared key.

Projects & tags

Group work into projects (shown in the sidebar with a colour dot) and label tasks with #tags. Both can be used to filter and to scope what you share with collaborators.

Projects live in a workspace (the sidebar list follows the workspace you're in). Tags are personal and global — your own set of labels that spans every workspace, so a tag like #waiting works the same everywhere and your filters keep working across all your work.

Managing tags: Settings → Tags lists every tag with its task count — rename or delete one there. Renaming a tag onto a name you already have merges them (tasks keep the surviving tag). Names are auto-tidied for case and spacing so you never end up with “Bug” and “bug” as two tags.

In any list that spans workspaces (Today, Overdue, Assigned, Overview…) each task row carries a small colour dot + workspace and colour dot + project tag (plus its time estimate, if set), so you always know what a task belongs to at a glance. The project tag is hidden on that project's own page (it'd be redundant there).

Focus a list — two toggles. Under the toolbar of every cross-workspace list (Today / Upcoming / Overdue / Completed / All / Tag) and on the Overview page you'll see:

Default is All workspaces · All tasks (everything you can see). The selection is sticky per view and per user — Today remembers its toggles, All remembers its own, Overview remembers its own, independently. URL-shareable too, so a focus-mode link survives a paste. For a different cut, the Group menu has By workspace (in All-workspaces mode) — each workspace becomes its own collapsible section.

Members (in context): on the Projects page, a project's menu → Members lets the owner add an existing account member straight to that project as Editor or Viewer, change a role, or remove them — no detour through the Members screen. (Inviting someone brand-new by email still happens on Members.) Adding someone to a private project is exactly how they gain access to it.

Pin to the sidebar: on the Projects page, click the star on a project to pin it. The sidebar then shows just your pinned projects — a tidy shortlist — with All projects → always one click away. Pin nothing and the sidebar falls back to listing your projects as before. When a list is longer than fits, the sidebar says +N more → rather than hiding the rest silently.

Archive: the project's menu has Archive. An archived project leaves the sidebar and its open tasks stop nagging in Today, Overdue, Upcoming and the count badges — but nothing is deleted: the work stays in All tasks and on the project's page, and Restore brings it all straight back.

Transfer ownership: on the Projects page, the project's menu has Transfer ownership — hand a project (and all its tasks & subtasks) to a teammate who already has access. Useful when the original owner moves on. You lose ownership once transferred; re-invite yourself as a member if you still need access.

Private projects: edit a project and toggle Private (a lock icon appears). A private project — and all its tasks — is hidden from your account-level members everywhere (lists, board, search, even its direct URL). Only you and people you invite directly to that project can see it. Per-task privacy inside a shared project is not yet supported.

Inviting people

Open Members in the sidebar and choose Invite people. Pick:

They get an email with a link to accept. Invitations expire after 14 days. You can invite several people at once — paste comma- or newline-separated addresses into the email field. For each pending invite the Members page lets you Copy link (share it directly, e.g. over chat), Resend, generate a New link (rotates the token — the old link stops working), or Revoke. Expiry is shown inline and turns amber within 48 h / red once expired.

Members & roles

The Members page lists account members, project members, pending invitations, and the workspaces you've joined. Owners can remove a member (their contributions stay) and members can leave a workspace at any time. Deleting tasks stays owner-only.

Owners can also change a member's role at any time — click the role badge next to a member and pick the new one. No need to remove and re-invite. Roles:

An Admin manages members from the Members page while in that account's workspace (via the switcher). Sending/revoking invitations currently remains with the account owner.

Workspaces NEW

The workspace switcher sits at the very top of the sidebar — it always shows the workspace you're in.

Comments & @mentions NEW

Every task has a comment thread (in the task panel). Comments support:

Notifications

Projectly can reach you four ways: the in-app Inbox, native desktop notifications (Mac / Windows), email, and Telegram (link your account from the Telegram page). You also get reminder and overdue alerts, and an optional daily digest. An iCal feed is available so deadlines can show in your calendar app.

Deadline pings always reach the inbox UPDATED: overdue and reminder notifications now also land in the bell, not just email/Telegram. If you've muted those loud channels (or never set up Telegram), the bell still bumps so nothing slips past.

Focus mode UPDATED: the Focus toggle at the top of the sidebar now genuinely silences email + Telegram for the time you pick — including reminders, the daily & overdue digests, and overdue pings, not just chat. Your in-app Inbox keeps recording everything, and the mute clears itself automatically when the timer runs out.

Chat notification rules UPDATED

Comments in a task chat fan out by channel based on why you're being told. This is intentional — busy threads were drowning watchers in email, and the team flagged it as the single biggest annoyance. As of the May 2026 batch:

Why you're notifiedInboxDesktopEmailTelegram
Someone @mentioned you
Someone replied to your message
You're a watcher on the task

Email and Telegram are reserved for direct @mentions — the loud channels stay calm and useful. The in-app Inbox plus the desktop OS toast cover everything else without the noise.

Desktop notifications NEW

If you're running the desktop app (Mac / Windows) — or have projectly.work open in a modern browser tab — every chat ping you're scoped to fires a native OS toast within ~1 second. Click the toast and it focuses Projectly and jumps to the exact message.

First time you launch the desktop app, you need to grant notification permission. Click anywhere inside the app once — macOS or Windows will prompt: "Projectly would like to send you notifications" → click Allow. Done — works on every future launch without re-asking.

Mac tip: make notifications stay until you dismiss them. By default macOS auto-hides notifications after a few seconds (Banner style). To make them sticky until you click them away (Alert style):

  1. Open System Settings → Notifications
  2. Scroll the app list and click Projectly
  3. Change Alert style from Banners to Alerts

Windows: toasts collect in Action Center (press Win+A) so a missed one stays around until you clear it. To tweak: Settings → System → Notifications → Projectly.

The in-app Inbox bell always logs the notification too — so even if your OS muted everything, nothing is lost.

There's also an in-app Inbox — the bell near the top of the sidebar. It's an unread queue: it shows only what still needs you (a task assigned to you, a comment or @mention, a follow-up on something you follow), with a live count. Opening an item jumps to it and removes it from the bell; Mark all read clears the panel to “You're all caught up.” It's intentionally not a log — the thing each notification points to (the task, the changelog) stays reachable normally.

Admin announcements: admins can post a heads-up (a shipped feature, planned downtime) to everyone's Inbox from Admin → Announce. It's in-app only by design — never emailed — so it can't affect mail deliverability. It's always a manual send; there is no automatic per-deploy notification.

You're also kept in the loop on tasks you follow (you follow a task when you comment on it, are @mentioned, are assigned it, own it, or click the Follow button at the top of the task panel): status changes, reminders, the once-when-it-goes-overdue ping, the daily nag while it stays overdue, and dependency signals — when a task you follow becomes ready to start (its last blocker is done) or is put on the critical path (something now waits on it). These all ride the same follow/task-update alert setting — there's nothing extra to switch on. Uninvolved workspace teammates aren't pinged about each other's deadlines — only the followers of each specific task are.

In Settings → Notifications → Team alerts you can fine-tune email and Telegram per event (task assigned to you · comments/@mentions · follow/task-update alerts) — turn off the noisy channels and the in-app Inbox still always gets a copy (it can't be muted; you just clear it as you go).

Team workload NEW

The Workload view (sidebar → Insights) shows, for everyone in your workspace, how much is on their plate right now:

It's read-only and respects access: you only ever see work in workspaces you can access.

Analytics NEW

The Analytics view (sidebar, shortcut g i) shows your output and the team's over a selectable window — Week / Month / Quarter / Year, with prev/next and a Now jump.

Everything respects access: private projects and other people's accounts never leak into the numbers.

Activity feed NEW

The Activity view (sidebar → Workspace) is a chronological "who did what" stream across every task you can see — created, completed, reassigned, rescheduled, commented, and more. Filter by member or project, and Load more to go further back. Like everything else, it never shows activity from private projects or accounts you can't access.

Feedback NEW

Hit a bug or want a feature? Open the account menu (bottom-left, your name) → Send feedback and file it with a type, title and description. You see your own requests, their status (Open → Planned → In progress → Done / Declined) and a reply thread. Admins see everything, update status and reply. Every event — new request, reply, status change — notifies the whole thread: the requester and every admin, minus whoever just acted (email + in-app Inbox), so the admin team stays in sync and nothing gets lost.

Settings & your account

Reach Settings from the account menu (bottom-left, your name):

Telegram: the Telegram page (account menu) links your chat so reminders, digests and alerts can reach you there; unlink anytime.

The account menu (bottom-left) is also where you reach Settings, Telegram, this User guide and What's new — the release log of everything that has shipped.