Difference between revisions of "Glitch"

From Archiveteam
Jump to navigation Jump to search
(enumeration results)
m (Use private parameter to indicate restricted collection)
 
(31 intermediate revisions by 8 users not shown)
Line 2: Line 2:
| title = Glitch
| title = Glitch
| URL = https://glitch.com/
| URL = https://glitch.com/
| logo = Glitch logo.png
| image = Glitch-screenshot.png
| project_status = {{closing}}
| project_status = {{closing}}
| archiving_status = {{notsavedyet}}
| archiving_status = {{saved}} <small>(public project metadata)</small><br>{{partial}} <small>(repo assets e.g. source code)</small><ref>[[Talk:Glitch#CDN archiving and current project status|CDN archiving and current project status - Talk:Glitch]]</ref><br>{{partial}} <small>(non-repo assets e.g. CDN)<ref>[[Talk:Glitch#CDN archiving and current project status|CDN archiving and current project status - Talk:Glitch]]</ref></small>
| archiving_type = [[DPoS]]
| tracker = [https://tracker.archiveteam.org/glitch/ glitch]
| source = [https://github.com/ArchiveTeam/glitch-grab glitch-grab], [https://github.com/ArchiveTeam/glitch-items glitch-items]
| irc = ditched
| data = {{IA id|archiveteam_glitch|private=1}}
| topic = Archiving G̳̮͇͑̃͗l̤̣̠̀̂̔ȋ̝̼͖͘͡t̡̜̲̑̐̃c̣͙̑͋͘͜h̲̯̟̐̈̚ | https://wiki.archiveteam.org/index.php/Glitch
}}
}}


Glitch is a website where users can create web applications (projects) and share them.
'''Glitch''' is a website where users can create web applications (projects) and share them. It supports static, as well as dynamic websites though 11ty or NodeJS - the latter are only online for limited amounts of time every month.


It supports static, as well as dynamic websites though 11ty or NodeJS - the latter are only online for limited amounts of time every month.
== Shutdown ==
 
The shutdown was announced on {{datetime|2025-05-22}}, where project hosting and user profiles will be inaccessible to the public on {{datetime|2025-07-08}}. Users are still able to export their projects through the end of 2025.<ref>{{URL|https://blog.glitch.com/post/changes-are-coming-to-glitch/}}</ref>
 
<blockquote>
 
'''Important Changes are Coming to Glitch'''
 
[...]
 
We’ve got an important update for the Glitch community today: We’ll be ending web hosting for your apps on Glitch. In this message, we’ll explain what that means for you and for the Glitch community.
 
On July 8, 2025 Glitch project hosting and user profiles will be shut down. Your Glitch dashboard will remain available as usual through the end of 2025, with access to download all of your code for your projects, as well as a new feature to set up redirects for your project subdomains so your URLs keep working.
 
There are a couple of reasons we’re making this decision right now. It takes a lot of time and money to run millions of apps, and that has greatly increased as the platform has gotten older and bad actors try to misuse the platform. But while that is true, there’s also another motivation that made it clear that it’s time for a bigger change.
 
[...]
 
Right now, our number one job is to take care of everyone in the Glitch community during this big change. Here’s what we’re doing first:
 
* Your Glitch dashboard will be available through the end of 2025 with code downloads for all of your projects
* In the coming days, your dashboard will get a new feature to set up redirects for your project subdomains, so all your links will keep working. Make sure your redirects are set up before December 31, 2025. (We’ll make sure they stay active at least through the end of 2026.)
* We’re working on preparing a guide to help you export your project, create git repos, and migrate your projects to new platforms. And we expect to update the guide as our friends at other platforms make it easy to move your projects over to their sites. Until then, please join us in the Community Forum to ask questions and get tips on migrating.
* We’ll turn off new Glitch Pro subscriptions effective immediately. All current Glitch Pro subscriptions will be honored until July 8, and we’ll issue refunds for unused time. We’ll send a separate email to Glitch Pro subscribers with additional details on your membership by June 2, 2025.
 
[...]
 
</blockquote>


== Discovery ==
== Discovery ==


Users and projects can be enumerated using the API. Request these two URLs and continuously fetch the <code>nextPage</code> field of the resulting JSON. Python scripts for that are available[https://transfer.archivete.am/inline/BRe4l/api.glitch.com-v1-users-enumerator.py] [https://transfer.archivete.am/inline/BRe4l/api.glitch.com-v1-users-enumerator.py]. Enumeration API call lists are available[https://transfer.archivete.am/inline/OksKL/api.glitch.com-v1-projects.txt] [https://transfer.archivete.am/inline/NE16F/api.glitch.com-v1-users.txt] and run in ArchiveBot.
Users and projects can be enumerated using the API. Request these two URLs and continuously fetch the <code>nextPage</code> field of the resulting JSON. Python scripts for that are available[https://transfer.archivete.am/inline/BRe4l/api.glitch.com-v1-users-enumerator.py] [https://transfer.archivete.am/inline/BRe4l/api.glitch.com-v1-users-enumerator.py]. Enumeration API call lists are available[https://transfer.archivete.am/inline/OksKL/api.glitch.com-v1-projects.txt] [https://transfer.archivete.am/inline/NE16F/api.glitch.com-v1-users.txt] and were run in ArchiveBot. Enumerated user data available for [https://transfer.archivete.am/FDH6j/users_avatarThumbnailUrl.zst avatarThumbnailUrl] [https://transfer.archivete.am/uM4ms/users_avatarUrl.zst avatarUrl] [https://transfer.archivete.am/JNzFc/users_login.zst login] and projects [https://transfer.archivete.am/3oGSC/projects_domain.zst domain] [https://transfer.archivete.am/lZdaX/projects_gitRepoUrl gitRepoUrl] [https://transfer.archivete.am/nR321/projects_redirectUrl redirectUrl]. ArchiveBot <code>!ao <</code> jobs were run for the <code>gitRepoUrl</code> and <code>redirectUrls</code> lists.


<pre>
<pre>
Line 20: Line 55:


== Archiving ==
== Archiving ==
Basic information about a user or project are on https://glitch.com/@user and https://glitch.com/~project, which use JavaScript, but might be archivable by hard-coding the behaviour of the page JS in a DPoS script.


Each project corresponds to a subdomain of ''glitch.me'', thus until July 8th 2025 it'll be possible to access projects via their subdomains.
Projects can be made private with Glitch Pro. They're still accessible on their subdomain, but getting metadata and source code is disabled.


Each project is also a git repository which can usually be cloned by as anonymous users with the URL format <code><nowiki>https://api.glitch.com/git/PROJECT-SLUG</nowiki></code>, replacing PROJECT-SLUG with the actual project slug, e.g. <code>PROJECT-SLUG.glitch.me</code> or <code>glitch.com/~PROJECT-SLUG</code>. However, the git repositories do not include any uploaded "assets", nor databases or other data (typically stored under .data/), nor the .env file, among other things. However, the git repository may not be accessible for projects using outdated versions of Node, or suspended users. The files (except <code>.glitch-assets</code>) in the git repos can also be accessed at https://project.glitch.me/ URLs too.
=== Project web servers ===
Each project has its web server ran on a subdomain of ''glitch.me'', thus until July 8th 2025 it'll be possible to access the user-facing part there. JavaScript usage in these projects varies heavily. Some projects may be on [https://blog.glitch.com/post/use-your-own-domain/ custom domains]. After the deadline, accounts will still be able to download their projects "through the end of 2025".


Projects, including their git histories, usually include a <code>.glitch-assets</code> file, which is a [https://jsonlines.org/ JSONL] file enumerating assets uploaded to the Assets tab of that project (or a project's ancestor). The <code>url</code> and <code>thumbnail</code> properties of each object link to the CDN servers, which are usually on the domains ''cdn.glitch.global'', ''cdn.glitch.me'' or ''cdn.hyperdev.com'' for older projects. Only the latest version of the file needs processing, because file deletions just add a new item for the <code>uuid</code> with <code>deleted</code> set to <code>true</code>, and the old URL is still present and still works. The CDN assets [https://support.glitch.com/t/what-is-the-deadline-for-downloading-glitch-cdn-assets/75899 will be available for longer].
Glitch is able to host both static and server-side projects. Server-side ones can "fall asleep" (be stopped) after five minutes of inactivity if its owner doesn't pay for Glitch Pro. When accessing a sleeping project's web server, Glitch will attempt to "wake up" (restart) the project. If your user agent contains <code>Mozilla</code> and your Accept header accepts <code>text/html</code>, Glitch will serve you a placeholder page telling you this, which should not be archived. If one of those headers are missing, Glitch instead waits for the app and lets it handle the response, as if it was just lagging. An example of a sleeping app can be seen at [https://deliberately-broken-app.glitch.me/ deliberately-broken-app.glitch.me] (which will never wake up).


After the deadline, accounts will still be able to download their projects "through the end of 2025".
=== Project git repositories ===
For public projects, their git repository can usually be cloned anonymously with the URL format <code><nowiki>https://api.glitch.com/git/PROJECT-SLUG</nowiki></code>, replacing PROJECT-SLUG with the actual project slug, e.g. <code>PROJECT-SLUG.glitch.me</code> or <code>glitch.com/~PROJECT-SLUG</code>. However, the git repository may not be accessible for projects using outdated versions of Node, or suspended users.


The https://glitch.com/@user and https://glitch.com/~project URLs use JavaScript, but might be archivable by hard-coding the behaviour of the page JS in a DPoS script. The https://project.glitch.me/ subdomains will mostly but not always use JavaScript, with individual domain JS behaviours being different, so not easily archivable.
The git repositories do not include any uploaded "assets", nor databases or other data (typically stored under .data/), nor the .env file, among other things. They usually include a <code>.glitch-assets</code> file, which is a [https://jsonlines.org/ JSONL] file enumerating assets uploaded to the Assets tab of that project (or a project's ancestor). The <code>url</code> and <code>thumbnail</code> properties of each object link to the CDN servers, which are usually on the domains ''cdn.glitch.global'', ''cdn.glitch.me'' or ''cdn.hyperdev.com'' for older projects. Only the latest version of the file needs processing, because file deletions just add a new item for the <code>uuid</code> with <code>deleted</code> set to <code>true</code>, and the old URL is still present and still works. The CDN assets [https://support.glitch.com/t/what-is-the-deadline-for-downloading-glitch-cdn-assets/75899 will be available for longer].


Some projects may be on [https://blog.glitch.com/post/use-your-own-domain/ custom domains].
=== Project types ===
The project type can be checked in advance to try to avoid scraping too many server-side apps at a time, but it can be incorrect. To check it, access <code><nowiki>https://api.glitch.com/projects/PROJECT-SLUG</nowiki></code>. <code>appType</code> will be static if the project was using static hosting.


== Archives ==
Many projects are made using templates, which will have the correct type. Glitch is also able to re-evaluate the type (in case a server-side app goes static or vice versa) but it's done when the project's web server is accessed.
 
As an example of an edge case, when creating a project by importing from your own Git repository, its metadata starts as a static project even if it has server-related files. Glitch will notice these on re-evaluation and spin up a server for the app.
 
== Other Archives ==


* [https://gitlab.softwareheritage.org/swh/infra/sysadm-environment/-/issues/5667 Software Heritage effort]
* [https://gitlab.softwareheritage.org/swh/infra/sysadm-environment/-/issues/5667 Software Heritage effort]
== Mascot ==
[[File:Glitch_archiving_mascot.png|800px|thumb|none]]
== References ==
<references/>

Latest revision as of 11:34, 17 September 2025

Glitch is a website where users can create web applications (projects) and share them. It supports static, as well as dynamic websites though 11ty or NodeJS - the latter are only online for limited amounts of time every month.

Shutdown

The shutdown was announced on 2025-05-22, where project hosting and user profiles will be inaccessible to the public on 2025-07-08. Users are still able to export their projects through the end of 2025.[3]

Important Changes are Coming to Glitch

[...]

We’ve got an important update for the Glitch community today: We’ll be ending web hosting for your apps on Glitch. In this message, we’ll explain what that means for you and for the Glitch community.

On July 8, 2025 Glitch project hosting and user profiles will be shut down. Your Glitch dashboard will remain available as usual through the end of 2025, with access to download all of your code for your projects, as well as a new feature to set up redirects for your project subdomains so your URLs keep working.

There are a couple of reasons we’re making this decision right now. It takes a lot of time and money to run millions of apps, and that has greatly increased as the platform has gotten older and bad actors try to misuse the platform. But while that is true, there’s also another motivation that made it clear that it’s time for a bigger change.

[...]

Right now, our number one job is to take care of everyone in the Glitch community during this big change. Here’s what we’re doing first:

  • Your Glitch dashboard will be available through the end of 2025 with code downloads for all of your projects
  • In the coming days, your dashboard will get a new feature to set up redirects for your project subdomains, so all your links will keep working. Make sure your redirects are set up before December 31, 2025. (We’ll make sure they stay active at least through the end of 2026.)
  • We’re working on preparing a guide to help you export your project, create git repos, and migrate your projects to new platforms. And we expect to update the guide as our friends at other platforms make it easy to move your projects over to their sites. Until then, please join us in the Community Forum to ask questions and get tips on migrating.
  • We’ll turn off new Glitch Pro subscriptions effective immediately. All current Glitch Pro subscriptions will be honored until July 8, and we’ll issue refunds for unused time. We’ll send a separate email to Glitch Pro subscribers with additional details on your membership by June 2, 2025.

[...]

Discovery

Users and projects can be enumerated using the API. Request these two URLs and continuously fetch the nextPage field of the resulting JSON. Python scripts for that are available[1] [2]. Enumeration API call lists are available[3] [4] and were run in ArchiveBot. Enumerated user data available for avatarThumbnailUrl avatarUrl login and projects domain gitRepoUrl redirectUrl. ArchiveBot !ao < jobs were run for the gitRepoUrl and redirectUrls lists.

https://api.glitch.com/v1/users/?limit=1000
https://api.glitch.com/v1/projects/?limit=1000

Archiving

Basic information about a user or project are on https://glitch.com/@user and https://glitch.com/~project, which use JavaScript, but might be archivable by hard-coding the behaviour of the page JS in a DPoS script.

Projects can be made private with Glitch Pro. They're still accessible on their subdomain, but getting metadata and source code is disabled.

Project web servers

Each project has its web server ran on a subdomain of glitch.me, thus until July 8th 2025 it'll be possible to access the user-facing part there. JavaScript usage in these projects varies heavily. Some projects may be on custom domains. After the deadline, accounts will still be able to download their projects "through the end of 2025".

Glitch is able to host both static and server-side projects. Server-side ones can "fall asleep" (be stopped) after five minutes of inactivity if its owner doesn't pay for Glitch Pro. When accessing a sleeping project's web server, Glitch will attempt to "wake up" (restart) the project. If your user agent contains Mozilla and your Accept header accepts text/html, Glitch will serve you a placeholder page telling you this, which should not be archived. If one of those headers are missing, Glitch instead waits for the app and lets it handle the response, as if it was just lagging. An example of a sleeping app can be seen at deliberately-broken-app.glitch.me (which will never wake up).

Project git repositories

For public projects, their git repository can usually be cloned anonymously with the URL format https://api.glitch.com/git/PROJECT-SLUG, replacing PROJECT-SLUG with the actual project slug, e.g. PROJECT-SLUG.glitch.me or glitch.com/~PROJECT-SLUG. However, the git repository may not be accessible for projects using outdated versions of Node, or suspended users.

The git repositories do not include any uploaded "assets", nor databases or other data (typically stored under .data/), nor the .env file, among other things. They usually include a .glitch-assets file, which is a JSONL file enumerating assets uploaded to the Assets tab of that project (or a project's ancestor). The url and thumbnail properties of each object link to the CDN servers, which are usually on the domains cdn.glitch.global, cdn.glitch.me or cdn.hyperdev.com for older projects. Only the latest version of the file needs processing, because file deletions just add a new item for the uuid with deleted set to true, and the old URL is still present and still works. The CDN assets will be available for longer.

Project types

The project type can be checked in advance to try to avoid scraping too many server-side apps at a time, but it can be incorrect. To check it, access https://api.glitch.com/projects/PROJECT-SLUG. appType will be static if the project was using static hosting.

Many projects are made using templates, which will have the correct type. Glitch is also able to re-evaluate the type (in case a server-side app goes static or vice versa) but it's done when the project's web server is accessed.

As an example of an edge case, when creating a project by importing from your own Git repository, its metadata starts as a static project even if it has server-related files. Glitch will notice these on re-evaluation and spin up a server for the app.

Other Archives

Mascot

Glitch archiving mascot.png

References