diff --git a/docusaurus.config.js b/docusaurus.config.js index 20075df5..3c4ce755 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -65,10 +65,6 @@ const config = { srcDark: "img/fastify-logo-white.png", }, items: [ - { - type: "docsVersionDropdown", - position: "left", - }, { type: "doc", docId: "index", @@ -88,6 +84,10 @@ const config = { label: "Help", position: "left", }, + { + type: "docsVersionDropdown", + position: "right", + }, { href: "https://github.com/fastify/fastify", label: "GitHub", diff --git a/package-lock.json b/package-lock.json index c6adc16c..a64d7f56 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "prism-react-renderer": "^1.2.1", "react": "^17.0.2", "react-dom": "^17.0.2", + "react-github-btn": "^1.2.1", "url-loader": "^4.1.1" }, "devDependencies": { @@ -6141,6 +6142,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/github-buttons": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/github-buttons/-/github-buttons-2.20.1.tgz", + "integrity": "sha512-UQpZJP7uVtbjy9vXuIMktmtoH9REy0V50iQnFQ56cyOqzDE8e/9WGedTMD8qVwp593Kyn+EKo2e4IKshoXBeZQ==" + }, "node_modules/github-slugger": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", @@ -9809,6 +9815,14 @@ "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" }, + "node_modules/react-github-btn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/react-github-btn/-/react-github-btn-1.2.1.tgz", + "integrity": "sha512-/gXD01mHAOhW0xYuNJFDn08OGjaMXOjcg6GCKVPdHvQcWzswH4aT85DLDAAJ6Zhw/71veSIH4Kx1BTBfy69SsA==", + "dependencies": { + "github-buttons": "^2.8.0" + } + }, "node_modules/react-helmet": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", @@ -17455,6 +17469,11 @@ "get-intrinsic": "^1.1.1" } }, + "github-buttons": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/github-buttons/-/github-buttons-2.20.1.tgz", + "integrity": "sha512-UQpZJP7uVtbjy9vXuIMktmtoH9REy0V50iQnFQ56cyOqzDE8e/9WGedTMD8qVwp593Kyn+EKo2e4IKshoXBeZQ==" + }, "github-slugger": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", @@ -20069,6 +20088,14 @@ "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" }, + "react-github-btn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/react-github-btn/-/react-github-btn-1.2.1.tgz", + "integrity": "sha512-/gXD01mHAOhW0xYuNJFDn08OGjaMXOjcg6GCKVPdHvQcWzswH4aT85DLDAAJ6Zhw/71veSIH4Kx1BTBfy69SsA==", + "requires": { + "github-buttons": "^2.8.0" + } + }, "react-helmet": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", diff --git a/package.json b/package.json index 6af18dff..c9d6784a 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "prism-react-renderer": "^1.2.1", "react": "^17.0.2", "react-dom": "^17.0.2", + "react-github-btn": "^1.2.1", "url-loader": "^4.1.1" }, "devDependencies": { diff --git a/src/css/custom.css b/src/css/custom.css index a29494b3..809d299c 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -26,3 +26,339 @@ html[data-theme="dark"] .docusaurus-highlight-code-line { background-color: rgba(0, 0, 0, 0.3); } + +@import "https://cdn.jsdelivr.net/npm/bulma@0.9.3/css/bulma.min.css"; + +/* #main-navbar { + border-bottom: 1px solid #ccc; +} */ + +main.page-content { + min-height: 80vh; +} + +.github-buttons span + span { + margin-left: 8px; +} + +.hero { + align-items: stretch; + padding: 0; + background: #000 0% 0% repeat; + background-size: 54px; +} + +.hero .subtitle { + color: #fff; + font-weight: bold; + text-shadow: 2px 1px 1px black; +} + +.hero img.logo { + max-width: 320px; +} + +.section.alternate { + background: #fdfdfd; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; +} + +.section .container p { + margin: 0.8em 0; +} + +.section.team .container p { + margin: 0; +} + +.content .hljs { + background: transparent; +} + +.swappable-async-await { + background: #f5f5f5; +} + +.swappable-async-await pre { + background: transparent; +} + +.swappable-async-await input[type="checkbox"] { + position: absolute; + opacity: 0; +} + +.swappable-async-await pre.no-async { + display: none; +} + +.swappable-async-await .swap-button-box { + text-align: right; + padding: 1em 1em 0; +} + +.swappable-async-await .swap-button-box > label { + display: inline-block; + font-family: monospace; + font-size: 0.8em; + cursor: pointer; +} + +.swappable-async-await .toggle-checkbox { + font-size: 24px; + display: inline-block; + vertical-align: top; +} + +.swappable-async-await .toggle-checkbox input[type="checkbox"] { + position: absolute; + opacity: 0; +} + +.swappable-async-await .toggle-checkbox label { + width: 2em; + height: 1em; + position: relative; + cursor: pointer; + display: block; +} + +.swappable-async-await .toggle-checkbox label:before { + content: ""; + position: absolute; + width: 2em; + height: 1em; + left: 0.1em; + transition: background 0.1s ease; + background: #bbb; + border-radius: 50px; + box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.5); +} + +.swappable-async-await .toggle-checkbox label:after { + content: ""; + position: absolute; + width: 1em; + height: 1em; + border-radius: 50px; + left: 0; + transition: all 0.2s ease; + box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.3); + background: #fcfff4; + animation: switch-off 0.2s ease-out; + z-index: 2; +} + +.swappable-async-await + .toggle-checkbox + input[type="checkbox"]:checked + + label:before { + background: #70c1b3; + box-shadow: inset 0px 1px 1px rgba(84, 152, 140, 0.5); +} + +.swappable-async-await + .toggle-checkbox + input[type="checkbox"]:checked + + label:after { + animation: switch-on 0.2s ease-out; + left: 1.1em; +} + +/* a.anchor { + color: #808080; + padding: 0 0 0 0.5rem; + float: right; +} + +a.anchor:hover { + color: #4a4a4a; +} + +a img, +a svg { + border-bottom: none; +} */ + +/* #main-navbar { + a { + text-decoration: none; + } +} */ + +#main-navbar .control.has-icons-left .icon.is-left { + left: 18px; + top: 18px; + height: 1em; +} + +.organisations-list { + margin: 0 0 0 0 !important; + display: flex; + flex-wrap: wrap; + justify-content: space-around; + list-style: none; + align-items: center; + justify-items: center; +} + +.organisations-list.align-start { + justify-content: flex-start; +} + +.organisations-list li { + align-items: center; + display: flex; + justify-content: center; + margin: 0.6rem !important; + max-height: 60px; +} + +.organisations-list li a { + text-decoration: none; +} + +.organisations-list li a img { + height: auto; + max-width: 100%; + max-height: 60px; + -webkit-filter: grayscale(100%); /* Safari 6.0 - 9.0 */ + filter: grayscale(100%); + transition: all 0.5s; +} + +.organisations-list li a:hover img { + filter: none; + -webkit-filter: none; +} + +.menu-list a { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.container .breadcrumb .select { + height: auto; +} + +.container .breadcrumb .select select { + height: auto; + padding-top: 0; + padding-bottom: 0; +} + +#openjs-logo { + padding: 2em 0 1em 0; + width: 60%; + max-width: 380px; +} + +.contributor-picture { + clip-path: polygon( + 59.999844548019226% 92.32054673176552%, + 56.84023913616054% 93.79387512589675%, + 53.47279582181356% 94.69617275659286%, + 49.99983470577035% 94.99999999969643%, + 46.526875821860415% 94.69614724280407%, + 43.159439136252836% 93.79382487351238%, + 39.99984454815416% 92.32047326766346%, + 18.349250463364015% 79.82039374050645%, + 15.493507808397666% 77.82076325076447%, + 13.028386863379126% 75.35561419585301%, + 11.02877735314808% 72.49985685085788%, + 9.555438959016868% 69.34025143896247%, + 8.653151328320753% 65.9728081246522%, + 8.349314085217195% 62.49984700857227%, + 8.349405915344782% 37.49984700874092%, + 8.653268672237125% 34.026888124867725%, + 9.555581041528825% 30.659451439223407%, + 11.028942647377725% 27.499856851161457%, + 13.028573137119722% 24.644114196195112%, + 15.493712192067917% 22.17898325113984%, + 18.349469537063044% 20.179373740908805%, + 40.000155451980774% 7.679453268234471%, + 43.15976086383946% 6.2061248741032555%, + 46.52720417818644% 5.303827243407138%, + 50.00016529422965% 5.000000000303579%, + 53.473124178139585% 5.30385275719593%, + 56.840560863747164% 6.206175126487634%, + 60.00015545184584% 7.679526732336538%, + 81.65074953663598% 20.17960625949355%, + 84.50649219160233% 22.179236749235535%, + 86.97161313662087% 24.644385804147%, + 88.97122264685191% 27.500143149142122%, + 90.44456104098313% 30.65974856103755%, + 91.34684867167925% 34.027191875347796%, + 91.6506859147828% 37.50015299142773%, + 91.65059408465521% 62.50015299125908%, + 91.34673132776288% 65.97311187513228%, + 90.44441895847118% 69.3405485607766%, + 88.97105735262227% 72.50014314883855%, + 86.97142686288028% 75.35588580380488%, + 84.50628780793208% 77.82101674886017%, + 81.65053046293696% 79.82062625909118% + ); +} + +.contributor-links { + padding: 0.5em 0 0 0; +} + +.contributor-links .icon__icon.npm:hover { + color: #ea2039; +} + +.contributor-links .icon__icon.twitter:hover { + color: #1da1f2; +} + +/* #good-first-issues { + display: flex; + flex-direction: column; + + .spinner { + animation: rotate360 1s linear infinite; + transform: translateZ(0); + + border-top: 3px solid $primary; + border-right: 3px solid $primary; + border-bottom: 3px solid $primary; + border-left: 3px solid #333; + background: transparent; + width: 24px; + height: 24px; + border-radius: 50%; + margin: 0 auto; + } + + .good-issue { + margin: 0 0 .5em 0; + } + + .error-result, .no-issues { + padding: 1rem; + width: 100%; + text-align: center; + border-top: 1px solid #ccc; + } +} */ + +@keyframes rotate360 { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.media.v-center { + align-items: center; +} + +/* code, +pre { + font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace; +} */ diff --git a/src/data/acknowledgements.js b/src/data/acknowledgements.js new file mode 100644 index 00000000..d112411d --- /dev/null +++ b/src/data/acknowledgements.js @@ -0,0 +1,24 @@ +export const acknowledgements = { + sponsors: [ + { + name: "NearForm", + url: "http://nearform.com", + }, + { + name: "Microsoft", + url: "https://opensource.microsoft.com/", + }, + ], + past_sponsors: [ + { + name: "LetzDoIt", + url: "http://www.letzdoitapp.com", + }, + ], + others: [ + { + name: "The amazing Fastify community", + url: "https://github.com/fastify/fastify/graphs/contributors", + }, + ], +}; diff --git a/src/data/organizations.js b/src/data/organizations.js new file mode 100644 index 00000000..c166f0ca --- /dev/null +++ b/src/data/organizations.js @@ -0,0 +1,227 @@ +export const organizations = [ + { + name: "2hire", + image: "2hire.svg", + link: "https://2hire.io/", + }, + { + name: "aasaam", + image: "aasaam.svg", + link: "https://aasaam.com/", + }, + { + name: "car2go", + image: "car2go.svg", + link: "https://www.car2go.com", + }, + { + name: "Care.com", + image: "care.svg", + link: "https://www.care.com/", + }, + { + name: "ClearGlass", + image: "clearglass.svg", + link: "https://clearglass.com/", + }, + { + name: "Codecks", + image: "codecks.svg", + link: "https://www.codecks.io/", + }, + { + name: "Commons Host", + image: "commonshost.svg", + link: "https://commons.host", + }, + { + name: "Compressor", + image: "compressor.svg", + link: "https://compressor.io", + }, + { + name: "evilfactorylabs", + image: "evilfactorylabs.svg", + link: "https://evilfactorylabs.org/", + }, + { + name: "Elo7", + image: "elo7.svg", + link: "https://www.elo7.com.br", + }, + { + name: "Discord Bots Catalog", + image: "discordbotscatalog.svg", + link: "https://top-bots.xyz", + }, + { + name: "fabfitfun", + image: "fabfitfun.svg", + link: "https://fabfitfun.com/", + }, + { + name: "Find a Discord", + image: "findadiscord.svg", + link: "https://findadiscord.com", + }, + { + name: "Future Foundry", + image: "future-foundry.svg", + link: "https://futurefoundry.co", + }, + { + name: "Genesys", + image: "genesys.svg", + link: "https://www.genesys.com", + }, + { + name: "GEOLYTIX", + image: "geolytix.svg", + link: "https://geolytix.co.uk", + }, + { + name: "Global CTO Forum", + image: "global-cto-forum.svg", + link: "https://www.globalctoforum.org", + }, + { + name: "Gumlet", + image: "gumlet.svg", + link: "https://www.gumlet.com", + }, + { + name: "heply", + image: "heply.svg", + link: "https://heply.it/", + }, + { + name: "Habit", + image: "habit.svg", + link: "https://habit.global/", + }, + { + name: "HospitalRun", + image: "hospitalrun.svg", + link: "https://hospitalrun.io/", + }, + { + name: "hotstar", + image: "hotstar.svg", + link: "https://tech.hotstar.com/", + }, + { + name: "Knock", + image: "knock.svg", + link: "https://www.knock.com", + }, + { + name: "localistars", + image: "localistars.svg", + link: "https://localistars.com", + }, + { + name: "LogDNA", + image: "logdna.svg", + link: "https://logdna.com", + }, + { + name: "locize", + image: "locize.svg", + link: "https://locize.com", + }, + { + name: "MIA Platform", + image: "mia-platform.svg", + link: "https://www.mia-platform.eu", + }, + { + name: "Microsoft", + image: "microsoft.svg", + link: "https://docs.microsoft.com", + }, + { + name: "Mr Porter", + image: "mrp.svg", + link: "https://www.mrporter.com", + }, + { + name: "MV Labs", + image: "mvlabs.svg", + link: "https://www.mvlabs.it", + }, + { + name: "Nearform", + image: "nearform.svg", + link: "https://nearform.com", + }, + { + name: "Net-A-Porter", + image: "net-a-porter.svg", + link: "https://net-a-porter.com", + }, + { + name: "Nucleode", + image: "nucleode.svg", + link: "https://www.nucleode.com", + }, + { + name: "Quero Educação", + image: "quero-educacao.svg", + link: "https://sobre.quero.com/", + }, + { + name: "Radity", + image: "radity.svg", + link: "https://www.radity.com", + }, + { + name: "retraced", + image: "retraced.svg", + link: "https://retraced.co", + }, + { + name: "RuneAudio", + image: "runeaudio.svg", + link: "https://www.runeaudio.com", + }, + { + name: "Satiurn", + image: "satiurn.svg", + link: "https://www.satiurn.com/", + }, + { + name: "Seznam.cz", + image: "seznam.cz.svg", + link: "https://www.seznam.cz/", + }, + { + name: "Swiss Dev Jobs", + image: "swissdev-javascript-jobs-200-200.svg", + link: "https://swissdevjobs.ch/", + }, + { + name: "The Outnet", + image: "theoutnet.svg", + link: "https://theoutnet.com/", + }, + { + name: "Unhandled", + image: "unhandled.svg", + link: "https://unhandled.net", + }, + { + name: "UNIQ", + image: "uniq.svg", + link: "https://www.uniq.id/", + }, + { + name: "Vectra", + image: "vectra.svg", + link: "https://vectra.ai", + }, + { + name: "Yeovil District Hospital NHS Foundation Trust", + image: "ydhnhsft.svg", + link: "https://yeovilhospital.co.uk", + }, +]; diff --git a/src/data/team.js b/src/data/team.js new file mode 100644 index 00000000..d3982afc --- /dev/null +++ b/src/data/team.js @@ -0,0 +1,223 @@ +export const team = [ + { + name: "Lead Maintainers", + people: [ + { + name: "Matteo Collina", + sortname: "Collina Matteo", + picture: "https://avatars1.githubusercontent.com/u/52195?v=4&s=460", + links: { + github: "https://github.com/mcollina", + npm: "https://www.npmjs.com/~matteo.collina", + twitter: "https://twitter.com/matteocollina", + }, + }, + { + name: "Tomas Della Vedova", + sortname: "Della Vedova Tomas", + picture: "https://avatars0.githubusercontent.com/u/4865608?v=4&s=460", + links: { + github: "https://github.com/delvedor", + npm: "https://www.npmjs.com/~delvedor", + twitter: "https://twitter.com/delvedor", + }, + }, + ], + }, + { + name: "Collaborators", + people: [ + { + name: "Ethan Arrowood", + sortname: "Arrowood Ethan", + picture: "https://avatars3.githubusercontent.com/u/16144158?s=460&v=4", + links: { + github: "https://github.com/Ethan-Arrowood", + npm: "https://www.npmjs.com/~ethan_arrowood", + twitter: "https://twitter.com/arrowoodtech", + }, + }, + { + name: "David Clements", + sortname: "Clements David", + picture: "https://avatars1.githubusercontent.com/u/1190716?s=460&v=4", + links: { + github: "https://github.com/davidmarkclements", + npm: "https://www.npmjs.com/~davidmarkclements", + twitter: "https://twitter.com/davidmarkclem", + }, + }, + { + name: "Dustin Deus", + sortname: "Deus Dustin", + picture: "https://avatars3.githubusercontent.com/u/1764424?v=4&s=460", + links: { + github: "https://github.com/StarpTech", + npm: "https://www.npmjs.com/~starptech", + twitter: "https://twitter.com/dustindeus", + }, + }, + { + name: "Ayoub El Khattabi", + sortname: "Ayoub El Khattabi", + picture: "https://avatars.githubusercontent.com/u/11050534?s=460&v=4", + links: { + github: "https://github.com/AyoubElk", + npm: "https://www.npmjs.com/~ayoubelk", + twitter: "https://twitter.com/ayoubelkh", + }, + }, + { + name: "Evan Shortiss", + sortname: "Shortiss Evan", + picture: "https://avatars3.githubusercontent.com/u/1303687?v=4&s=400", + links: { + github: "https://github.com/evanshortiss", + npm: "https://www.npmjs.com/~evanshortiss", + twitter: "https://twitter.com/evanshortiss", + }, + }, + { + name: "James Sumners", + sortname: "Sumners James", + picture: "https://avatars0.githubusercontent.com/u/321201?v=4&s=460", + links: { + github: "https://github.com/jsumners", + npm: "https://www.npmjs.com/~jsumners", + twitter: "https://twitter.com/jsumners79", + }, + }, + { + name: "Luciano Mammino", + sortname: "Mammino Luciano", + picture: "https://avatars3.githubusercontent.com/u/205629?v=4&s=460", + links: { + github: "https://github.com/lmammino", + npm: "https://www.npmjs.com/~lmammino", + twitter: "https://twitter.com/loige", + }, + }, + { + name: "Rafael Gonzaga", + sortname: "Gonzaga Rafael", + picture: "https://avatars3.githubusercontent.com/u/26234614?v=4&s=400", + links: { + github: "https://github.com/RafaelGSS", + npm: "https://www.npmjs.com/~rafaelgss", + twitter: "https://twitter.com/_rafaelgss", + }, + }, + { + name: "Tommaso Allevi", + sortname: "Allevi Tommaso", + picture: "https://avatars0.githubusercontent.com/u/1054125?v=4&s=460", + links: { + github: "https://github.com/allevo", + npm: "https://www.npmjs.com/~allevo", + twitter: "https://twitter.com/allevitommaso", + }, + }, + { + name: "Maksim Sinik", + sortname: "Sinik Maksim", + picture: "https://avatars3.githubusercontent.com/u/1620916?s=460&v=4", + links: { + github: "https://github.com/fox1t", + npm: "https://www.npmjs.com/~fox1t", + twitter: "https://twitter.com/maksimsinik", + }, + }, + { + name: "Frazer Smith", + sortname: "Smith Frazer", + picture: "https://avatars3.githubusercontent.com/u/43814140?s=460&v=4", + links: { + github: "https://github.com/Fdawgs", + npm: "https://www.npmjs.com/~fdawgs", + }, + }, + { + name: "Manuel Spigolon", + sortname: "Spigolon Manuel", + picture: "https://avatars3.githubusercontent.com/u/11404065?s=460&v=4", + links: { + github: "https://github.com/eomm", + npm: "https://www.npmjs.com/~eomm", + twitter: "https://twitter.com/manueomm", + }, + }, + { + name: "Igor Savin", + sortname: "Savin Igor", + picture: "https://avatars3.githubusercontent.com/u/1847934?s=460&v=4", + links: { + github: "https://github.com/kibertoad", + npm: "https://www.npmjs.com/~kibertoad", + twitter: "https://twitter.com/kibertoad", + }, + }, + { + name: "Vincent Le Goff", + sortname: "Le Goff Vincent", + picture: "https://avatars1.githubusercontent.com/u/6959636?s=460&v=4", + links: { + github: "https://github.com/zekth", + }, + }, + { + name: "Salman Mitha", + sortname: "Mitha Salman", + picture: "https://avatars0.githubusercontent.com/u/2510597?s=460&v=4", + links: { + github: "https://github.com/salmanm", + npm: "https://www.npmjs.com/~salmanm", + }, + }, + ], + }, + { + name: "Past Collaborators", + people: [ + { + name: "Çağatay Çalı", + sortname: "Çalı Çağatay", + picture: "https://avatars1.githubusercontent.com/u/9213230?v=4&s=460", + links: { + github: "https://github.com/cagataycali", + npm: "https://www.npmjs.com/~cagataycali", + twitter: "https://twitter.com/cagataycali", + }, + }, + { + name: "Cemre Mengu", + sortname: "Cemre Mengu", + picture: "https://avatars3.githubusercontent.com/u/1297759?v=4&s=460", + links: { + github: "https://github.com/cemremengu", + npm: "https://www.npmjs.com/~cemremengu", + twitter: "https://twitter.com/cemremengu", + }, + }, + { + name: "Nathan Woltman", + sortname: "Woltman Nathan", + picture: "https://avatars0.githubusercontent.com/u/5128013?v=4&s=460", + links: { + github: "https://github.com/nwoltman", + npm: "https://www.npmjs.com/~nwoltman", + twitter: "https://twitter.com/NathanWoltman", + }, + }, + { + name: "Trivikram Kamat", + sortname: "Trivikram Kamat", + picture: "https://avatars1.githubusercontent.com/u/16024985?s=400&v=4", + links: { + github: "https://github.com/trivikr", + npm: "https://www.npmjs.com/~trivikr", + twitter: "https://twitter.com/trivikram", + }, + }, + ], + }, +]; diff --git a/src/pages/index.js b/src/pages/index.js deleted file mode 100644 index 08083fef..00000000 --- a/src/pages/index.js +++ /dev/null @@ -1,39 +0,0 @@ -import React from "react"; -import clsx from "clsx"; -import Layout from "@theme/Layout"; -import Link from "@docusaurus/Link"; -import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import styles from "./index.module.css"; -import HomepageFeatures from "../components/HomepageFeatures"; - -function HomepageHeader() { - const { siteConfig } = useDocusaurusContext(); - return ( -
-
-

{siteConfig.title}

-

{siteConfig.tagline}

-
- - Documentation - -
-
-
- ); -} - -export default function Home() { - const { siteConfig } = useDocusaurusContext(); - return ( - - -
- -
-
- ); -} diff --git a/src/pages/index.tsx b/src/pages/index.tsx new file mode 100644 index 00000000..fc3fccef --- /dev/null +++ b/src/pages/index.tsx @@ -0,0 +1,443 @@ +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import { acknowledgements } from "@site/src/data/acknowledgements"; +import { organizations } from "@site/src/data/organizations"; +import { team } from "@site/src/data/team"; +import Layout from "@theme/Layout"; +import React from "react"; +import GitHubButton from "react-github-btn"; + +// function HomepageHeader() { +// const {siteConfig} = useDocusaurusContext(); +// return ( +//
+//
+//

{siteConfig.title}

+//

{siteConfig.tagline}

+//
+// +// Docusaurus Tutorial - 5min ⏱️ +// +//
+//
+//
+// ); +// } + +const svgicons = { + twitter: ( + + + + ), + npm: ( + + + + ), + github: ( + + + + ), +}; + +export default function Home(): JSX.Element { + const { siteConfig } = useDocusaurusContext(); + + // Shuffle array + const shuffled = organizations.sort(() => 0.5 - Math.random()); + let displayedOrganizations = shuffled.slice(0, 12); + + return ( + +
+
+
+
+

+ Fastify +

+

+ Fast and low overhead web framework, for Node.js +

+
+ + Star + + + Fork + +
+
+
+
+ +
+
+
+
+

Why

+

+ An efficient server implies a lower cost of the + infrastructure, a better responsiveness under load and happy + users. How can you efficiently handle the resources of your + server, knowing that you are serving the highest number of + requests possible, without sacrificing security validations + and handy development? +

+

+ Enter Fastify. Fastify is a web framework highly focused on + providing the best developer experience with the least + overhead and a powerful plugin architecture. It is inspired by + Hapi and Express and as far as we know, it is one of the + fastest web frameworks in town. +

+
+
+
+
+ +
+
+
+
+

Who is using Fastify?

+

+ Fastify is proudly powering a large ecosystem of organisations + and products out there. +

+

+ Discover{" "} + more organisations using Fastify. + Do you want your organisation to{" "} + + be featured here + + ? +

+
+
+
+
+
    + {displayedOrganizations.map((organization) => ( +
  • + + {`${organization.name} + +
  • + ))} +
+
+
+
+
+ +
+
+
+
+

Core features

+ +

+ These are the main features and principles on which fastify + has been built: +

+ +
    +
  • + Highly performant: as far as we know, + Fastify is one of the fastest web frameworks in town, + depending on the code complexity we can serve up to 30 + thousand requests per second. +
  • +
  • + Extensible: Fastify is fully extensible via + its hooks, plugins and decorators. +
  • +
  • + Schema based: even if it is not mandatory + we recommend to use{" "} + + JSON Schema + {" "} + to validate your routes and serialize your outputs, + internally Fastify compiles the schema in a highly + performant function. +
  • +
  • + Logging: logs are extremely important but + are costly; we chose the best logger to almost remove this + cost,{" "} + + Pino + + ! +
  • +
  • + Developer friendly: the framework is built + to be very expressive and to help developers in their daily + use, without sacrificing performance and security. +
  • +
  • + TypeScript ready: we work hard to maintain + a{" "} + + TypeScript + {" "} + type declaration file so we can support the growing + TypeScript community. +
  • +
+
+
+
+
+
+
+
+
+

A fast web framework

+

+ Leveraging our experience with Node.js performance, Fastify + has been built from the ground up to be{" "} + as fast as possible. Have a look at our{" "} + benchmarks section to compare + fastify performance to other common web frameworks. +

+ +
+
+

Ecosystem

+

+ Fastify has an ever-growing ecosystem of plugins. Probably + there is already a plugin for your favourite database or + template language. Have a look at the{" "} + Ecosystem page to navigate through + the currently available plugins. Can't you find the plugin you + are looking for? No problem,{" "} + it's very easy to write one + ! +

+ +
+
+
+
+
+
+
+
+

The team

+

In alphabetical order

+ {team.map((section) => ( + <> +
+

{section.name}

+
+
+ {section.people + .sort((a, b) => (a.sortname > b.sortname ? 1 : -1)) + .map((member) => ( +
+
+
+
+ {`${member.name}'s +
+
+
+

{member.name}

+

+ {member.links.github && ( + + {svgicons.github} + + )} + {member.links.npm && ( + + {svgicons.npm} + + )} + {member.links.twitter && ( + + {svgicons.twitter} + + )} +

+
+
+
+ ))} +
+ + ))} +
+
+
+
+
+
+
+
+

Acknowledgments

+

+ This project is kindly sponsored by: +

+ +

Past Sponsors:

+ +

Also thanks to:

+ +
+
+

Hosted by

+

+ We are an At Large project at the{" "} + + OpenJS Foundation + + . +

+

+ + + +

+
+
+
+
+
+
+ ); +} diff --git a/static/img/bg-pattern-dark.png b/static/img/bg-pattern-dark.png new file mode 100644 index 00000000..71145419 Binary files /dev/null and b/static/img/bg-pattern-dark.png differ diff --git a/static/img/openjsf-knockout.svg b/static/img/openjsf-knockout.svg new file mode 100644 index 00000000..03421af5 --- /dev/null +++ b/static/img/openjsf-knockout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/2hire.svg b/static/img/organisations/2hire.svg new file mode 100644 index 00000000..753184a2 --- /dev/null +++ b/static/img/organisations/2hire.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/LICENSE b/static/img/organisations/LICENSE new file mode 100644 index 00000000..109b0248 --- /dev/null +++ b/static/img/organisations/LICENSE @@ -0,0 +1,2 @@ +The logos provided here are property of the respective organisations and they are +not distributed under the same license as fastify (MIT). diff --git a/static/img/organisations/aasaam.svg b/static/img/organisations/aasaam.svg new file mode 100644 index 00000000..b63174eb --- /dev/null +++ b/static/img/organisations/aasaam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/car2go.svg b/static/img/organisations/car2go.svg new file mode 100644 index 00000000..89ef7ef9 --- /dev/null +++ b/static/img/organisations/car2go.svg @@ -0,0 +1,16 @@ + + + + car2go_logo + Created with Sketch. + + + + + \ No newline at end of file diff --git a/static/img/organisations/care.svg b/static/img/organisations/care.svg new file mode 100644 index 00000000..58de6be9 --- /dev/null +++ b/static/img/organisations/care.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/static/img/organisations/clearglass.svg b/static/img/organisations/clearglass.svg new file mode 100644 index 00000000..4c743282 --- /dev/null +++ b/static/img/organisations/clearglass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/codecks.svg b/static/img/organisations/codecks.svg new file mode 100644 index 00000000..1277d2ac --- /dev/null +++ b/static/img/organisations/codecks.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/static/img/organisations/commonshost.svg b/static/img/organisations/commonshost.svg new file mode 100644 index 00000000..1a80c722 --- /dev/null +++ b/static/img/organisations/commonshost.svg @@ -0,0 +1 @@ +COMMONS.HOST diff --git a/static/img/organisations/compressor.svg b/static/img/organisations/compressor.svg new file mode 100644 index 00000000..96e98fdd --- /dev/null +++ b/static/img/organisations/compressor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/discordbotscatalog.svg b/static/img/organisations/discordbotscatalog.svg new file mode 100644 index 00000000..3243f306 --- /dev/null +++ b/static/img/organisations/discordbotscatalog.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/img/organisations/elo7.svg b/static/img/organisations/elo7.svg new file mode 100644 index 00000000..ba937ca7 --- /dev/null +++ b/static/img/organisations/elo7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/evilfactorylabs.svg b/static/img/organisations/evilfactorylabs.svg new file mode 100644 index 00000000..a27e05ea --- /dev/null +++ b/static/img/organisations/evilfactorylabs.svg @@ -0,0 +1 @@ +evilfactorylabs \ No newline at end of file diff --git a/static/img/organisations/fabfitfun.svg b/static/img/organisations/fabfitfun.svg new file mode 100644 index 00000000..e5644a86 --- /dev/null +++ b/static/img/organisations/fabfitfun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/findadiscord.svg b/static/img/organisations/findadiscord.svg new file mode 100644 index 00000000..e59fef1c --- /dev/null +++ b/static/img/organisations/findadiscord.svg @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/img/organisations/future-foundry.svg b/static/img/organisations/future-foundry.svg new file mode 100644 index 00000000..34194eea --- /dev/null +++ b/static/img/organisations/future-foundry.svg @@ -0,0 +1,53 @@ + + + FF_Logo_Logotype_White + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/img/organisations/genesys.svg b/static/img/organisations/genesys.svg new file mode 100644 index 00000000..63952492 --- /dev/null +++ b/static/img/organisations/genesys.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/geolytix.svg b/static/img/organisations/geolytix.svg new file mode 100644 index 00000000..9be90701 --- /dev/null +++ b/static/img/organisations/geolytix.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/img/organisations/global-cto-forum.svg b/static/img/organisations/global-cto-forum.svg new file mode 100644 index 00000000..55c5026d --- /dev/null +++ b/static/img/organisations/global-cto-forum.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/img/organisations/gumlet.svg b/static/img/organisations/gumlet.svg new file mode 100644 index 00000000..b8f02830 --- /dev/null +++ b/static/img/organisations/gumlet.svg @@ -0,0 +1,42 @@ + + + + logo + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/img/organisations/habit.svg b/static/img/organisations/habit.svg new file mode 100644 index 00000000..12e2c2a5 --- /dev/null +++ b/static/img/organisations/habit.svg @@ -0,0 +1 @@ + diff --git a/static/img/organisations/heply.svg b/static/img/organisations/heply.svg new file mode 100644 index 00000000..979da090 --- /dev/null +++ b/static/img/organisations/heply.svg @@ -0,0 +1 @@ + diff --git a/static/img/organisations/hospitalrun.svg b/static/img/organisations/hospitalrun.svg new file mode 100644 index 00000000..6c06c6ce --- /dev/null +++ b/static/img/organisations/hospitalrun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/hotstar.svg b/static/img/organisations/hotstar.svg new file mode 100644 index 00000000..8ee54001 --- /dev/null +++ b/static/img/organisations/hotstar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/knock.svg b/static/img/organisations/knock.svg new file mode 100644 index 00000000..7b7d1975 --- /dev/null +++ b/static/img/organisations/knock.svg @@ -0,0 +1 @@ + diff --git a/static/img/organisations/localistars.svg b/static/img/organisations/localistars.svg new file mode 100644 index 00000000..2600f5ef --- /dev/null +++ b/static/img/organisations/localistars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/locize.svg b/static/img/organisations/locize.svg new file mode 100644 index 00000000..8e6ed7f9 --- /dev/null +++ b/static/img/organisations/locize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/logdna.svg b/static/img/organisations/logdna.svg new file mode 100644 index 00000000..60ac07eb --- /dev/null +++ b/static/img/organisations/logdna.svg @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/img/organisations/mia-platform.svg b/static/img/organisations/mia-platform.svg new file mode 100644 index 00000000..6a67fcb6 --- /dev/null +++ b/static/img/organisations/mia-platform.svg @@ -0,0 +1 @@ + diff --git a/static/img/organisations/microsoft.svg b/static/img/organisations/microsoft.svg new file mode 100644 index 00000000..86064d3e --- /dev/null +++ b/static/img/organisations/microsoft.svg @@ -0,0 +1 @@ +Microsoft logo \ No newline at end of file diff --git a/static/img/organisations/mrp.svg b/static/img/organisations/mrp.svg new file mode 100644 index 00000000..88995148 --- /dev/null +++ b/static/img/organisations/mrp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/mvlabs.svg b/static/img/organisations/mvlabs.svg new file mode 100644 index 00000000..cb8bfcd9 --- /dev/null +++ b/static/img/organisations/mvlabs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/nearform.svg b/static/img/organisations/nearform.svg new file mode 100644 index 00000000..24f763f9 --- /dev/null +++ b/static/img/organisations/nearform.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/net-a-porter.svg b/static/img/organisations/net-a-porter.svg new file mode 100644 index 00000000..4afa3cff --- /dev/null +++ b/static/img/organisations/net-a-porter.svg @@ -0,0 +1,26 @@ + + + + NAP logo + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/static/img/organisations/nucleode.svg b/static/img/organisations/nucleode.svg new file mode 100644 index 00000000..80860878 --- /dev/null +++ b/static/img/organisations/nucleode.svg @@ -0,0 +1 @@ + diff --git a/static/img/organisations/quero-educacao.svg b/static/img/organisations/quero-educacao.svg new file mode 100644 index 00000000..3e8a1037 --- /dev/null +++ b/static/img/organisations/quero-educacao.svg @@ -0,0 +1 @@ + diff --git a/static/img/organisations/radity.svg b/static/img/organisations/radity.svg new file mode 100644 index 00000000..563f0471 --- /dev/null +++ b/static/img/organisations/radity.svg @@ -0,0 +1,14 @@ + + + + Radity + Radity - Software Development and IT Solutions + + + + + + + + + \ No newline at end of file diff --git a/static/img/organisations/retraced.svg b/static/img/organisations/retraced.svg new file mode 100644 index 00000000..48365291 --- /dev/null +++ b/static/img/organisations/retraced.svg @@ -0,0 +1,7 @@ + + retraced + retraced - Sustainability management platform + + + + diff --git a/static/img/organisations/runeaudio.svg b/static/img/organisations/runeaudio.svg new file mode 100644 index 00000000..2754fa2b --- /dev/null +++ b/static/img/organisations/runeaudio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/satiurn.svg b/static/img/organisations/satiurn.svg new file mode 100644 index 00000000..95ae3a9a --- /dev/null +++ b/static/img/organisations/satiurn.svg @@ -0,0 +1 @@ + diff --git a/static/img/organisations/seznam.cz.svg b/static/img/organisations/seznam.cz.svg new file mode 100644 index 00000000..ef03cd38 --- /dev/null +++ b/static/img/organisations/seznam.cz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/swissdev-javascript-jobs-200-200.svg b/static/img/organisations/swissdev-javascript-jobs-200-200.svg new file mode 100644 index 00000000..0b33b17f --- /dev/null +++ b/static/img/organisations/swissdev-javascript-jobs-200-200.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/theoutnet.svg b/static/img/organisations/theoutnet.svg new file mode 100644 index 00000000..b387b309 --- /dev/null +++ b/static/img/organisations/theoutnet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/unhandled.svg b/static/img/organisations/unhandled.svg new file mode 100644 index 00000000..50a398f3 --- /dev/null +++ b/static/img/organisations/unhandled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/uniq.svg b/static/img/organisations/uniq.svg new file mode 100755 index 00000000..c727da83 --- /dev/null +++ b/static/img/organisations/uniq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/vectra.svg b/static/img/organisations/vectra.svg new file mode 100644 index 00000000..8ee36bb0 --- /dev/null +++ b/static/img/organisations/vectra.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/organisations/ydhnhsft.svg b/static/img/organisations/ydhnhsft.svg new file mode 100644 index 00000000..c2ccf7aa --- /dev/null +++ b/static/img/organisations/ydhnhsft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/website-next/img/fastify-logo-black.png b/static/website-next/img/fastify-logo-black.png new file mode 100644 index 00000000..f445517b Binary files /dev/null and b/static/website-next/img/fastify-logo-black.png differ