Skip to content

Conversation

Zabuzard
Copy link
Member

Motivation

We want to have a simple website to represent our community. Mostly for SEO purposes, it should simply link to our Discord and thats it.

Design

Decided to go with a simple Spring Boot Web application that serves static content, nothing fancy - as simple as it could be.

The logviewer project showed how to create UI with pure Java, but its mostly way too complex for most people here to maintain. It is more reasonable to go with a simple pure html/css/js site and maybe sprinkle a bit of spring-magic over it, if really needed.

Website

The site itself is, as of now, just a simple Hello World example. The goal for now is to setup the CI/CD and the VPS correctly, so that the website is actually up and running on the server.

website

Once that is done, we can make the website itself pretty. After that we can also get hands on a top level domain.

@Zabuzard Zabuzard added enhancement New feature or request priority: normal labels Aug 24, 2022
@Zabuzard Zabuzard self-assigned this Aug 24, 2022
@Zabuzard Zabuzard requested review from a team as code owners August 24, 2022 13:22
@marko-radosavljevic
Copy link
Contributor

You think it's a good decision to couple our website with the bot? They are clearly two distinct entities, and have nothing in common.

Because when I see the big boy Spring, my immediate association is more serious website than a basic static webpage that would redirect to our discord. 😄

If we can foresee a more serious website down the line, it's probably wise to start the project in a new repo, with its own build file and docker container for deployment. That way, we can deploy quick sponsorship and event information, without doing any bot deployments. Also, we can deploy to a separate VPS, if the need arises in the future. Build times would be faster on both projects. We would have separate wiki documentation for our spring website, how to build, how to test, technologies, backend/frontend..

If you think it will just be a minimal static page, it's perfectly fine to be in the tjbot repo. If we need something more out of it, it should be trivial to extract it to a new project. In that case, we wouldn't need spring, just some html + css goodness?

@marko-radosavljevic
Copy link
Contributor

marko-radosavljevic commented Aug 24, 2022

Also, if all we need is static website, and we might want to have write-ups about events, sponsorships, java things, or any content whatsoever. And we find html+css cumbersome for that use-case, we can use static website generators.

We can use jekyll or hugo that will generate static website from markdown, lots of templates, themes, link checking features, etc. Automates the whole thing for us, and looks pretty.

On the other hand, spring project is a nice learning opportunity for our members, and much more powerful, we can have contact form that will send as an email and stuff like that.

@Zabuzard
Copy link
Member Author

Zabuzard commented Aug 25, 2022

@marko-radosavljevic Good points. Here is my thinking:

  1. Separate project

Absolutely agree. But I felt like setting up the whole infrastructure is not trivial and I wanted a fast solution. Like, you need the whole watchtower setup, jib, secrets, ... create proper docker stuff on the VPS and whatever. I was lazy and just wanted to reuse the existing infrastructure 🤷 So maybe we go with this solution for today and then make it proper at a later point?

  1. Website complexity

I dont think we should have an actual real website presence. The websites sole purpose is to get indexed high on search engines to lurk people into the Discord server. Similar to what javadiscord.net did, they are the first entry on google for "java discord" just because of their website that has proper SEO.

So a minimal website that looks proper and has a join Discord button is all we need (for today, and likely also for the future).

  1. Technology

I wanted something that is trivial to maintain and most people are familiar with vanilla HTML/CSS/JS. So I thought we just write a simplistic HTML5 page with some modern CSS theme and call it a day.

I consider Vaadin/Logviewer a failure in terms of its original goals - it is not really maintainable by us, even though it is pure Java. It is complex and nobody here (except Krankkk) knows the framework.

Generating something outside of markdown also sounds good, but I really dont want to make this setup complex. So I thought Ill just add the bare minimum to serve static a static HTML/CSS/JS - which Spring gives us trivially in 5 lines of code.

The advantage of Spring would be that it gives us (Java) flexibility in case we actually do want to do more in the future - but I doubt we want.


All in all, I would like to have a website up and running the next days and get the domain issue resolved within a week as well (seems Doppey is okay with paying). In particular also to mitigate the issue with our broken vanity URL.

Doing this whole website thing "proper" will likely take us a month or more if no motiviated skilled moderators are available to do the work on the VPS (last time it was mainly Istannen doing all of that). I just dont want to wait so long.

So my vote would be: You are right in all what you said, but lets maybe just push this regardless and do it proper later, whenever we feel like.
(I know that the legacy of today will often stay the legacy for tomorrow as well, but I dont think this is actually harmful in the current state - its just not ideal)

@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@marko-radosavljevic
Copy link
Contributor

Alright, that seems fair to me. Since gradle project is pretty modular, extracting to a new repo if the need arises shouldn't be too difficult.

Agree on the tech stack and the complexity of the project. A nice static page that redirects to discord is all we need for now. I can see an information board, with current events and sponsors, and maybe a contact form down the line (or just mailto link), and that's about it. Should be pretty simple, static, and easy to maintain and update.

Glad we are on the same page about everything. ☺️

@Zabuzard Zabuzard merged commit c63e9c7 into develop Aug 25, 2022
@Zabuzard Zabuzard deleted the feature/website branch August 25, 2022 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: normal

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants