ZhgChg.Li

Plane.so|Free Open-Source Self-Hosted Project Management Tool Like Asana and Jira

Discover how Plane.so streamlines project management with free, open-source, and self-hosted features, optimized for Scrum workflows to boost team productivity and control.

Plane.so|Free Open-Source Self-Hosted Project Management Tool Like Asana and Jira
This article was AI-translated — please let me know if anything looks off.

Plane.so Free, Open Source, and Self-Hosted Alternative to Asana/Jira Project Management Tool

Introduction to Using Plane.so Project Management Tool and Its Integration with Scrum Process

️⚠️️️️⚠️️️️⚠️️️️2025 Update️ ⚠️️️️⚠️️️️⚠️️️️

Plane.so is no longer recommended because it initially gained popularity through its open-source project and self-hosting support. However, in later versions, many features were moved into paid plans. Even for self-hosting, a license must be purchased to unlock features, and there are user limits. This no longer meets the original expectations. Additionally, the pricing plans are very confusing, with lifetime, Pro, Business options, and there is no guarantee that new plans won’t be introduced, with new features locked behind them.

Background

Asana

At my previous company Pinkoi, I first experienced the power of the Asana project management tool. Whether for internal project management or cross-team collaboration, Asana plays a role in decoupling dependencies between people and tasks, improving collaboration efficiency.

In my previous company, every team—from product to operations and business teams (such as HRBP, Finance, Marketing, BD…)—had a public Project as a single collaboration entry point across teams. When other teams needed help, they could directly create a Task (or use a Template Task) in that Project (usually with a “Need Help!” Section). The receiving team would then take over and arrange the task internally.

Cross-team collaboration with the management team, such as procurement and recruitment processes, can be done by creating Tasks and tracking progress through them; collaboration with the business team, such as marketing campaign planning and tasks requiring engineering support for modifications, etc.

If you don’t have Asana or similar project management tools:

  • For everything, we need direct communication with the other team. Direct communication is most effective for P0 issues, but in daily work, 90% of tasks are not P0. Communicating person-to-person for every little thing is inefficient and can interrupt the other person’s workflow.

  • Task execution lacks transparency; only the two parties involved know the progress. For multi-party tasks, progress can only be repeatedly confirmed through communication. Additionally, supervisors find it hard to manage and allocate tasks reasonably among team members.

  • Task scheduling: In daily work, we receive many tasks with varying priorities and directions. Having a tool allows us to collect and categorize similar issues, so we can address them together later. It also makes it easier to identify important tasks in daily planning.

  • Task handover is facilitated by tools that record task details and progress. When assistance from others is needed, they can quickly take over the task based on the content in the Task.

Back to project management, Asana offers flexible, multi-dimensional, and automated project management tools that can be combined according to your needs.

There are many ways to use Asana. Below are just a few use cases. It is recommended to clarify your needs first before applying related Asana templates.

The Asana Taiwan distributor also offers comprehensive training. Feel free to contact them if interested.

(This article contains no sponsored content)

Example 1

Team Project

Team Project

  • To Do: Tasks to start this week and next week

  • In Progress: Ongoing Items

  • Review: Done, waiting for Sprint Review

  • Backlog: A task pool from which Tasks are selected weekly for execution planning

Team Scrum Project

Team Scrum Project

In addition to the main team Project, create a separate Scrum Project for planning (Asana Tasks can be added to multiple Projects simultaneously) and review the tasks completed in each Sprint.

Example 2

Example 2 uses Sections to separate Sprints. Each week, a Section is created to drag tasks into, while other statuses are marked with Labels.

Back to Reality

As mentioned earlier, the above describes the scenario when my previous company Pinkoi used the Asana project management tool; returning to an environment without any project management tool these past few months has made me truly appreciate how important such tools are for work efficiency.

Currently, there is no modern project management tool available. Due to procurement constraints (need to control expenses), internal control issues (intranet only), and personal data audit restrictions (must be on-premise), Asana cannot be directly implemented.

Given the above constraints, we had to focus on open-source and self-hosted project management tools. The options found were mainly Redmine, OpenProject, Taiga… After trying several, the results were disappointing due to missing features and unfriendly UI/UX. Then, by chance, we discovered Plane.so, a project management tool newly released in January 2023.

By the way, I recommend this website that lists many services supporting Self-Hosted:

awesome-selfhosted
A list of Free Software network services and web applications that can be hosted on your own servers awesome-selfhosted.net

After so much introduction, let’s begin the main content.

Table of Contents

This article is divided into:

  • Introduction to Plane.so

  • Plane.so User Guide

  • Plane.so x Scrum Workflow Example

  • Appendix

You can check as needed. For Docker Self-Hosted setup instructions, please refer to the next article: Plane.so Docker Self-Hosted Setup Record.

Introduction to Plane.so

Introduction

Plane was founded in 2022 and is a startup based in Delaware, USA, and India. Currently, most developers observed on Linkedin and Github are located in India. The company has raised $4 million in seed angel funding (invested by OSS Capital).

Currently, Plane ranks first in the Github project management category, is open source under the AGPL-3.0 license, and its first version was released in January 2023. It is still under development and has no official release version yet.

Note: ⚠️ Open source does NOT mean free ⚠️. Just like Github and Gitlab, there are many project management tools similar to Github, such as Asana, Jira, Clickup, but none are good enough to rival Gitlab’s open-source product. Plane’s goal is to become the Gitlab of project management tools.

  • The development version is updated approximately every two to three weeks, with some changes potentially significant or still having security issues.

  • Multi-language support (Chinese) is not available yet

  • Supports Self-Hosted

  • Currently, the official service does not support exporting from Cloud to import into Self-Hosted. This can only be done via API integration. Therefore, if you are considering Self-Hosted local use, it is recommended to treat the Cloud version as a trial only.

  • macOS App, iOS App, and Android App are also actively under development.

Plane Product Roadmap can be found at official website:

<https://sites.plane.so/plane/459cfcdf-dc9c-49a6-9d4b-a89f91440189/?board=kanban>

https://sites.plane.so/plane/459cfcdf-dc9c-49a6-9d4b-a89f91440189/?board=kanban

Open Source Repo:

Plans

Plane offers a cloud service starting at $0 USD. The Pro plan provides more frameworks, integrations, and automation features.

Additionally, the official team is promoting a $799 early lifetime plan. Teams interested in paid support can refer directly to this plan:

Community Edition (officially called CE), the Self-Hosted version, also starts at $0, but you still need to purchase Pro for advanced features, though it supports Self-Hosted.

Framework

Plane.so is different from Asana’s multi-dimensional flexibility, but Plane is composed of the following framework for project management:

  • Issues: Like Asana Tasks, any work is created as an Issue to be scheduled or kept as a record.

  • Cycles: Similar to Sprints, a time frame or version for an iteration. Each Issue can belong to only one Cycle.

  • Modules: project, module, and categorization features. Each Issue can be assigned to multiple Modules.

  • Layouts & Views: You can view Issues using Gantt charts, calendars, Kanban boards, lists, and Sheet modes. You can also save filter criteria and display settings as Views for quick access.

  • Inbox: The Issue Proposed process allows creating proposal Issues. Only after approval will the Issue be created and executed in the project; if rejected, it will be discarded.

  • Pages: A simple documentation feature to record work and product-related notes.

  • Drive: Similar to Google Drive team file features.

Currently, this feature is not available in both the free version and the CE (Self-Hosted) version.

Plane.so User Guide

We can quickly and freely start using the Plane Cloud version directly:

Workspace

  • The first time you enter Plane.so, you will need to create your first Workspace.

  • Workspace is similar to Asana’s workspace; one account can join multiple Workspaces.

  • For small companies with cross-team use, you can stay within the same Workspace.

  • For large companies with cross-team collaboration, Plane lacks Asana’s Team feature and Project grouping. Having all Projects in the same Workspace can cause confusion. It is recommended to use separate Workspaces to distinguish teams.

After creation, you can switch between different Workspaces using the Workspace dropdown menu, and also access Workspace Settings from there:

Settings include:

  • General Workspace avatar, name, URL

  • Billing and plans Payment information and upgrade options

  • Integrations Third-party integrations, currently only Github and Slack are available in the free version

  • Imports feature currently supports only Jira and Github Project imports.

  • Exports feature currently supports export in csv, excel, and json formats only

  • Webhooks API tokens, integrate API by yourself

A key setting is Members, where we need to invite team members to join the Workspace:

Role:

  • Guest/Viewer currently have no major functional differences; they can only view Issues, Comments, and Emojis. External users from different organization emails are Guests, while those from the same organization are Viewers.

  • Members can operate all functions.

  • Admins can access Settings.

Home Home Page

  • Home shows all Projects and member statuses within the entire Workspace

  • Analytics for all members, Issues analysis

  • Projects All Projects

  • All Issues Issues from all Projects

  • Active Cycles Current Cycle Status of All Projects

  • Notifications Issues Notifications

Projects

Go to Projects to see all public and joined Projects:

  • Project name, description, cover image, prefix (Issue Alias e.g. APP-1)

  • Project Permissions: Public - All members who join the Workspace can view and join; Private - Only invited members can join

  • Lead: Main person responsible for the project

In the top right corner of the Project, the “…” allows you to:

  • Add to favorites, Pin to Favorites (above Your Projects)

  • Publish generates a public external link, similar to the official Roadmap Project

  • Draft Issues View saved draft issues

  • Archives View archived Issues

Other Settings:

  • General: General Project Settings

  • Members: Project members, project permissions

  • States: Project Issue statuses (will be introduced later)

  • Labels: Project Labels Management

  • Features: Allows control over which features to enable (Inbox feature is disabled by default)

  • Estimates: Project Time Estimation Field Settings (to be introduced later)

  • Integrations: Third-Party Integrations (Must be enabled in Workspace first)

  • Automations: The free version currently only supports automatically archiving Closed Issues after X time and automatically closing incomplete Issues after X time.

Issues

  • After entering, you can create a Project from the Projects menu on the left.

  • Unlike Asana, an Issue in Plane can only be added to one Project.

  • The display mode can be switched in the top right corner.

  • By default, all Sub-Issues are expanded. If it feels cluttered, go to Display -> uncheck Show sub-Issues.

Click “Create Issue” to start creating an Issue:

  • Can be saved as draft Issues

  • Supports text styling and Code Block

  • Supports Markdown

  • Supports text wrapping around images and allows direct drag-and-drop image uploads

  • Supports multiple Assignees (more convenient than Asana, which only allows one Assignee per Task)

  • Select Priority. Different priorities have different highlight styles (currently, Priority customization is not available).

  • Select Modules to add multiple Modules, such as Login Optimization, App … (settings will be introduced later)

  • Choose a Cycle to assign to a single Sprint, for example: W22, S22, 2024–05 … (settings will be explained later)

  • Custom Issue Properties are not supported yet

  • Select Add parent to add this Issue as a Sub-Issue under the Parent Issue

  • Selecting Labels (a.k.a Tag feature)

  • Select Start Date, Due Date… (Currently does not support exact time or Repeated Issue)

  • Choose Estimate (a.k.a. Scrum story point or estimated effort). Estimates can be adjusted or added in Settings; however, currently only one Estimate field can be enabled, and the Estimate Value is limited to 6 options. (The official roadmap states this feature will be improved in 2024 Q2)

  • Select Issue State. States can be adjusted or added in Settings:

Create Issue Content Using AI:

  • You can click the AI button next to Create to enter a prompt and automatically generate default Issue content. Click Use this response to apply it to the Issue Description.

After creating an Issue, clicking it in the list will open the Issue Preview window, where you can click to expand into the Issue Full-Screen page:

Click to expand and enter the Issue Full Screen Detail page:

  1. Image preview can be dragged or right-clicked to open in a new window for zooming (click to zoom is currently unavailable)

  2. You can click to add a Sub-Issue (Sub-Issues currently do not support sorting or Section features)

  3. Add emojis (currently only seven emojis: 👍👎😀💥😕✈️👀)

  4. Upload attachments (not limited to images, but images currently have no preview and must be clicked to view)

  5. Comment Discussion Area (Currently, Chinese input will be sent automatically; please refer to the solution at the end)

  6. Subscribe/Unsubscribe to notifications for changes on this Issue

  7. Relates to Issues that can be linked

  8. Blocking can mark Issues that are blocked by this Issue (currently no special functionality)

  9. Blocked by can tag Issues that are blocking this Issue (currently no special functionality)

  10. Duplicate of Mark duplicate Issues (currently no special function)

  11. Labels allow quick tagging and creating tags

  12. Links related links, external links such as Figma, Google Doc can be added

  13. Deleting and Archiving Issues

Cycle Cycle

  • The homepage displays the current Cycle and its progress, along with the burndown chart.

  • Upcoming Cycles and Completed Cycles

  • Currently, Cycles need to be created manually

  • For example, create an SXX every two weeks for a Sprint and set the time cycle accordingly.

  • Cycle time periods cannot be repeated

  • Cycle time periods cannot be set to past dates

  • An Issue can only be added to one Cycle

  • Click to view Cycle details. You can use different display modes and filters above to view Issues.

  • On the right side, there is a burn-down chart and execution status.

  • Issues can be viewed by Assignees, Labels, and States

Modules 模組

  • Modules can be used as project collections, OKR goals, or functional categories (Design, FE, BE, App, etc.)

  • Project Lead & Members can be assigned

  • Project progress and Issue States are different, with additional Planned and Paused statuses

  • Date range can be set

  • Click to view Module details. You can use different display modes and filters to view Issues at the top.

  • On the right side, there is a burn-down chart and execution status.

  • Issues can be viewed by Assignees, Labels, and States.

  • You can add a Link to a Module.

Views

  • You can create Views for frequently used filters and display modes, allowing quick access from here.

  • You can use different display modes and filters to view Issues at the top of the View.

Pages Simple Documentation

  • Pages offers a WYSIWYG document editor, making it easy to write documents and insert images.

  • Currently, directory and category features are not supported, so documents can become very disorganized when there are many.

  • Document Permissions: Public - visible to all Project members; Private - visible only to yourself.

Notifications Issues Personal Notification Feature

  • Subscribed Issues will notify you of status changes, content updates, and new comments.

  • By default, you are subscribed to Issues you create, are assigned to, or lead in a project.

  • No Slack or third-party notifications currently available

Currently, notifications are only available via Email:

  • From the avatar -> Settings -> Preferences -> Email, you can enable Email notifications.

Dark Mode

  • From the avatar -> Settings -> Preferences -> Theme, you can select the Plane theme

Official Manual

For other operations and usage details, please refer to the official documentation.

⚠️⚠️Disclaimer⚠️⚠️

The above is the user guide for version 0.20-Dev dated 2024–05–25. The official team is still actively developing new features and improving the user experience. The mentioned limitations may be resolved in future updates, so please refer to the latest version for the best experience.

During development, projects inevitably have bugs and experience issues. Please be patient with the Plane.so team; if you encounter any problems, feel free to report them below:

Plane.so x Scrum Workflow Example

Architecture

  • Each team has its own Workspace

  • Each team will have a main product Project.

  • Projects: You can also create other projects such as Marketing Campaign Projects, Customer Support Projects, or External Collaboration Projects, separate from the main product development projects.

  • Modules: Create Function Modules (Design, Frontend, Backend, App) to help Team Leads track progress and set Modules for OKRs or project goals (Increase conversion rate, OKR-1 Boost GMV…)

  • Cycle: Create a Cycle based on the Sprint cycle. For example, if there is one Sprint per week, you can name it W12 or use the Monday date like 2024–05–27.

  • Since automatic Cycle creation is currently unavailable, you need to create future Cycles monthly or weekly in advance.

  • Create an Issue for every task

  • If possible, add Start Date & Due Date, Modules, and Priority to the Issue.

  • If an Issue keeps switching between In-Progress and Cycle (not completed within one Cycle), consider breaking the Issue into smaller parts for easier project management

Workflow

  • Sprint Cycle: One Week

  • Backlog: Create an Issue for any tasks or ideas, State = Backlog, fill in Estimate, Priority

  • Weekly Monday Sprint Planning Meeting: Select Issues from the Backlog and ongoing Issues (To Do or In Progress), set Priority/Estimate, plan the current Sprint, and add them to the Cycle

  • If there are any ad-hoc Issues during the Sprint, they should be added directly to the current week’s Cycle.

  • Daily Stand-up: Spend 15 minutes each morning quickly sharing the status of your Issues

  • Change the issue status to ToDo/In Progress when ready to start or starting execution

  • Change the Issue status to Done when completed, or add a Review State

  • Friday Sprint Review Meeting: Simply review this week’s Issues (not planning for next week). Quickly go over completed Issues and ensure Estimates are filled in for future statistics.

  • Try to ensure all Issues in the Cycle are completed by Friday. Unfinished Issues should be added to the next Cycle or marked as Pending/Cancel.

  • Continuously iterate the above process to manage all Issues and Projects

⚠️⚠️Disclaimer⚠️⚠️

The above is just a workflow example. Please note that there is no perfect process, only the one that fits your team; refer to the structure provided by Plane.so and get creative to find the best project management method.

Appendix

API

Plane.so has a clean front-end and back-end separation architecture, providing a comprehensive API. After creating API Tokens in Workspace Settings, you can use them by including the X-API-Key in the API request header. For API endpoint request methods, please refer to the official API documentation.

However, since the official documentation is incomplete, many request methods are not listed. The fastest way is to open the browser’s developer tools, check the Network requests, see how the official API requests are made, and use your own key to access them.

Issue comments: problem of sending immediately after selecting Chinese characters

I opened an issue for the official team and checked the source code. It seems unlikely to be fixed because they never considered the need to select a language. Instead, they directly bind the keyboard Enter event to submit the comment.

Browser Extension Workaround:

Here is a custom Workaround JavaScript script to hook the Enter key event.

  1. First, install the JavaScript browser injection extension:

The above are shared Chromium extensions; other browsers can also search for similar JavaScript Inject injection tools.

  1. Go back to Plane.so, click Extensions -> click “+”

  1. Inject the following JavaScript into Plane.so
document.addEventListener('keydown', function(event) {
 if (event.key === 'Enter' \\|\\| event.keyCode === 13) { // event.keyCode is for older browsers
  const focusedElement = document.activeElement;
  const targetButtons = focusedElement.parentElement.parentElement.parentElement.parentElement.parentElement.querySelectorAll('button[type="submit"]');
   if (targetButtons.length > 0 && targetButtons[0].textContent.trim().toLowerCase() === "comment") {
    console.log("HIT");
    // Focus the active element and place the cursor at the end
    focusedElement.focus();
    if (window.getSelection) {
     var range = document.createRange();
     var selection = window.getSelection();
     range.selectNodeContents(focusedElement);
     range.collapse(false);
     selection.removeAllRanges();
     selection.addRange(range);
    }
    event.stopImmediatePropagation();
   }
 }
},true);

  • After pasting the code, click “Save” to store it.

Go back to Plane.so (refresh) and open an Issue to test the Comment feature.

  • Pressing Enter to select a word no longer submits automatically. Press Space + Shift Enter to insert a line break, and manually click Comment to submit your review.

⚠️⚠️⚠️Security Issues⚠️⚠️⚠️

Since Plane.so is still in development and the product is very new, it is uncertain if there are any security issues. It is recommended not to upload any sensitive data to avoid data leaks in case of major service problems, or use Self-Hosted deployment for local intranet use only.

Plane Self-Hosted Setup Guide

Improve this page
Edit on GitHub
Originally published on Medium
Read the original
Share this essay
Copy link · share to socials
ZhgChgLi
Author

ZhgChgLi

An iOS, web, and automation developer from Taiwan 🇹🇼 who also loves sharing, traveling, and writing.

Comments