I am sorry if this is "complaining about an extra". If it is, you may ignore it.
Main
Snap is powerful, much more powerful than scratch. In fact, it is exactly as powerful as JS, (can do js and is in js) but all functions other than APIs can be done in snap, usually without too much technical knowledge. Many snap users (about 2/3 I would guess) sometimes make libraries. About 1/2 of those make libraries using JS. About 1/2 of those libraries (made by 1/4 of the people) should have been a snap extension. But they are not. (actual snap extensions not counted)
This is a problem that scratch had. In snap it is probably worse because of JS, but scratch did have a similar problem. The problem is that it is easy to save projects with libraries that are base projects, but hard to save modified projects.
I am suggesting a log in with snap
option that can be used in snap extensions to save projects to the main snap cloud. When setting this up, there should not be any way to share extended projects, so as to avoid confusion about the system. Enabling shared extended projects will probably not be difficult for the server, but it may be a bit of confusion that is too much. In any case, beta testing where most users do not see it is good. The option would allow extended clients to save and load projects from the main snap server. If any client tries to load any project that is not either a project of its type or from base snap, then it will give a warning. If it fails to understand some part of the XML, then it will have an option to cancel load or to try to understand what there is. If there is an error, then it will also dosplay a warning before saving.
Pros:
- things that should be extensions are (at least more often)
- less copies of a library (instead of every project using the library having a copy, the extension is hosted on
gh pages
etc.)
Cons:
- higher server traffic in not the main purpose of snap
- possible programmatic use (maybe fix by reviewing extensions first)
Sharing
Pros:
- full use of snap with extensions
Cons:
- worse server traffic error
- no advantage to running your own server (possible extreme load from people not making custom servers anymore)