Mainspring

Project planning for technical teams

Plan visually. Version it like code.

Drag tasks, link dependencies and assign people on a Gantt chart. Mainspring writes everything to a plain-text plan you can commit, diff and review alongside your work, and a proven scheduling engine works out the dates.

Open the appWhy plain text

  • No syntax to learn
  • Your files, your repo
  • Real resource leveling
  • Open source

Early preview: today you edit the text and see the Gantt. Drag-and-drop editing is coming next.

Plans as code

Why your plan belongs in your repository.

A plan in your repository gets everything your code already has.

  • Review plan changes like code

    A change to the plan is a diff. Your team comments on the lines and approves it before it lands.

  • History and who changed what

    Every version is a commit with an author and a message. See when a date moved, and why.

  • Branch a what-if

    Try another staffing or scope on a branch. Merge it, or throw it away.

  • No vendor lock-in

    Your plan is a text file in your repository, not a record in someone else’s database.

  • Plain text outlives any tool

    Any editor and any tool can read it, now and later.

Mainspring does not commit for you yet. Copy the text into your repository today. Saving to a folder and GitHub sync are coming.

An illustration. The schedule diff is coming. The review itself works in any git host today.

No syntax to learn

No syntax to learn.

Build the plan on the Gantt chart. Every drag or field edit becomes a small, clean text change, so you never need to learn the file format. If you like the syntax, the text editor is right there, with completion and inline errors, and both views stay in sync.

  • Drag, link and assignComing

    Resize a bar, draw a dependency, drop a person on a task.

  • Every change is a small text editComing

    Only the lines you touched change, so diffs stay clean and undo works.

  • The text editor is right there

    Completion, inline errors and keyword docs. Edit the text and the chart follows.

Visual editing is the next step. Today you edit the text and the Gantt follows. Dragging comes next.

The scheduling engine

A scheduler that does the hard part.

You say what needs doing and who is free. The scheduler works out the dates, and works them out again whenever anything changes.

  • Effort, not guesses

    Ten days of work for two people takes five days on the calendar. Swap who is on the task and the dates follow.

  • Nobody is double-booked

    A person works on one thing at a time. If Ana is busy, the next task waits until she is free, or goes to someone you named instead.

  • Holidays and leave

    Mark public holidays and time off. Work skips them, and the finish date accounts for them.

  • The critical path

    The chain of tasks that sets your finish date. A slip on it moves the finish, so the chart marks it in red.

Powered by TaskJuggler, a mature open-source scheduler. On our golden test plans, the results are identical to its own command-line tool.

Who it is for

For people who already live in git.

If your code already has branches, reviews and history, your plan can too.

  • Engineering leads

    Keep the plan beside the code. Review a change to the schedule the way you review a change to the software.

  • Technical project managers

    Plan with real effort, people and dependencies, and keep a history of every change to the plan.

  • Hardware and systems teams

    Boards, firmware, test rigs and suppliers in one plan, in the same repository as the project files.

What you get

What works today.

Everything in this first list is in the app now.

  • A scheduling engine you can trust

    TaskJuggler 3.8.4 runs in your browser. On our golden test plans, its results are identical to the native tool.

  • Plain text, in your repository

    Your plan is a .tjp file, and the text is the only source of truth. It diffs and merges like code.

  • An editor that helps

    Live scheduling as you type, inline errors and completion. The keyword docs are generated from TaskJuggler itself.

  • A Gantt beside the text

    Split view shows the editor and a read-only Gantt chart side by side, with milestones, dependency links and the critical path.

  • Light, dark and every screen

    It follows your system’s light or dark setting. Phone, tablet and desktop layouts show the same plan.

  • Free and local

    No sign-up, and no server holds your plan. Mainspring is open source under GPL-2.0-or-later.

On the way

Visual editing is the next step. These are planned, and not in the app yet.

  • Visual editing

    Coming

    Drag bars, links and rows. Every change is written back as a minimal text edit, with undo.

  • Workload and resources

    Coming

    A heatmap of who is busy and who is free, by day, week or month.

  • Plan health checks

    Coming

    Flags tasks with missing logic, hard date constraints and overloaded people.

  • Save and sync

    Coming

    Save to a folder. Sync with GitHub and see a schedule diff before you commit.

  • Install and work offline

    Coming

    Install Mainspring as an app and keep working with no connection.

  • Scenarios and tracking

    Coming

    Compare what-ifs against a baseline, and track progress against a status date.

On every screen

The same plan, in your pocket.

On a desktop, the text and the chart sit side by side. On a phone, a tab bar switches between the plan, the Gantt and the text. The layouts for phone, tablet and desktop are built together.

  • Touch targets are at least 44 pixels on phones and tablets.
  • Light and dark follow your system.
  • The same scheduler runs on every screen.

FAQ

Questions, answered.

Do I need to know TaskJuggler?

No. The aim is that you never write the syntax by hand: you drag and fill in fields, and Mainspring writes the file. Visual editing is coming. Until then you edit the text, and the editor’s completion, inline errors and keyword docs help you along.

Where do my plans live?

In your browser tab, today. Changes stay there until saving arrives, so copy your text out before you close the tab. Saving to a folder and GitHub sync are coming, and your plan will always be a plain text file you own.

Is it free?

Yes. Mainspring is open source under GPL-2.0-or-later. There is no sign-up, and no server holds your plan.

Can I use my existing TaskJuggler files?

Yes. Mainspring runs TaskJuggler 3.8.4 itself, and a plan is an ordinary .tjp file. Paste it into the editor today. Opening files from a folder is coming.

Built on TaskJuggler

Built on TaskJuggler.

Mainspring does not reimplement scheduling. It runs TaskJuggler 3.8.4, the open-source project scheduler, unmodified, inside a Web Worker in your browser. TaskJuggler is the work of its authors and contributors. Learn more at taskjuggler.org.

TaskJuggler is free software under the GNU GPL, version 2. Mainspring ships it unmodified, with its notices. Mainspring itself is licensed GPL-2.0-or-later. It is an independent project, not an official TaskJuggler release.

The movement

Scheduler
TaskJuggler 3.8.4
Runs on
ruby.wasm, in a Web Worker
Source of truth
.tjp and .tji text
Server for your plan
None
Licence
GPL-2.0-or-later

Try a plan in your browser.

The app opens with a sample plan. Edit the text and watch the Gantt and the dates change. No account and nothing to install.

Open the appRead the source

Early preview: changes stay in your browser tab until saving arrives. Copy your text before you close the tab.