@info-creaticode
(I’ve written alot here for this suggestion, so even if you guys don’t implement this suggestion, I want you guys to at least add a donate button to your site so that people can give money to you guys without needing a subscription)
Hypothetically, what bad could possibly arise from allowing people to download projects to play offline? If the concern is about the code being copied/stolen, then you could just obfuscate/minify it on your backend before sending out the file. Besides, anyone dedicated enough could probably reverse engineer the requests made from Creaticode.com (it’s been done before) and scrape any resources they need to make an offline CreatiCode project runner. It’d be more beneficial to do this if you don’t want anyone to break your TOS which disallows reverse engineering the code of the website or finding ways to hack the website, as hackers and script kiddies (like me, but im more ethical) would have no need to do that other than out of curiosity.
When making the change to allow people to run projects offline, some features can of course be watered-down or disabled, like Google Sheets as that requires using CreatiCode’s backend to send authenticated HTTP requests to Google, and others like Multiplayer blocks. But it would also be a really good oppourtunity to add features like WebSockets blocks, more advanced HTTP request sending blocks, blocks to read/write info from the OS (like the build number or filesystem), allowing custom extensions, etc. That way, more advanced users that still prefer block coding over regular coding could do a lot more stuff. And if they wanted Google Sheets then they could just pay for their own API key then plug it into any new special blocks you make for these new accomodations.
These new blocks/block categories im suggesting might not be suitable for current CreatiCode, as they might be able to crash the browser intentionally or even do bad things with more freedoms, and some may not be suitable for the browser, like interacting with the OS, but they would be suitable for a hypothetical new project playground that’s basically the exact same as the current one, but with new blocks and the ability to save as a .html or .exe/apple/linux (using Electron maybe, and could interact with the OS in ways the browser can’t). This would be so it can’t be shared/posted publicly like most projects are, so it’d be more private where only you can run the projects you make.
This has many pros, like making CreatiCode a programming language that could actually do anything, as anything that it couldn’t do could just be handled by extensions or using online APIs/services (ex: perhaps databases, as one can’t store so much data on their own device). This could also have more value in teaching children more advanced programming topics or life lessons, maybe even making math easier to learn. Ive seen many people find math easier to learn when explained in programming terms, especially algebra. This would also make it possible to distribute games that you make using CreatiCode on platforms like GitHub and itch.io and maybe even profit off of them.
I think that to do this, it would make sense first to allow projects to be downloaded as .html’s for offline use. Then in the future, making a dedicated editor or project setting: (like “Are you sure you’d like advanced mode? This disables project sharing and allows for making games downloadable and good for offline use. This option is permanent. The following extensions will be enabled: …”) would be a good idea. Later on, it might even be possible to offer downloading projects that are formatted for like the App Store. This would give CreatiCode a massive increase in users, since a lot of people want to do ambitious things like “create an app for the App Store” or “make a 3D game”, and when they try to actually get into the programming, they might struggle, then would turn to alternatives like “App Makers”. CreatiCode offering its service as partially that or that as a feature would be really neat and give more users.