luarocks / luarocks-site

LuaRocks website and module host
http://luarocks.org
175 stars 38 forks source link

Proposal: rewrite luarocks-site with more widely adopted web technologies and explore UI/UX improvements #208

Open NTBBloodbath opened 5 days ago

NTBBloodbath commented 5 days ago

Hi there, I know this can feel a bit off especially due to all the time spent doing this, but I would like to propose rewriting the luarocks site using more widely adopted web technologies instead of the MoonScript lapis framework.

Benefits of rewriting the site

Mobile homepage view demo ![Homepage in mobile](https://github.com/luarocks/luarocks-site/assets/36456999/312aa195-9fe6-467f-9c6b-2bbdbb38753d).
npm.js mobile view demo for comparison ![NPM package mobile view](https://github.com/luarocks/luarocks-site/assets/36456999/42db9dc6-85a1-4a76-9776-27f1c944f601) > `npmjs.com` random package view page --- ![LuaRocks package mobile view](https://github.com/luarocks/luarocks-site/assets/36456999/49a7620c-0d5c-4288-9702-8b02bae21af3) > `luarocks.org` random package view page

Some additional features that I would like to add later


I believe that these changes would make the luarocks.org site more user-friendly, easier to maintain, and more discoverable. I would love to hear your thoughts on this proposal and explore the possibilities together. Also please note that this is just a suggestion, and I'm open to other ideas :p

Dich0tomy commented 5 days ago

Does the lapis framework allow for mixing with other technologies? I assume you want to rewrite it incrementally, but lapis would have to support that, otherwise you'd be in a constant loop of catching up to the existing implementation and new one.

leafo commented 4 days ago

All of the things you want can be implemented in the current codebase. It seems like your proposition is that someone does a lot of upfront work on the off-chance that someone else can then do additional work to add these feature requests? Or are you offering that you would do these things if the technology wasn't so unfamiliar to you?

In any case, I may be biased, but I think rewriting is not a good idea. The existing codebase is relatively well organized and straight forward, if you want to contribute I suggest taking a look at working with what's there. Keep in mind to rewrite you're going to have to go through and understand everything that's there anyway, at that point you might as well just make the changes you want instead of starting over.

NTBBloodbath commented 3 days ago

I would be willing to work on it during the free time I currently have, although you make a very reasonable point about doing a rewrite so perhaps the gain won't be as noticeable in the long term. For the same reason that I haven't seen the codebase much due to my ignorance about MoonScript, could you instruct me a little about it? Here are some points that interest me the most (I might be missing something, it's a bit late here):


Side question: no problem experimenting with TailwindCSS integration? I think that would reduce dependencies by removing Sass and also reducing overhead maintenance a bit. Since it is configurable I can retain exactly the same color palette if desired without changes, in case that's a concern.


Without anything else for now, grateful for the response and apologies if I asked anything that may seem obvious, I'm not familiar with using Lua/MoonScript for web development yet 😅. Thanks in advance for the guidance!

leafo commented 3 days ago

@NTBBloodbath I think before I invest a bunch of time explaining things, I think it might be worth it for you to try setting up the development environment via the instructions on the README. Also note that we have dockerfiles for testing/development in the repo if you want to go that direction. The site has only been tested to run on Linux. If you get stuck you can ask questions.

You can also join the MoonScript discord and ask questions there, there are a few people who have experience with Lapis (including myself) that can help point you in the right direction. https://discord.com/invite/Y75ZXrD