fastify / website Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://fastify.dev/
License: MIT License
Home Page: https://fastify.dev/
License: MIT License
Hi, I believe the GitHub Pages settings need to be changed to serve from a custom subdomain. A possible option is something like fastify-website-next.github.io
. It also needs to select the gh-pages branch. Here's the interface I see on a personal repo, but it's possible it could be different for organisation repos.
We must support all the old website links from https://fastify.io/
After merging #44 it seems that:
https://www.fastify.io/docs/latest/
works as expectedhttps://www.fastify.io/docs/master/
is being redirected to latest
. We may thing if we want the canary
link as docusaurus does: https://docusaurus.io/docs/next
. I think the support the redirect from /master
is good, I would drop this wording as fastify did in its main
branchhttps://www.fastify.io/docs/v4.11.x/
supportedhttps://www.fastify.io/docs/v3.4.x/
et similar, should be redirected to v3.29.x
https://www.fastify.io/docs/v2.9.x/
et similar, should be redirected to v2.15.x
https://www.fastify.io/docs/v1.3.x/
et similar, should be redirected to v1.14.x
๐ก An interesting thing to implement: AFAIK Docusaurus does not support one documentation version with multiple labels (eg: create one /versioned_docs/v2.x
that creates the routes /v2.15.x
, /2.14.x
etc...). It would be awesome to build a plugin that does this trick
Following on from fastify/fastify#3492, I think we have everything we need to import documentation into this project.
For v3 (current):
main
branch needs to be cloned into /docs/ locally.docs-reorg
branch instead (but can easily switch main
once it is merged).For v2:
2.x
branch needs to be cloned into /versioned_docs/version-v2/ locally.For v1:
1.x
branch needs to be cloned into /versioned_docs/version-v1/ locally.@luisorbaiceta is this something you are able to work on? Thanks!
latest
Docusaurus version: 2.2.0
18.13.0
Linux
20.04
when running npm run build:webuild
, the error bellow is returned
[ERROR] Error: Missing generated file: static/generated/plugins.json. Run the "npm run build:website" once.
at /home/edna/Desktop/bahati/Workspace/fastify/website-next/docusaurus.config.utils.js:27:13
at Array.forEach (<anonymous>)
at Object.checkGeneratedData (/home/edna/Desktop/bahati/Workspace/fastify/website-next/docusaurus.config.utils.js:24:18)
at Object.<anonymous> (/home/edna/Desktop/bahati/Workspace/fastify/website-next/docusaurus.config.js:14:3)
at Module._compile (node:internal/modules/cjs/loader:1218:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
at Module.load (node:internal/modules/cjs/loader:1081:32)
at Module._load (node:internal/modules/cjs/loader:922:12)
at Module.require (node:internal/modules/cjs/loader:1105:19)
at module.exports (/home/edna/Desktop/bahati/Workspace/fastify/website-next/node_modules/import-fresh/index.js:32:59)
seems not to complain about this on commenting out 'static/generated/plugins.json',
in https://github.com/fastify/website-next/blob/7bec1484ecf970aab3b9ba591869a48536e120ed/docusaurus.config.utils.js#L21
run npm run build:website
No response
We need the search button integrated into the website
๐ As an exploration, we could try Lyra first: https://github.com/LyraSearch/plugin-docusaurus
It is a local and in-memory search, so it does not require any additional step or external system ๐
If blocking issues are found on the first step, the current online website has the algolia plugin to enable the "search" button.
This plugin is already integrated into docusaurus. It requires some config only and keys (need to generate a key pair cc @lmammino ).
4.24.x
No response
18.16.0
Windows
10
I don't know if this is a design flaw or a bug but I noticed the below overlapping home link on the navbar when I tried to change to a tab view. It still shows on the nav menu list when you click the hamburger menu icon.
Browser: chrome
Change to mobile or tab view on your chrome browser.
The menu item should only be visible on the nav menu list on smaller screens. It should not overlap on both the nav menu list and the navbar.
I propose we include a page about useful / important talks, but also books, courses and useful resources.
As far as talks go, I'd recommend we add:
They provide some commentary on why certain things are set up in this way, and I think they provide an integral part of the Fastify experience.
Most of those are from me with one from @delvedor. There are probably more that are worthwhile to include in this list.
On the live website: https://fastify.github.io/website-next/
The homepage organization section is broken:
We must use the <Link
component and solve the image issue as well (not sure how)
We have to investigate the GDPR conformity.
the fastify logo should be added to the landing page header section in place where we are having text Fastify
as is at https://www.fastify.io/
No response
No response
We need to implement the Ecosystem page:
https://www.fastify.io/ecosystem/
Name
and Description
columnsNote that downloading the https://github.com/fastify/fastify/blob/main/docs/Guides/Ecosystem.md file is not in the scope of this task. You can assume that you have the markdown file in one directory. So, starting from there, you should be able to write a script that generates a JSON file that the new ecosystem page can render.
Hi,
If you are reading this, you want to contribute to the new Fastify website: thank you!
This message explains all you need to know to join.
If you want to contribute to this project, you can:
This repository follows the Fastify organization CONTRIBUTING and GOVERNANCE statements.
As a reminder: before working on an issue, be sure that:
To submit valuable changes to the project, you need to fork this repository and submit your code through a Pull Request. Here the step-by-step guides:
The target of this project is to redo the Fastify website: https://www.fastify.io/
Migrating to a new tech stack and new processes let the Fastify community contribute more easily to the documentation to let the Fastify web framework grow even more.
This journey was started by @Xhale1 and @luisorbaiceta, and all the credits till commit 3341dd3 and the work to sponsor this new project goes to them.
The new website will be implemented with Docusaurus. It means that this project includes these topics:
I'm not an expert on these topics. I'm just a "documentation reader" and a "pragmatic problem solver", so do not expect a TODO-LIST during a PR review, but a collaborative discussion ๐ค
We can't just delete the old website and create a new one ๐ We must abide by these constraints:
fastify/fastify
(not on this repository)<=3
TRACKING PROJECT: https://github.com/orgs/fastify/projects/7
These features are not in the scope of this specific project - but we will try to implement the required features while keeping in mind the following list:
Getting started
introductionhttps://medium.com/@fastifyjs
to this new websiteFor sure, we are going to do them in a follow-up project at least ๐ฏ
PS: if the issue you are looking at has an empty description, it means that I'm still writing down the requirements, be patient and, meanwhile, fork the repository and start playing with it.. does it work in your local environment?
I propose to replace the text by the logo of the site in question.
It makes it more "beautiful" (this is subjective). And around it makes the footer smaller so lighter on the brain.
We can use Font Awesome
Have we considered combining the Fastify documentation site with the main Fastify package as a monorepo?
Currently the Fastify repo contains the documentation source, while this repo contains the website source code. This (in my opinion) adds a considerable amount of overhead and difficulty for new contributors. For example, requiring the gh
utility to be installed and setup struck me as unusual for a documentation site. As the original creator of this repo it took me longer than I'd expect to get to a point where I could preview the site in my browser (admittedly I'm sure that can improve without a monorepo).
I think it would be great if the markdown for the documentation, the website source code, and the core fastify code could all be located together. It could make getting started, previewing changes, and managing PR's more streamlined.
I'm certain I'm missing something here which would present a challenge. Very curious to hear thoughts.
I setup a simple (incomplete) example in one of my repos over at https://github.com/hello-pangea/color-picker. It's built using turborepo.
Hi, @mcollina it seems like you are going to rewrite the website. If so I can help you with do that. Let me know the tech stack you'd like me to use and the setup.
Based on Fastify#2071, it seems that the overall agreement is the lack of structure of our documentation, rather than the precision or amount of documentation itself.
If we focus first on structuring our documentation in a way that is easier to filter, extend and manage; adding and improving documentation content/details should be an easier task for us and for any contributor of the project.
The structure that seems to be the most suggested is the Divio#Documentation Framework.
On a higher-level the structure seems nice, easier to filter, manage and extend.
We already have a set of sections in mind that we would like to converge, like Plugins
, Guides
, and References
.
We can come with a mixed result based on the structure suggested an our needs.
Following the documentation and our current setup; I was imagine something similar to this:
Getting Started
At the organisations page, the link to Fastify website repository points to current website's repository, i think this should be pointing to this repository
Visit https://fastify.github.io/website-next/organisations
No response
The previous website is automatically regenerated every time there is a new release.
We should set the same thing up for this one too.
https://github.com/fastify/fastify/blob/main/.github/workflows/website.yml.
This is what we use in Platformatic: https://github.com/platformatic/platformatic/blob/main/.github/workflows/update-docs.yml.
We must work to improve the dev experience before working on this website takes days to run and build.
The issues to solve are:
npm start
command. Note that it exists the onlyIncludeVersions
for this purposeplugins.json
, benchmarks.json
etc..) on the fly because the website will not start without these mandatories filesDo you have stats for the site fastify.dev? I was in the same spot for my GitHub pages site so I built LibreCounter, a free, open site stats project that collects stats without cookies or tracking of any kind.
Only aggregates are stored for each site, page and day combination, so GDPR compliant (no personal data stored like IP addresses or user agents). Also no cookie warning necessary. Stats are public and available for everyone.
If you are interested I can implement a pull request, it's quite simple to integrate. No need to display the LibreCounter logo on the web pages, just a silent "pixel" of old. Since I have the site running anyway it's no additional cost for me, and also you can inspect the code (or even self-host) if needed.
You can also display an old fashioned counter or we can work out a custom solution if you want.
Let me know!
I am guessing you don't have stats for the site fastify.dev, at least I don't know how to get them from GitHub pages. It can be useful to know how many visits you get every day, what pages are the most visited, where the visitors come from and so on. But having a cookie warning is a bummer, and also having to deal with the GDPR and the multiple legislations around the world. LibreCounter should provide an acceptable compromise with no tracking and no cookies.
LibreCounter uses Fastify by the way, so thanks for that! ๐
Stats would be visible at librecounter.org/fastify.dev/show:
Throughout the website, if you navigate your browser directly to a webpage (e.g. refresh the page or click a google result), it will redirect to having a trailing slash. However, if you navigate to any page using the website's internal navigation, it will not have a trailing slash. The docs pages include relative links which only work if the current page does not have a trailing slash. So if you follow a google result to a docs page and then click a relative link, it leads to a "Page Not Found".
The link works
Implement the contribute page:
https://www.fastify.io/contribute/
Good first issues
What would I do?
I would look for an existing Docusaurus plugin or I would build it (instead of integrating custom logic here)
Note that the actual code from the old website should be easily migrated: https://github.com/fastify/website/blob/master/src/website/content/js/contribute.js
Current repo is missing a License file. Is this intentional or can it be added?
Hi @Eomm, I am opening this issue because i need help with addressing a force-push that just happened.
I was trying to open a pull request to address an issue #34 through #35. My fork showed there was a merge conflict so as i tried to solve it by following the leads given to undo 1 commit. Which i thought would undo my commit but instead triggered a force-push from f1ba71b to 4e3f356 .
Kindly help.
We need to implement the index page you can see at:
** img2
we must add a simple set of lining rules.
I see already a mismatch between filenames and quotes or double quotes
Linux
20.04
Visit the https://fastify.github.io/website-next/ and click the Check out our benchmarks
button
Expect it to navigate to https://fastify.github.io/website-next/benchmarks
Thoughts on switching from yarn to npm for this repo? It would match the original fastify site and because npm as the default option in nodejs it might offer a slightly lower barrier of entry.
No response
No response
whenever fastify/fastify#4938 will be merged, our script to generate the plugin page will break:
https://github.com/fastify/website/blob/main/scripts/build-plugin-list.js
This script needs to be updated accordingly.
Our CI pipeline is broken.
@Eomm
Could you have a look please?
Here is the current Core Web Vitals metrics and I think there is space for improvements
With Fastify you raised the bar of the Node.js ecosystem for performance, usability, and much more.
I would like to help you to reach the same level on your website.
I have studied the repository and my proposal is to use Qwik to not provide JS at startup with a clear benefit for the CWV and usability for the end users.
I can work on this and create a new website to show you.
No response
As done per v3
documentation in #48 we should manage the v2
documentation:
v2.<latest minor>.x
v3
)The https://fastify.dev/benchmarks page lacks the last date we updated the data.
It would be cool to add it
Hello,
In this Docs link
I believe that the // remove additional properties
comment is kind of unclear, meaning: when I read it I assumed that by default any additional properties would get removed automatically, which isn't the case.
Additional properties get removed only when their JSON Schema
has additionalProperties: false
, see this issue.
My suggestions is to simply change the comment to mention this small but important detail.
There's other places where removeAdditional
is mentioned like here.
I think it is important to know where we are, what has been done is obvious (great work btw!), but what needs to be done to have this ready. A good way would be to open issues for major things so any contributor can give us a hand and knows where to start.
Migrate the benchmarks web page:
https://www.fastify.io/benchmarks/
Sometimes the bench repo doesn't work as shown in the image
Here the broken result file
In this case, we should ignore the results and go back in the file history to get the last valid one. Here a valid file example
This should work to get it:
GET /repos/{owner}/{repo}/commits?path={file_path}
GET /repos/{owner}/{repo}/git/commits/{commit_sha}
GET /repos/{owner}/{repo}/git/blobs/{blob_sha}
After the website has its pages, we should check the SEO suggestions form docusaurus https://docusaurus.io/docs/seo and update the pages' metadata.
This includes:
We should try to stick as much as possible to the current website design and iterate from there. As tempting as using a new tech stack and implementing new features can be, we have to think about the end user that is already familiar with the current website. Let's not forget that the goal of the site should just be update the stack and make it more maintainable in the long term
No response
No response
I was looking to turn on the hotkey:
Would you happen to know how?
(in case we may open a new dedicated issue)
Originally posted by @Eomm in #102 (comment)
If you try to search for "listen" in the website and click on the second result (server.listen()
), the page that will load would have the anchor set, so it would not scroll down.
cc @ShogunPanda
Right now the workflow https://github.com/fastify/website-next/blob/main/.github/workflows/build_and_deploy.yml deploy to GH Pages the main
code
By using a Github action and we should deploy a preview of the website into a temporary Github Pages environment, this would ease the test and feedback
I saw this app that should do the trick: https://github.com/marketplace/actions/deploy-pr-preview but I know it is doable without installing and app (and face security and access assessment). Here an example: npm/statusboard#615
I propose to implement typescript in the project.
It's better for security.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.