HTTPArchive / almanac.httparchive.org

HTTP Archive's annual "State of the Web" report made by the web community
https://almanac.httparchive.org
Apache License 2.0
609 stars 168 forks source link

Include Nuxt.js and Docusaurus in the 2020 Jamstack chapter #1736

Closed rviscomi closed 3 years ago

rviscomi commented 3 years ago

Readers are pointing out that Nuxt.js should have been included in the Jamstack chapter.

Is it true that it belongs in the chapter? If so let's rerun the analysis and update the chapter's interpretation. Let's also look into opening a PR to add it to the SSG category in Wappalyzer.

tunetheweb commented 3 years ago

Unassigned myself for now to be clear on responsibilities here.

I want the content team, as Jamstack experts (which I am not) to decide what ones are missing (Docusaurus was raised too). Since we need to rerun, let's use this as an opportunity to consider all missing Jamstacks rather than do them one at a time.

After that is decided, let's get the queries changed, the extracts rerun, and the wording changed in a PR.

After all that is done, I'm happy to get involved with reviewing PRs, doing any image exports, and whatever I can do to help get this change live. And of course always available for questions in the meantime.

Will continue to monitor this issue (I monitor all issues so don't need to be assigned for that).

rviscomi commented 3 years ago

Sorry! From the Twitter thread it had looked like you were involved in rerunning some of the analysis. Are those queries available anywhere for @denar90?

tunetheweb commented 3 years ago

Yeah that was the danger of me being helpful 😀

I reran just one of the queries by adding an OR app = "Nuxt.js" line:

#standardSQL
# SSG adoptions and top SSGs YoY
SELECT
  _TABLE_SUFFIX AS client,
  2020 AS year,
    app AS ssg,
  COUNT(0) AS freq,
  total,
  COUNT(0) / total AS pct
FROM
  `httparchive.technologies.2020_08_01_*`
JOIN (
  SELECT
    _TABLE_SUFFIX,
    COUNT(0) AS total
  FROM
    `httparchive.summary_pages.2020_08_01_*`
  GROUP BY
    _TABLE_SUFFIX)
USING
  (_TABLE_SUFFIX)
WHERE
  LOWER(category) = "static site generator" OR
  app = "Next.js" OR
  app = 'Nuxt.js'
GROUP BY
  client,
  total,
  ssg
UNION ALL
SELECT
  _TABLE_SUFFIX AS client,
  2019 AS year,
    app AS ssg,
  COUNT(0) AS freq,
  total,
  COUNT(0) / total AS pct
FROM
  `httparchive.technologies.2019_07_01_*`
JOIN (
  SELECT
    _TABLE_SUFFIX,
    COUNT(0) AS total
  FROM
    `httparchive.summary_pages.2019_07_01_*`
  GROUP BY
    _TABLE_SUFFIX)
USING
  (_TABLE_SUFFIX)
WHERE
  LOWER(category) = "static site generator" OR
  app = "Next.js" OR
  app = "Nuxt.js"
GROUP BY
  client,
  total,
    ssg
ORDER BY
  year DESC,
  pct DESC

As I say I think we need to see what Jamstacks we wanna include and then rerun ALL the queries. Above was a test but certainly seems to show we have Nuxt.js data.

lex111 commented 3 years ago

It would be great to add Docusaurus usage stats as SSG in this chapter. Moreover, the information on this SSG has now been fixed in the Wappalyzer data. It is now officially considered as SSG. https://www.wappalyzer.com/technologies/static-site-generator/docusaurus/

tunetheweb commented 3 years ago

I've run the following SQL to list all apps in JavaScript frameworks or Documentation tools categories but where the app is not in Static site generator category.

SELECT
  category,
  app,
  count(DISTINCT url) AS sites
FROM
  `httparchive.technologies.2020_08_01_*`
WHERE
  category IN ('JavaScript frameworks', 'Documentation tools') AND
  app NOT IN (
    SELECT
      app
    FROM
      `httparchive.technologies.2020_08_01_*`
    WHERE
      category = 'Static site generator'
)
GROUP BY
  category,
  app
ORDER BY
  sites desc

The results pivoted to list by app name are:

app Documentation tools JavaScript frameworks
    2
MooTools edition ver. 1.0   1
Adobe RoboHelp 44  
AlloyUI   7,709
Alpine.js   1,060
AMP   64,513
Angular   31,743
AngularJS   107,526
Ant Design   4,218
Apigee 25  
Aurelia   696
Backbone.js   114,238
BEM   1,386
Catberry.js   85
Docusaurus 473  
Doxygen 39  
ef.js   45
Element UI   12,243
Elm   48
Ember.js   17,314
Enyo   20
Essential JS 2   86
ExtJS   5,100
GitBook 252  
GSAP   323,309
Handlebar 3.0.1   1
Handlebars   159,924
Hogan.js   9,147
InfernoJS   21
jComponent   18
Knockout.j 2.1.0beta   2
Knockout.j 3.4.1   5
Knockout.js   27,760
Marionette.js   13,178
Meteor   2,860
MkDocs 303  
Moon   33
MooTool 1.4.5   1
MooTools   121,510
Mustache   111,580
Nuxt.js   12,805
OpenUI5   143
Phaser   238
Polymer   1,676
Prototype   92,842
React   333,291
ReDoc 40  
RequireJS   217,418
Reveal.js   678
RightJS   4,208
Riot   1,912
RxJS   14,932
Sencha Touch   81
Socket.io   24,211
SolidPixels 89  
Sphinx 2,169  
Strapdown.js   3
styled-components   239
Svelte   754
TiddlyWiki 6  
Transifex   177
Twitter Flight   181
Vue.js   156,900
Webix   67
Wink   6,316
YUI Doc 946  
Zone.js   33,779

Are any of them Jamstacks we want to include with the rerun for Nuxt.js and Docusaurus? Or just those two?

rviscomi commented 3 years ago

@ahmadawais @denar90 there are a couple of comments on the chapter that are asking for clarification about Nuxt.js. Could you give us an update on how you'd like to proceed with this feedback? Since we have the data and it would make a significant different on the results, it seems like a good idea to rerun the queries and update the chapter to include it. At the very least I think the chapter needs a disclaimer that it excluded Nuxt and other possible Jamstacks because of a categorization error. Adding the "ASAP" label to this since it's gathering feedback/criticism.

ahmadawais commented 3 years ago

@rviscomi my understanding is that Nuxt only recently added the static site exports and just like Next they are not distinguishable. I had no problem getting them includes but they were missed in the data somehow. It's the end of the year, both @denar90 and me had significant time commitments so we couldn't update anything quickly. It's all open source and I did ask anyone pointing this out to reach out and help while we are able to find time.

I'm hoping to take a look at this as soon as I can and as soon as we have the updated data, that I believe @denar90 is working on. Bear with us.

As far as the disclaimer, it's already in there, we couldn't calculate/measure any frameworks that are indistinguishable and only focused on the of one that had significant impact. Nuxt will soon have the data in the content and I'll send in a PR for content.

rviscomi commented 3 years ago

Thanks @ahmadawais!

rviscomi commented 3 years ago

@ahmadawais @denar90 am I correct that the remaining action items to fix this are:

I do see Nuxt included in some of the UX figures, though not in the interpretation.

Has a call been made on whether documentation generators are Jamstacks?

denar90 commented 3 years ago

I think we have queries in place, only thing we need to clarify is documentation generators. I tend to agree with comment from @remotesynth about that.

lex111 commented 3 years ago

Hmm, if consider VuePress, which is actually also a doc generator, then Docusaurus should also be included in the analysis. It's strange not to do this since Docusaurus is pretty much the same as VuePress, but built on the React stack instead of Vue.

image

I would not make such a segregation at all, because for example Octopress and Hexo are intended for generating blogs, and it turns out that we cover blog generators, but refuse to consider documentation generators? So it is very weird to me.

tunetheweb commented 3 years ago

From my comment here: https://github.com/HTTPArchive/almanac.httparchive.org/pull/1812#issuecomment-749148511

To be honest, based on my analysis in #1736 (comment) I’m not sure it’s worth arguing over. None of the documentation tools will even register compared to other Jamstack usage. So either leave them all out or include them but all but don’t think it’ll make much difference either way to be honest.

I don’t think the percentage will change much one way or another. And we typically list the top-5 or so rather than full list, so they won’t appear in the stats nor in the chapter commentary anyway.

Then again might be useful to include, so if the queries are reused in future years and these stats do change then we’ll see that. But I doubt they will change significantly.

Either way I think progressing this issue (to include Nuxt) or closing it (to say it was based on what it was based on and the Authors are happy with that) is more important than the documentation generators issue.

@ahmadawais as chapter lead, can you want to make a call on this?

lex111 commented 3 years ago

Either way I think progressing this issue (to include Nuxt) or closing it (to say it was based on what it was based on and the Authors are happy with that) is more important than the documentation generators issue.

Of course, I agree, but just wanted to clarify this point. Because currently such a "inequity" (considered VuePress without Docusaurus, although these tools similar by purpose) is not very clear to me.