Opening the app
Double-click gantora.html in Edge or Chrome. No installer, no server, and it works with the network unplugged.
Help
Gantora is a single HTML file, and this help page works the same way: one page, four languages, searchable. No sign-in, nothing to download.
Gantora is one file. What follows takes five minutes.
Double-click gantora.html in Edge or Chrome. No installer, no server, and it works with the network unplugged.
On first run the browser asks which folder holds your plans. You can grant the permission again later from the 📁 DB menu.
Pick a .gantora file from the dropdown, or create one with New file… in the DB menu. Free works with a single file.
The app asks your name on the first edit so changes are attributed. It can be skipped, and changed later in About.
The folder and the last file are remembered, so you do not pick them again — you only confirm the permission with one click.
Two bars at the top; everything below them is the plan.
The fixed top bar: DB menu, file picker, Save, undo and redo, New task, the view switcher, the Lists menu and the save-state dot.
One indicator instead of the old Loaded/Saved wording. It shows words only for unsaved changes, read-only, combined view or folder opened.
The second bar carries the current view's own controls — sort, filters, zoom, breadcrumb and the search box. A tab folds it away.
Below 820 pixels the layout stacks, filters start folded, and the view switcher becomes a bottom navigation bar.
Ctrl+S saves, Ctrl+Z and Ctrl+Y undo and redo, Ctrl+F searches, Enter commits and Esc discards an inline edit.
The same plan, read several ways. The chart is not a separately maintained picture.


One screen on the plan's health: nine KPI cards, progress against the promise, trends, milestone health and team workload.
An Excel-like grid of every task. Predecessor IDs are clickable links, and columns can be hidden and rearranged.
The zoomable timeline you edit the plan in: drag a bar to reschedule, drag its end to resize, drop it on a row to group it.
The same timeline at three scales: a helicopter view of the whole project, a day view, and an hour-resolved window.
One row per person, one column per day, hours booked in the cell. Overload is visible at a glance.
The "what am I on this week" board: this week, next week, later — scoped to a team or one person.
A management report on one page: what is blocked, what slipped, what runs this week and next — ready to hand over, copies into Excel by the column.
The cutover watched live: nothing can be edited while it is open, and the file is re-read as it changes on disk.
The plan as a picture: one band per main group, one lane per subgroup, and the work inside them — for projecting, not editing.
Zoom level, scale, filters and scroll position can be starred and saved, and they travel inside the plan file.
What you type is a row. What you drag is a date.
Double-click a list row to edit in place. Enter commits, Esc discards, Tab moves to the next field.
The pencil button opens the complete task editor: dates, people, status, notes, labels and the advanced settings.
Use the New task button or the row at the bottom of the list. A new row is placed by its dates, not appended.
In Design and Zoom you reschedule a task by grabbing its bar and change its length by dragging the end — no date needs typing.
Dragging a group's bar moves the whole group with its members; dragging a milestone's diamond sets the date it aims at.
Duplicate places a copy below the original with references remapped. Deleting a row also removes dependencies pointing at it.
Set start, end, team, system, owner or status across many selected rows at once. Fields left blank are untouched.
A milestone is a date the plan aims at; an event is a date the plan works around — a holiday, a freeze, a shutdown.
The last thirty changes can be undone, per file. Search covers name, ID, team, system, people and notes.
A plan is not a list but a structure. The dates follow from it.
Name the predecessor by its name, not its ID — the app looks the ID up and keeps it correct afterwards.
A group is a row that holds other rows. Its dates come from its members, and it nests up to four levels deep.
Drag a row onto another to put it in that group; drag it onto the ID column to take it out again.
The caret folds a group's members away. The folded state travels with the plan file, not with the browser.
Show only the rows at one depth of the plan, or strip the groups out and show tasks only.
While dragging a bar, a live tag shows how many dependent tasks would move and how far the project end would slip.
A date becomes a commitment when the work starts — not when you typed it.
Seven mutually exclusive states — done, blocked, on hold, overdue, in progress, upcoming, late start — colour every chart.
Every task carries a status and, beside it, a dated trail of when it changed and who changed it.
The baseline is not set by hand: it is the first end date ever recorded. Drift is the distance from it.
Compares the promised schedule with the reality computed from status history, and draws a projected trend line beside it.
Status and overdue trends for the last eight weeks, reconstructed from history rather than from stored snapshots.
Free-text tags on any row — risk, wave two, anything. They filter, and there is no list to maintain.
You send a plan out and get one back. This is about what happens next.
Every row gets a permanent hidden identifier. Merging matches on that, not on the visible ID, which changes with the dates.
Compare & merge in the DB menu gives four outcomes per row: same, differs, only here, only there.
The app suggests the more recently modified side, but never decides for you — there is no common ancestor to measure against.
Take all theirs, keep all mine, take the newer side row by row, add all or add none — with one click.
If the file changed since you opened it, the save stops, names who got there first, and offers the comparison.
Your plans are text files. You can open them without the app at any time.
Plain text separated by the pipe character, in the DB folder. Older .csv plans still open unchanged.
A task's number is its position in the plan sorted by date, not a permanent label. That is why everything references the UID underneath.
Every row carries its creation and modification time and the name of whoever changed it — which is what makes merging meaningful.
Lines at the end of the file starting with a hash store the column layout, the folded groups and the saved views.
Excel opens it with Data → From Text, and because it is text it diffs sensibly in version control.
The DB menu’s “Import…” reads three kinds of file: XML Spreadsheet 2003 (.xml — what Gantora exports too), an Excel web page (.html / .xls), and Microsoft Project XML (.xml). The rows are added to the plan you have open; the file they came from is left untouched.
In Project: File → Save As → XML format (*.xml). The binary .mpp is not read — the XML is what Project itself writes. What comes across: task names, start and finish, the hierarchy (from Project’s outline levels), the dependencies, the milestones and the notes. What does not: resources and assignments, calendars, costs, baselines and constraint types — those are simply absent rather than quietly turned into something else.
Columns are matched by their header names — Task, Activity, Start, End, Finish, Predecessors, Team, Accountable and the rest, in English and Hungarian, with or without accents. Anything it cannot place is listed in the preview before a single row is added. Nesting comes either from Level1 / Level2… columns (how Excel exports indentation) or from Project’s own outline levels.
Gantora never talks to a cloud service. The provider's own client does the syncing.
Put the DB folder inside a folder synced by Google Drive, OneDrive or Dropbox, and two machines work on the same plan.
A required step: Available offline in Drive, Always keep on this device in OneDrive, Smart Sync off for the folder in Dropbox.
The app checks that the file's size and timestamp have settled, and refuses to open one that is still arriving.
If the sync client creates a second copy of its own, compare & merge folds it back into the original.
The second place plans can live: a Dropbox folder — shared with others, if you like. In the Free edition too, with one plan.
DB → ☁️ Dropbox…: a button opens dropbox.com in a new tab, where you allow access and are shown a code; paste it back and press Connect. There is no redirect — a page opened by double-clicking has no address Dropbox could send you back to; the code is the way back.
“☁️ Dropbox…” in the DB menu opens this: two steps, a minute.

Step 1 opens dropbox.com. This warning appears because few people use Gantora yet — it is not a fault report.

Here you see exactly what it gets access to: the files, the sharing settings, and the account name. Nothing else.

Dropbox does not redirect back; it shows a code. That is because Gantora is a file on your machine — there is no website to return to.

Paste that code into step 2, and “Connect” does the rest.

Then the folder: the ones shared with you from a list, your own by path. Plans live in its /DB subfolder.

Nothing is kept between sessions unless you ask (see Staying connected): next time you connect again. On a page opened by double-clicking every local HTML file shares one origin, so anything Gantora kept, another local file could read — which is why what is kept, when you ask, is encrypted and is noise without the password.
Optional, behind a password: once connected and on a folder, a password of your own (not your Dropbox password) and “Save the connection”. The connection and the folder are kept encrypted on this computer (PBKDF2-SHA256, AES-GCM); without the password they are noise. Next time, one password reconnects and opens the folder — no trip to dropbox.com. “Forget it” removes it; a forgotten password costs one more trip to dropbox.com, nothing else.
The offer appears AFTER the folder opens — once you can see that it works. The password is yours to choose, and it is NOT your Dropbox password.

Saved. The password opens it next time, and opens the folder with it.

On the next launch this is all there is. If you have forgotten the password, “Forget it” removes it — nothing on Dropbox changes — and the two steps connect you afresh.

Once connected, the dialog lists the account's shared folders, or you type a path in your own Dropbox. If the folder is not called DB, the plans go in a DB folder inside it — made if it is not there. A shared folder is addressed by its namespace id, the same for every member: two people choosing the same folder are on the same plans.
Every save goes straight to Dropbox — the automatic ones gathered, two and a half seconds after the last change; the Save button and Ctrl+S at once. The dot stays amber until the write has landed and breathes while it is in the air. A shared folder's write limit (429) is waited out and retried.
Every write is a compare-and-swap on Dropbox's own version id: if somebody saved since you read, Dropbox itself refuses the write — nothing is written — and the same conflict dialog opens as on a synced local folder: merge, keep a copy, or overwrite. In the merge, keeping all of yours is a decision too: your version is written over theirs.
Dropbox mode is online mode: there is no local cache. When a request cannot reach Dropbox, a save says so once ("nothing was lost"), asks nothing, keeps the plan in memory with the dot amber, and tries again every fifteen seconds — or at once when the browser says the network is back: "Back online — saved".
With two places, the start asks: local DB folder or Dropbox — with a tick to remember. About → Default open: Ask each time, Dropbox, or Local DB folder. In local-folder mode Gantora still makes no network request of any kind.
Plans are plain text — an AI assistant can read and write them.
Gantora plans are plain text files, so an AI assistant can read and write them. It is not tied to one assistant: the format's description is public and can be handed to any of them. A downloadable description (a skill) teaches your assistant the format and the rules — there is nothing to install.
Read https://gantora.net/skill.md IN FULL. If you cannot read it, do not guess — ask me. Then help me build a schedule.The smallest integration there is: paste this into any web-capable AI — no install, no account.
If your plans live in a Dropbox folder, connect Dropbox in your assistant and hand over the skill. That is all: you can say “build a schedule into my DB folder”. Both Claude and ChatGPT do this today — each of them reads AND writes the folder. The pictures are Claude's, because that is what it looks like there; in ChatGPT it is the same three steps with different buttons.
In Claude's settings: Connectors → Add → Browse connectors.

Find Dropbox, and the + connects it. Dropbox then asks what you are giving access to — you allow it there.

The green tick is the answer: Dropbox is connected. From here you can say “build a schedule into my DB folder”.

There are two roads. On the DEEP one the assistant opens your Dropbox folder itself, reading and writing in it — Claude and ChatGPT both do this today. On the CLIPBOARD one the plan travels there and back in a message; that works with every assistant and needs nothing connected. Copilot has no Dropbox connection, so only the clipboard road is open there. Gemini takes the clipboard road because it accepts no text from the address bar — the app knows this and puts everything in one message for it.
The assistant asks first — what you are building, who does it, what waits on what — and then it writes. Waiting times (drying, delivery) go in as rows of their own: they are what shows why “two weeks of work” takes eight.
Drop the .gantora file into any conversation and ask: is this realistic, what is missing. Nothing needs connecting for this — the file is plain text, so any assistant can read it.
What you edit is yours — the AI touches it only when asked, and always re-reads it first. A plan the AI keeps (a status board, say) wears a 🤖 mark in its name, and the app opens it read-only — you can ask for a copy any time.
The format description is public: SKILL.md is downloadable and can be handed to any AI. For deeper integration (another AI client, a local folder, rules enforced in code) there is the MCP server — one file, zero dependencies.
The same single file, in two editions.
Five views — Dashboard, List, Design, Zoom and Resources — over a single plan file, under a fixed name. The AI button and Dropbox are in it too, along with read-only mode, Excel and MS Project both ways, and shareable pages. The line is one sentence: what is on the view switcher is free, what is behind the ⠿ menu is paid.
Everything in Free, plus the five views behind the ⠿ menu — Team, Report, Cockpit, Presentation and Budget — any number of plans side by side, the combined view, and compare and merge.
The same single file starts as Free for everyone. A licence pasted into the About window opens the five views behind the ⠿ menu and unlimited plans. No separate download, no account.
A short signed text pasted into the About window. It is verified locally; there is no network call and nothing is sent anywhere.
For machines where policy blocks the folder prompt: plans are opened and saved one at a time, and nothing else changes.
The four questions that come up most, and the short answer to each.
The browser starts permission from zero on every page load. You do not re-pick the folder, you only confirm it with one click.
On open the app repairs duplicate IDs, dangling dependencies and broken group nesting, and reports what it repaired.
Desktop Microsoft Edge or Google Chrome. These are the browsers that support the folder access the app needs.
Anything that is not a Gantora plan is never adopted as one. If you want it in, the way in is Excel import.
No matches. Try another word — the search looks in titles and descriptions.
Did not find what you were looking for? The full description is in the README inside the download, and in the app's About window.
Release history
The dates are the release archives' own timestamps — not a history written afterwards.
Before 1.0, Gantora spent three weeks as an internal utility across twenty releases. That stretch is not product history — it is how this product found itself.