Plane got to top spot in project management on GitHub in less than a year
plane.so
plane.so
https://docs.docker.com/engine/reference/commandline/compose...
Newer versions of Docker have Compose available as a CLI plugin, so the command `docker compose` with space is correct.
They suddenly mention nginx in the self hosting docs - why?!
I don't understand open source projects that required you to fiddle around with scripts, environment files, reverse proxies etc to try the platform out! docker compose up should "just work" ™.
Your Plane instance isn't ready yet Ask your Instance Admin to complete set-up first.
With nothing in the docs about this.
No, it doesn't mention it:
> NGINX_PORT - This is default set to 80. Make sure the port you choose to use is not preoccupied. (e.g NGINX_PORT=8080)
The docs [1] are clear and concise. You just have to actually read it.
Not everything needs to be enterprise whizbang out the gate.
On their webpage it says that you can get started in 30 seconds with their hosted instance. Would be nice if it was as simple to get started with a locally hosted instance.
I think it’s reasonable to provide as close to a one-line / one-action initial install, even for people who are experienced admins. (Those experienced folks can edit/tweak as they like, but having a basic “push this and something sensible happens” goes a long, long way to getting people to succeed in trying the product.)
I don't want a new project, I want to try self-hosting the software. If I am using it and liking it then certainly I would put time and effort into it. If it takes some time fiddling around with docker even to use, well, I have other projects to fiddle.
That goes for all self-hosted, but especially so for a project management tool. I'd be trialing it because I have projects I already need help managing. Adding one more is friction that would likely turn me away.
Where did you get this from? You do not need to fiddle around with anything to have it working. The only thing that _probably_ requires "fiddling" is the nginx port - and you need to change it only if the default port is already in use. Is it really that difficult nowadays???
Mind, I don't think Plane's one of these. The open-source release seems comprehensive and the doc just seems not very good because the people who wrote it are experienced operators. But the claim being made isn't one that's easily put to rest except through the company in question committing to enthusiastic and comprehensive support that dispels doubts. (And, well--they chose that life!)
If the goal is just to test the application functionality, a demo site that's already set up and publicly accessible would be much easier than having to deploy a Docker container.
In terms of Nginx, using it to handle web server functionality, and especially encryption, while acting as a gateway into your containerized apps is a pretty bog-standard approach, and makes for good separation of concerns. I don't see much value in having that stuff implemented separately within each application and creating more config complexity for sysadmin work.
They even wrote a setup script that saves you from the mind-boggling complexity of docker, giving you a simple menu where you only have to read the items and press a key. If you don't know which key to press, the readme [1] is very helpful. The only place where you will have to "fiddle" with the environment files is to change the default port from 80 to another. And if you're not ready for that, or not skilled enough to understand what that means and why you might need to do it - you're not ready for self-hosting and should take a step back and learn the basics of OS administration.
Oh, and they mention nginx because this software uses nginx inside a container. Hope that answers your question.
A simple bash template via envsubst?
"Someone told me that each equation I included in the book would halve the sales. I therefore resolved not to have any equations at all. In the end, however, I did put in one equation, Einstein's famous equation, E = mc squared. I hope that this will not scare off half of my potential readers."
It just feels like that law can be adapted to: for every step and pre-requisite in your setup, you lose half your potential customers.
Of course, it's not precisely that, but it feels the same.
My preferred self hosted projects only need one container and has a embedded sqlite database. With the option to configure a external database.
However, the docs should be good. No hidden layers, no skimped over steps, no "insert some magic here". It's your app, you know it by heart, but I'm just getting to know it.
If you do this as an established application or a developer which also sell your product as a SaaS, I assume that you're doing it in bad faith, and move on.
This is not the best practice codebase as I wrote it when I was learning Django. But is it very applied. Any beginner should be able to understand this.
I just did a quick look, but it seems to suffer from common problems lots of UIs suffer from. Zero tests (unless I missed where they are located), even for things that doesn't even touch the DOM (like the "helpers"). Components filled with heavy logic at instead of being cleanly separated out. Just two examples after a quick 5 minute browse.
That said, I've definitely seen worse codebases and this wouldn't be too hard to work on in a professional setting. Clearly it works for them, and they seem to be progressing, which is good enough. But again, wouldn't flag it as "exceptional" either which you seemed to have done here.
Maybe AI will change that. But for now I think dev time is generally better invested in other ways of making code work properly, or just fixing bugs that have already been reported.
I know that sounds heretical.
Yes, that's because you're doing them wrong.
Don't mess around with the "golden master" testing (edit: seems the frontend ecosystem call that "Snapshot Testing" actually, but it's the same) you see bunch of projects do, that compare the old DOM vs the new DOM you accept/deny changes based on component render output. That's a waste of time and won't actually prevent bugs.
Instead, extract the logic-heavy parts out from your components, then put those under unit tests, like any other code you write.
Boom, easy to maintain, verifies your implementation and makes your UI easier and faster to refactor and build in the first place.
In an ideal world one might argue that everything testing-worthy (ie. the logic-heavy parts) is already factored out from the UI components but getting to that point either needs a good amount of foresight and discipline or some a lot of refactoring which is difficult to trust without existing UI tests...
I remember looking once at a project me and some others got pulled into, where everything was working but the code was spaghetti (which, to be fair, is usually why I get pulled in), and they were having a hard time adding new features without breaking existing ones.
At first, our reaction was the same as many programmers; "Oh my god what have they done and why have they done it like this?!"
Turns out, the company was on the brink of extinction, had about two months of runway left and made this Hail Mary project to attract some new attention and eventually landed them new funding.
So the project was rushed, a lot, but that's OK, but if they didn't rush and wrote super shitty code, the company wouldn't have existed at all. They were OK with this, because they traded "existing today" for "refactoring in the future", which sometimes is the right call to do.
oh okay
> Join our Discord
sadness. where's the forum?
With discord it’s weird because the expectation seems to be on me to wade through hundreds or thousands of messages to find docs because there are people who hang out and read everything.
So while it is in the interest of the open source project that as many people going forward can benefit from past Q&A, it is in the interest of Discord to require you to install their client to search.
Silos are sad.
So in discord it’s like this:
-join server
-search
-figure out how to leave server
On IRC it’s like this:
-join channel
-ask question
-get directed to wiki or forum
-search forum
-never have to leave anything
-or better yet that wiki or forum is indexed so I just google and find my answer that way
Try explaining the steps to irc to someone who has never used irc before. That will be way more difficult than figuring out discord.
irc also has the downside of "ask question - get nothing" because the guy (who you dont know which guy is "the guy") wasnt online to even see the message. Or "ask the question and wait and hope I dont get disconnected losing any responses they might have answered with"
Discords can setup tickets or question areas as well, which greatly helps
All that said, I prefer docs, wiki, or a forum/subreddit over either irc or discord, but no way would I want to go back to irc
Joining a discord server is a whole mental decision. And each server is organized differently. So when you join a server you have to figure out where to comment and search.
I mean, with modern web clients, it can be as easy as "open chat link, chat, close page".
A hard pass from me, especially when an answer to a simple question requires me to drink from their firehose of a search...
Beside that, money is also a big factor. Slack for example is getting more expensive for communities.
This isn't necessarily a bad thing; may even be a positive aspect. In a quickly changing project, maybe it's good if your documentation isn't too "sticky" and the solution to a problem isn't low-touch "read the docs" but high-touch "ask me so that I can experience the pain points"
They claim 150 million monthly active users. Not close to most people.
How would you expect someone to tell you they don't want to create an account? Most maintainers would consider opening an issue inappropriate I think.
But J, they don't want to waste their time with hosting a messaging platform!
Well if that's the case, then why would others waste their time hosting their own project management board?
This is weird. It’s almost as if this is a sales pitch to non-technical management who gets to make the executive decision on what issue tracker to use.
That’s almost antithetical to “by engineers, for engineers”
If this project is driven by commercial interests, then the open-source spirit, if any, isn’t genuine and won’t stick around once VCs want the bait-and-switch.
Edit: the blog post goes at length to discuss growth hacking and “engagement”. The reason Jira is the mess it is is because they tried to accommodate the feature request of every paying customer
Edit 2: seems they are logging telemetry by default https://github.com/makeplane/plane/issues/1694
Edit 3: it’s possible this engagement story is to impress VC / funding first, paying customers second
Edit 4: I’m starting to see the other commentary about plagiarizing Linear in a different light, now that I’m cynical about the ethics and honesty of this project. All the non trivial contributors are exclusively from a country known for Infosys, clickfarms for social media engagement, gamifying the interview/recruitment funnel (see Grace Hopper convention). If this was a truly global crowd source effort as the GitHub stars would make you believe, you’d expect to see more geographical diversity. There’s a point where GitHub stars isn’t just a weak signal, but a negative one
37signals and BaseCamp built products that works for their own processes based on their experience as a software team. They productized it and sold it. I’m not contesting that the product couldn’t be sold.
The issue here is bring driven by growth engagement, giving this impression that it’s about listening to the community. My cynism is that that they don’t care about what makes most sense for the product, but what drives engagement. You can argue what drives engagement is best for the users. That idea is good in theory, but in practice trying to satisfy everyone’s need you will end up not serving any use case well. Go, atleast Go 1, make explicit trade offs that made many people dislike it, but it kept the language simple and excelled at its intended use case.
At any rate, I am cynical that the project here is driven by developer interest as much as it is about impressing VCs.
So it was like a developer saying “I know stars are a dumb and imperfect way to judge a project, but here’s what it is.”
If they hadn’t written this I would think they put too much weight on what’s really not a very important measure.
All of the contributors on this project are from the country that feeds to Infosys. I’ve seen enough inflated resumes from candidates who couldn’t write a loop despite having a masters degree. Ironically, the one candidate from this country I gave raving recommendations for was the one who had bad school grades. This country is also a hotbed for clickfarms and selling fake social media engagement/reviews.
I mean this project has 18k stars that just tells me it’s popular. It’s possible they bought fake stars but at 18k that would be strange.
I think stars are useless for comparing a 17k project to an 18k project and anyone comparing that way would be flagged by me as not so smart.
But it is useful to distinguish something with just a few stars from thousands.
The challenge is that there’s not really a good way to tell what a successful project is short of looking at it closely and using it. I’d like a better measure, but this is what we have.
For a while, websites like fakepsot.com that analyzed and rated the credibility of these reviews worked well. Since then, they've been gamed.
I'm not sure there's been a successful service for analyzing Github reviews
There are several websites where it is possible to buy them.
The fact that this blog post made sure to bring up their Discord engagement makes me think Discord is now also a negative signal
I see your other points are valid but this was uncalled for.
The person who commented the telemetry issue (Kailash Nadh) is also from India and CTO of largest stock broker, he is also known for encouraging open source software.
A large amount of contributors to GSoC and LFX programs are Indian college students.
All the dysfunctions you mention are symptoms of large population - of which I too have been a victim of. But I have seen some very good engineers in this country too.
Me too.
One of the best Indian candidates I interviewed was the one who had the worst college grades... probably because they focused on internalizing the material and actual problem solving. The other candidates all studied Leetcode, and was dumbfounded when asked a simple, non Leetcode question. The question was to bruteforce and guest a password to a website. I provide them the API definition to Login with a Username and Password. All they had to do was generate every possible password between 8 and 20 characters. There is no rate limiting and we don't care about optimality or runtime. The only tricky bit is that there are a variety of business/password words such as password strings can't start with a number. If they call the API with 5 passwords that don't satisfy the password rules, they get locked out. This isn't worded as a Leetcode problem, but it's really just generating every permutation and filter out strings that don't match some condition checks (which I enumerate for them. It's not a blackbox). Asking people to program against this API: boolean login(username: String, password: String) was enough to trip up these people with Masters degree.
The problem with people cheating the system is that it harms candidates like this.
The problem is they have done leetcode style of puzzles all their college life. - mostly control flow, numbers and DP / greedy / graph patterns.
Which is such narrow area of computer science.
They don't understand basics of - operating systems (eg: VMs), compilers (eg: compiled vs source code, optimization), languages (eg: type systems), networks (eg: NAT, firewall), software engineering (eg: writing modular code, version control).
All these things are as Computer Science as leetcode algorithms. These are in the syllabus, at least in a primitive form. But these kids are only tested on leetcode puzzles.
Ask anything deep on these and watch these DSA-generation kids struggle.
The goal here is to look at something that tells an organisation why chnages to a codebase occurred. Each individual commit can have a nice explanation (in a given human language) of why that specific change occurred. But how does one link other commits, dozens or hundreds or orders of magnitude more.
Can they be accounted for to investors, auditors, regulators?
But equally demanding that commits link to something that links to why, it demands that the rest of the business also link to that something (ie JIRA) so they can explain why they expended time and effort
JIRA or whatever ticketing system, will slowly become the central repository of justification for expense - a great position sure, but also dangerous.
Following on, having some repository of why - of cost drivers - forces not just the software developers but the whole business to justify its activity against the repository. This seems hugely similar to lawyers billing by the 15 minute increment, and indeed a git repo will provide good billing like data too !
But the issue still exists - if I say my activity links to ticket number 1234, then we have a hierarchy (?) of what 1234 links to. The smacks of stories and epics and the whole agile package, but is also a common accounting process
my issue is that this is a neat, backwards looking explanation for what was done. It's not a good way to manage forwards.
And often I find the problem is people wanting to use JIRAs tickets to manage what will be done, not account for what has been done
Ticketing systems are useful for a lot of other things such as keeping track of work on an individual level, or managing project resource allocations on a company wide level, but I'm not sure it's the best tool to do audits and have accountability. It will at best be a secondary source of that data.
Most businesses hide the upfront discussion (or at least keep it to a smaller set of people who have often conflicting incentives for decisions as well (we tend to refer to this as politics but that's a bit like fish moaning about water.)
Anyway the point is that Linux shows how to make good decisions in the open (usually) - a process that I think most would 10x good decision making in most businesses but also lead to huge other sets of problems (worth it in my view but ...).
But Linux does not have a simple way of post-hoc justifying the decisions unless one reads the threads (which is where the recent post of open source journalist at lwn was a great idea)
But things like Jira, external ticket stores are good at providing a hierarchy to post hoc justify the decision - even if they are a terrible way to plan forwards.
So the ideal I guess is some kind of open architecture discussion upfront and some kind of extract and rebuild the rationale from commits (ie in house journalism?)
There are two kinds of "tickets" - forward looking ones that basically say "we have a problem, please analyse and solve it using software" and a second closely related type that is "we have found the solution to the problem, please apply the solution to our environment"
this is basically the dividing line between dev and ops. and the confusion is what causes so many problems - there is development in support of R&D then there is development in support of ops
one cannot be predicted or sensibly estimated. One can.
Our plain comes frommmixing the two
We know who’s actually under that title cased name. It’s the same monster who hurt us all those years ago
20k stars in a single year is a very impressive feat.
Congrats to the team at Plane, and thanks for this.
I click the star on GitHub when I come across a project that doesn't seem immediately worthwhile, but that I might want to check back on in a few years.
I can't imagine caring about how many stars / likes something has.
Personally, I'm perfectly fine as long as they are pleasing to look and nice to use.
- https://spotlight.tailwindui.com
- https://pocket.tailwindui.com
- https://protocol.tailwindui.com
- https://commit.tailwindui.com
- https://mailgo-rho.vercel.app
- https://ioacademy.vercel.app
- https://starboard-one.vercel.app
No relations with any. Stumbled on them here on HN and an early customer of TailwindUI.
In the fintech space I've seen so many startups hire designers to come up with original new designs and user experiences, only to arrive at the exact same design as existing fintech apps.
What is the point of refusing to stand on the shoulders of giants? Pride?
Imo it's also good to realize in this kind of software, patterns and UI are very core to the product, so you are copying the essence of what this company has spend tons of time and resources to develop. Fintech might be different as it's less about UI.
Then there is also a difference between UI patterns and branding. The first: It's good to follow standards and expectations, the second should just not be copied imo.
Another factor is asking money for it, which it looks like they intent to do. I think that makes it even weirder to clone an existing product as now you try to compete and profit from other peoples work.
There is a fine but clear line between inspiration and copying, and imo this crosses the line.
Even if legal I would not use this product for that reason, and imo it reflects poorly on the people doing it.
Not only is it perfectly fine, it's the only way for competitive markets to function.
Copyright, patent, and trademark laws demarcate the boundaries within which we aim to guarantee enough protection to incentivize investment in truly unique innovations, but outside of those boundaries, we want markets converge to common product standards and establish category-wide conventions. That enables continuous marginal innovation without each entrant having to reinvent the wheel from scratch every time.
I'm not sure anyone, Apple included, is better off today because they managed to shut down GEM and ended up killing Digital Research. I'm not sure anyone, AT&T included, would be better off today if the BSD and GNU projects and Linus Torvalds had never aimed to create clones of Unix.
Creating FOSS clones of commercial products is where much of the foundational modern software came from, and forking existing projects to add your own features is an essential element of FOSS software.
You're naturally free to eschew this project for the reasons you cite, but I don't think your opinion establishes good general principles. Markets, technology, and society as a whole function precisely because people do copy what works from each other and add then add their own innovations incrementally.
they wouldn't be the first
Gives a 404. I hope they see this message, it was the only thing I wanted to read really.
I know that a lot of enterprises use the time estimates combined with the work log in Jira to time box sprint cycles based off of how long it took to complete past tickets.
I routinely get stars from completely empty accounts that star random projects for free to avoid bot detection.
Do any companies decide to switch away from Jira onto Plane or is it only new orgs/teams? Because I find that there's a lot of integrated tooling around Jira that keeps people there.
But I don't understand with all the comments pointing out the traps you have to avoid to get plane running on local why it got to #1?
What I don't understand even more is what was wrong with redmine?
Yes, it is a huge beast, because big corps have huge complex workflows.
This is like objecting to a fairly lightweight orchestration tool calling itself a 'Kubernetes alternative' - it is an alternative, it won't necessarily fulfil all needs of everyone using Kubernetes (resp. Jira), but it will for a lot of them, a lot of them don't need everything it's offering anyway. Of course they're going to use one of the most well-known players to paint the picture of what sort of thing the product is.
And GitHub stars does not matter. Period.
Also, it's an informal social proof, which drives trust. The more stars, the more legit something seems.
My personal experience is that most stars on my projects come from empty accounts that star random stuff to avoid getting detected when they star the projects that paid.
Regardless, imperfect as it is, a GH project with 20k stars feels more credible than one with 200.
(I write this as someone who works full time on a GH repo with 200 stars! :D)
Simple, fast, gets the job done.
Do you mean personal programming projects or in general?
Why should I be the only one to suffer through these ceremonies, might as well indoctrinate the family.
Honestly, probably a good thing to learn kids how to verbally fake progress and work from an early age and make them self sound helpful and important. As long as they are told it is only OK to lie during Scrums.
Jokes aside, I’ve found the Todoist app really great for managing the chaos that’s my life and making sure the things that need doing get done!
I'd like to hear more. Do you think that full-fledged issue tracker is a benefit, even if you're not working with other people?
My intuition is that if you have multiple tasks in a project, and you're the only one working on them, a simple list should be enough?
Just use MS Todo or Apple Reminders or something. That's all you need for personal stuff and it costs a grand total of zero.
Just create a github repository (privately if you want) and update a README.md file and journal at the end chronologically or reverse chronologically depending on how you think of your journal.
I've been doing this since 2013 and it really helps me get things done.
Because it's the ONE place you go to to plan and see what you need to do, you don't have to remember hundreds of different buckets where information goes and is forgotten. It's all there in one place.
Joking aside, how would you use this tool for your private tasks?
I've been using it for more than 10 years now to track personal todos and projects.
The phone app is also smooth and to the point.
Also Linear has been defining in terms of their website design, they have been doing a lot of impactful work.