Live data from Hacker News

Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps

repl.it

11–20 of 140 posts

Re: Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps

#11
Hey HN, author and Repl.it cofounder here. It's been a long journey to get to what we're calling 1.0 and HN have been there on every step of the way. We started working on what became Repl.it back in school where we were tired of setting up the development environment on every machine we wanted to code on. It was at a time where everything was moving to the cloud and we thought that, naturally, coding would follow suit. We initially approached this problem naively and started hand-writing interpreters in JavaScript so we can run them in the browser but soon enough we've figured that it would take us years of work to get to something usable.

At the time, Emscripten -- the predecessor to ASM.js that compiles native code to JavaScript -- was coming on the scene so we tried using it to compile Python, Ruby, and Lua and more to JavaScript. Much to our surprise it actually worked and we became the first production app to use Emscripten. We launched on HN in 2011 (https://news.ycombinator.com/item?id=3056490) and the reception was nothing short of amazing. Programmers used Repl.it as a portable repl and a bunch of learn-to-code and MOOC companies used our open-source stuff to build interactive coding experiences in the browser.

Unfortunately soon after that, we got busy with work and life and the project lingered for almost 5 years. I went to work at Codecademy as the #1 employee (which at the time was using open-source parts of Repl.it) and then left for Facebook where I worked on JavaScript Infrastructure and React Native. Around 2016 Haya (cofounder and wife) and I were looking for a new side-project but then decided that since no-one really built our vision for what Repl.it could become we decided to give it another shot. As soon as we started improving it we started seeing growth, within a few months it got to a point where we were spending a considerable sum just keeping the service up. We didn't want to start a company but we were faced with the choice of either shutting down something that users obviously love or we quit our jobs and start a startup. We chose the latter.

One thing that's interesting about our small team is that we've built expertise in both the frontend (IDE) and the infrastructure (container management and remote development environment protocols). For the IDE, we recently shipped a big rewrite that allowed us to do server-side rendering (important since we're committed to speed) and a plugin architecture based on the ideas behind Redux with a very small core (https://repl.it/blog/ide). Everything in the IDE is a plugin, which is simply a reducer, a receiver, and a React component. The reducer builds up the state required for the plugin to work, the receiver dispatches actions in response to other actions flowing through the system, and the component renders. Even something as core to the IDE as the file tree is built as a plugin with no privileged hooks into the core. For the backend, we've designed a set of protocols and hooks for remote development. The protocol can expand capabilities as you require them. For example, every program starts out using the simple (loop (print (eval (read)))) protocol and then if you decide to use files/modules then it will switch to something that knows how to handle file manipulation and change events. The IDE can also react to what you require, for example, if you open a port then it will open a webview would pop open so you can see the result.

Last but not least, Repl.it has a growing community of aspiring programmers. Some of our hardcore fans are teenage programmers and so we've built a place for them to share, vote on, and discuss their projects (https://repl.it/ibuiltthis?sort=top). One interesting thing that we've noticed about kids on our platform is that they continue to build 90's-style website. I've commented on a recent HN thread with links to some of their creations (https://news.ycombinator.com/item?id=16506825).

Happy to answer any questions.

Re: Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps

#12
post #7

I'm wondering why repls aren't expensive to host. Is there a virtual machine running all the time for each repl? Do they swap out idle repls somehow?

Repls are container-based. We control how much resources each repl can use and so we can control how it much it costs. We do swap out idle repls and wake them up on the first request that comes in (heroku style).

Re: Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps

#13
I may be misreading this, so please correct me.

It seems as if this project has gone from open source to a closed source service ? [ https://github.com/replit/jsrepl ]

Are Facebook, Google, and all the other name brands you are using to promote your product using your proprietary service, or the older open source stuff? If you have gone closed source, you should only be using names that are using the proprietary product.

It seems like putting "Open Source" on your front page in a big headline is a bit misleading if you are now a proprietary service. Labeling "Open Source" as a key feature seems disingenuous if you used to be open source but are no longer. If the case now is just that you use open source software, I don't think "Open Source" as headline is appropriate, as that is true of almost any company. The implication with listing "Open Source" as a headline is that your product is open source.

Re: Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps

#15

I may be misreading this, so please correct me. It seems as if this project has gone from open source to a closed source service ? [ https://github.com/replit/jsrepl ] Are Facebook, Google, and all the other name brands you are using to promote your product using your proprietary service, or the older open source stuff? If you have gone closed source, you should only be using names that are using the proprietary prod…

Oh, I could see how this could be misleading. So the open-source tech you linked to is outdated -- we moved everything from the client-side to our own infra (because we wanted to do things like open a port). We intend to open source the backend infra too but it takes time for the protocol to stabilize.

The "open-source" section on the homepage is intended to show that some open-source projects (for example Jest https://facebook.github.io/jest/ were repl.it is embedded on the homepage) use us as a playground, for bug reports etc.

As for the logos they are either users or customers of the the Classroom product: https://repl.it/classroom

Google, for example, uses the Classroom product to spread programming education. I think they have a program where they send teachers to schools to teach computer science. And there teachers wanted to use Repl.it etc.

Re: Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps

#16
post #7

I'm wondering why repls aren't expensive to host. Is there a virtual machine running all the time for each repl? Do they swap out idle repls somehow?

I'm pretty sure that they ARE expensive to host. That's why they charge money now I think.

Re: Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps

#17

I may be misreading this, so please correct me. It seems as if this project has gone from open source to a closed source service ? [ https://github.com/replit/jsrepl ] Are Facebook, Google, and all the other name brands you are using to promote your product using your proprietary service, or the older open source stuff? If you have gone closed source, you should only be using names that are using the proprietary prod…

I don't see this as an issue, personally. Part of their product is open-source, and part of it isn't.

In addition, their product can be used to help open-source projects with documentation, code running, etc.

When I read "Open Source" near the bottom, that's what I read (the we help you with your open source projects).

Also, any company is allowed to use names as long as they have an agreement with the company in place. Whether or not those companies use 1 of the company's products or all of them doesn't matter much. You see this a lot on Enterprise-oriented websites. Not all customers who leave case studies will use all the products.

Re: Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps

#18
post #7

I'm wondering why repls aren't expensive to host. Is there a virtual machine running all the time for each repl? Do they swap out idle repls somehow?

I'm pretty sure that they ARE expensive to host. That's why they charge money now I think.

We've been charging money for a while and have customers. See https://repl.it/site/pricing

The repl itself is free though (unless you want private projects you can pay, kind of like Github).

Re: Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps

#20

is it possible to export the final repl as a docker image and run it locally ?

Yes, eventually. As I said in a sibling thread, we intend to open-source our protocol/images so that we can do things like, use your own editor/local setup with Repl.it. Or eject completely from the platform.
Post reply on HN