Wed, Jun 9, 2021[RVO] How Nisawa is Enabling Reliable Delivery in African Cities
Can you imagine how you’d get a package or meal delivered to you if your house did not have a physical address? Now imagine how that would work if your local food delivery, postal, or parcel services were also ineffective, lacked the technology, or didn't exist at all. This is the reality faced by most businesses operating in African cities. For them, these aren’t hypothetical questions. They have to rely on informal, unreliable, unprofessional, and oftentimes frustrating ways to send goods to customers who desperately need them delivered. They typically resort to using individual, independent motorbike taxi drivers. They’d stop a random driver on the street, hand him the package, provide rough verbal directions and a phone number of the customer to call when nearby. These hacks pose many challenges including the lack of trust and professionalism (motorbike drivers are just independent individuals unaffiliated with any company), slow delivery speed (need for additional directions over phone calls), lack of appropriate delivery tools, and inability to track deliveries. For businesses, these challenges frequently lead to stolen, lost, or damaged packages and frustrations due to inefficiencies, awful customer experience as well as limitations on the type and value of the package they’d be comfortable sending through this approach. Informal delivery in Kigali, Rwanda. Here, a motorbike taxi driver is being used to carry the two packages in blue and red. He has been given verbal directions and will be calling the sender and receiver to continuously receive directions to the drop-off location. After personally facing these challenges, we set out to create Nisawa, an on-demand, last-mile delivery service with the goal of enabling businesses in African cities to reliably deliver goods to their customers.
Tue, Jun 8, 2021[RV0] How we used focus and prioritization to transform our student-run startup
Running a successful startup is like driving a nail through a thick piece of wood. You can hammer as hard as you want, but without a sharp nail–extreme focus and a specific target–you’re not going anywhere. Coming into Replit Ventures (RV0), our situation mirrored the analogy above. We were wildly passionate and worked 24/7, but we found ourselves intrinsically limited by a lack of focus in our product. RV0 made us realize this, and radically transformed our startup into a hyper-focused business solving a clear pain point for a sizable market. What is our startup, PetCode? We’re a pet-tech company providing users with a smart pet tag for smarter pet care. With our QR tag and mobile app, we help owners keep their pets safer and streamline their pet management experience. PetCode was started in May 2020, when COVID-19 closed schools and forced us to transition to online learning. We didn’t do much learning at school, and instead spent our time looking for a business idea. As pet owners, we noticed that the metal tags our pets wear are surprisingly archaic. These tags rust, fade, and store just 50 characters of information–that’s less than one-fifth of a tweet. Even worse, the only way to change the information on a pet tag is to buy a new one–they’re not updateable.
Thu, Jun 3, 2021[RV0] How we gameified exploratory CS with Tech Roulette
We're Execute Big, a CS education non-profit org, and as three-person strong team, our mission is to give every student the chance to explore and experience CS education. We've been bringing unique programs to students across the country, and the move to virtual programs sparked a little creativity in us — after all, virtualization has made education more accessible than ever. That's why we've worked hard as a part of Replit Ventures to bring you Tech Roulette, a free game for the summer where you (and 500 students AKA new friends) get the chance to take a leap into fields of technology through a variety of random intro projects while earning rewards and prizes — all within your free time. Each week, you'll receive an email that your portal is ready, and you'll see three random projects for you to choose from for the week, ranging from hardware projects, like building a real-life "Simon Says" toy, to data science projects, like creating an algorithm to predict who'd survive on the Titanic. On top of weekly projects, you're welcome to join in on community-wide speaker sessions and coffee chats with industry professionals. Join the game and invite your friends (some friendly competition never hurt!) at techroulette.xyz. P.S. Are you a seasoned tech pro who wishes Tech Roulette was around when you were a kid? Sign up to mentor and chat with students here.
Mon, May 24, 2021How we went from supporting 50 languages to all of them
At Replit, we want to give our users the most powerful, flexible, and easy-to-get-started coding environment. However, it has been limiting because we only support a fixed set of languages and OS packages, some of which are outdated. Ideally, users should be able to use any language and install any package with minimal fuss. That's why today, we're announcing that we've incorporated Nix in our infrastructure to give users access to over 30,000 OS packages instantly. The environment repls run in has long been a static world. We build a pre-baked OS image to fit all our languages. This gives us a lot of leeway to make repls super fast, but the underlying operating system repls run in is completely immutable. To remedy the situation we've been maintaining an ever growing OS image, if users can't install any packages we'll just install every package! As awesome as this sounds it has become a huge burden to maintain. Every new package creates a new exciting way things can break. Over time, it became clear that maintaining a single, massive docker image was not sustainable. We came across Nix which is a declarative, reproducable OS package manager. Due to Nix's design its package store is highly cacheable and allows for building environments in a composable way. Using the Nix programming language you can specify the dependencies for your development environment and Nix will build the environment for you. We believe this is a great fit for Replit as it allows our users to build endless combinations of development environments without us having to maintain a monolithic docker image. With Nix on Replit, see how easily you can create a Zig environment in a few seconds. We create a replit.nix file to tell the repl which Nix packages should be available when we run. Then we use .replit to control what the run button does. And voila we have a new language: How it works
Wed, May 12, 2021Replit Apps
In a few years, you’ll be able to build your own operating system. You’ll have a place to browse the web, find people to hang out with, play games, learn, and do deep work. You’ll be able to discover apps from all over the world, modify them, and build your own with your friends– a true multiplayer computing experience that you can customize and call home. Today, the launch of Replit Apps marks the first step towards that future. Apps, right now, is a gallery to browse and discover new repls from the community. Everything from games, to generative art, to machine learning models are on here. We have a vibrant group of creators and we're directly trying to break down the walled gardens that we're so familiar with on mobile app stores. Even GPT-3 knows we're going in the right direction.
Tue, May 4, 2021How to send $ETH in 19 lines of Python
With the emergence of blockchain technology, people can get paid from anywhere in the world. This type of transaction is revolutionary because we are able to send value from one person to another with no bank. The day will come when it is cheaper and faster to send value (ETH, USDC, BTC, etc.) using blockchain than with the current payment system. This post This is a start-to-finish Python tutorial on how to send ETH from one wallet to another on Replit. At the time of writing, ETH is at an all-time-high (ATH) of $3,335. To do this, we are going to use infura.io. Infura is a service that allows users to easily interact with a live Ethereum node. A node is a computer that participates in the Ethereum network. Alternatively, you could spin up your own node. You can follow along with the code here.
Sun, May 2, 2021Replit Empowers Synctera to Find Hidden Talent
Talent is one of the most important factors in the success of a new business, and Synctera has been using Replit to run a technical interview process that effectively uncovers the best engineers, whether they have a stellar resume or a nontraditional background. Synctera is a new startup that connects FinTech companies to community banks. When a company wants to offer a new financial product, like a debit card or loan, to their customers, Synctera's marketplace and APIs make it easy for them to find the right bank with the right offering. As a result, Synctera's customers can move faster and build better products. Based on this vision, Synctera raised a $12 million dollar seed round in December 2020 from high profile investors, including the CEOs of Plaid, Affirm, and Carta. Now they're expanding (planning to go from 30 to 120 people) and already seeing strong early growth. We spoke to Kris Hansen, Synctera CTO, about how he's using Replit to build a world class engineering team.
Wed, Apr 28, 2021Why We Built Our Own DNS Infrastructure
This post is part of a series about the wonderful world of clusters. Check out the first post for an overview of what clusters are all about. In this post we will take a peek under the hood of our hosting infrastructure and walk through how we made hosting work in a multi-cluster world. Hosting overview If you didn't already know, you can host web servers right on Replit.com. Just create a new repl and spin up a web server using Flask, Express, or your favorite web framework. We automatically detect the web server and open a webview in the workspace. Your repls are automatically accessible via a *.repl.co domain and usually looks something like <repl name>.<user>.repl.co. In fact, this blog is hosted on a repl. On the backend, a proxy service handles proxying HTTP requests to the proper repl based on the host (domain name) of the request. This service shares a database with the container management service so that it knows which repl container to proxy HTTP requests to. Pre-Clustered World Our pre-cluster hosting setup was rather simple, we ran multiple instances of our proxy service behind a single load balancer. The load balancer had a single static IP address; both repl.co and *.repl.co had an A record with the static IP address of the load balancer. For an intro to DNS, check out howdns.works
Tue, Apr 27, 2021Why We Switched From Webpack To Vite
At Replit, our mission is to make programming more accessible. We provide people with free compute in the cloud so that they can build apps on any device. Among the most popular ways to create apps on the web today is React. Historically, however, React tooling has been slow on Replit. While the JavaScript ecosystem has produced excellent tools for professional developers, many of the most popular ones, like Create React App and Webpack, have become increasingly complex and inefficient. Fortunately, we've seen the JavaScript community recognize this problem and move to build faster and more efficient tooling, which means we can finally deliver the experience our users expect from us. This new experience is powered by Vite, a JavaScript build tool that provides a fast and lean development experience. Vite comes with a number of features including HMR, or Hot Module Replacement, a build command that bundles your tools with Rollup, and built-in support for TypeScript and JSX. Vite makes React dev fast. Like really fast. With HMR, changes you make trigger rerenders within milliseconds which makes prototyping UIs really quick. With that in mind, we decided to rewrite our React template using Vite and we were shocked to see just how much faster it was. Here's what it looks like next to our old CRA template:
Fri, Apr 23, 2021Debug, Debugger, Debuggest!—A new Collaborative Comprehension Experience
Earlier this year, we decided to close the #1 most requested entry in our Canny board, which requested to improve our previous debugger so that it could also work with multiple files in a project. This was done because it became very clear that there is a need to have better tools to aid with program comprehension built directly into Replit. But we also realized that we could go even further. Even though most of our users could be happy with a traditional debugger experience, our mission is to give people computer superpowers! So today we are announcing that we are working on a new, reimagined, collaborative debugging experience (or maybe we should call it a "program comprehension experience?"). We plan to tackle this problem from two fronts: the first one is that interactive debugging is very limiting and potentially frustrating, in the sense that it only exposes the state of the program at a single point in time. There are ways to make the program state advance, but if it advances too much, there's no going back, and the program needs to be restarted from the beginning and be placed in the same state again. This process is stressful enough that one very commonly-used alternative is to manually instrument the code to add tracing (also derogatively referred to as printf() debugging). Logging/tracing definitely has its merits and is a good practice to do overall, but it's not ideal to have to rebuild the program and re-run it just to know what it's doing. What's your theory for why programmers reach for printf-debugging more frequently than other modes (like step-debugging)? — Amjad Masad ⠕ (@amasad) April 9, 2021 All of these problems are the reason why we want to provide a time-travel debugging experience for our most popular languages, which should make the whole process a lot less stressful. The best thing is that we plan to make this such that there will be very little setup needed, other than enabling debugging on your repl! The second problem that we want to attack is that whatever we do, it must integrate well with the Replit editor, and that includes features that are mostly unique to it: collaborative code editing. This means that the debugger will also have a way for a group of people to be in this debugging experience at the same time, collaborating in understanding what the code is doing, and why it is doing so. We still have some open questions about what this is going to look like, and the kinds of problems that you are trying to solve, so we are going to reach out to some of you for interviews to gather a better understanding and design tools that will work great for everybody. Because Replit today is the editor of choice for so many people at the start of their programming journey, if we're successful, we will expand access to debugging tools and increase mindshare and hopefully get the next generation of programmers using advanced debugging techniques. In a sense, this is going to bring us several steps closer to achieving the dream of learnable programming!
Thu, Apr 22, 2021A whiteboard for every repl
Replit is a place where beginners, educators, and professionals alike can code and share their ideas collaboratively. Something that goes hand and hand with your source code is how you communicate it. We built threads, which allow you to leave contextual messages around code, and added better markdown support for READMEs and other guides. However, we were missing a visual way for people to explain and collaborate around code. Today we're excited to announce support for draw files, powered by excalidraw! Any new file with the .draw extension will become a whiteboard to sketch shapes, draw freely, and add text. These files are multiplayer by default, anyone who joins your repl will be able to sketch and diagram along with you. During this period of remote collaboration, we've used draw files to sketch out problems with candidates during interviews, to diagram how our internal systems work, and to quickly prototype user flows. How it works Thanks to the awesome open source excalidraw project, we were able to combine their library with our infrastructure to treat .draw files just like any other file in your repl. We use the same file structure under the hood, which makes importing from excalidraw a breeze (just save your work on excalidraw.com with a .draw extension and upload it to Replit).
Sun, Apr 18, 2021Announcing Secrets Management
Replit is the go-to place for a lot of people to build their applications. People build chatbots, web applications, games, and so much more. Naturally, projects like this need to maintain sensitive information (secrets). Today we're announcing a new and improved way to manage secrets. To give you an idea of how and when this is useful, let me give you some examples. To build a Discord chatbot, the programmer would have acquired a Discord API key. If the key is exposed, then anyone can come along and send messages as the bot. Before we gave a database for every repl, applications would use an external database with access credentials stored somewhere in the code. Exposing the database connection credentials is disastrous for obvious reasons. When someone builds a web application with authentication (users), the server signs cookies with a cryptographic key, ensuring that the visitors are who they say they are. Stay tuned for an announcement for a Replit authentication system, so you don't have to worry about signing cookies either. Traditionally, people purchased the hacker plan to make their repls private and keep their secrets secure. However, that meant hiding the repl and the code from the world. People wanted to also share their repls with the community. Code sharing allows our community members to get feedback, teach each other, gain customer trust, and get all the goodness that comes with open source. For this reason, in 2019, we introduced the first iteration of the secrets feature to Replit, the dotenv file (".env"). The file followed a line-based key="secret" format, which was consumed as environment variables in the code, only exposing the "key" part and keeping the secret safe. Dotenv served its purpose for our advanced users. They were able to use it to store data and configurations they want to hide. However, dotenv had many shortcomings. Unless people followed a Replit-specific tutorial or went scouring through our docs, the feature was undiscoverable. Beginners required an understanding of environment variables, and an empty free form file was overwhelming. The issues of dotenv even extended to the advanced users. The lack of a public standard for dotenv confused people when following external resources and tutorials. Another problem was that the dotenv file was not an actual file. Still, we communicated it as if it were. Some programmers would try to read it from the file system and be confused because it was not there. We did not write dotenv to the filesystem because forking relied on making a copy of the filesystem of a repl. It also gave us the flexibility of encrypting dotenv and taking other security measures to keep everyone's dotenv safe. It has become apparent to us that we needed a better solution. What made the most sense for us is to add a GUI that is easy to use for learners and keeps our advanced users productive.
Mon, Apr 12, 2021Announcing Replit Ventures
TL;DR Replit Ventures will give a grant of $2000 each to 4 startups and 1 non-profit (in Bitcoin) with a chance for more funding later on. They will have additional help with tools, mentorship, networking, and further fundraising. You can apply here. What is Replit Ventures? 💸 At Replit, our mission is to make programming more accessible. Our platform removes friction that exists when building applications. This seamless development process has enabled entrepreneurs to create prototypes, MVPs, and even launch startups all in one place. We're proud to share that there are many ambitious startups that either started or running entirely on our platform (e.g., Fig, Blubbr)- some generating thousands of dollars every month. Our users are building innovative products, and we want to help them grow. Replit Ventures is our brand-new experimental startup incubator dedicated to bringing emerging startups and ideas to market. We want to invest our time and money into the next generation of entrepreneurs. What makes Replit Ventures different? 💡
Mon, Apr 12, 2021Meet the college students who used Replit to build a startup with $1,000 in monthly revenue in 3 weeks
Hi 👋🏻, I'm Søren. I'm a computer science student based in Seattle, Washington. I've always been interested in the intersection of finance and computer science and I tend to find myself building things in the space. Before I was offered a position at Replit, I worked as a software engineer at a FinTech startup writing market-making systems for various crypto brokerages. While I was doing this, I was also working on a side-project with my close friends and co-founders Justin and Steven. This project is called Blubbr. What is Blubbr? When we first started Blubbr, we just wanted to make a trading bot. We became interested in the relatively new market of SPACs and had developed a strategy we believed would make us money. A SPAC is a company whose entire goal is to buy a private company and take them public. Before a SPAC is allowed to talk about anything to the public, they have to release a special type of form on the SEC website. We discovered that shortly after companies release these specific forms, their stock prices tend to increase. Blubbr was created based on the premise that if you bought within minutes of the form coming out, there was a good chance that you would make money. How did we build this so fast?
Sun, Apr 11, 2021Boosts
Our Hacker plan has always been a great choice if you need more powerful repls. In addition to benefits like private repls, more storage, and always on, the Hacker plan gives all of your repls 4x the CPU and RAM compared to those in our free plan. However, sometimes, even 4x is not enough. Whether you're building a new Terminal or playing Doom, you could blow past those resource limits pretty quickly. That's why today we're excited to announce Boosts! Boosts are a new addition to our Hacker plan that allow you to make your repls even faster. Boosted repls come with 4 vCPUs and 4 GB of RAM which is double the resources of standard Hacker repls (and 8x more than free repls). As of today, we're including 5 free boosts as part of the Hacker plan. However, boosts can also be purchased on a free plan using Cycles. To boost your repl, simply click on your repl's title to bring up the repl info card and click the "Add boost" button underneath the always on toggle like so:

