When I think of web development, I like to think of it in terms of building a house. When we learn HTML, we are learning how to build the web page from the ground up, framing it with the lumber that will eventually become our end product.
When I think of web development, I like to think of it in terms of building a house. When we learn HTML, we are learning how to build the web page from the ground up, framing it with the lumber that will eventually become our end product.
Repl.it is a great place for prototyping ideas and starting new projects. However as your projects get bigger, the editing experience starts feeling a little limited. That's why we're exciting to announce that we're adding support for tabs!
We started Repl.it to break down what we thought of as needless barriers to start coding. Naturally, our first product was the repl -- a simple editor and console for evaluating code. Turns out that’s all our users needed to learn enough coding to make meaningful programs. From there, Repl.it started to grow incredibly fast among students, developers, and educators. As we watched what our most active users did with the platform, a pattern emerged around coding in the classroom: teachers would prepare a doc or a PDF with instructions and a base repl for their students to fork. Students then would open the PDF side-by-side with the repl and start coding. When finished, they would copy the link and email it back to their teachers. Finally, teachers would block off an afternoon to evaluate and give feedback on their students’ code. The process, while better than using a local IDE and passing around files, seemed tedious and we wanted to solve it -- that’s how Repl.it Classroom emerged.
When you’re working on a software project, it’s crucial to keep a log of all the changes made to the project. This will help you see how your work has evolved over time. It will also allow other collaborators on a project to keep track of what changes have been made and by who. That’s where Git comes in.
Over the past week, we ran a video competition for Replers. We got some great submissions from the community, and now it's time to announce the winners!
Python is a programming language that’s widely favored by beginners. It’s no wonder, really. Python has a simple syntax which many people say resembles English, so it’s easy to read and write. In addition, Python is used for a wide array of purposes, from data science to web development.
Repl.it has always tried to make coding fast, easy, and work seamlessly with your other tools. That’s why we’re excited to announce that Repl.it has teamed up with GitHub Classroom to make learning how to code even easier.
Oftentimes when we're sharing a repl with a friend we want to link them to exactly where we are in our project. Well now you can with deeplinking!
Terminals make it hard to copy things: Selecting text works differently to what people are used to, and
^C aborts the current program. Links are hard to use.
I like the process of writing because of how simple and portable the tools are. Regardless of time or place, a way to write things down is never far away. There's very little friction between inspiration and experimentation. I wish writing code was more like this.
When you're deep into a debugging session printing a bunch of
wat, the output in the terminal can get hard to read. That's when search comes in handy, and that's why we're excited to announce our new terminal search functionality.
Java is one of the most popular languages on Repl.it, and the JVM powers many of our other languages (Java Swing, Clojure, Kotlin). We want to make it as easy as possible to code with other people and build new programs out of programs that already exist. So we've added packaging support for Java!
At Repl.it, we try to dogfood (use our own product) as much as we can. Parts of Repl.it are already developed on / hosted entirely on itself-- our blog, our docs, and even our new UI library is being developed almost entirely on Repl.it. But one interesting use case we’re exploring now is using Repl.it as a CMS for all of our new marketing pages.
Remote interviews can be hard, especially if you’ve never done them before. With the COVID-19 crisis, we’re seeing a lot of teams forced to transition to remote interviewing. Luckily, we’ve done hundreds of remote phone screens, and more recently we’ve been doing what we’re calling “remote onsites.” In this post, we'll describe how we and some of our customers leverage Repl.it Multiplayer -- our realtime collaborative development environment -- and other tools to interview candidates remotely.
We've been hearing from our teacher community that despite school closings they want to continue teaching their students remotely. Luckily Repl.it was designed to be remote-first and will be a perfect tool for this. We have two products that serve different remote modes:
“Command line interfaces. Once that was all we had. Then they disappeared, replaced by what we thought was a great advance: GUIs. GUIs were - and still are - valuable, but they fail to scale to the demands of today's systems. So now command line interfaces are back again, hiding under the name of search. Now you see them, now you don't. Now you see them again. And they will get better and better with time: mark my words, that is my prediction for the future of interfaces.” 
When I think of GitHub I imagine a vast network of people and code; a superorganism that changed how we make software. When I was getting into programming, starting a new project was daunting -- you had to imagine and build everything nearly from scratch. My version of code-sharing was calling my older cousin who was going to college for CS and getting code dictated to me over the phone. When the Internet arrived in my home town, it made hacking on new projects so much more fun. Starting a new project, at least initially, became about discovery:
We believe everyone should have instant access to a complete coding environment in their browser. That’s why Repl.it has joined the GitHub Student Developer Pack, giving eligible students free access to private repls, unlimited multiplayer sessions, and additional processing power. Students can now focus on learning and collaborating with their classmates in new ways, without the hassle of setting up a new environment each time.
Coding, people believed, was an activity hackers did alone. While that might have been true in the past, the world is changing. New programmers come online every day and they want to effortlessly work and interact with others while writing code. Yet collaborative coding environments have remained troublesome to setup.
SQLite is now a supported language on Repl.it! Our SQLite support brings the entire SQLite command-line interface right into your workspace. Now you have a simple way to experiment, prototype, or refine your data model with SQL.
When our community members want to provide instructions within a repl,
the most common pattern we've seen is in a
.txt file, or as a code
comment. Users quickly figured out that while they could make markdown
files, there was no way to render it in a more readable format. Today,
that changes. We're happy to announce that you can now preview markdown
At Repl.it, we want to provide a top-tier online programming experience in as many languages as we can support. Today, we’ll show you just how we do that.
“Community” is one of the hardest concepts to define in the English language. Weird, right? It seems like it would be intuitive, but it’s actually something sociologists have struggled with for hundreds of years. Is a community defined by a shared space? A language? A goal? Something as nebulous as just a feeling or an attitude? The answer changes dramatically depending on who you ask.
At Repl.it we live and breathe making software creation easier. With our programming environment, you could start coding in your favorite language in seconds. With live deployments, we made web hosting a breeze. With Multiplayer, we've removed the drudgery from coding with friends. And today, we're excited to bring native GUI applications and game development to the browser.
Today we're announcing the most-significant evolution of our platform — something we've been building towards for a long time that we're thrilled to share with you.
Errors are red,
Outputs are white,
File descriptor injection is bold,
Let me tell you about
We're thrilled to announce that we have raised a Seed round led by Andreessen Horowitz, with Marc Andreessen and Andrew Chen championing the deal. We're also sharing that a million users are now using Repl.it. Moreover, our developers have shipped 250,000 websites/apps since our hosting platform launch in March.
A few days ago we shipped a simple feature that will save our users time in finding and opening files, especially for larger projects. This can even be used without having the file tree visible. Read on to see how to use it and to see a demonstration.
In case you weren't aware, the repl.it discord server recently had a code jam, with the objective being to make a database. Over 14 people finished and submitted a design for the jam. However this jam was a bit different compared to our first and second jams. First of all, we have groups of 2, instead of individual people. This could be viewed and a boon or a bane, but we'll go over that in more detail later. The second set differences were the bonus points. In the past, we've always graded on code quality, efficiency, and creativity.
Repl's now provide access to an experimental bash shell via the command palette (F1)
Dark Theme has long been one of the most highly request features on Repl.it. We introduced a dark theme editor some time back, but as the rest of the workspace was still in "Repl.it Light Mode", we knew our work wasn't done. We are proud to announce the release of "Repl.it Dark" - a dark theme for the entire workspace!
On the weekend of July 21st, we sponsored and attended the Midwest's largest high school hackathon, Hack Chicago!
A few months ago, we created a new Discord channel - a real time chat app - for Repl.it. We've since expanded our user count to be well over 500. Our Discord server is community-driven - we have a team of three users who help us moderate the server and facilitate a culture of friendly collaboration and sharing knowledge. However, our favorite outcome of this community are the code jams.
Today we're going to write a program that tells you whether an image is a hotdog or not!
Open-source has revolutionized software development -- it wouldn't be an overstatement to say that it's been the most significant productivity win for developers in the last decade or so. At Repl.it, our goal is to make programming more accessible and what better way to do that than make available to programmers the entirety of open-source packages available at their fingertips.
On July 11th, we had our second Repl.it IRL and it was an amazing event!
At Repl.it our goal is to provide state of the art in developer tools to everyone in the world, for free. When we started moving our product beyond a simple REPL and started adding IDE features, we had to invent standards and wrappers around every language tool for our frontend to consume. For every editor feature, say errors and warnings (linting), we had to extend our development protocol with a set of commands and data structures, and then teach our development containers how to wrap the given tool, say Pylint, and our frontend on how to consume it (say annotate the editor with errors and warnings). A similar thing has been happening with IDEs for the past few decades -- every editor had to come up with their in-house ad-hoc protocol, and every tool developer had to build adapters and wrappers for editors to consume.
As you use Repl.it more and more, you often find yourself frequently creating repls for quick testing. On your repls dashboard, you can mark important repls by starring them - allowing you to quickly access them. However, there was no way to surface your best work on your profile - users would have to sift through all your repls to find the one they were looking for - until now.
I’m still in high school but I just flew from San Francisco to New York City to be a sponsor at a high school hackathon so, yeah, you already know that the whole experience was pretty awesome.
For the month of July, our Repl.it IRL will be taking place on July 11th from 4 to 7 PM at the Bradfield School of Computer Science!
We recently added some changes to how eval mode/project mode operates. These changes allow you to interact with generated files through the console.
While you can write web applications and text-based ensembles in Repl.it, sometimes it's nice to be able to just put together a simple HTML/CSS website using the same awesome editor!
Two days ago we introduced our beta support for React frameworks, ranging from static-site generators like GatsbyJS, to fullstack frameworks like Next.js. Today we're launching a significant performance enhancement that we're calling preboot.
On Monday, June 11th, we had our first Repl.it Meetup and it was super awesome!
Most systems -- both natural and artificial -- decay, rot, and eventually die. Software is no different. A lot has been written about fighting "software rot" but there's another type of rot related to software that's not talked about much -- the development environment rot.
Ollie Parish, also known as @op on Repl.it, is an avid Repler and constantly pushes our systems to its limits (in the best way). In this guest blog post, he describes his journey in using neural networks to generate large primes. You can also check out the repl described in his research: https://repl.it/@op/DNN-3-1
Along with the ability to star repls and tag repls, we now take repl organization one step further with the ability to search through your repls.
At Repl.it we come to work every day to explore a single idea—what if programming just worked? What if instead of fiddling around with packages, configurations, and mismatching versions, you just open your IDE and start coding. What if developers can go from an idea to coding and shipping software with no time in between. What if teachers who want to teach programming don't have to also work as IT administrators. What if students can just code their homework without having to set up the development environment on every computer they wanted to code on.
Repl.it is becoming the platform where developers come to learn and build. With web hosting we also made it possible to host websites and since then we've seen an explosion of websites hosted on Repl.it. Today we're going further by making it possible to deploy servers on Repl.it.
Sometime in 2016 we in introduced the concept of "files" to Repl.it, you would click add file and a tab would appear on your Repl. As simple repls grew into full fledged applications and websites tabs started getting ugly and hard to manage.
As we released I Built This, our community where users can post about their repl creations, we were exposed to many amazing projects created by our users. To kick it off, we hosted a competition where users post their work and garner upvotes for prizes. The projects shared in the competition spanned a wide range of skill levels, from beginner to advanced, from simple to complex.
Ever since we introduced third-party package support for Python we've seen an explosion of exciting programs on Repl.it. Everything from games to machine-learning applications that just weren't possible before.
People use Repl.it in a variety of ways; some use it for building and shipping applications, while others use it for working on homework, and many others use it as a quick prototyping/experimentation tool. Supporting all these use cases (and more) is something we care a lot about, but up until now there wasn't an easy way to, for example, quickly go back to a project that you continue to work on every day.
At Repl.it our mission is to make programming more accessible, which means our coding environment needs to be lightweight, load fast, and work from anywhere in the world. However, as with so many software projects that evolve with time, we accumulated some bloat (luckily, we haven't included a mail client yet) and quite a few ad-hoc hacks to glue everything together. In this post, we'll go over how we designed our new IDE to have a small core (everything is a plugin), to be easily customizable (even on the fly), and to server-render.
Repl.it is quickly becoming a tool that's used in everyday programming, and our users are building all sorts of amazing programs. One thing that's been missing for a long time is the ability to access the internet from repls. Being able to call APIs or remote servers is something programmers can't live without. That's why we're excited to announce that starting now we're openning internet access for all!
At Repl.it our mission is to make programming more accessible. We want to build the platform that will empower the next billion programmers to build the future of software. To accomplish this we needed to build a sustainable business that allows us to grow with our users.
You can now copy and clone an assignment from one classroom to another! Many teachers have requested this feature, and we are happy to announce that it has been released!
At Repl.it our mission is to make programming more accessible. We can’t do this alone so it’s great to partner with non-profits and hack clubs that share our mission. Re-coded is one of those non-profits, they're teaching programming in the refugee camps in Iraq and Turkey. Today I’d like to share with you their story of how they found Repl.it useful in overcoming logistical challenges.
People in our community build awesome games, apps, and websites on Repl.it's web programming environment, but until now they didn't have any easy way of sharing these creations with other people.
At Repl.it we focus on simplicity, speed, and, most importantly, reliability. If you're using Repl.it as your primary or secondary IDE we want you to be confident that the time you invest working on your code will never go to waste.
We are always excited about launching new features and sharing with you, our dear users, what we’ve been up to. For the past few months, Amjad, Mason and I have been working hard and last night we quietly launched the new repl features. These features required a lot of infrastructure and data changes which is always tricky to execute. We ran into some technical difficulties last night with the data migration but was able to bring the site back up and things have been running relatively smoothly since then.
We strive to make the workspace as useful as possible while keeping it intuitive and approachable. We get a crazy number of requests for features every day, not to mention our own ideas. It becomes a challenging balance between feature creep and simplicity. Lately we've added a few of these features that we hope you'll find useful and, if not, you won't even notice they're there.
Like any other startup, we go through ups and downs. However, we try to keep a positive energy, and you, my friends, contribute to that by sending your love, support, and thanks everyday. Above all, you inspire us with stories of how our product helped you learn, teach, and even develop a new skill to land a better job.
We're constantly surprised and delighted by the creativity of people in our community. Whether it be games, animations, utilities, or simply snippets to answer Stackoverflow questions -- it's always fascinating to see! However, we haven't done a good job giving credits to authors for their creations.
Debugging web projects on Repl.it can be frustrating. Until today, there was no easy way to view your errors and console logs (unless you open your browsers' developer tools). But that's changing because we're introducing our new tabbed console view for environments that has graphics output (like Web and Python Turtle).
Some changes and fixes we make don't deserve their own blogpost. So we thought a good way to keep you up-to-date is to collect however many that could be of interest and write a "Changelog".
The label "sessions" is very near and dear to my heart. I vividly remember how Amjad came up with the name and why. After we learned that people would like to create accounts on Repl.it, we were trying to figure out what was the main value proposition for creating an account. Of course, it was saving code! But what do you call a list of code projects saved on your account?
We have discontinued support for react native
There is a special moment in learning: when a student runs their code against the unit tests and finally sees all of them turn green. This moment of enlightenment means the student has just managed to create their own working solution to a difficult problem, and has made a step towards becoming a great programmer! Wouldn't it be cool to further enhance the student's knowledge by showing the student different approaches to tackle the same problem?
Last year we introduced support for importing any Python package from PyPi and -- although we don't have perfect support for all packages -- it turned out to be a very popular feature. That's why today we're excited to continue the roll-out for the rest of our platform starting with web-based languages.
Software development is one of the first -- if not the first -- examples of what J. C. Licklider called the Man-Computer Symbiosis. A "cooperative interaction" between people and computers where the person is concerned in what may be classified as the creative aspect of the work such as setting the goals, formulating the hypothesis and evaluating the results while the computer does all the "routinizable work".
We've been seeing more and more coding video tutorials using YouTube and Twitch.tv. Today we're sharing some of our favorite YouTube videos that uses Repl.it
We heard your requests for Haskell and today we're excited to finally announce Haskell as yet another language we support. We've decided to put our focus on adding more functional languages, starting with Haskell, so you can expect more very soon.
Hey teachers, we've noticed that you have been teaching up a storm in your Replit classrooms, and with this feature we want to turn those storms into educational hurricanes! To do so, we implemented teacher collaboration, which allows you to add an additional teacher to your Replit classrooms. This additional teacher can do almost everything you can do, excluding a couple of small destructive things...
Fundementally, learning is about completing basic material before moving on to more advanced stuff.
At Repl.it we aim to make the full power of programming easily accessible for everyone. That's why when we designed our code execution service we decided that we would not timebox users' programs or sessions.
At Repl.it our mission is to make programming more accessible, and the best way we found to achieve this is to support, you, the teachers on the ground doing working with students. That's why we want to make sure you control the student experience and today we're making it possible to control the assignments order from your classroom dashboard.
Today we're excited to release a feature which shows any files your program creates directly inside the REPL. And any time that file changes it will be updated live in the editor. This can be anything from a text file to a gif.
We recently made it possible to import any package from PyPi. However, people who missed the announcement didn't know this was possible. There was also no good way to search and explore packages.
At Repl.it, our goal is to make programming more accessible, and as part of this we aim to provide the full power of popular programming environments with no setup time. And I don't think it's an understatement to say that debugging is the majority of what we, as programmers, do.
Today, we're excited to introduce lint support for Python3. Where previously you had to run your code, look at the console for an error, find the line number of the error and then find that line in your editor. Now, we'll show you errors and potential mistakes live as you type!
At Repl.it, our goal is to make programming more accessible, and as part of this we aim to provide the full power of popular programming environments with no setup time. And no modern programming language is complete without third-party packages.
On Wednesday we announced assignment scheduling, and today we're releasing another date related feature—due dates. It's no secret that students can procrastinate, so sometimes it's useful to have deadlines for the assignments as a reminder.
Today, we're introducing scheduled assignments. Teachers using Repl.it Classroom can now schedule assignments to be published in the future. You can imagine working on your assignment, schedule a publish date, go on vacation, and still have your students receive their assignments at the right time.
Simple design is not only how the product looks like, but more importantly, how the product functions; it’s about creating the easiest and simplest path for the user to accomplish their goal. Usually, simple design comes from complex requirements and a lot of ideas — in order to break it down I usually go through a process that I call Vagueness to Clarity
It's no secret we're big fans of REPLs. We believe that immediate access to the programming environment accelerates learning and is generally more productive. REPLs cut out the middleman -- no need to build UIs or scripts for every possible action you might want to take -- just talk to the interpreter directly.
Arguments over programming language semantics, standard library behavior, or syntax can now be simply and immediately settled within the chatroom by talking to Evalbot. It is a bot that can speak over 10 programming languages and is ever-present on Messenger and can be added to your team chat on Slack.
Before we decided to build repl.it classroom, we paid a visit to one of the schools using us in the classroom. I felt excited and anxious at the same time; I was introduced to the teacher and students in the class, and then my job started as designer observing and paying attention to every single detail.
Rate limiting is standard practice for services offering an API. It's used for both protecting against bad actors, for example, attempting DOS attacks and to simply enforce limits on the service. There are many resources on the web on how to implement a rate limiter in your favorite language/stack. However, I couldn't find anything on how to rate limit Websocket connections (they differ in that they are persistent connections).
Repl.it's code execution API is an HTTP and WebSocket endpoint that you connect to and send code to execute. You can connect from any device or browser and start executing code. This guide will describe the concepts behind the service, how it can be used, and provide a step-by-step guide for signing up and trying out the service!
Autocomplete plays a big role in how we use software, imagine a world where you have to type full search terms without predictions into google search, ugh, the savagery! Many developers employ this technology when writing code in order to increase their productivity. So we decided to implement this feature to help you become the power user you want to be.
We're excited to launch this new part of our site.
In this age of containers it's much easier to run arbitrary code in the cloud. The harder parts are scaling the service, making it reliable, and —as in this case— creating cool and useful experiences. When we looked at existing Swift REPL implementations on the web we found that none delivered a stateful and interactive environment. Just an editor with a run button.