NovaPlan is a browser-based project planner. Everything runs locally in your browser — no sign-up, no server, no internet required after the first load. Your data is saved automatically in your browser's storage and never leaves your device.
Use it to plan projects, track tasks, manage sprints, visualise timelines on a Gantt chart, spot schedule risks early, and share progress as Excel or GIF exports.
Load Template… in the top bar and choose Agile Sprint Plan to see a fully built example immediately.Load Template… to start from a pre-built plan, or click New Task (blue button) to add a blank task.+ button at the far right of any row to add a child task underneath it. The parent row rolls up all child values automatically.View dropdown to see your plan as a Gantt chart, a Kanban board, a sprint board, a workload table, or a dashboard. Split shows the grid and Gantt side by side.Export to download a backup (SQL), a spreadsheet (Excel), or a shareable Gantt image (GIF).The toolbar adapts to your screen size — on narrower displays, controls wrap to a second row or allow horizontal scrolling to keep all buttons accessible.
| Control | What it does |
|---|---|
Load Template… | Loads a ready-made plan: Agile Sprint Plan, CI/CD Pipeline Setup, Product Launch, or Bug Triage Workflow. Choose Merge to add tasks alongside existing ones, or Replace to start fresh. |
New Task | Creates one blank top-level task starting today. The title cell opens for editing immediately. |
Delete Selected | Deletes all checked (selected) tasks and their subtasks. Only active when at least one checkbox is ticked. |
View | Switches between 8 views: Split, Grid, Gantt, Board, Sprint, Dashboard, Workload, RAID (see Views section below). |
Filter | Shows a subset of tasks — e.g. only Slipped, only Milestones, only Critical Path tasks (see Filtering section). |
Group By | Re-orders and groups rows by Status, Sprint, Resource, Priority, Task Type, or Slippage. |
Export | Downloads your plan in SQL, CSV, Jira CSV, Project XML, Excel, or Gantt GIF format. |
Tools | Advanced features: Calendar, Choose Columns, Baselines, Sprints, Saved Views, Scenarios, RAID, Change Log, Custom Fields, Conditional Formatting, Integrations, Gantt Labels, Gantt Lines, and Reset Data. The dropdown overlays the WBS grid and Gantt timeline and smart-positions itself so it is always fully visible, even when the toolbar wraps to a second row on narrower screens. |
Saved Views | Pre-set view configurations (mode + filter + grouping). Six defaults included; save your own via Tools > Save View. |
Import SQL/CSV | Loads tasks from a CSV file or restores a full database from a previously exported SQL file. |
Help | Opens this dialog. |
| 🌙 / ☀️ | Toggles between dark and light theme. Your preference is remembered. |
New Task to add a root-level task. It starts today with 1 working day duration.+ at the end of any row to add a child (subtask) directly under that row. The parent automatically becomes a summary row.Load Template… for a fully wired plan with dates, types, resources, and dependencies already set.Click any underlined or highlighted cell to edit it. A text input, date picker, or dropdown appears. Press Enter to confirm, Escape to cancel. Most cells save on click-away.
Click × at the end of the row. If the task has subtasks, all subtasks are deleted too. For bulk deletion, tick the checkboxes (first column) and click Delete Selected.
NovaPlan supports unlimited nesting. Each task has a WBS code (e.g. 1, 1.1, 1.1.2) that shows its position in the hierarchy.
+ on any row to add a subtask beneath it. The parent row turns bold — it is now a summary row.Every task has a type that sets its default Gantt bar colour and helps categorise work. Click the Type cell to change it. To override the colour for an individual task, use the Color column swatch — see Custom Bar Colours below.
| Type | Colour | When to use |
|---|---|---|
| 🎯 Epic | Purple | Large initiative spanning multiple stories or features |
| 📖 Story | Cyan | A user story or functional requirement |
| ✅ Task | Blue | Generic work item (default for new tasks) |
| ⚡ Feature | Teal | New capability being built |
| 🐛 Bug | Red | Defect or issue to fix |
| 🔬 Spike | Emerald | Research or investigation with time-boxed outcome |
| 🧪 Test | Yellow | QA, testing, or validation work |
| 📚 Docs | Gray | Documentation, runbooks, or knowledge base updates |
| 🏗️ Infra | Orange | Infrastructure, DevOps, or platform work |
| 👁️ Review | Violet | Code review, design review, or approval |
| 🚀 Deploy | Purple | Release or deployment activity |
| 🔧 Maint | Amber | Maintenance, refactoring, or tech debt |
| 📋 Planning | Blue | Planning ceremonies, meetings, kickoffs |
The Color column lets you give any task its own Gantt bar colour, overriding its task-type colour. This is handy for highlighting a workstream, a team, or a release train in a single glance.
Color column for the task you want to recolour.Color column), so they survive backup and restore.NovaPlan includes several professional-grade UX enhancements to ensure a smooth experience across all screen sizes and viewport configurations.
All modal dialogs (Calendar Settings, Custom Fields, Baselines, etc.) now feature:
The top toolbar adapts intelligently to your screen size:
Critical UI elements (Help button, Theme switcher, Storage status) are protected with flex-shrink: 0 to prevent compression or overlap.
position: fixed so it always appears above the WBS grid, Gantt timeline, and every other element on the pageThese are the scheduled dates for a task. Click either cell to open a date picker. On summary rows, start and end roll up automatically from child tasks (you cannot edit them directly unless you check Manually Scheduled).
Duration is read-only and calculated from the start/end dates using the working calendar (e.g. 3d 4h means three working days and four hours). You can also type hours directly into the Hours column.
Fill these in as work progresses. They're compared with planned dates to calculate slippage. Actual date bars appear below the Gantt bar in a lighter colour.
By default the working week is Monday–Friday, 8 hours per day. Go to Tools > Calendar Settings to change:
7.5 for a 7.5-hour day1,2,3,4,5 = Mon–Fri; 0 = Sunday; 6 = SaturdayYYYY-MM-DD separated by commasEnter a number from 0 to 100 in the % column. NovaPlan automatically updates the Status and Remaining Hours fields to match.
Four values: Not Started, In Progress, Blocked, Done. Progress drives status automatically, but you can override it manually.
| Progress | Auto Status |
|---|---|
| 0% | Not Started |
| 1–99% | In Progress |
| 100% | Done |
Summary (parent) rows inherit the worst status from their children — if any child is Blocked, the parent shows Blocked.
Hours — planned effortActual h — hours logged so farRemain h — hours left to complete (auto-calculated from progress, editable)EAC h — Estimate at Completion = Actual + Remaining (read-only)Dependencies define which tasks must happen before others. Enter them in the Predecessors column using WBS codes.
{WBS code}{Type}{Lag} — all parts except WBS are optional.
| Example | Meaning |
|---|---|
2 | Task 2 must finish before this task starts (Finish-to-Start, no lag) |
1.2 | Subtask 1.2 must finish before this starts |
2FS+2d | Task 2 must finish, then wait 2 more working days before this starts |
3SS | This task must start at the same time as task 3 (Start-to-Start) |
4FF-1d | This task must finish 1 day before task 4 finishes (Finish-to-Finish with lead) |
1,3FS+4h | Multiple predecessors separated by commas |
| Type | Full name | Meaning |
|---|---|---|
FS | Finish-to-Start | Default. Predecessor must finish before successor starts. |
SS | Start-to-Start | Both tasks start at the same time. |
FF | Finish-to-Finish | Both tasks finish at the same time. |
SF | Start-to-Finish | Predecessor starts before successor can finish. Rare. |
Lag is in working days (d) or hours (h). Positive lag = gap; negative lag = overlap (lead).
The Gantt chart shows each task as a horizontal bar spanning its planned start to end date. The bars align with the task rows in the grid.
| Visual element | What it means |
|---|---|
| Coloured bar | Planned schedule. Colour matches the task type. |
| Darker fill inside bar | Completed portion (progress %). |
| Thin bar below main bar | Actual start/end dates (shown in white or red if slipped). |
| Thin gray bar below | Baseline dates (where the task was when you set the baseline). |
| Diamond shape | Milestone (zero-duration checkpoint). |
| Red stroke/border on bar | Task is on the Critical Path or has slipped. |
| Orange stroke on bar | Task is at risk of slipping. |
| Cyan glow on bar | Task has been starred (★ highlighted). |
| Shaded columns | Non-working days (weekends and holidays). |
| Curved arrows | Dependencies between tasks. |
Use the − and + buttons in the Gantt panel header to zoom out or in. Eight levels from 25% (very wide view) to 400% (very detailed daily view). The date tick spacing adjusts automatically.
Hover over any Gantt bar to see a tooltip with full task details: planned dates, actual dates, duration, float, progress, sprint, resource, Jira link, and baseline finish.
View → Gantt) the timeline takes the full width, making it ideal for presenting to stakeholders.| View | Best for | How to use |
|---|---|---|
| Split | Day-to-day management | Grid on the left, Gantt on the right. The default view. |
| Grid | Data entry, bulk editing | Full-width task table. Edit many fields quickly without the Gantt. |
| Gantt | Schedule presentations | Full-width Gantt. Great for sharing with stakeholders. |
| Board | Kanban workflow | Drag-and-drop cards grouped by status, sprint, resource, or type. |
| Sprint | Sprint planning | Board pinned to sprint grouping. Shows sprint hours and team size. |
| Dashboard | Project health at a glance | 12 metric cards: critical tasks, slippage, work remaining, RAID count, etc. |
| Workload | Resource balancing | Table showing each person's total hours, max daily load, and overloaded days. |
| RAID | Risk & change tracking | Two tables: RAID log (Risks, Assumptions, Issues, Decisions) and Change Log. |
Saved Views dropdown (six defaults are pre-loaded, or save your own via Tools > Save View).The Filter dropdown narrows what is shown in the grid and Gantt without deleting anything.
| Filter | Shows |
|---|---|
| All Tasks | Everything (default) |
| Slipped | Tasks where actual dates are later than planned |
| At Risk | Tasks whose planned end has passed but are not 100% done |
| Milestones | Tasks marked with ◆ |
| Current Sprint | Tasks in the active sprint |
| Future Sprints | Tasks in sprints that haven't started yet |
| Backlog | Tasks not assigned to any sprint |
| Completed | Tasks at 100% or status Done |
| Blocked | Tasks with status Blocked |
| Critical Path | Tasks with zero float (any delay = project delay) |
| Near Critical | Tasks with float ≤ 2 days |
| Unassigned | Tasks with no resource set |
| Baseline Variance | Tasks that have drifted from the saved baseline |
The Group By dropdown sorts and groups tasks by Status, Sprint, Resource, Priority, Task Type, or Slippage. Set it back to No Grouping to return to WBS order.
Row backgrounds give you instant health signals without looking at columns individually.
| Row colour | Meaning |
|---|---|
| Red tint | Slipped — actual start or end date is later than planned. |
| Orange tint | At Risk — planned end date has passed but the task isn't done. |
| Cyan left bar | Highlighted (★) — manually flagged for attention. |
| Red left bar only | Critical Path — zero float; any delay pushes the project end date. |
| Bold | Summary row — this task has subtasks; values are rolled up. |
| ◆ prefix in title | Milestone — a zero-duration checkpoint; shown as a diamond on the Gantt. |
| Yellow text in Var columns | Baseline variance — current dates differ from the saved baseline. |
Tools > Add Sprint.Sprint column dropdown for all tasks.Click the Sprint cell in any task row and choose a sprint from the dropdown. Tasks with no sprint assigned show as Backlog.
Switch to View → Sprint to see a Kanban board with one column per sprint plus a Backlog column. Drag cards between columns to reassign tasks to different sprints. The panel header shows total sprint hours and the number of resources allocated.
Filter → Current Sprint in Split view to focus the grid and Gantt on just this sprint's tasks.A baseline is a snapshot of your planned schedule saved at a point in time. As the project progresses, you can see exactly how much tasks have slipped compared to the original plan.
Tools > Set Baseline.After setting a baseline, the grid shows two new columns: Base End (the baseline finish date) and Finish Var (the difference in days — positive means later than planned). On the Gantt chart, a thin gray bar below each task bar shows the baseline position.
Tools > View Baseline — see the active baseline name and how many tasks have variance.Tools > Clear Baseline — deactivates the baseline (historical data is kept, but variance is no longer shown).Filter → Baseline Variance in weekly reviews to spot drifting tasks.Switch to View → Workload to see a resource allocation summary. For each person or team:
| Column | Meaning |
|---|---|
| Resource | Person or team name (from the Resource column on tasks) |
| Tasks | Number of tasks assigned |
| Total Hours | Sum of all planned hours across their tasks |
| Max Daily Load | The busiest single working day for this person |
| Overloaded Days | Number of days where their load exceeds the calendar's hours-per-day limit |
Rows with overloaded days are listed first — they need attention. Fix overloads by adjusting task dates, splitting tasks, or reassigning resources.
Switch to View → Board to see tasks as cards arranged in columns. The Group By dropdown controls what the columns represent.
Drag a card from one column to another. The task's field updates automatically:
| Grouped by | What changes when you drag |
|---|---|
| Status | Task status updates (e.g. drag to "Done" → progress set to 100%) |
| Priority | Task priority updates |
| Sprint | Task moves to that sprint (or Backlog) |
| Resource | Task is reassigned to that person |
| Task Type | Task type changes to match the column |
Group By → Status for a classic Kanban board. Use Group By → Sprint for sprint planning (same as Sprint view). Use Group By → Resource to quickly redistribute work.Switch to View → Dashboard for a summary of 12 project health metrics:
| Metric | What it counts |
|---|---|
| Total Tasks | All leaf (non-summary) tasks visible under the current filter |
| Critical Tasks | Tasks with zero float (on the critical path) |
| Near Critical | Tasks with ≤ 2 days of float |
| Slipped | Tasks where actual dates exceed planned dates |
| At Risk | Tasks past their planned end but not complete |
| Baseline Variance | Tasks that have drifted from the baseline |
| Overloaded Resources | Count of people with at least one overallocated day |
| Open RAID Items | Risks, issues, and assumptions not yet closed |
| Actual Work | Total hours logged across all tasks |
| Remaining Work | Total remaining hours still to be done |
| Scenarios | Number of saved what-if scenario snapshots |
| Project Finish | The latest planned end date across all scheduled tasks |
RAID stands for Risks, Assumptions, Issues, Dependencies, and Decisions. Switch to View → RAID to see all entries.
Tools > Add RAID Item.View → RAID with status Open.Use Tools > Log Change to record scope changes, decisions, or anything else you want an audit trail for. Each entry is timestamped automatically. The Change Log table appears below the RAID table in the RAID view and in the Excel export.
Scenarios let you snapshot your current plan and then experiment safely. For example: "what if we move the launch back two weeks?"
Tools > Save Scenario and give it a name (e.g. Original Plan).Tools > Compare Scenario, select Original Plan, and see:
A saved view remembers a combination of View mode + Filter + Group By. Six defaults are pre-loaded:
| Saved view | What it shows |
|---|---|
| Default | Split view, all tasks, no grouping |
| Slipped Tasks | Split view, slipped tasks only |
| Milestones | Gantt view, milestones only |
| Current Sprint | Sprint view, current sprint tasks |
| Resource Load | Board view, all tasks grouped by resource |
| Baseline Variance | Split view, tasks with variance from baseline |
To save your own view: set the View, Filter, and Group By to your preference, then go to Tools > Save View and give it a name. It appears in the Saved Views dropdown immediately.
Click Import SQL/CSV and select a .csv file. NovaPlan recognises many column name variations:
| Field | Accepted CSV column names |
|---|---|
| Task name | Task Name, Title, Summary, Name |
| Start date | Planned Start Date, Start Date, Start, start_date |
| End date | Planned End Date, Due Date, Finish, End, end_date |
| Progress | % Complete, Progress, progress |
| Resource | Resource, Assignee, resource |
| Status | Status, status |
| Priority | Priority, priority |
| Milestone | Milestone, is_milestone (yes/true/1) |
CSV import appends rows to your existing plan. WBS codes are assigned automatically if missing.
Click Import SQL/CSV and select a .sql file previously exported from NovaPlan. This replaces your entire database. All tasks, sprints, baselines, RAID items, and change logs are restored.
Click the Export button to open the export menu. All exports reflect the currently visible tasks (apply a filter first to export a subset).
| Format | Best for | What it contains |
|---|---|---|
| Export SQL | Backup & restore | Full database as SQL — all tasks, sprints, baselines, RAID, scenarios, change logs |
| Export CSV | Spreadsheet import | Task rows with all columns in CSV format |
| Export Jira CSV | Jira import | Formatted for Jira bulk import: issue type, summary, assignee, dates, priority, labels |
| Export Project XML | MS Project | Microsoft Project–compatible XML with WBS, durations, resources, and dependencies |
| Export Excel | Reporting & sharing | 7-sheet workbook: Tasks, Dependencies, Summary, Workload, RAID, Change Log, Scenarios |
| Export Gantt GIF | Presentations | Animated or static image of the Gantt chart — choose current viewport, full timeline, or animated pan |
Click Load Template… and choose one of four templates. Each comes with tasks, types, resources, and sequential dependencies already set up relative to today's date.
| Template | Tasks | Good for |
|---|---|---|
| Agile Sprint Plan | 8 tasks — Sprint Planning → Refinement → Development → Code Review → Testing → Demo → Retro | A single agile sprint |
| CI/CD Pipeline Setup | 6 tasks — Source Control → Build Automation → Test Automation → Staging → Production → Monitoring | DevOps & platform projects |
| Product Launch | 6 tasks — Scope → Landing Page → Beta Feedback → Release Candidate → Launch Comms → Monitoring | Software or product launches |
| Bug Triage Workflow | 6 tasks — Collect → Reproduce → Prioritise → Fix → Regression Test → Patch Release | Bug fix sprints |
When loading a template you can choose Merge (adds template tasks alongside yours) or Replace (clears everything and loads fresh).
NovaPlan auto-selects the best available storage for your browser. The status badge in the top-right corner shows the active mode:
| Badge | When it activates | Notes |
|---|---|---|
| 💾 OPFS | HTTPS or localhost | Best. Private browser file — fast, no size limit, auto-saved. |
| 🗄️ IndexedDB | file:// or older browsers | Good. Browser database — binary storage, large capacity, auto-saved. Works when opening the HTML file directly. |
| ⚠️ localStorage | IndexedDB blocked | Limited. ~5 MB cap, base64 encoded. Export SQL regularly. |
| 🔴 In-Memory | All storage blocked | Data lost on page close. Export SQL immediately. |
Data is saved after every edit automatically. To be safe, export an SQL backup regularly — especially before clearing browser storage or switching devices.
The task grid has many columns. To keep it focused, you can choose exactly which ones appear.
Tools > Choose Columns….The Selection checkbox, Task Name, and Actions columns are always shown so you can never lose core controls. Your column choice is saved with the plan and persists across sessions.
| Column | Editable | Description |
|---|---|---|
☐ (checkbox) | — | Select this row for bulk deletion. Tick multiple rows, then click Delete Selected. |
★ | ✓ | Highlight toggle. Adds a cyan left-bar accent and a glow on the Gantt bar. Flag key tasks for attention. |
◆ | ✓ | Milestone toggle. Makes the task a zero-duration checkpoint; renders a diamond on the Gantt. |
WBS | — | Work Breakdown Structure code (e.g. 1.2.3). Auto-assigned based on hierarchy position. Use it as a reference in dependency syntax. |
Type | ✓ | Task category. Sets the default Gantt bar colour. See Task Types section for the full list. |
Color | ✓ | Custom Gantt bar colour. Click the swatch to pick any colour — it overrides the task-type colour on the Gantt chart and Board card. Click the ✕ to revert to the task-type colour. |
Task Name | ✓ | The task title. Click to rename. Parent tasks show ▾/▸ to collapse/expand subtasks. Indentation shows hierarchy depth. |
Plan Start | ✓ | Planned start date. Summary rows show the earliest child start (read-only). |
Plan End | ✓ | Planned finish date. Summary rows show the latest child end (read-only). |
Actual Start | ✓ | Date work actually began. Compared with Plan Start to detect slippage. |
Actual End | ✓ | Date work actually finished. Compared with Plan End to detect slippage. |
Dur | — | Working duration, e.g. 3d 4h. Calculated from Plan Start/End using the working calendar. |
Hours | ✓ | Planned effort in hours. Summary rows show the sum of child hours. |
Actual h | ✓ | Hours of work already done against this task. |
Remain h | ✓ | Estimated hours still needed. Auto-updated when you change progress %; editable directly. |
EAC h | — | Estimate at Completion = Actual h + Remain h. A forecast of total effort. |
% | ✓ | Percentage complete (0–100). Drives Status and Remain h automatically. |
Status | ✓ | Not Started / In Progress / Blocked / Done. Auto-set by progress but can be overridden. Parent rows inherit the worst child status. |
Priority | ✓ | Low / Medium / High / Critical. Shown on Board cards; used for grouping and filtering. |
Crit | — | Critical Path flag. Critical = zero float; Near = ≤ 2 days float. Gantt bar gets a red/orange stroke. |
Float | — | Total float in calendar days. The amount a task can slip before it delays the project end. |
Sprint | ✓ | Assigns the task to a sprint. Tasks with no sprint are in the Backlog. |
Slip | — | Slippage flag: Slipped (actual dates exceeded planned) or At risk (planned end passed, <100% done). |
Base End | — | Baseline finish date. Only shown when a baseline is active. |
Finish Var | — | Days between current Plan End and Base End. Positive = later than baseline. |
Predecessors | ✓ | Comma-separated dependency list. Format: WBS[Type][Lag] e.g. 1.2FS+2d. See Dependencies section. |
Resource | ✓ | Person or team assigned. Free text. Used in Workload view for capacity analysis. |
Tags | ✓ | Comma-separated labels (e.g. backend,api,v2). Used for grouping and filtering. |
Jira | ✓ | Full URL to a Jira issue. Renders as a clickable Open Jira link in the grid and Excel export. |
Comments | ✓ | Free-text notes. Shown as a truncated preview in the grid; click to open a full textarea. |
Actions | — | + adds a subtask beneath this row. × deletes this task and all its subtasks. |
Filter to focus on what matters (e.g. slipped tasks, current sprint) instead of scrolling through hundreds of rows.Jira column. The Jira CSV export lets you bulk-import the plan into Jira as new issues.