Fri, Feb 4, 2022Making new Python repls 100x faster to start up
Python is currently the world's (and Replit's) most popular programming language. We've improved the Python experience during last year, with a Python package cache to make installs faster, and an integrated, multiplayer debugger to increase the understanding of what programs do. But there are still a few problems with Python. Packages are often very space-consuming, so they are installed into an ephemeral 2 GiB scratch disk to avoid filling up repl directories. Unfortunately this means that every time a Python repl starts, a lengthy package installation process must happen. This makes some Python repls take forever to start! Some other packages that have a large number of dependencies (like TensorFlow and Torch) were completely unusable because they don't even fit on the scratch directory. We decided to address these shortcomings and make Python a bit faster on top of that! Today, we're releasing a brand new Python template that has a lot of neat things. Newly created Python repls will now be based on nix so that additional programs and libraries can be installed, have a standard virtual environment stored inside the repl, and a brand new caching mechanism so that packages are installed even faster and they don't take up too much space. I had the wildest dream, that I was able to run the TensorFlow 2 quickstart on replit without running out of disk space or memory How does it work? We had a few goals in mind when we started designing this:
Wed, Feb 2, 2022What We Look for When We Interview
We’re on a mission to bring the next billion software creators online. In 2022, to get there, we're focusing on: Making Replit run fast on popular devices across the globe. Helping new coders build and ship for their first time. Reaching those goals requires infrastructure work and real-world experimentation, so we are growing our team!
Mon, Jan 31, 2022Understanding Repl Resource Utilization
Every computer on earth needs these three essential resources in some form: Processor Memory Storage The computers we provide for Replit users, or Repls, have access to a virtual CPU, an allocation of RAM, and a virtualized filesystem. It’s important to understand resource utilization within the context of the software that you’re writing. To this end, we have started rolling out a new component in the file tree to make this more transparent and visible to all of our users.
Fri, Jan 21, 2022Going Where the Next Billion Creators Are
Mobile is the future of computing. But building good software creation tools for mobile devices is hard. Luckily, at Replit, we like to run toward the hard things. This week, we launched a completely rearchitected mobile IDE for web. If you’ve used it before, the new version won’t look much different, but it will likely feel different. Why We Care Mobile devices are the world’s most ubiquitous computers. At Replit, we have kids coding their next big idea on their phone on the way to school, instead of scrolling through social media. We have local communities in developing countries learning & teaching code together on their phones, in order to get hired for jobs. We have colleagues coding prototypes in multiplayer and demoing their work on their phones, while they are on the go. We even noticed users sharing Replit coding tutorials on TikTok: @coding4python3 Antwoorden aan @wewillcum #replit #code #coding #coding4python3 #python ♬ origineel geluid - coding4python3
Thu, Jan 20, 2022Getting Started with Rust on Replit
If you’ve been debating which new programming language to learn, Rust is a strong option. According to a recent Stack Overflow developer survey, Rust is: The most loved programming language, according to almost eighty-seven percent of surveyed developers. One of the highest-paid languages, only behind Ruby, Perl, and a pack of ever-lucrative functional languages. The best way to learn Rust, of course, is to start coding. This is where Replit comes in. Replit is a collaborative in-browser integrated development environment (IDE) that supports over fifty programming languages with built-in tooling to write and organize code; manage dependencies; perform version control; and build, run, test, and visualize execution of applications. There are a few reasons to use Replit when learning Rust:
Tue, Jan 18, 2022Use Replit At Work With Teams Pro
For the past 6 months, we have been testing Teams Pro while in private beta. Today, we are excited to release it to the world. Teams Pro is Replit for work. If your company wants to have a collaborative repository for sharing and editing code, create a team now. Here's what some of our users are doing: Host slack bots, cron jobs, web scrapers, scripts, webpages, and more
Tue, Jan 11, 2022Migrating our Web App from Heroku to GCP
After many years of running on Heroku, Replit has fully migrated to Google Cloud Platform. Why leave Heroku in the first place? Heroku served us well, but ultimately we recognized that our mission to bring the next billion software creators online would require an entirely new approach to our infrastructure. Our infrastructure needs to be flexible, and we need to have control across the entire stack - both data and hosting - to make moves to support our mission. So, what did it take to migrate Replit? Step 1: Demo a Prototype We put together a quick demo of the website running in Google Cloud using a test database (with a fake dataset) to prove the concept would work. In this stage, we also gathered feedback and started to push the boundaries to understand where the problems might lurk later in the project. We took some time to investigate alternate hosting systems and even clouds. Ultimately, because the rest of Replit's infrastructure is in Google Cloud, it made the most sense to stay with what we know.
Thu, Dec 23, 20212021 Kajam Winners
Kajam Winners It was a dark room with mystique and seriousness that accompanied the feverous whispers. Seven people stood in the room, held down only by the weight of responsibility they carried with them. One by one they were handed a link to a website- what they would find they did not know. And one by one the links were opened. Colors and music filled the empty air. Excitement gleamed in each of their eyes, their fingers danced across the keyboard, their mouse moved sporadically as though if it stayed still for too long they would surely meet their doom. And yet after another moment, the link was closed, and the display subsided. Each individual scribbled something down, and the cycle repeated four hundred times. After days of deliberation, the people consulted each other and wrote one final list. The list was placed in a red envelope, stamped with a wax seal of the Replit logo. The doors to the darkroom opened, and the individuals left. Leaving the letter behind. Today we will enter that room and open the red envelope, to announce the winners of the 2021 Kajam Game Jam! What was Kajam? Starting October 18th, the Kajam game jam began. On October 25th, Kajam ended. During that time, people rushed to create a game relating to the theme "HUGE". People could interpret that however, they wanted- and we certainly had a lot of unique interpretations. Our seven judges voted on the submissions for each of the seven awards that we had. Most Creative, Best Story, Most Polished, Most Hilarious, Most Theme-fitting, Best Kaboom Game, and of course the grand prize Most Fun. All the categories were worth $1,000, except for the grand prize. The grand prize was worth a whopping $10,000 U.S. dollars.
Wed, Dec 22, 2021Implementing RUI, Replit's Design System
At Replit, we have a small engineering and design team supporting millions of users. Our secret is investing in good tools that make us more productive. In this blog post we'll give you an insider look into how we implemented one such tool - the Replit design system (or RUI for short). The project started as a collection of growth pains: Designers were stretched thin on multiple projects and they couldn't be involved in small tactical decisions UI was inconsistent across the product Reusing UI code was hard, so engineers built new ones (for example, we had 7 different Avatar components) So, we set to build a design system that would help us scale. The high level goals:
Tue, Dec 14, 2021Repl Space and Templates
When we want to support a new technology, we're faced with the question: "Do we (the Replit team) build this capability into the Replit directly, or can our users add it themselves?". Usually, we want the answer to be the latter. Repls are like personal computers for your projects. And the more these personal computers can be customized, the more they'll be used in creative, unexpected ways. Internally, we refer to the extent to which a Repl can be configured as "Repl Space". So when we talk about building new features, we always ask "can it be done in Repl Space?", which is basically asking if we can build it on Replit. Over the past year, Repl Space has become significantly more powerful, and soon, Replit will be one of the most flexible computing platforms on the planet without compromising its simplicity. Now that we have the technical foundations in place, we're excited to bring more of that power into the product in the form of Templates and some new configuration options. Templates Where can I find templates?
Mon, Dec 13, 2021Ace, CodeMirror, and Monaco: A Comparison of the Code Editors You Use in the Browser
I’ve been working on Replit for roughly six years now, and as the team has grown, I’ve focused on the IDE (what we call the workspace) portion of the product. Naturally, I was increasingly preoccupied with the code editor. While we’ve considered creating a code editor that meets our needs, the complexity involved in developing one, the richness of open-source choices available, and the size of our staff made it a fruitless rabbit hole to enter. Our time is best spent elsewhere. I have had the pleasure (and the pain) of using Ace, Monaco, and CodeMirror in production settings, sometimes simultaneously (more on that later). In this post, I’ll go over some Replit history, my experience using the editors, and how they stack up against one another. If you’re here for a direct comparison, feel free to skip to the end, where I recap and compare. The story Prelude: Ace In the early days of Replit, around 2011, there was no code editor. It was a pure REPL interface, a console with a simple input box. Adding a code editor was an obvious next step, especially if we cater to more complex programs. Code editors give us features like syntax highlighting, editor shortcuts, auto-indentation, search and replace, etc. Cloud9 released Ace at the time as a feature-full, performant web code editor. Ace editor is still actively maintained; it has a rich ecosystem and supports many languages, keybindings and works great in the browser.
Wed, Dec 8, 2021$80m to bring the next billion software creators online
Following our Series A announcement earlier this year, I'm thrilled to announce that we raised Series B financing from new and existing investors. This year alone we've doubled our user base to reach 10m+ users, tripled concurrent containers on our network, and grew traffic to sites and apps on the network by orders of magnitude. This is a major milestone for our team & community. Our mission is to bring the next billion software creators online. To advance towards this mission we will be investing in the following areas: Build the world's most ubiquitous programming environment. Inspire creativity and generate value for creators through community.
Thu, Dec 2, 2021Deploying Django to Replit
Django is a Python framework for building out full-fledged web applications. It’s loved by developers due to its battery-included philosophy and comes preloaded with features you can use to rapidly develop your web application. Authentication and authorization have been previously incorporated into Django, which means you can focus on writing your app because the basic web development functionality has already been done. Deploying Django can be taxing due to the production environment varying from the development environment on your local machine forcing you to use different operating systems and system configurations. Technology like Docker can simplify this process. However, Replit simplifies the process even more by handling environment configuration and dependencies, which means less configuration on your end. Replit also allows for real-time collaboration. You can access Replit on any platform that has an active internet connection, and you can edit your code and connect with other developers anytime and anywhere. In this tutorial, you’ll learn why you should use Replit and how to deploy your Django project to it.
Wed, Dec 1, 2021Replit Blocks Adult Content and Malware
At Replit, we have created a general purpose computing environment that anyone can use to run whatever programs they want, and access whatever services they want. You can run almost any type of software in a repl, including Mac OS, a Commodore 64 emulator, DOOM, or even a web browser. While this is powerful, it poses a few problems for us. There are some types of programs, like cryptocurrency miners and spam bots, that either use too many resources or damage the community as a whole, and as a result we can't allow them. This is especially important considering that a substantial portion of users on Replit are teenagers, many of whom use Replit at school or under parental supervision. We want to continue giving everyone computing superpowers, while still finding a way to protect our users from inappropriate content. That's why, starting this week, we are blocking all internet access to adult content and malware. That means if you run a web browser on Replit, you won't be able to access any objectionable or NSFW websites. How does it work? We did this by enabling the use of Cloudflare's family-friendly DNS resolver by default in all user repls. Visit their website for more information on this resolver and the type of content it blocks. Using Replit as a proxy to bypass school or parental filters violates our Terms of Service. We actively shut down repls that do this, with both automated tools and manual intervention.
Mon, Nov 29, 2021Will Nix Overtake Docker?
In many discussions about Nix, the comparison of Nix and Docker comes up frequently. This question could be dismissed by saying that Nix and Docker are different tools that solve different problems. One is a toolkit for building and deploying containers and the other is a package and configuration manager. However, these tools do have some overlap: they can both be used to create reproducible environments. A reproducible environment is one that can be recreated from scratch in an identical way (ideally bit-for-bit). Practically, this means having the same tools, versions, and configuration between the environments. Reproducible environments are useful to ensure all developers on a project have the exact same set of tools. Additionally, you can develop in an environment that is similar to the production environment -- leading to less surprises when deploying. Both tools can solve the age-old problem of "it works on my machine". While both tools aim to solve this problem, they take different approaches.

