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.
点击这里查看本文章简体中文版本。
點擊這裡查看本文章正體中文版本。
This post was translated with AI assistance — let me know if anything sounds off!
Plane.so Free, Open-Source, and Self-Hosted Asana/Jira-Like Project Management Tool
Plane.so Project Management Tool Introduction and Usage with Scrum Process Integration
️⚠️️️️⚠️️️️⚠️️️️2025 Update️ ⚠️️️️⚠️️️️⚠️️️️
Plane.so is no longer recommended because it initially grew by relying on open-source projects and self-hosting support. However, in later versions, many features were moved into paid plans. Even self-hosting requires purchasing a license to unlock features, and there are user limits for self-hosted setups, which no longer matches the original vision. Additionally, the pricing plans are very confusing, with lifetime, Pro, Business options, and it’s uncertain whether new plans will be introduced, locking new features behind them even for paying users.
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 key role in decoupling dependencies between people and tasks, improving collaboration efficiency.
In my previous company, all teams from the product team to operations and business teams (such as HRBP, Finance, Marketing, BD…) had a publicly shared Project as a single collaboration entry point across teams. When other teams needed assistance, they could directly create a Task (or use a Template Task) within that Project (usually there was a “Need Help!” Section). The receiving team would then take over the Task and make arrangements.
Cross-team collaboration with the management team, such as procurement and recruitment processes, can be done by creating a Task and tracking progress through it; collaboration with the business team includes marketing campaign planning and tasks requiring engineering support for modifications, etc.
If you don’t have Asana or a similar project management tool:
For everything, we need direct communication with the other team. Direct communication is most effective for P0 matters, but in daily work, 90% of issues are not P0. Direct person-to-person communication for all matters, big or small, is inefficient and can interrupt the other person’s workflow.
Task execution is not transparent; only the two parties involved know the progress. For multi-party tasks, progress can only be repeatedly confirmed through communication. Additionally, supervisors find it difficult to manage tasks and arrange them reasonably.
Task scheduling: In daily work, we receive many tasks with varying priorities and directions. Having tools allows us to collect and categorize similar issues, so we can address them together later. This also makes it easier to identify important tasks in daily planning.
Task handover involves using tools to record task details and execution status. If 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 as needed.
There are many ways to use Asana. Below are a few use cases. It is recommended to identify your needs first before applying relevant Asana examples.
Asana’s Taiwan distributor also provides comprehensive training. Feel free to contact them if interested.
(This article contains no sponsored content)
Example 1
Team Project
To Do: Tasks to start this week and next week
In Progress: Ongoing Projects
Review: Completed, waiting for Sprint Review
Backlog: Task pool, from which tasks are selected weekly for scheduling and execution
Team Scrum Project
Besides the main team Project, a separate Scrum Project will be created (Asana Tasks can be added to multiple Projects simultaneously) to review the tasks completed in each Sprint.
Example 2
Example 2 uses Sections to separate Sprints, creating a Section each week to drag tasks into, and uses Labels to mark other statuses.
Back to Reality
As mentioned earlier, the above describes the scenario of the former company Pinkoi using the Asana project management tool; returning to an environment without any project management tools in recent months has made me even more aware of the importance of tools for work efficiency.
Currently, there is no modern project management tool available. Due to procurement (expense control), internal control issues (intranet only), and personal data audit restrictions (must be local), Asana cannot be directly implemented.
Due to the above environmental constraints, I could only focus on open-source, self-hosted project management tools. The solutions I found were mainly Redmine, OpenProject, Taiga… After trying several, the results were disappointing—lacking features and having unfriendly UI/UX. That was until I accidentally discovered Plane.so, a project management tool newly launched in January 2023.
By the way, I recommend this website, which lists many services that support Self-Hosted:
awesome-selfhosted
A list of free software network services and web applications that you can host on your own servers awesome-selfhosted.net
Having said so much, the main text begins below.
Table of Contents
This article is divided into:
Plane.so Introduction
Plane.so Operation Guide
Plane.so x Scrum Workflow Example
Appendix
You can check 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 Plan.so
Introduction
Plane - The open source project management tool
Open-source project management tool to manage issues, sprints, and product roadmaps with peace of mind. plane.so
Plane was founded in 2022 and is a startup from Delaware, USA, and India. Currently, most developers active on Linkedin and Github are based in India. The company has raised $4 million in seed angel funding, led by OSS Capital.
How Plane, an open-source alternative to Jira, got to the #1 in project management on GitHub in…
Our lessons from 0 to 20K GitHub stars in a year plane.so
Currently, Plane holds the top spot in the Github Project Management category, using the AGPL-3.0 license as open source. The first version was released in January 2023 and is still under development, with no official release version available yet.
Please note: ⚠️ Open source does not mean free ⚠️. Like Github and Gitlab, there are many project management tools similar to Github, such as Asana, Jira, and 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.
Updates are usually released every two to three weeks, with some changes being significant or still having security issues.
Temporarily does not support multiple languages (Chinese)
Support Self-Hosted
Currently, the official version does not support exporting from Cloud and importing to Self-Hosted. You can only achieve this through API integration. Therefore, if you are considering using Self-Hosted locally, it is recommended to treat Cloud as a trial version only.
macOS App, iOS App, and Android App are also under active development.
Plane Product Roadmap can be found at official website:
https://sites.plane.so/plane/459cfcdf-dc9c-49a6-9d4b-a89f91440189/?board=kanban
Open Source Repo:
Plan
Plane offers a cloud version service starting at $0. The Pro version provides more frameworks, integrations, and automation features.
Community Edition (officially called CE), Self-Hosted version, also starts at $0. Advanced features still require purchasing Pro, but it supports Self-Hosted.
Framework
Plane.so differs from Asana’s multi-dimensional flexibility but Plane is composed of the following framework for project management use:
- Issues: Same as Asana Task, create an Issue for any work to be scheduled or kept as a record.
- Cycles: Similar to a Sprint, a time period or version for an iteration. Each Issue can only exist in one Cycle.
- Modules: Projects, modules, and categorization features. Each issue can include multiple modules.
- Layouts & Views: You can view Issues using Gantt charts, calendars, kanban boards, lists, and sheet modes. You can also save filter conditions and display settings as Views for quick access.
- Inbox: The proposed process allows creating a proposal Issue. Only after approval will the Issue be created in the project for execution; if not approved, it will be discarded directly.
- Pages: A simple document feature that lets you record work and product-related notes.
- Drive: Similar to Google Drive team file features.
Currently, this feature is not available in the free version or the CE (Self-Hosted) version.
Plane.so Operation Guide
We can quickly, freely, and directly start using the Plane Cloud version:
Workspace
The first time you enter Plane.so, you will need to create your first Workspace.
A Workspace is the same as an Asana workspace; one account can join multiple Workspaces.
For small companies using it across teams, it can be within the same Workspace.
For large companies with cross-team collaboration, Plane lacks features like Asana’s Team function 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 profile picture, name, URL
Billing and plans Payment Information and Upgrade Options
Integrations Third-party integrations, currently only Github and Slack integrations 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, self-integrating API
A more important setting is Members, where we need to invite team members to join the Workspace:
Identity:
Guest and Viewer currently have no significant functional differences; both can only view Issues, Comments, and Emojis. External users with email addresses outside the organization are classified as Guests, while those within the same organization are Viewers.
Member can operate all functions.
Admin can access Settings.
Home Page
Home All Projects and Member Status in the Entire Workspace
Analytics All Members, Issues Analysis
Projects All Projects
All Issues from All Projects
Active Cycles Current Cycle Status for 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: Project main person in charge
In the top right corner of the project, the “…” allows you to:
Add to favorites, Pin to My Favorites (above Your Projects)
Publish generates a public external link, just like the official Roadmap Project
Draft Issues View Saved Draft Issues
Archives View Archived Issues
Other Settings:
General: Project General Settings
Members: Project members, project permissions
States: Project Issue Status (to 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 (Workspace must be enabled 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 section 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 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 and code blocks
Supports Markdown
Supports text wrapping around images, allowing direct drag-and-drop image uploads
Supports multiple assignees (this is more convenient than Asana, which only allows one assignee per task)
Choose Priority; different priorities have different highlight styles (currently, Priority cannot be customized).
Choose Modules, you can add multiple Modules, such as:
Login Optimization
,App
… (settings will be introduced later)Choose the Cycle and select only one Sprint to work on, for example:
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 under the Parent Issue
Choosing Labels (a.k.a Tag Feature)
Select Start Date, Due Date… (Currently does not support exact time or Repeated Issue)
Choose Estimate (also known as Scrum story point or estimated resources). Estimates can be adjusted or added in Settings; however, currently only one Estimate field can be enabled, and only 6 Estimate Values can be set. (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 the 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:
Image preview can be dragged or right-clicked to open in a new window for zooming (currently cannot click to zoom).
You can click to add a Sub-Issue (Sub-Issues currently do not support sorting or Section features).
Add emojis (currently only seven emojis: 👍👎😀💥😕✈️👀).
Upload attachments (not limited to images, but images currently have no preview function and must be clicked to view).
Comment Section (Currently, Chinese input is sent automatically. Please refer to the solution at the end).
Subscribe/Unsubscribe to this Issue to change notifications.
Relates to Issues that can be linked.
Blocking can mark Issues that are currently blocked by this Issue (no special function at the moment).
Blocked by can mark the Issue that is currently blocking this Issue (no special features yet).
Duplicate of marking duplicate Issues (currently no special features).
Labels allow quick tagging and creating tags.
Links related links, can include external links like Figma, Google Doc, etc.
Delete and Archive Issues.
Cycle Period
The homepage shows the current Cycle, its execution status, and the burndown chart.
Upcoming Cycles and Completed Cycles
Currently, cycles must be created manually
For example, create SXX every two weeks for each Sprint and set the specific time period.
Cycle time periods cannot overlap
Cycle time periods cannot be set in the past
An issue can only be assigned to one Cycle
Click to view Cycle details. At the top, you can use different display modes and filters to view Issues.
On the right side, there is a burn-down chart and execution status.
You can view Issues 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 State differ, with additional Planned and Paused statuses.
Can set date range
Click to view Module 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.
You can view Issues by Assignees, Labels, and States.
You can add links to Modules.
Views
You can create Views for commonly used filter conditions and display modes, allowing quick access directly from there.
You can use different display modes and filters to view Issues at the top of the View as well.
Pages Simple Document
Pages offers a WYSIWYG document editor, making it easy to write documents and insert images.
Currently, directory and category functions are not supported. When there are many documents, it becomes very chaotic.
Document permissions: Public - visible to all Project members; Private - visible only to yourself.
Notifications Issues Personal Notification Features
Notifications are sent for status changes, content updates, and new comments on subscribed Issues
By default, Issues in projects you create, are assigned to you, or lead are subscribed to.
Currently 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
- From Profile Picture -> 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 actively developing new features and improving user experience. The mentioned feature 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:
Issue Report: https://github.com/makeplane/plane/issues
Official Discord: https://discord.com/invite/A92xrEGCge
Plane.so x Scrum Workflow Example
Architecture
Each team has its own Workspace
Each team will have a primary product Project.
Projects: Other projects can be created, such as marketing advertising projects, customer support projects, or projects collaborating with external partners, separate from the main product development projects.
Modules: Create Function Modules (design, frontend, backend, app) to help Team Leads track progress and link OKRs or project goals to modules (e.g., improve conversion rate, OKR-1 increase GMV…).
Cycle: Create a Cycle based on the Sprint cycle. For example, if there is one Sprint per week, you can create
W12
or use the Monday date like2024–05–27
.Since cycles cannot be created automatically at the moment, you need to set up future cycles monthly or weekly in advance.
Always create an Issue for any 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 to facilitate project management
Process
Sprint Cycle: One Week
Backlog: For any tasks or ideas, create an Issue with State = Backlog, fill in Estimate and Priority
Weekly 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 is an urgent Issue inserted during the Sprint, it should also be added directly to this week’s Cycle.
Daily Stand-up: Spend 15 minutes each morning quickly sharing the status of your issues.
Issue ready to execute, start execution Change status to ToDo/In Progress
Change the Issue status to Done, or create an additional Review State.
Weekly 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 every Friday. Unfinished Issues should be either added to the next week’s Cycle or moved 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 one that fits your team. Refer to the framework provided by Plane.so and use your creativity to find the best project management method.
Appendix
API
Plane.so uses a clean front-end and back-end separation architecture, providing a complete API. After creating API Tokens in Workspace Settings, you can use the API 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 missing. The quickest way is to open the browser’s developer tools, check the Network requests, see how the official API calls are made, and use your own Key to access them.
Issue Comment: Problem of immediate submission after selecting text when typing in Chinese
Opened an issue with the official team and checked the source code. The chance of a fix seems low because the need to select a language was never considered initially, so the Enter key event on the keyboard is directly bound to submit the comment.
Browser Extension Workaround:
Here is a self-written Workaround JavaScript script to hook the Enter event.
- First, install the JavaScript browser injection plugin:
The above are shared Chromium extensions; other browsers can also search for similar JavaScript Inject injection tools.
- Go back to Plane.so, click Extensions -> click “+”
- 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” to save.
Back to Plane.so (refreshed), 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 comment.
⚠️⚠️⚠️ Security Issues ⚠️⚠️⚠️
Since Plane.so is still in development and the product is very new, its security is uncertain. It is recommended not to upload any sensitive data to avoid data leaks if the service faces major issues. Alternatively, use Self-Hosted to set up a local network-only environment.
Plane Self-Hosted Setup Guide
If you have any questions or feedback, feel free to contact me.
This post was originally published on Medium (View original post), and automatically converted and synced by ZMediumToMarkdown.