In today's update, we've added a feature that will help with managing how community members share their work in order to preserve the accurate "state", or version of a file being shared: Snapshots!
What Are Snapshots?
A snapshot is a version of your project that is frozen in time. With snapshots, you control the file version you share with others even as you continue to make further edits to your project file. Each file that is shared or embedded on a webpage portfolio for example, will maintain the accurate state of the data being shared at that time. In this way, snapshots will allow creators to better manage the versions of their shared files as they make incremental changes and evolve their projects and methods used.
How Do I Create a Snapshot?
Snapshots are now the main way of sharing your projects and submitting solutions to challenges across our code editing apps. As of this update, whenever you click the Share button in the app you are using, a snapshot of your project will be automatically created. In Python Mini for example, you can simply click on either Share URL or Embed to Website:

When you click on one of them (Share URL in this case):

You will see that you are given a unique URL which refers to this specific version of your code or project at the time of sharing. Simply click Copy URL to Clipboard, then you can continue to share and/or submit your project to challenges as normal.
Multiple Versions of Your Project
Every time you share a new version of your code or project, the older prior shared URL links will still persist and be active in displaying the older versions of your code or project. Here's an example of two snapshots of the same project:
Version 1:
Version 2:
Even though Version 2 was created later, the link to Version 1 still works. With this update, there is no more need to clutter your account with multiple copies of the same project so you can share versions of it. Now each time a file is shared, creators are provided with version control automatically.
Source Visibility Control
Source visibility is controlled by creators in the form choices included in the share URL modal (shown above). Now, a single version of your code or project can have both a closed source URL link and an open source URL link:
Closed Source:
Open Source:
** A Note on Embedded Projects:
The embed modal looks like this image below, and a text notice has been added at the bottom:

Since project embeds are also saved as snapshot versions, creators have control over which versions of their code or project files they choose to embed on websites such as their own domain (OYO Website app), and/or if they wish to update files previously embedded on those domains. This notice serves as a reminder in case files require updating. This new update allows creators to also display incremental files intentionally, such as showing the progression of a project over time.
"View Permission" Setting Removed
All project files are private to creators, unless they choose to share them. As a result of this update, our previous file sharing method requiring creators to set the "view permissions" explicitly has been removed. Since project file snapshots are only used for sharing purposes, they are all intentionally public in the sense that anyone accessing the URL being shared should be able to view your project as it exists at the time the file is shared by its creator.
What About All The Old Links I've Already Shared?
For all project files created using our apps (listed at the end of this update) that were marked as "public" originally by creators in the past, these project files have had snapshots automatically generated for them, so that all of the old links and embedded files that creators have will still work. However, take note that these links will not automatically update to the latest version of the project's code anymore. Version control is now under the sole control of project file creators.
If you have a page where you keep your project showcases embedded, like an OYO Website domain, you will now have to update these pages with each new version of your code or project that you wish to share as a creator.
What About Discoverable Projects?
Apps that have an explore page (Hatch! and Sprite Editor) have an exception, in that discoverable projects in the explore page still always show the latest version of the project's code.

While discoverable projects show the latest version, the Share and Embed functions in these apps will still use the new snapshot functionality outlined above. Basically, the Discoverable/Explore portion of these apps have not been changed and will continue to function as expected or experienced in past.
Which Apps are Affected?
The snapshot feature has been released for the following apps:
- C# Editor
- C++ Editor
- C Editor
- Go Editor
- Hatch!
- Java Editor
- Lua Editor
- Python Mini
- Python3 Editor
- Python3 IDE
- Ruby Editor
- Rust Editor
- Sprite Editor
- Swift Editor
- UNO Editor
- Web Editor