Home Plane.so Free Open Source and Self-Hosted Project Management Tool Similar to Asana/Jira
Post
Cancel

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

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

Introduction to the Plane.so project management tool and its use with Scrum processes

Background

Asana

I first experienced the power of the Asana project management tool at my previous company, Pinkoi. Whether it was internal project management or cross-team collaboration, Asana played a crucial role in decoupling dependencies between people and tasks, thereby enhancing collaboration efficiency.

At my previous company, every team from the product team to the operations and business teams (e.g., HRBP, Finance, Marketing, BD…) had a publicly accessible project as a single point of collaboration. When other teams needed assistance, they could directly create a task (or from a template task) in the project (usually there would be a “Need Help!” section). The receiving team would then take over and arrange the task.

Cross-team collaboration with the operations team, such as procurement and recruitment processes, could be directly managed through tasks and tracked for progress. Collaboration with the business team, such as marketing campaign planning or tasks requiring engineering assistance, was also streamlined.

Without Asana or a similar project management tool:

  • We would need to communicate directly with the other team for everything. Direct communication is most effective for P0 matters, but in daily operations, 90% of tasks are not P0. Direct person-to-person communication for everything is inefficient and disrupts the workflow of others.
  • Task execution would be non-transparent, with only the communicating parties knowing the progress. For multi-party tasks, progress would need to be repeatedly confirmed through communication. Additionally, supervisors would find it difficult to manage tasks and allocate resources effectively.
  • Task arrangement would be chaotic. We receive many tasks daily with varying priorities and directions. A tool helps collect and categorize similar issues for future resolution and makes it easier to identify important tasks for daily work.
  • Task handover would be problematic. A tool records task details and execution status, allowing others to quickly take over tasks when needed.

Returning to project management, Asana provides flexible, multi-dimensional, and automated project management tools that can be customized as needed.

There are many ways to use Asana. The following are just a few examples. It is recommended to identify your needs first and then find relevant Asana examples to apply.

Asana’s Taiwan distributor also offers comprehensive training. Contact them if interested.

(This article is not sponsored)

Example 1

Team Project

Team Project

  • To Do: Tasks to start this week or next week
  • In Progress: Tasks currently being executed
  • Review: Completed tasks awaiting Sprint Review
  • Backlog: Task pool from which tasks are selected weekly for execution

Team Scrum Project

Team Scrum Project

In addition to the main team project, a separate Scrum project is created to arrange and review tasks for each Sprint (Asana tasks can be added to multiple projects simultaneously).

Example 2

Example two uses sections to differentiate Sprints. A new section is created each week, and tasks are dragged into it. Labels are used to mark other statuses.

Back to Reality

As mentioned earlier, the above scenarios describe the use of the Asana project management tool at my previous company, Pinkoi. Returning to an environment without a project management tool in the past few months has made me even more aware of the importance of such tools for work efficiency.

Currently, the environment lacks modern project management tools. Due to procurement (need to control expenses), internal control issues (pure intranet), and personal data audit restrictions (must be on-premises), it is not possible to directly use Asana.

Given the above environmental constraints, we can only focus on open-source and Self-Hosted project management tools. The solutions found include Redmine, OpenProject, Taiga… After trying several sets, the results were not as expected, with missing features and unfriendly UI/UX. Until accidentally discovering a new project management tool, Plane.so, launched in January 2023.

By the way, I recommend this website, which includes many services that support Self-Hosted:

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

Enough talk, let’s get to the main content below.

Table of Contents

This article is divided into:

  • Introduction to Plane.so
  • Plane.so Operation Tutorial
  • Plane.so x Scrum Workflow Example
  • Appendix

You can view it according to your needs. For Docker Self-Hosted setup tutorial, please refer to the next article “Plane.so Docker Self-Hosted Setup Record”.

Introduction to Plane.so

Overview

Plane was established in 2022, originating from Delaware, USA, and India. Currently, observing Linkedin and Github activities, most developers are in India. The company has raised $4 million in seed angel funding (invested by OSS Capital).

Currently, Plane occupies the first place in the project management category on Github, using the AGPL-3.0 license for open source. The first version was launched in January 2023 and is still in the development stage, with no official release version yet.

Please note: ⚠️ Open source does not mean free ⚠️. Like Github and Gitlab, there are many project management tools similar to Github products, such as Asana, Jira, Clickup, but there is not yet a sufficiently good open-source product comparable to Gitlab. Plane’s goal is to become the Gitlab of project management tools.

  • Updates the development version approximately every two to three weeks, with some adjustments potentially having significant differences or security issues.
  • Temporarily does not support multiple languages (Chinese).
  • Supports Self-Hosted.
  • Currently, the official version does not provide export from Cloud to Self-Hosted. It can only be achieved through API integration. Therefore, if considering Self-Hosted on-premises use, it is recommended to use Cloud only as a trial version.
  • macOS App, iOS App, and Android App are also under active development.

For Plane Product Roadmap, refer to official website information:

[https://sites.plane.so/plane/459cfcdf-dc9c-49a6-9d4b-a89f91440189/?board=kanban](https://sites.plane.so/plane/459cfcdf-dc9c-49a6-9d4b-a89f91440189/?board=kanban){:target="_blank"}

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

Open-source Repo:

Solution

Plane offers a cloud version service, starting at $0, with Pro providing more frameworks and integrations, and automation features.

Additionally, the official team is promoting a $799 early lifetime plan. Interested teams can refer to this link for paid support:

Community Edition (officially abbreviated as CE version), Self-Hosted version, also starts at $0. If you want to use advanced features, you still need to purchase Pro but it can support Self-Hosted.

Framework

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

  • Issues: Similar to Asana Task, any work is created as an Issue and then arranged for processing or used as a record.

  • Cycles: Similar to Sprint, a time cycle or version of an iteration, each Issue can only exist in one Cycle.

  • Modules: Project, module, classification functions, each Issue can be added to multiple Modules.

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

  • Inbox: Issue Proposed process, you can create proposal Issues, and only after approval will the Issue be officially created and executed in the project. If not approved, it will be directly discarded.

  • Pages: Simple documentation function, can record some work and product matters.

  • Drive: Similar to Google Drive team file function.

Currently, the free version and CE (Self-Hosted) version do not have this feature.

Plane.so Operation Tutorial

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

Plane | Simple, extensible, open-source project management tool. Open-source project management tool to manage issues, sprints, and product roadmaps with peace of mind. app.plane.so

Workspace

  • The first time you enter Plane.so, you will need to create your first Workspace.
  • A Workspace is similar to an Asana workspace; one account can join multiple Workspaces.
  • If a small company uses it across teams, they can use the same Workspace.
  • If a large company uses it across teams, Plane does not have features like Asana’s Team function or Project grouping function; using the same Workspace can lead to project confusion. It is recommended to use Workspaces to distinguish between teams.

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

Settings include:

  • General Workspace avatar, name, URL
  • Billing and plans payment information, upgrade plans
  • Integrations third-party integrations, currently the free version only offers Github and Slack integrations
  • Imports import functions, currently only Jira and Github Project imports are available
  • Exports export functions, currently only csv, excel, json formats are available
  • Webhooks API tokens, self-integrated API

An important setting is Members, where we need to invite team members to join the Workspace:

Roles:

  • Guest/Viewer currently have no significant difference in functionality, can only view Issues, Comment, and Emoji; if they are external users outside the organization email, they are Guests, and if they are within the same organization, they are Viewers.
  • Member can operate all functions
  • Admin can enter Settings

Home

  • Home all Projects and member statuses in the entire Workspace
  • Analytics analysis of all members and Issues
  • Projects all Projects
  • All Issues all Issues in all Projects
  • Active Cycles current Cycle status of all Projects
  • Notifications Issues notifications

Projects

Enter Projects to view 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 upper right corner of the Project, “…” allows you to:

  • Add to favorites, Pin to My Favorites (Your Projects at the top)
  • Publish generate a public 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 states (will be introduced later)
  • Labels: project Labels management
  • Features: control which features to enable (Inbox feature is disabled by default)
  • Estimates: project estimation field settings (will be introduced later)
  • Integrations: third-party integrations (Workspace must be enabled first)
  • Automations: currently, the free version only supports automatically archiving Closed Issues after X time and automatically closing unfinished Issues after X time

Issues

  • After entering, you can create a Project from the left Projects section
  • Unlike Asana, Plane’s Issue can only be added to one Project
  • You can switch the display mode in the upper right corner
  • By default, all Sub-Issues will be expanded. If it feels cluttered, you can go to Display -> uncheck Show sub-Issues

Click “Create Issue” to start creating an Issue:

  • Can be saved as draft Issues
  • Supports text styles, Code Block
  • Supports Markdown
  • Supports image embedding, you can directly drag and drop images to upload
  • Supports multiple Assignees (this is more convenient than Asana, which only supports one Assignee per Task)
  • Choose Priority, different Priorities have different highlight styles (currently unable to customize Priority)

  • Choose Modules, you can add multiple Modules, such as: Login Optimization, App … (settings will be introduced later)
  • Choose Cycle, which Sprint to do it in, only one can be selected, such as: W22, S22, 2024-05 … (settings will be introduced later)
  • Currently does not support custom Issue Property
  • Choose Add parent to add this Issue as a Sub-Issue to a Parent Issue
  • Choose Labels (a.k.a Tag function)
  • Choose Start Date, Due Date… (currently does not support accurate time, does not support Repeated Issue)
  • Choose Estimate (a.k.a Scrum story point or estimated resources), Estimate can be adjusted and added in Settings; however, currently only one Estimate field can be enabled and the Estimate Value can only be set to 6. (The official Roadmap states this feature will be improved in 2024Q2)

  • Choose Issue State, State can be adjusted and added in Settings:

Use AI to create Issue content:

  • You can click the AI button next to create to input a Prompt to automatically generate default Issue content, click Use this response to apply it to the Issue Description.

After the Issue is created, clicking on it in the list will bring up the Issue Preview window, where you can click to expand and enter 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 to enlarge (currently cannot be clicked to enlarge)
  2. Can click to add Sub-Issue (Sub-Issues currently do not support sorting, Section function)
  3. Add emoji (currently only 👍👎😀💥😕✈️👀 seven types of emojis)
  4. Upload attachments (not limited to images, but images currently do not have a preview function, need to click to view)
  5. Comment discussion area (currently Chinese input will automatically send, please refer to the solution at the end of the document)
  6. Can subscribe/unsubscribe to changes notifications for this Issue
  7. Relates to can add related Issues
  8. Blocking can mark Issues that are being blocked by this Issue (currently no special function)
  9. Blocked by can mark Issues that are blocking this Issue (currently no special function)
  10. Duplicate of marks duplicate Issues (currently no special function)
  11. Labels can quickly mark and create labels
  12. Links related links, can add external links such as Figam, Google Doc
  13. Delete, archive Issue

Cycle

  • The homepage will display the current Cycle and its execution status, burn-down chart
  • Also, the upcoming Cycle and completed Cycle
  • Currently, Cycles need to be created manually
  • For example, for a bi-weekly Sprint, you need to create SXX and specify the time period
  • Cycle time periods cannot overlap
  • Cycle time periods cannot be set in the past
  • An Issue can only be added to one Cycle

  • Click to view Cycle details, you can use different display modes and filters to view Issues at the top
  • On the right, there are burn-down charts and execution status
  • Issues can be viewed by Assignees, Labels, States

Modules

  • Modules can be used as project aggregation, OKR goals, functional classification (Design, FE, BE, App, etc.)
  • Project Lead & Members can be set
  • Project progress and Issue State are different, with additional Planned and Paused states
  • Date ranges 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, there are burn-down charts and execution status
  • Issues can be viewed by Assignees, Labels, States
  • Links can be added to the Module

Views

  • Views can be created for commonly used filter conditions and view modes, allowing quick access.
  • At the top of the View, you can use different display modes and filters to view Issues

Pages

  • Pages provide a WYSIWYG document editor, making it easy to write documents and insert images
  • Currently, it does not support directory and classification functions, which can be chaotic with many documents
  • Document permissions: Public (visible to all Project members), Private (visible only to oneself)

Notifications Issues

  • Subscribed Issues will notify you of status changes, content changes, and new comments
  • By default, Issues you create, are assigned to, or lead in a project will be subscribed
  • Currently, there is no Slack or third-party notifications

Currently, notifications can only be sent via Email:

  • Go to Profile Picture -> Settings -> Preferences -> Email to enable Email notifications

Dark Mode

  • Go to Profile Picture -> Settings -> Preferences -> Theme to select the Plane theme

Official Manual

Plane Documentation - Plane Plane is an extensible, open source project and product management tool. It allows users to start with a basic task… docs.plane.so

Other operations and usage details can be found in the official documentation.

⚠️⚠️Disclaimer⚠️⚠️

The above is an introduction to the usage of the 2024-05-25 v0.20-Dev version. The official team is still actively developing new features and optimizing user experience. The limitations mentioned above may be improved in the future. Please refer to the latest version for the best experience.

There are inevitably bugs and user experience issues in ongoing projects. Please be patient with the Plane.so team. If you have any questions, feel free to report them below:

Plane.so x Scrum Workflow Example

Structure

  • Each team has its own Workspace
  • Each team will have a main product Project
  • Projects: Other projects can be created such as marketing advertising Project, customer support Project, or external collaboration Project, separate from the main product development Project
  • Modules: Create Function Modules (design, frontend, backend, App) for Team Lead to track, or create Modules for OKR or project goals (increase conversion rate, OKR-1 increase GMV…)
  • Cycle: Create Cycle according to Sprint cycle, assuming one Sprint per week, you can create W12 or create according to the Monday date 2024-05-27
  • Since it is currently not possible to automatically create Cycles, you need to create future Cycles monthly or weekly in advance
  • Any work needs to open an Issue
  • If possible, add Start Date & Due Date, Modules, Priority to the Issue
  • If an Issue keeps switching between In-Progress & Cycle (cannot be completed in one Cycle), consider breaking down the Issue for easier project management

Process

  • Sprint cycle: one week
  • Backlog: Open Issues for any work or ideas, State = Backlog, fill in Estimate, Priority
  • Weekly Sprint Planning Meeting: Select Issues from Backlog and ongoing Issues (To Do or In progress), set Priority/Estimate, arrange for this Sprint execution, and add to Cycle
  • If there are urgent Issues during the Sprint, they also need to be directly added to this week’s Cycle
  • Daily Stand-up: Spend 15 minutes each morning quickly sharing the status of Issues
  • Change the status to ToDo/In Progress when Issues are ready to be executed or started
  • Change the status to Done when Issues are completed, or create an additional Review State
  • Weekly Sprint Review Meeting: Simply review this week’s Issues (not planning for next week), quickly review completed Issues, and ensure Estimates are filled in for future statistics.
  • Try to ensure all Issues in the Cycle are completed by Friday, choose to add unfinished Issues to the next week’s Cycle or move to 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 process that suits your team. Refer to the structure provided by Plane.so to creatively find the best project management method.

Appendix

API

Plane.so has a clean front-end and back-end separation architecture, so it has a complete API that can be used. After creating API Tokens from Workspace Settings, you can use them by adding the API Request Header X-API-Key. For API Endpoint request methods, refer to the official API documentation.

However, since the official documentation is not yet complete, many request methods are not listed in the documentation. The quickest way is to open the browser tools to check Network requests and see how the official requests the API, then use your own Key to use it.

Issue Comments, Submitting Immediately After Selecting Chinese Characters

Opened an Issue with the official team & checked the Source Code. It seems the chances of fixing this are quite low because the need for character selection wasn’t considered initially, so the Enter key event is directly bound to submit the Comment.

Browser Extension Workaround:

Here is a workaround JavaScript script I wrote to hook the Enter event.

  1. First, install a JavaScript browser injection extension:

The above is a Chromium shared extension, and other browsers can search for similar JavaScript Inject tools.

  1. Go back to Plane.so, click on the extension -> click on the “+”

  1. Inject the following JavaScript into Plane.so
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    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”.

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

  • Press Enter to select a word without automatically submitting, press Space + Shift Enter to insert a line break, and manually click Comment to submit the comment.

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

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

Plane Self-Hosted Setup Guide

If you have any questions or suggestions, feel free to contact me.

===

本文中文版本

===

This article was first published in Traditional Chinese on Medium ➡️ View Here


This post is licensed under CC BY 4.0 by the author.

What Can Be Done to Commemorate When an App Product Reaches Its End?

Plane.so Docker Self-Hosted Setup Record