“I think you should close the project and stop working on it. I'll get our lawyers on Monday if you haven't met the conditions by then. [...] We were a tiny company when you interned with us [...] Fortunately, we are much bigger now and, very importantly, we have a lot of money to pay for the best lawyers if we have to go this way. "
- from correspondence with CEO Replit
UPD: I got an official response from Replit and my open source project will be back soon; please see the bottom of the post in the post for updates. The rest of the content will remain here as a historical artifact.
Hi, my name is Radon. I graduated from college last year and now work as a DevOps / infrastructure programmer. In my spare time, I also maintain a number of open source projects .
When I was in college, I interned at a startup called Replit. This is the story of how Replit uses legal threats and its venture funding to get me to close an open source project they don't like.
About Replit
Replit makes a web application that you can use to run code on the Internet in different programming languages. This is nothing new (google "run python online" for proof), so Replit's value proposition is additional features like collaboration, installing third-party packages, and hosting web applications.
I was working at Replit in the summer of 2019, where I was asked to redo the Replit package management stack and make it open-source. If you like reading about technical stuff, here's my post for the Replit blog , and here's the code on GitHub .
In the summer of 2020, I took a job elsewhere, but still emailed them from time to time when they reached out to me about something cool that Replit had developed.
About my open-source project
In Replit, I really liked the support for many different programming languages. (I wrote another post on the Replit blog about how they do it.) And I wondered: How many programming languages can you cram into one website?
To investigate this, I put together my own small web application that could run code on the Internet. About a day later, I got something that worked. (If you're wondering why it was so fast - it turns out you only need 30 lines of code to get people to run Python in a web application! This may be why there are so many websites to run Python on the Internet ...)
After this worked, I started adding as many different programming languages as I could find. As you can see from this snippet of my project's version history, I got a little overexcited:
2020-06-05 df9ba38 Initial commit — 0 ( )
2020-06-05 5e3a4a4 Install some packages into a Docker image — 0
2020-06-05 e937c8f Simple Express server with «Hello world» — 0
2020-06-06 0961498 Embed terminal on frontend app — 0
2020-06-06 c66cf63 Embed Monaco editor on frontend — 0
2020-06-06 27ab1f7 Add «run» button — 0
2020-06-06 f417858 You can run Python code now — 1
2020-06-07 d543081 You can run many languages now — 8
2020-06-07 e2a3e71 All languages 17 working now — 17
2020-06-07 473c50c ALL THE LANGUAGES — 25
2020-06-08 3718315 even more languages — 33
2020-06-08 548c1c1 repl.it superiority!!! — 38
2020-06-08 1ae424f More languages, we need all the languages — 48
2020-06-09 c34ccf2 A lot more languages — 77
2020-06-09 846caf2 At this point the number of languages is absurd — 79
In the end, I added 216 languages, including all 38 languages from Replit , all 100 languages from Yusuke Endo's Quine Relay, and more. You may ask: why did I spend so much time adding obscure programming languages to a web application that no one was going to use? Well, let me put it this way: is this the weirdest hobby of 2020 you've seen?
What happened when I told Replit about my project
I once received an email from them informing me of a new feature they had released. I decided now would be a good time to share my open source project with them, in case they would like to draw inspiration from any of my work:
I got a positive response at first. But then, 30 minutes later, out of nowhere, Replit accused me of unethical behavior and stealing their design:
None of the ideas I used in my open source project were "internal design decisions": they were all posted publicly on the Replit blog (I knew this because I was asked to write some of these blog posts during my internship). And my project looked like a Replit clone, no more than any other website on the first few pages of Google SERP for "run python online", most of which look exactly the same:
But I thought I was missing something. therefore requested details:
(The rest of this email basically repeats the previous paragraph of this article, but with much more technical details. You can read the entire correspondence on Imgur . or online archive .)
Unfortunately, they refused to provide any specific details about what they said I did wrong, reiterated their previous statements and threatened me with legal action:
And then, cherry on top, Replit sent me another email reminding me that they just raised $ 20 million from their investors last month and they weren't afraid to use it against me. The “you” in question is one of their previous interns who just graduated from college a year ago and who is not involved in any commercial activity at all.
I would like to point out two things about this letter:
- «commits like this» — . , Replit, , , , 38 , Replit, 178 , .
- , «demanding» — , , , Replit (. ). , .
, Replit
Naturally, I immediately hid my project, waited a while for my feelings to cool down, and sent an apology to Replit. I thought that maybe something was lost via email, so I asked to call:
Alas, Replit ignored this email, so I sent them another one. To this I got the answer, but not the one I was hoping for:
Just in case Replit didn't realize that I was happy with the situation, I sent out three follow-up emails with explanations over the next few weeks, all of which were ignored.
In other words, Replit's position is the same: if I republish my open source project, they will sue me with the “top lawyers”.
Is Replit correct
Replit claimed that my open source project was:
- clone Replit
- based on their trade secret (internal design decision)
- unethical
Let us analyze these statements piece by piece:
- While developing my project, did I make a Replit clone?
- While developing my project, did I use any trade secrets of Replit?
- Was it unethical for me to develop an open source project like Replit after working on them?
Questions 1 and 2 contain quite a lot of technical details, so I've put them in a separate post . Here is the TL; DR on these issues:
- My project is no more like Replit than 15 other (commercial!) Projects that you can find on Google by searching for “run python online” or “online programming environment”.
- Any similarities between my project and Replit can be explained by looking only at the GitHub repos and blog posts that were posted online by Replit itself, which obviously makes them not secret.
Let's answer question 3 here:
Question: Was it unethical for me to develop an open source project similar to Replit after working on them?
In my opinion, the answer to this question is "no", for a number of reasons:
- Riju is a completely non-profit organization. Unlike Replit, I didn't seek funding from any source, advertising, donation, fundraising, subscription, whatever. I'm not interested in running a business and never wanted Riju to get too popular since I was the one who paid the server bill.
- Riju Replit. , Riju 38 . ( , , .) , Replit 7 . , Riju Replit.
- Riju Replit. , , fork bomb — , , . ( .) , Replit, , , , .
- Replit — ( ). — , . Riju , : , , , -, , , GitHub .
- Replit, Riju, . , GitHub. , Replit , , .
- Riju . , . , , Hexagony SNOBOL, , (!).
I am not a business person. I'm just an open source developer who loves to create weird things for fun. (If you are in doubt about my experience of making things that don't make money, just check the list on my website and note the conspicuous absence of anything that ever made a cent of income.)
I would never try to steal someone's business after working with them. Harming Replit was not my intention when working on Riju, and accusing me of the opposite, especially without asking a single clarifying question and refusing all offers to hold a discussion, in my opinion, indicates a great bad faith on the part of Replit.
If you want to decide for yourself who is right, I would gladly put all the evidence out in the open (except for the code, because Replit still promises to sue me if I do). Again, I have a separate post with all the technical details . And you can also read all the correspondence between me and Replit, in full and abridged form, on Imgur , a mirror on the Internet Archive ). (The technical details about Replit have been edited, as well as any statements that might implicitly disclose such details.)
Why did Replit do this?
Replit states the following ideals:
- (, , GitHub Replit; CEO Replit: "I owe my entire career to open-source")
- ( Replit, : « [… ], »; « . -- GitHub»)
- easier to share and remix your creations (for example, CEO of Replit writes about learning to program: “I would upload projects related to what I wanted to build [...], modify and tinker with them and get inspiration” ; he advises others too fork and remix , and sells that philosophy as a distinctive feature of Replit )
However, Replit's actions in this case indicate hypocrisy:
- they say they encourage open-source development, but when my open source project offended them, they shut it down in prejudice
- they claim to have helped the open-source community, posted blog posts, but when I tried to use these ideas in a community project, they threatened to sue me
- they say they make it easy to distribute, recycle, fix my creations, but when I tried to remix the Replit for myself, I became persona non grata
In Replit's letters to me, their threats were based on the fact that I had worked for them in the past. However, I believe that this reasoning is a screen. To understand why, let's take a look at some of the tweets that Replit's CEO, Amjad, posted right after he threatened me with email:
Amjad later deleted these tweets because they turned out to be contradictory:
In these tweets, Amjad points out that Athens Research was clearly inspired by another company and argues that they should therefore be “ridiculed” and banned from receiving funding. In addition, he says, “I stick with what I said about copycats in general,” meaning he despises all people who, in his opinion, “copycat” existing projects, not just a specific company in his tweet.
There are clear similarities between Amjad's comments about Athens Research and his legal threats against my own project. He even used the same word in both cases - "copycat"... In the case of Athens Research, Amjad could do nothing to express his contempt other than to vilify them on Twitter. But in my case, since I used to work at Replit, Amjad had a reason to throw accusations at me - accusations that, if you are not familiar with the facts, sound like they might be legitimate.
I would also like to reiterate that the person Replit threatens with “better lawyers” and “big money” is a freshly baked graduate with no company, no funding, and no commercial ambition . If someone with a real commercial company offended Replit, I shudder at the thought of what kind of response they might get.
How Replit Reacted to My HackerNews Post
After I published the article in the morning, it got a lot of discussion on Hacker News. At around 5:00 pm, Amjad posted an apology to Hacker News.
He also asked to schedule a call, which I naturally agreed to:
During the call, Amjad apologized for the legal threats, but repeated that, in his opinion, I made a Replit clone and acted unethically. In the end, we agreed to disagree, and he promised in writing that he did not mind if I brought my project back:
I am happy that we were able to resolve this situation in an amicable way, and I look forward to continuing my life - including recovery Riju, after I can build things again :)
Peace.