ayojs / ayojs.tech

ayojs website [Work in Progress]
10 stars 0 forks source link

what should we use to build the website? #3

Open ghost opened 6 years ago

ghost commented 6 years ago

so now that we've finally established a website team, we should discuss how to build the website! here's some suggestions:

if you have any other suggestions, please post them here! take into account things like translations, hosting and beginner-friendliness

ghost commented 6 years ago

/cc @ayojs/website!

scotttrinh commented 6 years ago

I agree that making the website a SPA is overkill at best and a hindrance to getting translation help, for sure. However, we could use react to create reusable components that the markdown content uses, when needed, just not sure how many times we'd need components that aren't already the stock HTML components. I don't think anything on the nodejs site is really interactive, right?

nbarnes commented 6 years ago

Jekyll is ruby-based. I'm professionally focused on Rails, so that's bully for me, but as ayo is a JS project, we might be better off not bringing in a language that many of the contributors might not know / be interested in.

react seems like way overkill.

metalsmith's i18n plugins all haven't been updated in two years or so, but maybe they're just stable? Dunno.

scotttrinh commented 6 years ago

@NoahDragon

I'd say this is appropriate place to put your vote in for Hexo. 😉

Kataract commented 6 years ago

Hugo may also be a good static site alternative, though I personally have not set up their i18n functionality and Go templates may be a problem point depending on everyone's experience.

Would it be worth it to spend some time figuring out things we need the site to do before choosing a base? That may help inform this decision a bit.

eubenesa commented 6 years ago

Would love to put my vote in for Gatsby, but I am down to give any help. :)

scotttrinh commented 6 years ago

From an outside-of-the-team's perspective, the two things I care about are accessibility and ease of contributing. I can't imagine the site needs any bells or whistles, just marketing, getting help/resources, and docs. Perhaps I'm overlooking a need or opportunity to improve on what node's website provides? Our focus on the humans of the project might highlight some interesting places where we might expand on what node is currently doing.

mcataford commented 6 years ago

We should probably first put together a rough outline of the content we want to feature and choose tools and processes around that.

I absolutely agree with @scotttrinh re:accessibility & ease-of-contributing. Depending on the kind of content and features we project implementing, we can probably pick the lightest / easiest to maintain structure and have a kick-ass site that shines by how easily people can use it to get to what they need. :)

z0al commented 6 years ago

I would vote for Gatsby too!

what type of contents do we have other than docs?

joshclow commented 6 years ago

I am most familiar with React, so selfishly that's where my vote would go, but if the consensus is that React introduces unnecessary barriers to contributing, then I'm absolutely willing to turn to other options.

scotttrinh commented 6 years ago

RE: React

To be clear, I am not saying we should "not choose React", as I don't see React being a framework for implementing a website, but a framework for writing composable components. The bulk of the website will likely be text and not interactive components, so I'm not sure how/where React would fit in.

Having said that, I would be happy if we reached for React (or Vue or Polymer or...) when/if some complex and/or interactive components were needed. Ultimately, using the existing Node website as a frame of reference, I don't see any reason to include a UI framework whatsoever, but I'm hoping someone might point out some ways in which we'd want to differ from what Node provides.

joshclow commented 6 years ago

Well, looking at Gatsby based on comments above, the flexibility in content management there does seem pretty attractive. As for things we might do beyond what the Node site does, I don't want to make architectural decisions now that assume later work, but I think there's an opportunity to approach education/inclusion in a way that can reach visual learners and other folks not well supported by a wall-of-text model. But that's a very hand-wavy pie-in-the-sky thing that I've given exactly as much thought to as it took to write the post.

ghost commented 6 years ago

i'm imagining a very simple website (even simpler than the node.js website), more akin to the rust website, which is precisely why i don't see the need to include something as unintentionally confusing as react, and i'd prefer to stick to simple html or markdown pages and templates when possible. the docs are separately compiled anyways, and will likely not be directly hosted from this website (i think? @Qard)

scotttrinh commented 6 years ago

The nice thing about React is it is very lightweight and easy to integrate later, so I wouldn't worry too much about knowing ahead of time if we need it or not.

scotttrinh commented 6 years ago

Thanks @pup for bringing up the Rust website, I forgot how straightforward and simple it is, and would be a good amount of information to target for a first swing, I would think.

abritinthebay commented 6 years ago

Yeah, React is pretty trivial and easy - if our code is decoupled and modular it's super easy to add React at any point. Gatsby does look interesting.

I think the key is more info architecture at this point anyhow. The tech should come from the design and architecture of what/how we want to present it/goals.

dentemple commented 6 years ago

I work with React on a regular basis, but I do agree that it may not always be approachable for newcomers.

How about Vue.js? Some thoughts on its strength:

1) For small websites, it's very easy to follow what's going on under the hood

2) You can write component-based code, while still giving folks from an Angular background a way to ease themselves in

3) It's not tied to a major corporation

I only have a little bit of experience with Vue.js, though, so there may be issues here I'm not aware of.

Still, if we do stick with React, I definitely +1 Gatsby!

scotttrinh commented 6 years ago

I think my hesitation to pick a framework like React (or Vue or Angular or choo) is around the fact that we don't yet need any interaction, which is what I feel like these frameworks are meant to help with. For static sites with nary a form or user input in sight and no database/backend to speak of, I'm just not sure what we need a framework for.

dentemple commented 6 years ago

True. We definitely need to establish our priorities first.

From what I see, two major requirements for the website should be:

(As a stealth third requirement, I definitely agree that we should stick to the Javascript universe, so definitely no Ruby on Rails, as fun as it is to use.)

Thoughts on what else should have an impact on the decision here?

scotttrinh commented 6 years ago

I think the first requirement assumes we agree on what "the content" is, which I think we probably do, but is worth being explicit about it. I believe we've talked about the documentation being (technically) separate from the website, so with that in mind, it seems we want to supply the following information:

Anyone disagree with any of these, or have any additional information that would be generally helpful outside of documentation?

nbarnes commented 6 years ago

I'm with @scotttrinh about needing a framework; i.e. we don't. It seems to me that ayojs' site is very nearly a perfect use-case for a static site generator like metalsmith or jekyll. I just looked at hexo and it seems nice as well.

abritinthebay commented 6 years ago

Well Gatsby is also a static site generator but yeah, we're getting ahead of ourselves:

What's the purpose, what's the user story? What's the intent, what's the general design idea of how to communicate?

Until we answer those the tech stack is not relevant.

stefee commented 6 years ago

I posted in discord so I'll post here too.

I think the best way of representing Ayo as a human-focused and inclusive project is by focusing on accessibility and clarity in the website design. My personal reference for accessible, clean design is the Tachyons website: http://tachyons.io.

I agree with those saying an app framework would be overkill here.

NoahDragon commented 6 years ago

I personally would recommend the Hexo https://hexo.io/ , it is a static website generator.

Not only because I'm the maintainer of Hexo, but also it provides the functionality we need, like i18n. It could be easily expanded and customized by plugins, themes, and scripts. Even the Vuejs official website is built upon it. https://vuejs.org/

Moreover, it is written in Javascript, and integrated with the Nodejs ecosystem, which I believe it could also easy to transfer to Ayo.js.

The Hexo website repo also demonstrates how it organizes the documentation and blogs. https://github.com/hexojs/site/tree/master/source/api https://github.com/hexojs/site/tree/master/source/_posts

More samples could be found on https://github.com/vuejs/vuejs.org/tree/master/src/v2

Other website generators are also awesome, I just feel it may be easy for us to create a website quickly using Hexo.

stefee commented 6 years ago

I don't think anyone has posted this yet - there's a really nice comparison of static site gens here: https://www.staticgen.com/

I really like the look of Hexo! Unfortunately I don't think my opinion is of much value here; I'm relatively new to static site gens.

moe-dizzle commented 6 years ago

Do you all think it will be a good idea to come up with a list of must-have features first, such as i18 and accessibility? Then we can create the design and wireframes of the website. We can use that information to guide on what build/framework to use.

abritinthebay commented 6 years ago

That would absolutely be my preference.

are commented 6 years ago

There has been an effort on our Discord to use Loomio to reach a consensus and gather all possibilities, but it seems that not everyone from our team is present and/or active on Discord. Therefore I want to invite you all to our team on Loomio (as the other teams already considered using it).

We already finished one preliminary poll about what possible SSGs we would want to use, but it's definitely inconclusive, because we need all of you folks to take a part in it! Anyways - the results were strongly in favour of Hexo (6 votes), second (and the last) place had Metalsmith (3 votes).

We can also resolve other issues on Loomio, choose maintainers of the Loomio group and overally use it as an addition to Github - of course the main discussion should remain here, but for any decision-making process we can help ourselves with Loomio.

z0al commented 6 years ago

@are1000 Thanks, I had no idea about Loomio