January 4, 2024
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 toreplit.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.
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.
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.
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.
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.