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 (item?id=16506825).
Happy to answer any questions.
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.
I did last year's Advent of Code using a different programming language for each day of the month.
Repl.It was easily the best tool out there for quickly prototyping solutions and testing them out for the languages that I don't use often and don't have a dedicated environment set up for.
As part of that month, I started tracking each of the online REPLs I ended up using and threw them all into a gist. Turns out you can do a lot of programming from the browser these days.
Github seems like they're gearing up to offer a similar service . Cloud9, and notably Glitch  offer similar and well executed services.
I was a huge fan of Repl.it while I was learning Ruby, but I was never able to leverage it into anything other than self-teaching. I have however, wasted many hours trying to get various local IDEs to replicate the experience of Repl.it, so that's gotta count for something.
In the end, I transitioned to Visual Studio Code, but VS Code doesn't have the same inline repl (or I've yet to get it to work correctly). It sucks by comparison, but it has the advantage of actually working locally.
I used to teach an AP CS class and we used repl.it extensively, kudos to amasad and crew for a great product that just works.
My favorite online REPL for Clojure.
It would be great if Parinfer  were integrated into the Clojure (and Scheme?) REPL.
Repl.it is amazing -- my company builds software for higher-ed and repl.it is consistently the most oft-requested integration, in CS classes but also in STEM more broadly.
Forgive me, I'm sort of thinking out loud here.
I like the idea of trying out new languages/frameworks using this. I would be concerned building any serious projects using Repl though. I'm worried about how much 'lock in' there is at the moment. How difficult would it be to move from Repl to AWS for example? My guess is that it would be significantly more difficult than moving from AWS to Azure or something like that. If their service is unique enough it will be a pain to move, I would imagine. But this is obviously also their advantage. I bet this is similar to the when first cloud hosting platform launched. You no longer had to rack the servers yourself but if that company failed, you were screwed. :)
Props. repl.it has often proven a handy substitute in situations in which I'm otherwise stuck with Cygwin or Git Bash on Windows, which, while they are great tools in their own right, can be a bit finicky when running repls.
This looks wonderful! I'd love to go through SICP or learn Haskell or something with this!
Are there plans to include Erlang or Elixir or $your_favorite_language by chance?
This sounds amazing. I don't know how much I would personally use it, but at a minimum I'm going to keep it in mind for telling anyone wanting to learn and do tutorials in anything this supports, as seems far and away the best way to learn w/o fighting with environment. Huge Kudos.
This. is. AWESOME.
Port listening -> auto-deploy?
So cool. Now all I need is for the code editor to feel more powerful.
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?
Congratulations, Amasad, really nice work. I was glad to see the inclusion of Web Frameworks, and tried to set up a Classroom for Rails instruction but have a basic question: how are students able to execute rails commands in the IDE? How do you switch between the REPL and console? Thanks!
Thought I'd try this out for some Django evangelism but:
How do I get to a bash shell? I know how to work around the inability to run management commands but I want to show a noob the normal way to do things.
is it possible to export the final repl as a docker image and run it locally ?
I used Repl.it for learning Scheme around 2014. Sadly my company blocked the site thereafter. I'd love to try it again for teaching machine learning.
Just as a possible user.. I use Rubymine for my Ruby on Rails development. Not only does it give me autocomplete on my application specific methods, it understands RVM (Ruby Version Manager) and understands where all of the dependencies are locations and has indexed those as well.
I can jump into an ActiveRecord definition as easily as my own methods. And it does this when I simply open the project directory.
Sublime Text 3 and some of the other editors can do the autocomplete/inspect method for full project and dependencies, but not without manual config changes (and some googling).
Good work, Amjad. Fun to see this project evolving.
I use repl.it a lot but the python autocompleter is seriously lacking.
you are making great strides in bringing programming closer to students and demystifying it! Times up for all the obfuscations. Congrats
Looks awesome Amjad, keep up the great momentum!
Any plans for Laravel?
Any plans to add Solidity?