28 comments

  • amasad 274 days ago

    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.

    • joshuahutt 274 days ago

      I've been using repl.it for a couple of (or more, I suppose) years now, and it's been very helpful to have a simple, reliable REPL to jump into, test things out, and to share code. I've turned students and colleagues to it, too. I'm excited to see where you're taking it. I hope it continues to load and run quickly.

      Just wanted to say thanks for building it, and keep up the great work!

      • amasad 274 days ago

        Yes we aim for 2 seconds loadtime irrespective of the environment (we maybe a bit of the mark in some cases but not too far off) and part of the post was about reassuring folks like you that although it will increase in power it doesn't mean that it will be slower or more complex.

      • 274 days ago
        [deleted]
      • dopeboy 274 days ago

        Amjad & Haya, it's been fascinating to watch the journey you're on. Congratulations on reaching this milestone.

        • hayaodeh2 273 days ago

          The Repl.it team has been working so hard, thank you for your support.

        • swframe2 274 days ago

          Could you add an option to copy/clone/use a github public repo? I would love to "mount" the github repo for tflearn and run the examples. Ideally, I would love a curated list of public repos per language that lets me explore and learn.

          • amasad 274 days ago

            On the roadmap. Specifically the "explore" section is coming very soon.

          • tedmiston 273 days ago

            repl.it looks awesome. It'd be interesting to hear more about how you're doing provisioning and orchestration. Are you running a Kubernetes or DC/OS cluster by chance? Are you spinning down idle instances after some time? What actually happens behind the scenes to make a deploy go live? etc

            And then some more general questions - Can I hook a CI into the deploy loop? (Maybe that doesn't quite make sense given the model is something like Jupyter notebook meets Glitch.) Also, is there a repo being managed behind the scenes like GitHub does in Gist, and if so, any plans to open access to those?

            • amasad 273 days ago

              Great questions and we intend to write about this more in the future. We had to build our own container orchestration mostly for speed and customizability.

              A bit of context: for every language/environment we have a Dockerfile (naturally) and a JSON configuration that describe how it runs, how it install packages, how it runs unit tests, how it formats code, etc. When we build the container we insert a program that we call pid1, it's the container's interface to the rest of the world.

              The container manager creates pools of these containers with some rudimentary predictive logic to make sure we have enough containers to deliver on our promise of "loads in 2 seconds". When we take a container out of the pool, if we're reviving a container, we mount a GCS-backed fuse filesystem with the user code (it needs to be backed by GCS to handle persistence, say you're writing to a log file, it should be there next time you load your project). We then send the relevant setup command to pid1 (either init, or wakeup) which sets up the repl to start the user app, the repl, or what have you.

              > What actually happens behind the scenes to make a deploy go live

              We poll the container for published ports and the moment we see an open port we add a record to an etcd which stores the routing state. We then send a command to the client that we published a port, which will react by opening an iframe. Then the iframe or any request to the published url will hit our outer reverse proxy which will query etcd to find the container and if the container is alive we will send the traffic to the relevant container manager which has another reverse proxy which sends the traffic to the container.

              If the container however is dead (from idling or because of an error) we revive via picking a container out of one the pools and going through the initialization phase described above.

              Finally, we also host our own docker image registery so that we can push new images, whether new languages, new versions or what have you.

              There is a lot more to talk about here so I or someone on the team will write a post soon.

              • tedmiston 272 days ago

                Thanks! This is great. Definitely looking forward to a post.

            • markc 272 days ago

              This has so much potential but I'm finding it near unusable right now. I use the Clojure REPL, so some of these issues might be unique to it.

                  0. No docs. There's plenty of odd and unexplained behavior that needs documenting - at least until stuff is less broken.
                  1. Can't eval single forms from editor. Whole files only.
                  2. Can't eval anything from files other than main.
                  3. Lots of delays and hangs. Very slow. Every eval takes multiple seconds. Some repl starts take 30 seconds.
                  4. Weird inconsistent behavior. Sometimes it will render function return values from editor eval to the repl, sometimes not.
                  5. Once you drop a new file, stuff breaks in strange ways. E.g. main.clj no longer seems connected to the user namespace.
                  6. Can't load other files, (load "other.clj") doesn't find it.
              I could go on, but it's currently a mess from my perspective. I swear it used to work pretty well and now it's super broken. Any way I can log these issues and get them worked on?
              • amasad 272 days ago

                Weird, must be a regression. Read some other comments here yesterday about the clojure repls working well. Looking into it now. For feature requests here https://repl.it/feedback

                • amasad 272 days ago

                  So because of all the traffic we're getting (on here, Product Hunt, and Tech Crunch) there is a lot of container pool misses and because of the JVM Clojure takes a while to load. We just upped the Clojure pool so it should work now.

                  To address your points but please feel free to add this to our feedback board too.

                  >0. No docs. There's plenty of odd and unexplained behavior that needs documenting - at least until stuff is less broken.

                  This is definitely an area we need to fix but to your other comment there shouldn't be any unexplained behavior. If there is it's a bug. Please report it here: https://repl.it/bugs

                  >1. Can't eval single forms from editor. Whole files only.

                  Meaning you want to highlight code and eval it? That's something we've seen requested before and would love to implement.

                  > 2. Can't eval anything from files other than main.

                  Yes so if you start adding files we switch to executing code via `lein exec main.clj`. We should probably drop the REPL in the same namespace as well. Do you know if there is an easy way to connect the REPL to a running program?

                  > 3. Lots of delays and hangs. Very slow. Every eval takes multiple seconds. Some repl starts take 30 seconds.

                  should be fixed now.

                  >4. Weird inconsistent behavior. Sometimes it will render function return values from editor eval to the repl, sometimes not.

                  This should be consistent. It's the first time we hear about this, can you please report it with some repro steps?

                  > 5. Once you drop a new file, stuff breaks in strange ways. E.g. main.clj no longer seems connected to the user namespace.

                  Related to point #2

                  > 6. Can't load other files, (load "other.clj") doesn't find it.

                  It works, you shouldn't add the extension in `load`. See working example: https://repl.it/@amasad/Load-example

                  • markc 271 days ago

                    Thanks, really helpful! I have submitted a bug report.

                    • amasad 271 days ago

                      I hope at least for now the speed/delay issues are fixed.

              • mjburgess 274 days ago

                Hello -- I tried to email you once to inquire about setting up a business relationship with the company I work for (one of the largest training organizations in the world).

                Is this an avenue you're at all perusing / interested in -- or else, do you have any sense of how other business could rely on your product?

                • amasad 274 days ago

                  Sorry must've missed your email. I'm at amjad@repl.it

                • johnzeringue 273 days ago

                  Love the clean, minimal look of your website. Definitely going to keep the Raleway font in mind for future projects.

                  I noticed two small issues. First, if you enable gzip on static assets, it will help images load faster. Second, Mason's picture is 2MB, bigger than everything else combined!

                  • dflock 273 days ago

                    Gzipping a jpeg isn't going to save you any bytes.

                    • amasad 273 days ago

                      Thank you. Oof, will look into that. Thanks for the tip.

                    • casebash 273 days ago

                      Have you considered adding an advanced run option that doesn't obliterate the code in the REPL?

                      In particular, it would be great update a function or class select it and press a button to run the updated version in the REPL so that you wouldn't have to copy and paste it there manually.

                      • amasad 273 days ago

                        Ah interesting I could see how this could be useful. Thank you, I'll think about how it could be implemented.

                      • eslaught 273 days ago

                        Did you move away from Emscripten? I was trying to use repl.it offline recently, and it didn't seem to work. Using Emscripten was one of the coolest parts of the original, and it would be sad if you had to drop that.

                        • amasad 273 days ago

                          Yes, had to move even before started building the more advanced features like hosting. There were some bugs with the JS number type causing weird issues with emscripten. It's been a while so I don't remember the details.

                          Additionally, and perhaps counter-intuitively the server-side solution was better for folks in areas with bad internet and computers. Downloading 10mb of JavaScript is a lot for some people and sometimes their computers would run out of memory parsing the JS.

                        • ryan-allen 273 days ago

                          I'm teaching a couple of kids coding (they taught themselves a bit before I got involved so it's pretty fun!). We're totally going to use this. Thanks!

                          Is a Typescript option in the pipeline? It's my favorite :)

                          • amasad 273 days ago

                            Yes, it is!

                          • etaioinshrdlu 273 days ago

                            One of the main things preventing me from doing a really cool integration would be an API to programmatically create some REPLs and fill them with code.

                            This would make Repl.it a fantastic product for API example code testing.

                            • amasad 273 days ago

                              We have a query param that ?code that can prefill the editor text. I'm interesting in what sort of things are you trying to build. Email me? amjad@repl.it

                              • tedmiston 273 days ago

                                What kind of integration do you want to build?

                              • baldfat 273 days ago

                                I have been teaching a few kids programming but were using Racket (I personally think this is the best first language for someone to really dive into) Any chance of Racket support?

                                • futurix 273 days ago

                                  Any chance of Swift 4 support?

                                  • amasad 273 days ago

                                    Yes doing a round of new langauge versions soon!

                                  • asicsp 273 days ago

                                    looks great, especially classroom feature.. congrats :)

                                    • jventura 273 days ago

                                      I'm a university professor, and there's no way i can afford personally 1$/month per student. And definitely the school won't allow me the budget. "Use the lab computers", they'll say.. So I don't know how realistically someone can use repl.it for teaching, at least in public/higher education.

                                      • tchened 273 days ago

                                        Repl.it allows each teacher account to have up to 200 students for free! Is this enough to cover all your students? If not, reach out to me at tim@repl.it and we can work something out.

                                    • talson 274 days ago

                                      Any plans to support Scala?

                                    • ythn 274 days ago

                                      Just wanted to say I love repl.it and use it all the time!

                                      • hayaodeh2 274 days ago

                                        Thank you for your nice words. We always love to hear feedback from people using Repl.it, it helps us to improve and create a better experience for you and everyone else.

                                        • 52-6F-62 274 days ago

                                          I'd like to echo this. It's been improving so rapidly it's hard to keep up!

                                          • hayaodeh2 274 days ago

                                            We love what we do, and it makes us happy to empower you with the tools you need to build what you want using Repl.it

                                      • EgoIncarnate 274 days ago

                                        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.

                                        • amasad 274 days ago

                                          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.

                                          • mimming 274 days ago

                                            The teacher you're thinking of from last year is me :)

                                            Thanks a lot for the great classroom product, and your support. It made my work a lot easier.

                                            • 273 days ago
                                              [deleted]
                                              • amasad 274 days ago

                                                Oh awesome, thanks! Glad we could help.

                                              • TAForObvReasons 274 days ago

                                                Just to be clear, Google using the Classroom product doesn't implicitly grant you permission to use their logo on your marketing materials. Did you obtain permission from the listed entities to use their logos?

                                                • amasad 274 days ago

                                                  I probably did, it's been a year though so I'm not entirely sure. For what it's worth this really is not needed and I actually hate the "look at all the logos" sections on websites so I just pushed a fix to remove it.

                                                  • purple-again 273 days ago

                                                    It’s hard to make a man happy without making another one sad. I hate that it’s true, but look at all the logos you recognize using this product is the only way I can ever get my completely non tech literate boss to sign off on any new tech. :(

                                                    • notroot 273 days ago

                                                      Probably a super unpopular opinion here on hn but your boss `aint completely wrong. It's not a bad strategy when considering starting a business relationship with someone or something you don't know much about.

                                                      • onenite 273 days ago

                                                        Maybe you can find a way to demonstrate its usefulness without its endorsements :)

                                                    • notroot 273 days ago

                                                      Agreed. I expressed some concerns about the now dead "trusted by" section as well https://twitter.com/stephenrigsby/status/973640170648956929 .

                                                      Also why is your comment kinda-greyed out?

                                                      • TAForObvReasons 273 days ago

                                                        It was downvotes heavily (5 downvotes). "Move fast and break things, including business ethics and trademark laws" must be the prevailing thought among the HN readership

                                                        • 273 days ago
                                                          [deleted]
                                                  • ztratar 274 days ago

                                                    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.

                                                    • EgoIncarnate 274 days ago

                                                      "Part of their product is open-source"

                                                      As I understand it, this is no longer the case (as compared to say an open core company). They had some open source software. They abandoned it. They hope to open source their tech in the future, but currently they are closed source proprietary tech on top of the usual Linux, node, etc infrastructure.

                                                      They may be used by, or useful for open source projects, but currently they are not what most people would consider an open source company. I think that requires at least an open core, which to my understanding is not currently available.

                                                    • wanghq 273 days ago

                                                      Same feeling, thought it's open sourced.

                                                      • 273 days ago
                                                        [deleted]
                                                      • codecurve 274 days ago

                                                        I did last year's Advent of Code[1] 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[2]. Turns out you can do a lot of programming from the browser these days.

                                                        [1]: http://adventofcode.com/2017

                                                        [2]: https://gist.github.com/danprince/0f4a200319c95209c9c028b296...

                                                        • mshenfield 274 days ago

                                                          Github seems like they're gearing up to offer a similar service [0]. Cloud9, and notably Glitch [1] offer similar and well executed services.

                                                          [0] https://github.com/atom/xray#web-compatibility [1] http://glitch.com/

                                                          • lucasverra 273 days ago

                                                            Just for the sake of listing, what "alternatives" are available today ? I can think of

                                                            1. Codepen (pure HTML+CSS+JS+frameworks)

                                                            2. jsfiddle.net/ (pure HTML+CSS+JS+frameworks)

                                                            3. Cloud 9 (full ide?)

                                                            4. https://anvil.works/ (pure Python)

                                                            5. CaptainDuckDuck ?

                                                            6. Repl.It

                                                            7. https://glitch.com/

                                                            8. Runkit.io (pure node.js)

                                                            Other ?

                                                            • p1esk 273 days ago

                                                              Is there a cloud (browser) based IDE that allows to run code on a server I specify?

                                                              Right now I'm using the remote deployment feature of PyCharm to run tensorflow code on different remote GPU servers, but I'd like to uncouple the IDE from my local machine.

                                                              Ideally, I'd like Github to offer such service, so that I can edit the code in my repo right on github.com, specify a remote server to run it on, and seamlessly transfer/run it on that server with a click of a button.

                                                              • atoko 273 days ago

                                                                You could set up a CI server that watches commits, and then commit to a branch, have it deploy automatically.

                                                              • syrrim 273 days ago

                                                                Codeanywhere.com: full ide for any language/stack.

                                                                • falcor84 273 days ago

                                                                  trinket.io is quite good, especially for embedding in lessons

                                                                  • yur83838 273 days ago

                                                                    stackblitz

                                                                    • 11235813213455 273 days ago

                                                                      runkit.com *

                                                                      codesandbox.io

                                                                    • notriddle 273 days ago

                                                                      There's also Janitor [0], though since it's built with legacy projects in mind, it's a lot easier to get started on an existing project than it is to create a new one.

                                                                      [0] https://janitor.technology/

                                                                    • vosper 274 days ago

                                                                      I'm not sure I'll use repl.it as an IDE (I'm quite attached to my Jetbrains products) but I use it all the time for quickly prototyping bits of Javascript code. It's been incredibly useful for me. Congrats on reaching 1.0!

                                                                      • amasad 273 days ago

                                                                        I'm not sure I would either and I'm the CEO. I love Emacs. I'll work to convince myself to use it as my primary IDE and if I did maybe then others would. For now, I'll use it for launching microservices, quick experiments, prototyping, side-projects etc.

                                                                        However, fun thing to share is that a lot of kids get started programming on Repl.it and continue to use it as their IDE.

                                                                      • AcerbicZero 273 days ago

                                                                        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.

                                                                        • amasad 273 days ago

                                                                          Thanks for the lovely comment. Hopefully you can come back and use us at least for side-projects. Then maybe as you we get better and expand to service all your IDE needs you'll stick around to use it as a primary IDE. We're in it for the long haul and we'll get there.

                                                                          • therealx 273 days ago

                                                                            Visual Studio itself can do what you're looking for but no idea about VSCode.

                                                                            • tedmiston 273 days ago

                                                                              Did you try Jupyter notebooks? They make for pretty nice local REPLs.

                                                                              • 11235813213455 273 days ago

                                                                                use code-runner extension, and press whatever shortcut needed (check in settings/shortcuts) (I've rebound it to ctrl+b)

                                                                              • adpirz 274 days ago

                                                                                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.

                                                                                • finalfantasia 273 days ago

                                                                                  My favorite online REPL for Clojure.

                                                                                  It would be great if Parinfer [0] were integrated into the Clojure (and Scheme?) REPL.

                                                                                  [0] https://shaunlebron.github.io/parinfer/

                                                                                  • amasad 273 days ago

                                                                                    Thanks! Ooooh TIL re parinfer. I'll look into it. Will check it out. Also, look forward to on-the-fly package installation for Clojure!

                                                                                    • finalfantasia 273 days ago

                                                                                      Wow, that was a lightning-fast response!

                                                                                      Thank you very much!

                                                                                  • petergatsby 273 days ago

                                                                                    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.

                                                                                    • wuliwong 273 days ago

                                                                                      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. :)

                                                                                      • amasad 273 days ago

                                                                                        You can build your application in a way that doesn't depend on platform-specific features. In fact most of the frameworks are setup in a generic way. There is a download button, you can click that, get a zip file and you should be able to run it locally.

                                                                                        For the setups that are using platform-specific features we'd like to also minimize the fear of lock-in by open sourcing our development images and the repl protocol.

                                                                                        • tedmiston 273 days ago

                                                                                          You could just download your code and deploy on Heroku / App Engine / Elastic Beanstalk. Or an EC2 instance with basically an nginx config.

                                                                                        • voidhorse 274 days ago

                                                                                          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.

                                                                                          • twoquestions 274 days ago

                                                                                            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?

                                                                                            • amasad 274 days ago

                                                                                              Incidentally the first interpreter on repl.it was scheme. I was going through SICP and was tired of installing Dr Scheme everywhere.

                                                                                              Yes I love both these languages and will add support for them soon.

                                                                                              • fenollp 273 days ago

                                                                                                I'll gladly help with that!

                                                                                                • amasad 273 days ago

                                                                                                  Pierre? Email me, interested in doing this

                                                                                            • runevault 273 days ago

                                                                                              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.

                                                                                              • ztratar 274 days ago

                                                                                                This. is. AWESOME.

                                                                                                Port listening -> auto-deploy?

                                                                                                So cool. Now all I need is for the code editor to feel more powerful.

                                                                                                • amasad 273 days ago

                                                                                                  Thanks, more editor power planned.

                                                                                                • skybrian 274 days ago

                                                                                                  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?

                                                                                                  • amasad 274 days ago

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

                                                                                                    • sgslo 273 days ago

                                                                                                      How do you start up these containers so quickly anyways? Do you keep some running hot, or delegate the startup to something like amazon's ECS? I've long wanted to run integration tests en masse in containers, but never figured out how to solve issues around long startup times.

                                                                                                      • amasad 273 days ago

                                                                                                        Yes we do container pooling. We do all the container manaegment ourselves. Using services like ECS will generally be slower.

                                                                                                      • sytse 273 days ago

                                                                                                        Is the wake up on first request code open source by any chance? Would love to reuse for GitLab.

                                                                                                        • amasad 273 days ago

                                                                                                          Not yet, hoping for a big push oss push next quarter. You want to use it for your ci/cd platform?

                                                                                                          • sytse 273 days ago

                                                                                                            OK, thanks for letting us know. We want to use it for our PaaS functionality, but the PaaS will also be used by our Web IDE so it is competitive.

                                                                                                            • amasad 273 days ago

                                                                                                              Cool, I didn't know that Gitlab was going that direction. Really awesome how much surface area you're able to cover.

                                                                                                              • sytse 273 days ago

                                                                                                                Thanks! You're not doing bad yourself either, keep up the good work!

                                                                                                      • stale2002 274 days ago

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

                                                                                                        • amasad 274 days ago

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

                                                                                                      • moflome 273 days ago

                                                                                                        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!

                                                                                                        • amasad 273 days ago

                                                                                                          Hey for now rails is only available in the rails interface because it just came out today. We're adding it to classrooms very soon. BTW feel free to email contact@repl.it and will happily answer all your questions.

                                                                                                        • sandGorgon 274 days ago

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

                                                                                                          • amasad 274 days ago

                                                                                                            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.

                                                                                                            • sandGorgon 274 days ago

                                                                                                              this is killer!

                                                                                                              Goodbye Jupyter notebooks pretty much

                                                                                                          • andybak 273 days ago

                                                                                                            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.

                                                                                                            • tchened 273 days ago

                                                                                                              Incorporating bash access is our next step. :) We know a lot of seasoned users will want to use it as part of their dev setup.

                                                                                                              • andybak 272 days ago

                                                                                                                It's more that it's awfully tortuous to use Django without it. The syntax for creating and running migrations inside a Python shell isn't very pleasant and all the documentation assumes you're doing all this from a bash shell.

                                                                                                                > We know a lot of seasoned users

                                                                                                                It's actually the other way around. Seasoned users can work out how to get round the lack of a shell. Beginners will be thoroughly confused.

                                                                                                            • nicodjimenez 273 days ago

                                                                                                              Repl.it rocks. My girlfriend is using it for learning javascript, it's by far the best tool out there for learning how to code. Great product by a passionate team.

                                                                                                              • farhanhubble 273 days ago

                                                                                                                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.

                                                                                                                • amasad 273 days ago

                                                                                                                  Why did your company block Repl.it? That's strange.

                                                                                                                  • tedmiston 273 days ago

                                                                                                                    Just a guess — enterprise firewalls commonly block "remote code execution" as a category.

                                                                                                                • aantix 274 days ago

                                                                                                                  Good work.

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

                                                                                                                  • artursapek 273 days ago

                                                                                                                    Good work, Amjad. Fun to see this project evolving.

                                                                                                                    • gigatexal 274 days ago

                                                                                                                      I use repl.it a lot but the python autocompleter is seriously lacking.

                                                                                                                      • amasad 274 days ago

                                                                                                                        Yes, we're on it. We're implementing a language-server-protocol LSP for Python and most of our languages. Coming out soon.

                                                                                                                        • akkartik 274 days ago

                                                                                                                          How much of a priority is supporting automated tests? I'm trying to think about how a repl would interact with a test runner.

                                                                                                                          • amasad 274 days ago

                                                                                                                            We do support that in our Classroom product (https://repl.it/classroom) so it'd be pretty easy to expose that in our repl interface. Might be able to knock this out in an afternoon. (For NodeJS developers we support Jest out of the box: https://repl.it/@amasad/try-jest).

                                                                                                                            • akkartik 274 days ago

                                                                                                                              Thanks!

                                                                                                                              This example always runs the tests when you hit cmd-enter. I was wondering how you would have a running program with tests.

                                                                                                                              I looked in https://repl.it/ibuiltthis but couldn't easily find examples of NodeJS projects. Could you point me at one? (Feel free to point me at a better forum for these noob questions.)

                                                                                                                              • amasad 274 days ago

                                                                                                                                Fullstack apps support was just released to do so not many examples on our forum. If you go to https://repl.it/languages/express you'll see a simple scaffold for ExpressJS.

                                                                                                                                I started moving my blog to Repl.it, can be found here: https://repl.it/@amasad/blog

                                                                                                                                • gigatexal 273 days ago

                                                                                                                                  holy crap -- that's really neat. Being able to run and tinker with code snippets in a blog like that is a killer feature.

                                                                                                                                  Being hosted on Repl.it -- can you still SEO things for google?

                                                                                                                                  • amasad 273 days ago

                                                                                                                                    Yeah I don't see why not. We're planning on creating a page for websites hosted on Repl.it.

                                                                                                                          • gigatexal 270 days ago

                                                                                                                            How does Repl.it make money to stay afloat? pay yourself?

                                                                                                                            • amasad 270 days ago

                                                                                                                              Look at repl.it/pricing you can pay us for private repls (kind of like GitHub). Or if you're a school you can pay us for a really nice coding LMS.

                                                                                                                              But also, we're VC-backed, however, we're not the kind of startup that wants to grow at all expenses. We want to get that dough.

                                                                                                                              • gigatexal 269 days ago

                                                                                                                                I too want you all to stay in business.

                                                                                                                            • gigatexal 271 days ago

                                                                                                                              Any chance you have an ETA?

                                                                                                                              • amasad 271 days ago

                                                                                                                                May by the latest. But most likely will get something out for python soon.

                                                                                                                                • gigatexal 270 days ago

                                                                                                                                  Looking forward to it!

                                                                                                                              • gigatexal 273 days ago

                                                                                                                                Thank you!!! Best of luck.

                                                                                                                            • aminethedream 274 days ago

                                                                                                                              you are making great strides in bringing programming closer to students and demystifying it! Times up for all the obfuscations. Congrats

                                                                                                                              • _sword 274 days ago

                                                                                                                                Looks awesome Amjad, keep up the great momentum!

                                                                                                                                • Double_a_92 273 days ago

                                                                                                                                  Any plans for Laravel?

                                                                                                                                  • deboboy 274 days ago

                                                                                                                                    Any plans to add Solidity?

                                                                                                                                  • jsgrahamus52 270 days ago

                                                                                                                                    Any plans for Common Lisp? Or Mumps?