Tue, Mar 26, 2024Introducing Scheduled Deployments
Today, we are launching Scheduled Deployments. This service allows you to schedule your applications to run at predetermined time intervals seamlessly. Specify when the application should run in natural language, and Replit will take care of the rest. Scheduling has always been a popular use case on Replit, but configuring an application like this was difficult. Most developers set up schedulers by deploying an infinite loop that constantly checked the time to a Reserved VM. This process not only had a lot of overhead, but was also inefficient and costly. Now, you can write something like, “Run this script every Tuesday and Thursday at 3:00 PM,” and we’ll generate the cron expression for you so that you can focus on building. What you can build In our closed beta, developers have used Scheduled Deployments to build applications like:
Mon, Mar 18, 2024More Reliable Connections to Your Repls
At Replit, session success rate is one of our service level objectives (SLOs). This means that any legitimate incoming request from a client should always be successfully connected to its target Repl. Failure to do so is a bad user experience. To abstract away intermittent infrastructure failures when you connect to a Repl, we use a reverse WebSocket proxy between the user’s client and the remote VM hosting Conman, our container manager that runs all Repls in a container. The high-level view of this proxying looks something like this: In the above diagram, Regional Goval Cluster represents our backend, which is sharded per region for scale and to prevent cross-region latency and egress costs. You can read more about it in this blog post. The diagram illustrates that the reverse WebSocket proxy can attempt a retry if any failures occur during the connection setup with Conman. The proxy is alive throughout the connection and transfers data back and forth between the client and the user’s Repl. The problem Everything seems architecturally sound here, so what was the problem? Conman, technically our container manager and responsible for running Repls in containers on GCE VMs, also doubled up as our reverse WebSocket proxy. Here’s what our architecture and overall flow used to look like:
Thu, Feb 22, 2024Experiment: Figma to Replit Plugin
Today we’re releasing an experimental Figma to Replit plugin. The plugin’s goal is to streamline the process from designing with pixels to prototyping with code — generating visually accurate, responsive, HTML, CSS, and React code from your designs. This was a Hack Week project by Replit Design, and we’re excited to give the community an opportunity to try it out. With this tool, you can now generate a Repl directly from your Figma design, and instantly share a static React app with your team. From there, you can use Replit AI to add functionality and tweak your design before deploying to production. This integration is all about enhancing your workflow, accelerating the prototyping process, and ultimately boosting developer productivity. Using the plugin Design your project: Begin by designing a component or page in Figma. You’ll want to follow these practices to get the most functionality with your export:
Thu, Feb 15, 2024Replit + pip
First-class pip support We’re thrilled to announce that first-class pip support is now available on Replit! This should work out-of-the-box when importing existing repositories from GitHub. For developers who want to switch from poetry to pip: start by deleting poetry.lock, then move your dependencies over from [tool.poetry.dependencies] to requirements.txt (structure hint: flask = "^3.0.2" would become flask>=3.0.2,<4 in requirements.txt), and finally, delete the other [tool.poetry...] sections from pyproject.toml. After that, the packaging infrastructure will use pip for all future operations going forward. Where we started When we first chose how to support Python packaging, we went with poetry: a newer packager, offering a compelling feature set. While we stand by the value of having reproducibility and the stability that brings, we also acknowledge the significance of pip as a tool in the wider Python ecosystem. One challenge we were trying to address in this change came in the form of following suggestions from AI assistants, StackOverflow, or blog posts that were written with the framing of pip being the “standard” packaging interface. Packages installed in this way would exist in an ephemeral state: both immediately available for use, but not yet recorded in the dependency list. This would no doubt result in frustration as a project that ran fine interactively in a Repl resulted in a ModuleNotFoundError during deployment.
Wed, Feb 14, 2024Sharding Infrastructure: The Regional Goval Project
The main task of the infrastructure team at Replit is to ensure your Repls run well. A Repl can be thought of as a Linux container with a filesystem. To run Repls, we need to take care of several pieces of infrastructure: Virtual machines to run Repl containers on Databases to keep track of container and VM states Cloud storage to store Repl contents Reverse proxies to route HTTP requests
Wed, Feb 14, 2024Introducing Multiplayer AI Chat
One of our core beliefs at Replit is that multiplayer collaboration makes building software more creative and efficient. After introducing Replit AI for All last year, we heard from our users how transformative AI has been to their development workflows. Today, we are announcing several updates to our AI Chat product, but most importantly, we are bringing the multiplayer power of Replit to AI. We will continue to offer AI to all users, with advanced models available for Replit Core members, but now with the ability to collaborate with others in multiple, persistent chat sessions. What's new? Multi-session chat with persistence You can now create and manage multiple chat sessions when interacting with Replit AI. Creating multiple threads with our AI products allows you to switch between asking for explanations about files in your codebase, generating code for a new feature, and debugging, all without losing your progress. This was a top feature request, and we’re excited to bring multi-session functionality to the platform so developers can stay organized and engaged, all within the same familiar workspace UI. Collaboration and multiplayer
Mon, Feb 12, 2024Flexible Credits and Usage-Based Billing
Replit has evolved from a simple online editor to a comprehensive end-to-end software development platform trusted by developers worldwide. As we’ve grown, we’ve introduced new tools and payment methods for services. We’ve recognized a desire among developers for greater control over their expenses on Replit, and today, we’re introducing usage-based billing. In January 2024, we enabled usage-based billing for any usage that exceeds your plan’s allotment. This change offers a more flexible and transparent view for managing development and deployment costs on Replit. Replit will continue to offer our powerful Starter and Core plans, and any usage beyond plan allotments will be billed via usage-based credit card payments. We’re confident these improvements will make using Replit to scale your projects easier. What's new? Flexible credits Previously, the Replit Core plan included specific allotments for Static and Autoscale Deployments. Feedback from our Replit Core community highlighted a desire for more versatile hosting options, particularly for bots (such as Discord, Telegram, Slack, etc.)
Tue, Feb 6, 2024Easier Editing for .replit Files
At Replit, we want to make it easy to support any project configuration possible. This includes ensuring your binaries are in the right place and intelligent code completion works. Historically, the .replit file has been at the center of this, but the experience of editing the file is a process shrouded in mystery. While documentation exists for the file and what various configurations imply, it’s much more convenient if the documentation is visible inside the Workspace. Starting today, you’ll be able to edit your .replit file fearlessly. We’re now providing intelligent code completion and documentation for all .replit files, powered by Taplo - an LSP server for TOML files. Happy configuring! How we did it With Taplo, the only requirement for providing TOML linting and LSP functionality is a JSON Schema for the TOML file being described. Since we consume the .replit file in a Go codebase, we could use the Go jsonschema module to use our already-existing field tags for TOML deserialization in our JSON Schema properties. This means we were able to generate a JSON Schema without changing our struct definition!
Thu, Jan 11, 2024Company Spotlight: Qdrant Vector Database
With the rise of new generative AI development methods like retrieval-augmented generation (RAG), it can be difficult to demonstrate technical setup to developers and highlight the potential front-end products that can be created by these developer tools. To speed up developer onboarding, Qdrant has developed several Replit templates. They simplify the initial steps for new developers, such as setting up the development environment and installing packages, making the onboarding process smoother and faster. What is Qdrant? Qdrant is a high-performance vector database used at companies like AlphaSense, Disney, Flipkart, HRS, HP, Bayer, Dailymotion, Deloitte, Microsoft, Mozilla, and others. Qdrant exposes both HTTP and gRPC APIs so that you can integrate it with any programming language. They also have official Python, JS/TS, Rust, and Go SDKs, and various integrations with the most popular LLM frameworks, such as LangChain, LlamaIndex, and Deepset Haystack. Qdrant also has a custom extension of the HNSW algorithm, enabling both rapid and precise Approximate Nearest Neighbor Search, which is essential for real-time applications.
Thu, Dec 28, 2023Landscape or Portrait? You Decide
People have expected apps to rotate with their mobile devices since before the introduction of the iPhone in 2007. It’s especially important for productivity apps to adapt and let people choose how they want to utilize their screen space. With the newest version of the Replit Mobile App, you can now code in both landscape and portrait modes. This creates a significantly improved experience on smaller tablets like the iPad mini or larger phones like the Pixel Fold. Want to code on the go with your iPad mini? Simply rotate it to portrait, then later, when you’re home, connect it to your wireless mouse & keyboard and rotate it to landscape for maximal screen space. This is the first of many more improvements to the Replit Mobile App, unlocking your ability to build and launch your next startup from your phone. Updating the Replit Mobile App to respond to orientation changes required navigating a few key areas: Accounting for screen edge insets Creating a friendly API for reacting to and inspecting orientation information Sizing screen content correctly based on orientation The Replit app is built using Expo for React Native, and we use the react-native-safe-area-context library to ensure we display UI in the safe areas of the screen. The addition of camera cut-outs and gesture-based navigation to most smartphones in recent years has made it even more important to account for screen-safe areas when building for a wide range of mobile devices. Properly accounting for screen-safe areas means that the app’s interface isn’t shown under the camera cut-out or behind the system navigation UI. Here’s an example with an iPhone 15 Pro: the non-safe areas where the camera cut-out and system navigation UI live are highlighted in red.
Wed, Dec 27, 2023Replit in Review: A Recap of What We Shipped in 2023
In 2023, we brought the vision of idea to software, fast, to reality. We shipped the first conversational AI programmer to code your ideas faster, made AI available for everyone, and introduced Deployments to ship from where you write your code. We made coding on Replit a better and more productive experience by redesigning the Console, Git integration, Packages tool, and more. We released the Replit Desktop App so you could choose the form factor that works best for you. We’re not finished making Replit the best place to code, but here are some highlights from the past year! Product (01/29) Git in the Shell - The first step in improving our Git integration. Git command-line tools were improved and integrated with your GitHub account, allowing access to your repositories. (02/14) Announcing Ghostwriter Chat - The first conversational AI programmer. Ghostwriter Chat is a beta release that acts as a proactive debugger and understands your project’s context, making it a powerful AI pair programmer.
Tue, Dec 26, 2023Introducing Spellburst, A Replit x Stanford HAI Collaboration
At Replit, we’re lucky to work with brilliant people who are building the programming tools of the future. This past year, we had the privilege of sharing some of this design work with the broader academic research community. Tyler, design engineer at Replit, teamed up with Stanford University (Jenny Han – also former Replit intern), Miroslav Suzara, Christopher Pondoc, and Dr. Hari Subramonyam) to publish Replit’s first-ever peer-reviewed publication, Spellburst. In November, we presented our work at the ACM Symposium on User Interface Software and Technology (UIST), one of the premier venues for human-computer interaction research in the world. This post will walk through what we built and researched, what we learned from the process, and some predictions for user interface design and AI in the future. Introducing Spellburst We went into this project knowing that we wanted to design for learning and creativity for coders. In our formative study, we interviewed 10 expert generative artists to understand their existing workflows. What we discovered about the exploratory process for creative work is that creative coders are constantly: Going from idea to code
Fri, Dec 22, 2023Builder Profile: Ismail Pelaseyed
Ismail Pelaseyed is the CTO and co-founder of Superagent, an open-source framework that enables developers to build, manage, and deploy AI Assistants. Ismail is an experienced developer who is dedicated to building open source software. After many years of running a successful consulting firm with his business partner, Alan Zabihi, they wanted to go back to building projects for themselves, focusing primarily on open source AI and agent frameworks. Eight years ago, Ismail and Alan built KeyCrunch (now Hyperdrive), which automatically writes marketing copy for users. They continued to expand the function of KeyCrunch into a tool that generates ad materials with the help of AI agents. Their goal was to get mainstream developers without expertise in ML to integrate AI into their applications. The company was eventually acquired by Jetshop, but Ismail and Alan continued to focus on agents and accessible AI dev frameworks in their next project: Superagent.
Thu, Dec 21, 2023Company Spotlight: CrewAI
AI agents are here to stay Large Language Models (LLMs) are everywhere, doing various jobs, from chatting to parsing documents. Soon after LLMs took the world by storm, developers started creating more focused, goal-oriented LLM apps modeled after human reasoning and problem-solving, which became known as AI agents. Here’s how one company is leveraging LangChain and Replit to solve complex tasks. AI agents with CrewAI CrewAI is a library specifically designed to build and orchestrate groups of AI agents. It's made to be straightforward and modular, so integrating it into your projects is a breeze. Think of CrewAI like a set of building blocks - each piece is unique, but they're all designed to fit together smoothly. Built on top of LangChain, it's inherently compatible with many existing tools, including local open-source models through platforms like Ollama. The AI agents can run natively on the cloud with Replit, making it even easier to get started with CrewAI. Check out the CrewAI templates on Replit to see the agents in action. Or, use them as a starting point for your own projects so you don't have to start from scratch. Here’s how it works.
Thu, Dec 21, 2023Dec 12 Incident Update: Secrets and repl.co Static Hosting Unavailable
Between Dec 12 and Dec 16, Secrets in interactive Repls and files in our legacy repl.co static hosting were unavailable. The root cause was a configuration push to GCS storage that was misinterpreted as a request for all the files to be evicted from storage. Deployments and Secrets in Deployments were unaffected. We have since recovered all known user Secrets and instituted new data retention procedures in our storage systems to ensure that this issue doesn’t reoccur. This will allow us to have a faster recovery going forward. This post summarizes what happened and what we're doing to improve Replit so that this does not happen again. Technical details Here is the timeline of what happened: On Dec 11, we pushed an update to our Terraform configuration for the Google Cloud Storage lifecycle of several buckets. This included a bucket where Secrets, legacy repl.co static hosting, and some Extensions are stored. This was done in an attempt to automatically delete any noncurrent object to save space. These buckets had object versioning enabled beforehand, and the update inadvertently set the daysSinceNoncurrentTime field to zero. Setting this field to zero caused the request to be interpreted as equivalent to setting age to zero, because it also missed explicitly setting isLive to false. This behavior was unexpected, which is tracked in the underlying Terraform provider in a GitHub issue. We quickly discovered the issue, and between Dec 12 and Dec 16 a recovery process was able to recover all known user Secrets.

