Readit News logoReadit News
luke-stanley · 2 years ago
Okay it's open source but self-hosting it is not straightforward. The repo's self-hosting doc link returns a 404. Then after manually finding https://docs.plane.so/self-hosting/self-hosting, I am warned that there is a dizzying array of 4 env files. I suppose they are in a tricky situation, in that while they want to stand out as open source, actually having people easily self-host it, is perhaps, not a goal that is currently in their interest! Correction: removed wrong Docker-Compose command interpretation, as I have been schooled!
EspadaV9 · 2 years ago
`docker compose` is correct for the newer (still pretty old) plugin based version of docker compose. `docker-compose` is the older standalone version.

https://docs.docker.com/compose/reference/

luke-stanley · 2 years ago
Thanks to you and others who swiftly correct me!
dabeeeenster · 2 years ago
Spent 10 minutes trying to get it running locally, couldn't.

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" ™.

dabeeeenster · 2 years ago
Ugh - ok finally got it working (it runs on port 80 by default but the docs mention 8080) and then browsing to the homepage gets me:

Your Plane instance isn't ready yet Ask your Instance Admin to complete set-up first.

With nothing in the docs about this.

Gormo · 2 years ago
To be fair, 'try the platform out' to me includes getting an understanding of dependencies and configuration. Docker is useful for a lot of things, but even if I want to use containerization in prod, I'd prefer to build my own containers rather than being dependent on someone else's runtime environment, so getting hands-on with the setup is important to me.

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.

elnygren · 2 years ago
Since they have a /pricing page it would seem their business is not to make it easy to self-host but in fact to make people pay for the cloud version instead.
allarm · 2 years ago
If you just follow the documentation [1], it "just works". I just installed it on my machine, everything was up and running within 3-5 minutes.

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.

[1] https://docs.plane.so/self-hosting/docker-compose

vmfunction · 2 years ago
well some people like docker and some don't. If you are in the self-hosting realm, personally I think it is fair that the people doing it knows about DevOp or systemadmin, or else pay someone to host it for you.
salawat · 2 years ago
I want to know what configs are needed to get things stood up. I actually don't dockerize things right away. I setup my nginx to forward to different machines in my network. When I settle on a home for things, I may (finally) get around to whipping up a Dockerfile.

Not everything needs to be enterprise whizbang out the gate.

DrBazza · 2 years ago
Software installation, even for simple trials reminds me of this Stephen Hawking quote:

"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.

bayindirh · 2 years ago
I, for one, am not afraid of manually building a stack to self-host an application. I'd prefer it over Docker in fact, because it makes everything exposed, and as an admin, I love to know what I'm tinkering with.

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.

whazor · 2 years ago
Some of these self hosted projects need five containers: frontend, backend, database, redis, and elasticsearch. Way too many if you ask me.

My preferred self hosted projects only need one container and has a embedded sqlite database. With the option to configure a external database.

runnerup · 2 years ago
This is great wisdom for software. I’ll definitely carry this parable with me.
bachmeier · 2 years ago
It's been a long time since I fell for the marketing slogan about a product like this being open source. I wasted a lot of hours learning that lesson. If a company has a financial incentive for something to not work, it's not that hard to make sure it doesn't.
brinox · 2 years ago
`docker-compose` is the old style of doing it.

Newer versions of Docker have Compose available as a CLI plugin, so the command `docker compose` with space is correct.

Alex3917 · 2 years ago
I haven't look at this particular project, but having to type the same information into multiple env files is unfortunately pretty unavoidable. Making a Docker / Django project instantiable via template and then runnable locally and deployable in production unfortunately involves 5+ different variable templating systems, which each require their variables to be declared in different files and formats.
zoobab · 2 years ago
"instantiable via template"

A simple bash template via envsubst?

yencabulator · 2 years ago
Is it even really open source? Looked more like open core earlier: https://github.com/makeplane/plane/issues/1171
vlugorilla · 2 years ago
`docker-compose` is the old version of docker compose. The modern command is `docker compose` since it is part of docker:

https://docs.docker.com/engine/reference/commandline/compose...

Deleted Comment

volderette · 2 years ago
Docker integrated docker-compose a while ago, so the command is correct.
lnxg33k1 · 2 years ago
If you want to self-host the only sanity-aware path is redmine, imho
notlive · 2 years ago
The Plane codebase is a good read. If you want to see a well put together Django + Nextjs project you should check it out. There has been a lot of talk recently about what open source means. To completely side-step that discussion, I have plane starred on github because I learned a lot looking at their code without ever having run it or ever using the product.
capableweb · 2 years ago
I can't speak for the Python part (which another commentator also already did comment on), but I don't think the React part is anything to highlight as "code you should try to imitate".

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.

IshKebab · 2 years ago
IMHO UI tests are just too difficult to be worth bothering with in most situations.

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.

pokipoke · 2 years ago
You are wrong. Just checked Django part. No annotations, `__all__` in serializers, exists+get instead just calling .first(), etc. It's no way a good Django codebase.
evantbyrne · 2 years ago
Also noticing copious use of select distinct within the views, which indicates issues with the schema. It may also partially be due to the somewhat limiting API provided by Django Rest Framework, which I personally tend to avoid. All things can be improved though.
whalesalad · 2 years ago
It might not be perfect, or live up to whatever expectations you personally possess, but it legitimately is a pretty good example of a clean and straightforward Django application.
_boffin_ · 2 years ago
What are your favorite repos that are built with Django that have good practices.
blyatperkele · 2 years ago
Although the structure is fairly good, but I'm always puzzled why testing is so neglected, especially with projects that are popular and - hypothetically - production-ready...
no_wizard · 2 years ago
I suppose this mimics real software I've worked on in the past (though thankfully no longer). It seems most of the lessons of software development have fallen on deaf ears despite decades of preaching best practices to each other.
notlive · 2 years ago
It's all fair criticism. The lessons learned will only take you so far, so the caveat is that if you think it's a bad project then you're already above a certain level. Go you :) You might take it in the context that they are shipping a real product at a fair speed so where it deviates from ideal what you're seeing is the educated choices of the tradeoffs to make in a real business (which is a statement of the plane team's opinion, yours may vary).
capableweb · 2 years ago
Yes, this! People tend to forget when reviewing code long after it was written, that there is a lot of context around code that isn't "codified".

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.

jredwards · 2 years ago
The first python module I opened has every single method wrapped in a naked except clause. Yikes.
chx · 2 years ago
> See what 2,300+ folks in a forum get up to

oh okay

> Join our Discord

sadness. where's the forum?

prepend · 2 years ago
It’s funny as I think discord is actually kind of harder to get into than the old irc method. With irc there was no history or permanence so there was a relationship between discussion and what made it into the project as source or docs.

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.

ruune · 2 years ago
Discord does have an okayish search feature which gave me a desired answer most of the time I joined a server because of a particular program I had. Enormous downside being that you have to guess the previously used wording if you don't have an error message or something.
imhoguy · 2 years ago
Reminds me of Slack as knowledge base in some companies. This area needs some LLM disruption.
JCharante · 2 years ago
Yup I hate discord. Discord is for gaming, not for school or work. They should use something like Mattermost instead.

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?

khimaros · 2 years ago
i was burned badly by mattermost when their expert functionality didn't work for months and eventually i missed the archival deadline and lost all of the history for a project.
dpoljak · 2 years ago
Its amazing to me that it has become such a default, similarly to Slack before it. At least some Slack communities tried and worked on getting the channels indexed so that it shows up during web searches, now with discord I need an account just to view the content...

A hard pass from me, especially when an answer to a simple question requires me to drink from their firehose of a search...

mrklol · 2 years ago
I always go with discord in newer projects. Why? I feel like most people have discord nowadays and it just works (TM). I rarely have a case where a person said that they can’t join because they don’t have discord or don’t want to create an account because other reasons.

Beside that, money is also a big factor. Slack for example is getting more expensive for communities.

imhoguy · 2 years ago
Slack doesn't require phone number validation, Discord does. Try to login first time with FF on Linux and with uBlock Origin defaults and then pooof, insta ban! Guess what, your phone number is banned for validation too forever,
alephnan · 2 years ago
> “But what are GitHub stars?”

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

SadCordDrone · 2 years ago
> 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)

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.

alephnan · 2 years ago
> 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.

darkwater · 2 years ago
What do you prefer? A software whose UI and workflow are good for upper management but a PITA for engineers, or a software "by engineers, for engineers" which has some sales pitch/material that can be appealing to upper management, who ultimately makes the decision to shell out the money?
alephnan · 2 years ago
There’s other options.

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.

prepend · 2 years ago
I read it as addressing the “who cares about stars” that I have whenever someone mentions stars.

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.

alephnan · 2 years ago
The problem isn’t that stars are imperfect, but they have become gamified. The emphasis on GitHub stars as a form of authority makes me trust this project even less. You’d expect VCs to do due diligence on the authenticity and quality of GitHub reviews, but I’m dubious about that, whether they are doing so out of willful ignorance or not is a separate question.

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.

guappa · 2 years ago
If they hadn't mentioned stars we'd know they don't care. Now I'm almost certain they paid for them.

There are several websites where it is possible to buy them.

solarkraft · 2 years ago
It's not necessarily antithetical. You can build for engineers, but target management for sales - since those people often make the decisions.

Deleted Comment

lifeisstillgood · 2 years ago
It's not so much "not JIRA", it's that managing code bases outside of the code base is hard and awkward. And due respect to fossil-scm, I don't know if any way to do it otherwise.

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

xorcist · 2 years ago
Why the need to reinvent the commit message? Look at how Linux does it. If it's good enough for a globally distributed organization creating the operating system the cloud and most phones run on, it can't be completely wrong. They rely solely on mail and commit messages.

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.

lifeisstillgood · 2 years ago
And the Linux mailing lists are a great example of what I mean - deciding what to do and why is a huge upfront discussion - one they do in the open. but it's a crap backwards looking method for a summary.

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?)

avgcorrection · 2 years ago
It’s just “Jira”, not JIRA.
steve_adams_86 · 2 years ago
Many of us were scarred deeply by it when it was all caps, and these things are hard to forget

We know who’s actually under that title cased name. It’s the same monster who hurt us all those years ago

martypitt · 2 years ago
This was a really good read. As the maintainer of a large GH OSS repo, I really loved their "This worked / This didn't" sections.

20k stars in a single year is a very impressive feat.

Congrats to the team at Plane, and thanks for this.

potamic · 2 years ago
20k stars! Now my bullshit meter is sounding. Surely, developers of all people are not this passionate about project management tools.
captn3m0 · 2 years ago
The blog has so much more advice than what the clickbait title would have you believe.
holsta · 2 years ago
Can you elaborate?

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.

quickthrower2 · 2 years ago
The article doesn’t rant on that much about stars, and it is a good hustle journey with tips kind of article
CSDude · 2 years ago
I'm all for open source task trackers, but the UI in most parts is a rip off of Linear.
lijok · 2 years ago
Not copying existing ideas is the strangest thing to me. What is the point of spending months trying to come up with an original design, instead of just taking a proven design and improving on it / customizing it to your companies virtues?

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?

codeptualize · 2 years ago
It's not black and white, but cloning a product is just not nice. The legality is probably fine, there might be an argument for copyright infringements, but unlikely to get any result.

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.

rf15 · 2 years ago
Pride coupled with politeness I guess: you don't want to look like a cheap imitator or impostor, so you write everything yourself.
tylerrobinson · 2 years ago
Amen. This is somewhat reductive, but you need to identify the problem your users are trying to solve, look for similar examples in the wild, and commit to one you like. Avoid reinventing the wheel to satisfy your ego unless the product truly requires it.
Brajeshwar · 2 years ago
Well, I believe everyone is following on the Tailwind Template UI designs with Neumorphic-ish patterns these days. For instance, check these templates and tell me you haven't stumbled on new Startups launches these days with strikingly similar designs.

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://split-xi.vercel.app

- https://starboard-one.vercel.app

No relations with any. Stumbled on them here on HN and an early customer of TailwindUI.

CSDude · 2 years ago
I meant the UI and the functionality, all the sidebars left and right are a copy of Linear's features.

Deleted Comment

otikik · 2 years ago
I'd rather they rip off Linear than Jira tbh.
wiz21c · 2 years ago
Ideas are free to be copied...
solarkraft · 2 years ago
Which I consider pretty good!
dvngnt_ · 2 years ago
linears.art

they wouldn't be the first

master-lincoln · 2 years ago
linear is MIT license, so taking their UI design seems ok
luke-stanley · 2 years ago
I don't know about IP, but Linear is a web app and company that is not broadly open source, not even open-core, and is not something presented as something the user can self host.