nesbox / TIC-80

TIC-80 is a fantasy computer for making, playing and sharing tiny games.
https://tic80.com
MIT License
4.98k stars 479 forks source link

[website] Creation of a new website by the community #2416

Open Skeptim opened 9 months ago

Skeptim commented 9 months ago

Hi, The official tic80.com website is an important part of TIC-80, allowing to share carts easily and to interact with the community. However, it is very limited and many improvements are suggested by the community. In parallel to that, nesbox is the only dev with access to the website. Spending a limited amount of time on it (and that's ok, no pressure), while there are many web devs in the community that would like to help as can be seen in #1659.

Therefore, instead of waiting for the source of the website to be opened (which is no longer on the "to do" list), I propose to the community to develop an other website in parallel that we could merge to the official tic80.com website once it's fully functional.

@nesbox Would that be possible, would you agree to merge/replace tic80.com by an other website developed by the community? I am not a web dev and do not know if that's difficult to do, as it should be compatible with surf etc.

If this idea is approved I can then try to find a team of volunteers.

Skeptim commented 9 months ago

I just add that it's dangerous for TIC-80 long term future to have a closed official website depend on one person.

MineRobber9000 commented 9 months ago

I'm not sure creating this issue was a good idea; I'm going to use this space to make a case for a new website that isn't weirdly slanted against nesbox.

The issue at hand is that there are some problems with the TIC-80 website:

That's... a lot of problems. 21, if I'm counting correctly.

Now, it has been stated previously that nesbox is not a web developer, and thus, it takes time for these problems to be fixed/features to be added. A suggestion was made to open source the TIC-80 website, allowing web developers in the TIC-80 community to take over developing the site (#1659). One developer even offered their help, and noted that others in the community had similarly offered to help. nesbox responded, saying that he was going to open-source the website, but that he needed to "prepare the sources" (probably clean up some spaghetti code), and asking people to please wait.

That was 2 years ago. The website is still not open-sourced.

Now, I'm sure he's a busy person; Skeptim has pointed out that he seems to only have public GitHub activity on weekends, which seems to indicate that he only has time to work on TIC-80 on weekends. Given the limited amount of time he has to work on TIC-80, it would make sense that the website code cleanup fell to the wayside in favor of more active development on TIC-80 itself.

However, it's been two years. Unless the code currently running tic80.com is a veritable Flying Spaghetti Monster, you'd imagine a code cleanup would be finished by now.

Thus, the argument for a new website: either nesbox is too busy to clean up the tic80.com code to a degree where it would be presentable as an open-source project, or the tic80.com code is so flawed we'd be better off starting over.

I'm going to go the opposite direction of @TimotheeGreg; I don't necessarily think it's "dangerous" to have the tic80.com source code be closed-source (while a bus factor of 1 is certainly something we'd like to avoid, open-sourcing the website isn't magically going to fix that). My argument is more along the lines that the TIC-80 website is missing a lot of features that other fantasy consoles with websites have, and if nesbox doesn't have the know-how or the skills to add those features, making the website open-source and allowing the community to develop it would help take that burden off of his shoulders.

Skeptim commented 9 months ago

I totally agree with this message! Thanks to make it more clear. It wasn't against nesbox at all, but rather to make his life easier. That's what I try to do with my contributions in general. It was also to work hand-in-hand with him. Sorry if my message wasn't clear. My last comment was probably clumsy.

nesbox commented 9 months ago

To be honest, I still can’t open the source code of the website in its current state, I'm not an expert in web development and I’m afraid that the source code can be used by attackers for hacking, etc.

nesbox commented 9 months ago

Also, I'm not against creating an alternative site, I'm not sure if I will replace it in the future with tic80.com, but I can put links to it on the main page, and it can also be added to "surf" if it will support a simple API.

MineRobber9000 commented 9 months ago

To be honest, I still can’t open the source code of the website in its current state, I'm not an expert in web development and I’m afraid that the source code can be used by attackers for hacking, etc.

That's a perfectly valid fear to have, though I'm not too sure there's really that much of an attack surface on tic80.com besides DDoS attacks (that don't need code access) or spam attacks (that, again, don't really need code access). If the code was open-source, perhaps the collective effort of the community could take care of bugs you hadn't even considered.

Also, I'm not against creating an alternative site, I'm not sure if I will replace it in the future with tic80.com, but I can put links to it on the main page, and it can also be added to "surf" if it will support a simple API.

I guess, if we're going the "alternate site" route, it'd be a good idea to abstract the magic fs functions that currently attach to tic80.com so new sites could be added (it'd be really cool if it would be possible for TIC-80 users to decide which sites they could use surf to access without needing to rebuild TIC, with tic80.com as the default option for new users).

Skeptim commented 9 months ago

Ok, cool, thanks for the answer.

It's cool to have one website with all carts, but we can go the "alternate site" route if it's easier, it's fine by me.

To be honest, I still can’t open the source code of the website in its current state, I'm not an expert in web development and I’m afraid that the source code can be used by attackers for hacking, etc.

Very naive question : Would it be possible and would it lighten your workload to share the code with a few trusted volunteers with web development expertise?

nesbox commented 9 months ago

Very naive question : Would it be possible and would it lighten your workload to share the code with a few trusted volunteers with web development expertise?

I don't see much difference between showing the code to a few people or showing the code to everyone. I think I should open the code one day, I don't see any other option.

Skeptim commented 9 months ago

Ok, thanks

atesin commented 9 months ago

Very naive question : Would it be possible and would it lighten your workload to share the code with a few trusted volunteers with web development expertise?

I don't see much difference between showing the code to a few people or showing the code to everyone. I think I should open the code one day, I don't see any other option.

maybe the whole "tic80 website code" is not necessary, only just the basic database structure, so based on that volunteers could write a new entire and enhanced (and more secure) tic80 website, better than existing one

i mean for example, if the website uses sql, the "create table" sentences with comments, or a little dump like "mysqldump limit 2" or something, as example

... or create and publish a little api to abstract and interact with db (javascript, ajax, or whatever), but i think is more effort and will be the same, since the api also will have to have wirte access functions too

we have to be jealous with our databases, the website could be taken down, but if the database is compromised is very dangerous, because if the website alone is hacked, it can be reconstructed from te db, but if the db is modified we are lost, because of that my advice is always be jealous with the database, and MAKE HISTORICAL BACKUPS often, one daily at least

so my vote is for share jealously your DATABASE ACCESS, more than the website code itself, with a group of trusted volunteer developers (and how the surf command works, to get improved also!)

MypkaMax commented 9 months ago

My idea for the new website is to allow users to delete their uploads and comments, as well as to be able to simply upload an image for their profile icon and even change palettes for their profile picture. The way icon editing is handled within the website is clunky, too, so it could use refining.

MatterNoise commented 9 months ago

Creating a fan site scares me a little, because a trusted member may be hacked and make malicious changes to the website, unless the changes are reviewed by other members.

msx80 commented 5 months ago

I'd love to see a second website for tic80. It would definitely help the community, i think. Since nesbox is ok and even offered to link it in surf, i'm all for it. Maybe i could help a bit.

Skeptim commented 5 months ago

@MineRobber9000 I think you were working on this, right? What is the status? Do you need help?

MineRobber9000 commented 5 months ago

I've been busy with schoolwork (and my laptop is presently in the repair shop) but I hope to get back to this soon. The current version of tic80srv can take carts (currently just .tic files) and serve them in a surf-compatible format, but it's missing moderation features and the tagging system I wanted to implement.

runemoennike commented 3 months ago

Very naive question : Would it be possible and would it lighten your workload to share the code with a few trusted volunteers with web development expertise?

I don't see much difference between showing the code to a few people or showing the code to everyone. I think I should open the code one day, I don't see any other option.

I have become intestered in tic-80 for the purpose of teaching my kids to program and thus would like to see the community stay strong. Are you interested in me doing a security audit of the codebase before open sourcing it?