Last month, we released many new features and improvements designed to boost your productivity, collaboration, and coding experience on Replit. Some of the key highlights include:
Object Storage - Store and manage unstructured data right from the workspace.
Improved Deployment logs - Built-in search, error highlighting, 30-day persistence, and more.
Merge conflict markers - Resolve merge conflicts in the editor during merging and rebasing.
Replit Mobile App updates - New Recent Deployments section and tablet improvements.
Explorers: If you want to try new features as soon as they are available, turn on the Explorer role in your Account Settings.
Replit Object Storage allows you to store and manage unstructured data like media files, documents, and other content types efficiently. It's built to be resilient, handling simultaneous reads and writes, and scales seamlessly to accommodate growing application demands.
Here’s what you need to know:
Minimal configuration: It works right out of the box in the Replit Workspace and deployment environments.
Versatile options: Ideal for storing large volumes of unstructured data such as images, user-generated content like PDFs, and data files including CSV and JSON.
Integration with existing tools: We provide libraries in Python and TypeScript to interact with Object Storage, making it accessible with minimal code.
Additionally, Object Storage is powered by Google Cloud Storage, ensuring high durability and performance. This means you’ll have automated scaling and a reduction in latency.
To integrate Object Storage into your project, navigate to the Tools menu, select Object Storage to open a new pane, and create a new bucket.
Write, read, and upload to GCP-backed Object Storage in only a few lines of code. For more details on how to use this feature, check out the full blog post or the documentation.
We added CPU and RAM monitoring to Deployments. Now, you can easily get basic system information about your Deployment machine directly from your Replit Workspace.
The Replit Mobile App now has a Recent Deployments section at the top of the My Repls screen, which makes it easier to access and monitor your recent projects.
We’ve upgraded the Replit Mobile App experience for tablet users. When you connect a keyboard, you can now access the full Replit Workspace as you would in a browser on your computer, as compared to the mobile version.
You can now use code path/to/file to create and open new files. Opening files with code or xdg-open no longer creates a new Pane group every time. This change also applies to git commit message editing.
Last month, we released many new features and improvements designed to boost your productivity, collaboration, and coding experience on Replit. Some of the key highlights include:
Scheduled Deployments are now available in the Deployments Pane.
We’ve made it easier to schedule tasks without deep technical setup. Simply tell Replit when to run your application using natural language, such as "Run this script every Tuesday and Thursday at 3:00 PM." We’ll handle the conversion into the necessary cron expressions. You can use Scheduled Deployments to automate Slack analytics reports, periodic data cleanups, routine system health checks, and more. Currently, Scheduled Deployments support a configuration of 1vCPU and 2 GiB RAM and allow up to 11 hours for the longest job, with no concurrency limits on the jobs scheduled.
With Scheduled Deployments, you can more efficiently automate and manage applications that need to be redeployed at specific, granular intervals. To read more and learn about pricing, check out the full blog post.
We’re reinventing how software is developed collaboratively and with AI, so that every part of your team can have the tools to build and ship something great.
The waitlist is now open for early access to the Replit Teams beta. Here’s what you can expect from Replit Teams:
Organizational intelligence: Unleash AI-powered code completion, chat, and retrieval-augmented generation (RAG) across your team.
Ultra-fast workspaces: Access 8vCPUs and 16GB RAM machines, ensuring a smooth workspace experience for your whole team.
Shared deployments: Deployments that can be managed and redeployed by anyone on the team, streamlining your workflow.
Living repos: With a dynamic, collaborative dashboard, you can see who’s coding, get a top-level view of in-progress work, and effortlessly dive back into tasks.
Replit-native collaboration: Speed up code reviews and merges with tools designed for efficient teamwork.
Role-based access control (RBAC): Keep your projects secure with access controls that allow you to easily manage team roles and permissions.
Centralized billing: Simplify your team’s operations with a straightforward billing system for deployments, compute resources, and more, all in one place.
New port configuration features make it easier to work on complex or multiple services within a single project:
Explicit port mappings: Ports consistently retain their mapping once they are opened. This change is reflected in the .replit configuration file, which also stores other project settings. This simplifies the setup for projects that involve running multiple services.
Improved port visibility and management: You’ll get a notification in the Shell or Console whenever a port is opened. There are options to view, configure, or stop exposing the port, which improves control over which ports are accessible.
Localhost port handling: To support developers who utilize localhost, there is now a popup notification that allows you to expose localhost ports if you choose.
Webview port switching: The Webview now allows you to switch between active ports easily, facilitating the testing and use of applications that listen on multiple ports simultaneously.
Read more about ports and the new features on the blog.
You can now build your Nix environment once and enjoy it always (even across forks). If you ever added a package to replit.nix and noticed that your Repl spent a long time Building Nix Environment on startup, this will now start instantly (after one last build).
Whatever you build with Nix counts against your storage quota. Check how much disk space Nix packages are using in the Storage details of the Resources menu. If you select the trash can, you can clear all storage used by Nix packages. We still maintain a very large cache of Nix packages, and using any of these prebuilt packages does not count against your storage quota.
On April 2, we hosted our second annual Replit Developer Day. If you missed the livestream, watch it on demand and catch up on the highlights on our blog.
At Developer Day, we also announced Code Repair, our state-of-the-art AI model and the world’s first low-latency code repair AI agent. Code Repair automates debugging 20 common diagnostics that account for 60% of Language Server Protocol (LSP) errors. To learn more, read the full blog post.
As part of our website refresh, we have rewritten our Terms of Service to be more user-friendly. Please take a moment to review the updated Terms of Service. By continuing to use Replit, you accept these updated Terms. If you have any questions, please contact us via the link at the bottom of the Terms of Service page. Thank you for being a part of the Replit community!
Last month, we released many new features and improvements designed to boost your productivity, collaboration, and coding experience on Replit. Some of the key highlights include:
Git improvements - Multiplayer Git in the Shell, consistent commit usernames, and more.
AI in the Shell - Generate commands and explain unfamiliar code in the Shell with Replit AI.
Port management updates - More options for port configuration and networking.
Explorers: If you want to try new features as soon as they are available, turn on the Explorer role in your Account Settings.
A year ago, we shipped Git support in the Shell, and now we’re back with an upgrade: Git in the Shell is now compatible with Multiplayer. We now track who initiated a Git action (whether from the Git Pane, Console, or Shell) and ask the correct session for their GitHub credentials. We’ve also fixed Multiplayer issues with xdg-open and how Git commands in the Shell can open the Workspace editor for commit messages and rebasing.
Usernames for Git commits are now consistent. Before, Replit would use your GitHub or Replit username. Now, we use your GitHub or Replit public name (if present) and fall back to the username. The change is more consistent with how GitHub shows commits in its web interface and also matches our understanding of what people prefer to show up in Git log history.
For example, before, Replit would use your username in commits like:
Previously, if you ran git init in a Repl, you’d be greeted with a large hint message. We’ve set the default branch to main to have a shorter default name and avoid this message.
With all these fixes together, if you’ve connected your GitHub account to Replit, you can now initialize and make a commit seamlessly, without any warning messages:
Because Replit runs in the browser, there’s a specific method required to allow processes you’re running to be accessible in the Webview or via an external request. We’ve updated our documentation to explain how ports work in Replit, and to detail some new features related to port management.
In the Webview, you can change which external port is rendered by selecting the domain and choosing a different port.
Use the Networking tool to view the status of ports open in your Repl and what external port they’re bound to, and to add or remove configurations.
We’ve added inline command generation in the Shell pane. Hit Cmd/Ctrl+I or select the Generate button on the right side of the prompt to open the text input and ask Replit AI to create the command for you. This feature can help you navigate the Shell if you’re unfamiliar.
If you ever get a result you don’t understand, select the result and ask Replit AI about it from the right-click context menu:
The System Dependencies pane now has search functionality. Search for the package you’d like to use in the search bar at the top of the System Dependencies pane. From there, select the Install button to automatically add the package to your replit.nix file. The package versions listed are even accurate to the Nix channel you’ve set in your .replit file.
Version 3.6.0 has been released (changelog), with two major callouts:
replit.db now dynamically connects (instead of on import replit), which solves issues with the process not exiting cleanly due to an open connection. Call replit.db.close() when shutting down your app to terminate cleanly.
flask >= 2.0.0 instead of flask ^2.0.0, so 3.x releases of Flask can be used with the replit library.
Some Replit users have experienced issues with programs crashing with errors like these:
symbol lookup error: /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libc.so.6: undefined symbol: _dl_audit_symbind_alt, version GLIBC_PRIVATE /nix/store/dg8mpqqykmw9c7l0bgzzb5znkymlbfjw-glibc-2.37-8/lib/libm.so.6: version `GLIBC_2.38' not found (required by /nix/store/8w6mm5q1n7i7cs1933im5vkbgvjlglfn-python3-3.10.13/lib/libpython3.10.so.1.0)
This happened due to a compatibility problem between different versions of glibc (GNU standard C library) caused by using libraries and programs from different Nix channels within the Replit environment. Previously, setting the LD_LIBRARY_PATH environment variable was used to direct the system's library loader to find shared libraries in specified locations. However, this method proved problematic when libraries depended on different versions of glibc, leading to crashes due to version mismatches.
To mitigate this, we introduced the Replit RTLD loader, which utilizes a new environment variable, REPLIT_LD_LIBRARY_PATH. This loader searches for required libraries only after a program's own run path fails to locate them, providing a more refined approach than the broad application of LD_LIBRARY_PATH. This change, plus delivering our software on the latest Nix channel, will help us eliminate those glibc version mismatch problems, so you’ll experience fewer disruptions and more stability while running your applications.
We’ve deployed a new reverse WebSocket proxy service that ensures more reliable connections between you and your Repls. This service minimizes spurious offline Repl instances and refreshes. Internally, it helps Replit developers easily diagnose unexpected connection disruptions.
Last month, we released many new features and improvements designed to boost your productivity, collaboration, and coding experience on Replit. Some of the key highlights include:
New AI Chat features - Collaboration, multi-session chat with persistence, session management, and regeneration.
Flexible credits - $10 of monthly credits for every Replit Core member, to use on any cloud services beyond the existing quota.
First-class pip support - Easily use pip for Python package management.
Explorers: If you want to try new features as soon as they are available, turn on the Explorer role in your Account Settings.
The collaborative and multiplayer features of the Replit IDE are now available in the AI Chat Pane. This means you can observe a collaborator when they are in the AI Chat Pane, as well as see their chat sessions associated with the Repl. You can also ask follow-up questions to the AI responses generated based on your collaborator’s prompts.
Create and manage multiple chat sessions when interacting with Replit AI. Create multiple threads to switch between asking for explanations about files in your codebase, generating code for a new feature, and debugging, all without losing your progress.
You can now toggle between different regenerated AI responses when you switch the AI’s intent or model. Each response given by the AI will be available for your review, and we will pick the correct context to send to our models for follow-up questions and changes.
We’ve enhanced the editing experience for .replit files, making it easier for you to configure your projects by introducing intelligent code completion and documentation within the Workspace, powered by Taplo, an LSP server for TOML files. This update aims to simplify the editing process of .replit files, which are crucial for setting project configurations, including binary placements and code completion. The implementation uses a JSON Schema generated from the existing Go codebase.
Full support for pip and requirements.txt for Python
First-class pip support is now available on Replit, offering an alternative to poetry for Python package management. You can import GitHub repositories that use pip smoothly, as well as switch from poetry to pip by replacing poetry.lock and poetry entries in project.toml with a requirements.txt file in your existing Repls. This release aims to offer additional choices for dependency management during development and deployment, as well as improve the overall Python experience on Replit.
Learn more about this development and future plans on the blog.
We’re introducing usage-based billing and flexible credits to offer developers greater control over their expenses. Replit Core members now receive $10 in flexible credits monthly, applicable across various cloud services. This change, effective January 2024, enhances transparency and allows for continued service beyond plan quotas. An advanced usage dashboard is also available to provide detailed insights into resource consumption, optimizing spend efficiency, especially for those using Autoscale Deployments.
We’ve revamped our infrastructure system by introducing Regional Goval. The transition to a more modular, cluster-based infrastructure increases the reliability and scalability of your work on Replit. This move minimizes downtime and isolates faults more efficiently, ensuring that you experience fewer disruptions. We were also able to complete this migration gradually, without causing any downtime. The new setup enhances system utilization, scalability, and fault tolerance, making the platform more resilient.
Read on about the technical details in the blog post.
Last month, we released many new features and improvements designed to boost your productivity, collaboration, and coding experience on Replit. Some of the key highlights include:
Improved GitHub import form and Git Pane - Better search, authentication, branch selection, and more.
Responsive orientation in the Replit Mobile App - Rotate your Workspace with your device.
Updated Console - New UI, persistent execution history, and metadata.
Automatic system dependencies - Detect and install dependencies for Python packages.
Explorers: If you want to try new features as soon as they are available, turn on the Explorer role in your Account Settings.
The new Console has a redesigned UI and maintains a persistent history of code executions and related metadata. Previously, the console resembled the Shell, and its behavior varied based on the .replit configuration and the Repl’s state. It also cleared after every project run, making it difficult to track past results and debug programs. These changes are aimed at resolving confusion and improving usability.
Each execution in the new console generates a "block" that displays important metadata like the type of run, duration, start time, and status.
This feature helps you keep track of your command history, which is particularly useful during iterative development or when comparing changes across multiple evaluations. Furthermore, the Console integrates with the Package Manager and Debugger, adding more tools at your disposal.
Improved Terminal interactions and virtualized scrolling
We also implemented new interactions around Terminals while maintaining backward compatibility. This includes dynamically adjusting the height of Console blocks based on the output and handling scrolling limitations due to browser constraints using virtualized scrolling. This functionality supports more intuitive and efficient user interaction, especially when dealing with extensive output or full-screen terminal applications like htop or vim.
Stopping a process will halt all its sub-processes. This is particularly useful for managing resources and debugging, as it prevents detached processes from consuming system resources. Each code block runs in its own execution context, offering a level of control and safety that's challenging to achieve in a local IDE environment.
For more information on the new Console, check out the blog post.
We’ve updated the import from GitHub form, repository size limitations, and Git Pane functionality. These changes will make importing, maintaining, and deploying code from GitHub more seamless.
The updated import form now allows for faster and more efficient importing of GitHub repositories into Replit. Enhanced search functionality includes filters for owner and repo names, and direct URL imports are now possible. The new form prioritizes repositories by update status, offers a more intuitive selection process, and allows for previewing repository details before importing, enabling informed decision-making. There is no longer a limit on the size of repositories you can import from GitHub, so long as you are within the storage limits of your Replit account.
Now, you can authenticate with GitHub once, and that's it – no need to repeatedly connect to GitHub for different projects. This sets the stage for more advanced features in the future, like automated deployment on merge.
The Git Pane in the Workspace now has a better UI and functionality. Changes include a more convenient branch selection process, eliminating the previous dashboard view, and integrating a drop-down branch selector directly into the branch view.
A new commit view has been added, allowing developers to view individual commits with their details and diffs, providing a clearer understanding of the project's evolution.
Additionally, the process of initializing a new Git repository has been made more flexible, offering the option to include or exclude all files, and better management of unborn branches.
The Replit Mobile App now has the ability to rotate the app with the orientation of your device, starting from version 2.65.2.
This is huge for optimizing your screen space according to your preference, situation, and device. This update marks a step forward in making mobile devices, like the iPad mini or larger phones such as the Pixel Fold, more versatile tools for coding and development.
We’re making updates to our social features in 2024 that are designed to enhance the experience of sharing and exploring code for developers. The first iteration of the changes rolled out on January 2nd, with more coming soon.
The primary function of cover pages is shifting to code consumption rather than running and viewing program outputs. When you visit a cover page, it will display the project's code or README file in an editor-like environment, making it easier to navigate and understand the code.
Removal of comments and embedded Repls on profiles
Comments will no longer be available on cover pages. Additionally, the embedded Repl component on profile pages is being removed, meaning running or commenting on Repls directly from this section won't be possible. However, in the future, developers will still be able to pin Repls to their profile.
These updates aim to make the development and sharing processes more efficient, straightforward, and focused on the code. For more information, read the full blog post.
Previously, installing complex Python packages involved manually scouring README files for specific apt install or brew install commands to include necessary system-level dependencies, a process often fraught with error messages and missing dependencies. Now, Replit automates this process. When a package is added via the Packages tool or through package guessing, Replit's Universal Package Manager automatically detects and installs the needed system dependencies. Leveraging the Nixpkgs package repository, Replit has pre-populated system dependencies for over 700 Python libraries. To see an example of this in action, check out the blog post.
JavaScript and TypeScript Repls now use Prettier as a formatter by default. Previously, they were using TypeScript’s built-in formatter. If you have a Prettier configuration set in your Repl, it will also be used.
We are building a generalized formatter system to expand on this work and enable popular formatters for other languages in the future, like Black and Ruff formatters for Python.
There is a new TypeScript template that uses nixmodules and tsc for the compile config in your .replit file. This means that we’ll be able to keep node, package managers, LSP, and prettier up to date.
The TypeScript Language Server installed by nixmodules will now prefer the TypeScript package from your project, making code completions more accurate.
SSH connections will no longer close after changes to nix configurations or .replit files. The directory will also no longer switch to the root of the Repl after such changes.
Starting January 8th, 2024, we're shifting to a usage-based billing model. No immediate action is needed – you will receive an email explaining the changes and how they might impact you next week.
Here’s a breakdown of the changes:
Credit card payments: Additional resource usage outside of plans will be payable with your credit card in USD instead of Cycles.
Discontinuation of Cycles Power Ups: If you previously used Cycles Power Ups such as Replit AI, Private Repls, Additional Storage, or Additional Outbound Data Transfer, they will now only be available through Replit Core.
Changes to Boosts and Auto Refill: Boosts and Auto Refill will be discontinued. You can now increase your development power as needed in the Workspace, paying for the extra usage only.