Skip to main content

May 2024 Updates

· 4 min read
Ornella Altunyan
Developer Advocate

Welcome to the Replit Changelog.

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.

Workspace

Object Storage

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.

Object storage filetree

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.

Improved Deployment logs

We’re launching an improved logs experience for Deployments. Logs now include:

  • Built-in search
  • Log & error highlighting
  • 30-day persistence
  • More filters like date and log type
  • General performance enhancements (faster loads!)

Deployment logs

CPU & RAM monitoring for Deployments

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.

CPU and RAM monitoring

Merge conflict markers

Merge conflicts are now highlighted during merging and rebasing, so you can resolve them quickly, without leaving the editor.

Merge conflict markers

Mobile

Recent Deployments section

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.

Tablet improvements

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.

Download the latest version of the Replit Mobile App in the App Store or Google Play Store.

Developer experience

code path/to/file

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.

Programmatic access to dev URLs

Now, you can get the dev URL for your Repl programmatically using the environment variable REPLIT_DEV_DOMAIN.

Documentation

The following docs have been updated for clarity and to accompany new features:

April 2024 Updates

· 5 min read
Ornella Altunyan
Developer Advocate

Welcome to the Replit Changelog.

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:

Explorers: If you want to try new features as soon as they are available, turn on the Explorer role in your Account Settings.

Workspace

Scheduled Deployments

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.

Replit Teams early access

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.

Replit Teams image

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.

Read more on our blog, and join the waitlist today.

Advanced port configuration

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.

Networking tool

  • 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.

Changing ports in Webview

Read more about ports and the new features on the blog.

Mobile

The latest release of the Replit Mobile App contains new features and improvements, including:

  • Persistent Workspace layout that automatically restores where you left off
  • Shortcuts to recent Deployments are shown on the My Repls page
  • Bug fixes and more

Download the latest version of the Replit Mobile App in the App Store or Google Play Store.

Developer experience

Nix packages saved

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.

Account storage usage with Nix

Documentation

The following docs have been updated for clarity and to accompany new features:

Social highlights

Developer Day

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.

LLMs for Code Repair

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.

General updates

Updates to our Terms of Service

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!

March 2024 Updates

· 5 min read
Ornella Altunyan
Developer Advocate

Welcome to the Replit Changelog.

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.

Workspace

Git improvements

Multiplayer Git in the Shell

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.

Consistent commit usernames

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:

ryantm <email@example.com>

And now it uses your public name like:

Ryan Mulligan <email@example.com>

Username and email config in the Shell

If you connect your GitHub account to Replit from the Account page, you won't see this error message again:

Unable to auto-detect email error

Now, your Git email and name are dynamically set based on the commit author chosen in your Git Pane settings:

Commit author correctly set

Setting the default branch

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.

The final flow

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:

Using Git seamlessly

Ports

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.

Changing ports in Webview

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.

Networking tool

AI Generation in the Shell

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.

Generate shell commands

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:

Explain shell contents

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.

System dependencies search

Developer experience

replit-py

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.

Replit RTLD loader

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.

Infrastructure

More reliable connections to your Repls

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.

Documentation

The following docs have been updated for clarity, with updated screenshots, and to accompany newly released features:

February 2024 Updates

· 4 min read
Ornella Altunyan
Developer Advocate

Welcome to the Replit Changelog.

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.

Workspace

New AI Chat features

Collaboration and multiplayer

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.

Multi-session chat with persistence

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.

Multi-session chat

Session management and chat regeneration

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.

Regenerate responses

Read the full blog post for more information.

Mobile

The latest release of the Replit Mobile App contains several new features and improvements, including:

  • A new usage screen in the Account tab that lets you monitor spending on your Replit Deployments
  • More reliable signup and login processes
  • Suggested characters are now shown in the editor for all languages.

Download the latest version of the Replit Mobile App in the App Store or Google Play Store.

Developer experience

Improved .replit file editing

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.

Read more about these changes on the Replit blog.

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.

New templates

Membership

Flexible credits and usage-based billing

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.

To learn more, check out the blog post or the documentation.

Infrastructure

Regional infrastructure

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.

January 2024 Updates

· 7 min read
Ornella Altunyan
Developer Advocate

Welcome to the Replit Changelog.

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.

Workspace

Hosting

The hosting changes announced in September have now been implemented.

  • Always On has been deprecated in favor of Deployments.
  • repl.co domains have transitioned to replit.dev and will only be accessible when using the editor.

Console

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.

Console blocks and metadata display

Each execution in the new console generates a "block" that displays important metadata like the type of run, duration, start time, and status.

Console blocks

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​​.

Enhanced control and safety

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.

Import from GitHub and Git Pane

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.

New GitHub import form

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.

Streamlined authentication process

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.

Improvements to the Git Pane

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.

Branch selector

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.

Commit view

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.

Initial commit

Read more about these changes on the Replit blog.

Mobile

Responsive orientation

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.

For more information, check out the blog post.

Community

Changes to social features

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.

Reimagined cover pages

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.

New cover page

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.

Developer experience

System dependencies

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.

Updates to formatting

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.

Templates

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

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.

Membership

Moving to usage-based billing

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.

New usage page