8 ms·
Ask HN: I wrote a Slack compatible server. Can I open source it?
I had to implement a chat server for a project I'm working on and since I had never done this before, I used Slack's documentation as a roadmap and ended up re-implementing pretty much their whole API (I went a bit overboard I know).
I would like to open source this code but was wondering if it was legal for me to do so or would I be infringing on Slack's IP.
- waffle_ss 11y agoIANAL but I don't think API compatibility is infringement[1]. At least, I've seen projects that advertise this as a feature - for example, errbit[2] is API-compatible with Airbrake. [1]: https://en.wikipedia.org/wiki/Application_programming_interface#APIs_and_copyrights https://en.wikipedia.org/wiki/Application_programming_interf... [2]: https://github.com/errbit/errbit https://github.com/errbit/errbit
- masukomi 11y agoThat's because AirBrake made their plugin open-source. Errbit was making their product api-compatible with an open source project.
- kaolinite 11y agoI'd do it, but keep the references to Slack to a minimum. So, don't call it "OpenSlack", for example. Just give it a nice name, mention that it's Slack API compatible and you should be fine. At most, I suspect they'll just C&D you and then you say sorry and take it down. I can't imagine you'll get in any trouble. Not a lawyer though.
- jakejake 11y agoI'd agree with that except the part about mentioning Slack compatibility. I wouldn't mention Slack at all without their permission. Since the OP says that this is for another project, they might get not only a C&D for the chat code, but the original project might be infringing as well. Even if it's not actually infringing, it might result in some legal fees.
- lmm 11y agoAPIs themselves aren't copyrightable, as we saw in Google's recent lawsuit. The documentation is though, so be sure you're not infringing on that. Any license agreement you or your company have with Slack might "ban" you from doing this; you might e.g. lose your access. That will be a contractual matter between you and them though, not anything criminal. IANAL; you should probably get actual legal advice.
- Hello71 11y agohttps://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc.#Appeals_Court https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google...
- desdiv 11y ago>APIs themselves aren't copyrightable, as we saw in Google's recent lawsuit. The most recent ruling said that APIs, by themselves, are copyrightable[0]. The case is back to the district court now to determine whether the wholesale copying and reimplementation an API falls under the fair-use defense. [0] https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc.#Appeals_Court https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google...
- deleted 11y ago[deleted]
- angersock 11y agoThat's bloody depressing.
- sysk 11y agoDepressing indeed. Are there any other open source projects that are API compatible with a proprietary product/service? Is it ethical? I feel like it is but would be interested to hear HN's opinion.
- dsr_ 11y agoA blackbox implementation (no access to original source code) is clearly ethical. The purpose of an API is specifically to allow interoperability with software that you don't write; the presence of a competitor (open source or not) who re-implements the server side of your API is a Good Thing for a competitive market place.
- jtokoph 11y agoIf you do open source it, don't use Slack in the name
- colinbartlett 11y agoThat's really the key. Recall CentOS before RedHat was brought back into the fold. RedHat was always referred to as PNAELV, a "Prominent North American Enterprise Linux Vendor" to avoid running afoul of trademark issues.
- deleted 11y ago[deleted]
- jkot 11y agoIf you would like to use it as a reference, and dont want any sort of troubles, make sure it does not reach mass adoption. Some exotic build instruction or complicated deployment will do.
- joeyspn 11y agoWhat technologies did you use? XMPP? Node? ... I don't think your are infringing any copyright as long as you are not making profit from it. Reverse Engineering is legal, specially when done with the aim of interoperability... and what you are seeking is an interoperable server right? http://en.wikipedia.org/wiki/Reverse_engineering#Legality http://en.wikipedia.org/wiki/Reverse_engineering#Legality
- sysk 11y agoAh, interesting question. I had never implemented a chat server before and initially read the IRC/XMPP specifications but Slack felt like a "superset" of both (federation/p2p wasn't a priority for me) and I was more familiar with web protocols. The stack is Node.js and PostgreSQL (I probably reinvented some kind of message queue). There is a "dumb" websocket server that just receives/sends events from/to the backend server. Both the websocket and backend servers can scale horizontally. I haven't written any XMPP/IRC gateways for now though I suppose it wouldn't be that difficult to do.
- onyxraven 11y agoFun. From everything noted about Slack, thats all they've got as their 'core' as well (PHP/MySQL I think, with maybe nodejs websockets).
- toomuchtodo 11y agohttps://twitter.com/SlackHQ/status/500007057937145856 https://twitter.com/SlackHQ/status/500007057937145856 https://twitter.com/SlackHQ/status/521894442064560128 https://twitter.com/SlackHQ/status/521894442064560128 https://twitter.com/SlackHQ/status/458391373994270720 https://twitter.com/SlackHQ/status/458391373994270720
- deleted 11y ago[deleted]
- ohitsdom 11y agoProfitability has nothing to do with determining copyright infringement. For example, if I made a soda called Coke+ and gave it away for free, I'd still be infringing.
- dvdplm 11y agoDid you manage to connect the regular Slack client to this? Is it enough to redirect the traffic to "myorg.slack.com" wherever your daemon is running? That would be kinda neat.
- jacquesm 11y agoWithout a lot more information your question is un-answerable. For one, the jurisdiction that you're in is critical, for another the process is in some cases as important as the end result. You should consult a lawyer that you pay for.
- cp9 11y agotalk to an actual lawyer
- samwillis 11y agoYou could ask Slack if they would mind you open sourcing it? Just make it clear that the only reference to Slack is when you say its "Compatible with the Slack API".
- ChuckMcM 11y agoIn general, re-implementing a software product from open specifications has been protected by the courts. There are numerous examples, from the original IBM BIOS to Microsoft BASIC to PostGres and BSD Unix. That said, the Google case is casting a shadow on programatic APIs, but 'look and feel' are essentially fair game. What are protected and protectable are Trademarks. So using the word 'Slack' in the name or anything that looks like it came from the Slack web site (see the recent "Open Trello" flare up) will cause you legal issues and should be avoided entirely. The most interesting "middle" case is if you want to host third party integrations which work on your system and Slack's then you're going to get some push back. But again, caveat things like patents, being enough workalike (or my favorite phrase bug-for-bug compatible) is well trodden and has consistently been shown to be ok. (see the latest Keurig fiasco for that!)
- bcg1 11y agoI'd like to add... the key test for trademarks is whether or not the use will cause confusion in the marketplace as to the origin of the product. So calling something "Open Slack" would almost assuredly not be fair game... while claiming that the product is "mostly compatible with the Slack API" would probably be fine, especially since it almost self-evidently implies that the product is not Slack. In any case, best to tread lightly with the use of their name at all, and certainly don't use it for marketing or promotion. Unlike patents and copyright, the only way to obtain and keep a trademark is to use it and defend it, so companies are rightfully aggressive in that regard.
- gergles 11y agoCan you share more info on the "Open Trello" thing? I didn't hear about that and it sounds interesting to see how it was resolved.
- toomuchtodo 11y agohttps://news.ycombinator.com/item?id=8936701 https://news.ycombinator.com/item?id=8936701 https://github.com/libreboard/libreboard https://github.com/libreboard/libreboard https://github.com/libreboard/libreboard/issues/92 https://github.com/libreboard/libreboard/issues/92
- alazar 11y agoHost it in China and advertise directly to their current customers.
- charlesdm 11y agoNo clue where you're based, but in the EU, this is legal. You are allowed to replicate and reverse engineer systems, as long as you do not use the original source code. APIs/functionality/data models/etc can't be copyrighted (again, in Europe). See http://www.bloomberg.com/news/articles/2012-05-02/copyright-can-t-block-software-reverse-engineering-court http://www.bloomberg.com/news/articles/2012-05-02/copyright-....
- deleted 11y ago[deleted]
- dmourati 11y agoIP can be broken down into its constituent parts. Patent, Copyright, trademark, and trade secret. The rules for each are different and sufficiently complex that the question should be treated as these four parts.
- tzury 11y agoFor a solid advise, talk to a lawyer.
- a-dub 11y agoSlack is pretty much just IRC with an indexer, a pretty web interface, a mobile interface and a bunch of of cool datafeeds/bots. These things aren't hard to build, and many people build them internally in companies all the time. Their value proposition isn't the technology, their value proposition is the packaging. It all just works. People actively maintain the interfaces and the GUI. They have ops teams that keep it up. The integrations are maintained and are literally plug and play. You can pretty much just sign up and within an hour its all done for not much money. For these reasons, I have doubts as to whether or not they'd mind, regardless of IP concerns.