From 9c4d06f54b8ff0840722ac2b303cd7ab49a2b68f Mon Sep 17 00:00:00 2001 From: Michael Mason <105235096+mmason2-godaddy@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:00:18 -0700 Subject: [PATCH] v7 blog post (#934) * v7 blog post * remove links --- README.md | 94 +++++++++++++------------- site/blog/2024-9-26-gasket-v7.md | 101 ++++++++++++++++++++++++++++ site/blog/authors.yml | 6 ++ site/static/img/authors/mmason.jpeg | Bin 0 -> 2284 bytes 4 files changed, 154 insertions(+), 47 deletions(-) create mode 100644 site/blog/2024-9-26-gasket-v7.md create mode 100644 site/static/img/authors/mmason.jpeg diff --git a/README.md b/README.md index 39be021d6..0eb20a87d 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,7 @@ Available lifecycles | [servers] | Access to the server instances | | [serviceWorkerCacheKey] | Get cache keys for request based service workers | | [terminus] | Setup the `terminus` options | -| [webpackConfig] | Transform the webpack config, with the help of webpack-merge | +| [webpackConfig] | Transform the Webpack config | | [winstonTransports] | Setup Winston log transports | | [workbox] | Setup Workbox config and options | @@ -149,47 +149,47 @@ Available structure Available presets -| Name | Version | Description | -| ----------------------- | ------------- | ------------------------------------ | -| [@gasket/preset-api] | 7.0.0-next.69 | Create Express-based API with Gasket | -| [@gasket/preset-nextjs] | 7.0.0-next.69 | Basic NextJS Framework | +| Name | Version | Description | +| ----------------------- | ------- | ------------------------------------ | +| [@gasket/preset-api] | 7.0.1 | Create Express-based API with Gasket | +| [@gasket/preset-nextjs] | 7.0.1 | Basic NextJS Framework | ## Plugins Available plugins -| Name | Version | Description | -| ------------------------------- | ------------- | ------------------------------------------------------------------------- | -| [@gasket/plugin-analyze] | 7.0.0-next.69 | Gasket Analyzer Plugin | -| [@gasket/plugin-command] | 7.0.0-next.69 | Plugin to enable other plugins to inject new gasket commands | -| [@gasket/plugin-cypress] | 7.0.0-next.69 | Integrates Cypress based testing into your Gasket application | -| [@gasket/plugin-data] | 7.0.0-next.69 | Supports application-specific settings and configurations | -| [@gasket/plugin-docs] | 7.0.0-next.69 | Centralize doc files from plugins and modules | -| [@gasket/plugin-docs-graphs] | 7.0.0-next.69 | Generate mermaid graphs of an applications gasket lifecycles | -| [@gasket/plugin-docusaurus] | 7.0.0-next.69 | Gasket plugin for docusaurus | -| [@gasket/plugin-elastic-apm] | 7.0.0-next.69 | Adds Elastic APM instrumentation to your application | -| [@gasket/plugin-express] | 7.0.0-next.69 | Adds express support to your application | -| [@gasket/plugin-fastify] | 7.0.0-next.69 | Adds fastify support to your application | -| [@gasket/plugin-git] | 7.0.0-next.69 | Adds git support to your application | -| [@gasket/plugin-happyfeet] | 7.0.0-next.69 | A gasket plugin to enable happyfeet healthchecks | -| [@gasket/plugin-https] | 7.0.0-next.69 | Create http/s servers with graceful termination | -| [@gasket/plugin-intl] | 7.0.0-next.69 | NodeJS script to build localization files. | -| [@gasket/plugin-jest] | 7.0.0-next.69 | Integrated jest into your application. | -| [@gasket/plugin-lint] | 7.0.0-next.69 | Adds GoDaddy standard linting to your application | -| [@gasket/plugin-logger] | 7.0.0-next.69 | Gasket plugin for logging | -| [@gasket/plugin-manifest] | 7.0.0-next.69 | The web app manifest for progressive Gasket applications | -| [@gasket/plugin-metadata] | 7.0.0-next.69 | Adds metadata to gasket lifecycles | -| [@gasket/plugin-middleware] | 7.0.0-next.69 | Handles common server engine setups for routing and executing lifecycles. | -| [@gasket/plugin-mocha] | 7.0.0-next.69 | Integrates mocha based testing in to your Gasket application | -| [@gasket/plugin-morgan] | 7.0.0-next.69 | Adds morgan request logger to your app | -| [@gasket/plugin-nextjs] | 7.0.0-next.69 | Adds Next support to your application | -| [@gasket/plugin-redux] | 7.0.0-next.69 | Gasket Redux Setup | -| [@gasket/plugin-service-worker] | 7.0.0-next.69 | Gasket Service Worker Plugin | -| [@gasket/plugin-swagger] | 7.0.0-next.69 | Generate and serve swagger docs | -| [@gasket/plugin-typescript] | 7.0.0-next.69 | Gasket plugin for TypeScript support | -| [@gasket/plugin-webpack] | 7.0.0-next.69 | Adds webpack support to your application | -| [@gasket/plugin-winston] | 7.0.0-next.69 | Gasket logger based on Winston | -| [@gasket/plugin-workbox] | 7.0.0-next.69 | Gasket Workbox Plugin | +| Name | Version | Description | +| ------------------------------- | ------- | ------------------------------------------------------------------------- | +| [@gasket/plugin-analyze] | 7.0.1 | Gasket Analyzer Plugin | +| [@gasket/plugin-command] | 7.0.1 | Plugin to enable other plugins to inject new gasket commands | +| [@gasket/plugin-cypress] | 7.0.1 | Integrates Cypress based testing into your Gasket application | +| [@gasket/plugin-data] | 7.0.1 | Supports application-specific settings and configurations | +| [@gasket/plugin-docs] | 7.0.1 | Centralize doc files from plugins and modules | +| [@gasket/plugin-docs-graphs] | 7.0.1 | Generate mermaid graphs of an applications gasket lifecycles | +| [@gasket/plugin-docusaurus] | 7.0.1 | Gasket plugin for docusaurus | +| [@gasket/plugin-elastic-apm] | 7.0.1 | Adds Elastic APM instrumentation to your application | +| [@gasket/plugin-express] | 7.0.1 | Adds express support to your application | +| [@gasket/plugin-fastify] | 7.0.1 | Adds fastify support to your application | +| [@gasket/plugin-git] | 7.0.1 | Adds git support to your application | +| [@gasket/plugin-happyfeet] | 7.0.1 | A gasket plugin to enable happyfeet healthchecks | +| [@gasket/plugin-https] | 7.0.1 | Create http/s servers with graceful termination | +| [@gasket/plugin-intl] | 7.0.1 | NodeJS script to build localization files. | +| [@gasket/plugin-jest] | 7.0.1 | Integrated jest into your application. | +| [@gasket/plugin-lint] | 7.0.1 | Adds GoDaddy standard linting to your application | +| [@gasket/plugin-logger] | 7.0.1 | Gasket plugin for logging | +| [@gasket/plugin-manifest] | 7.0.1 | The web app manifest for progressive Gasket applications | +| [@gasket/plugin-metadata] | 7.0.1 | Adds metadata to gasket lifecycles | +| [@gasket/plugin-middleware] | 7.0.1 | Handles common server engine setups for routing and executing lifecycles. | +| [@gasket/plugin-mocha] | 7.0.1 | Integrates mocha based testing in to your Gasket application | +| [@gasket/plugin-morgan] | 7.0.1 | Adds morgan request logger to your app | +| [@gasket/plugin-nextjs] | 7.0.1 | Adds Next support to your application | +| [@gasket/plugin-redux] | 7.0.1 | Gasket Redux Setup | +| [@gasket/plugin-service-worker] | 7.0.1 | Gasket Service Worker Plugin | +| [@gasket/plugin-swagger] | 7.0.1 | Generate and serve swagger docs | +| [@gasket/plugin-typescript] | 7.0.1 | Gasket plugin for TypeScript support | +| [@gasket/plugin-webpack] | 7.0.1 | Adds webpack support to your application | +| [@gasket/plugin-winston] | 7.0.1 | Gasket logger based on Winston | +| [@gasket/plugin-workbox] | 7.0.1 | Gasket Workbox Plugin | @@ -197,16 +197,16 @@ Available plugins Supporting modules -| Name | Version | Description | -| -------------------- | ------------- | ------------------------------------------------------------------------ | -| [@gasket/assets] | 7.0.0-next.69 | Gasket assets | -| [@gasket/core] | 7.0.0-next.69 | Entry point to setting up Gasket instances | -| [@gasket/data] | 7.0.0-next.69 | Helper package for accessing embedded Gasket Data in the browser | -| [@gasket/intl] | 7.0.0-next.69 | Internationalization managers for translation files and locale handling. | -| [@gasket/nextjs] | 7.0.0-next.69 | Gasket integrations for Next.js apps | -| [@gasket/react-intl] | 7.0.0-next.69 | React component library to enable localization for gasket apps. | -| [@gasket/redux] | 7.0.0-next.69 | Gasket Redux Configuration | -| [@gasket/utils] | 7.0.0-next.69 | Reusable utilities for Gasket internals | +| Name | Version | Description | +| -------------------- | ------- | ------------------------------------------------------------------------ | +| [@gasket/assets] | 7.0.1 | Gasket assets | +| [@gasket/core] | 7.0.1 | Entry point to setting up Gasket instances | +| [@gasket/data] | 7.0.1 | Helper package for accessing embedded Gasket Data in the browser | +| [@gasket/intl] | 7.0.1 | Internationalization managers for translation files and locale handling. | +| [@gasket/nextjs] | 7.0.1 | Gasket integrations for Next.js apps | +| [@gasket/react-intl] | 7.0.1 | React component library to enable localization for gasket apps. | +| [@gasket/redux] | 7.0.1 | Gasket Redux Configuration | +| [@gasket/utils] | 7.0.1 | Reusable utilities for Gasket internals | ## Configurations diff --git a/site/blog/2024-9-26-gasket-v7.md b/site/blog/2024-9-26-gasket-v7.md new file mode 100644 index 000000000..78e673628 --- /dev/null +++ b/site/blog/2024-9-26-gasket-v7.md @@ -0,0 +1,101 @@ +--- +title: Gasket v7.0 +date: 2024-09-26 11:00:00 -0700 +description: We have released Gasket 7! +slug: version-7 +authors: mmason +tags: [Node.js, Gasket, Next.js, Javascript] +hide_table_of_contents: false +--- + + +**Announcing Gasket v7: Simplified, Flexible, and Fully Integrated** + +We are thrilled to announce the next major release of Gasket, packed with +powerful new features, improvements, and optimizations that make building +applications with Gasket easier and more flexible than ever before. This release introduces a range of enhancements that help launch your development +experience to new heights. + +## Key Updates in Gasket v7 + +### **Less Magic, More Transparency** +In Gasket v7, we’ve taken significant steps to reduce the magic and increase +transparency, providing developers with a more intuitive and straightforward +development experience. One of the key changes is the removal of "magic files" +in the `lifecycles` directory. This reduces the complexity around Gasket +lifecycles and makes it easier to understand and customize the behavior of your +Gasket applications. + +### **Framework-First Approach: No More Gasket CLI** + +Gasket v7 no longer relies on the Gasket CLI for core tasks. Instead, we now +delegate responsibilities such as transpilation, bundling, and other +optimizations to the primary framework in use. This shift allows the core +framework to handle crucial tasks, making your Gasket apps lighter, faster, +and better aligned with the ecosystem you’re already using. + +### **ESM-Ready** + +Gasket apps are now fully aligned with ECMAScript Modules (ESM), bringing modern +JavaScript standards to the forefront of the development process. This allows +for more modular, future-proof codebases and better integration with modern +build systems. + +### **Full TypeScript Support** + +Whether you’re building Gasket apps or in-app plugins, Gasket v7 now offers +full support for TypeScript. This update improves both development speed and +reliability, with enhanced type checking, better tooling, and internal JSDoc +typings for a smoother TypeScript experience across the board. + +### **Next.js 14 Support** + +We’re proud to announce full support for Next.js 14, with both the App Router +and Page Router, as well as a custom server option for more advanced routing +needs. This unlocks using React Server Components and other potential future +features of Next.js. + +While Gasket v7 unblocks App Router with React Server Components, using it to +meet our app requirements at GoDaddy is still ongoing. +If you want to get involved, chime in on the [github repo]. + +### **Introducing Gasket Actions** + +A major new feature in v7 is **Gasket Actions** — a powerful new pattern for +accessing and setting data on demand in Gasket applications. This feature +reduces the need to decorate `req`/`res` objects or rely on middleware, +offering a cleaner, more flexible method to manage application data. +Gasket Actions provide a reliable and intuitive way to work with dynamic data +without adding complexity to your app’s architecture. + +### **Increased Flexibility and Portability** + +Gasket v7 is now more flexible and portable, taking a less opinionated approach +to app development. By eliminating the need for the Gasket CLI, you can simply +import Gasket wherever you need it. Additionally, users now have the ability to +create multiple Gasket instances, offering greater versatility and control in +how you structure your applications. We've made it easier than ever to integrate +Gasket with the frameworks and tools you already know and love. + +### **Easier Contributions** + +We’ve aligned our testing framework with Jest, one of the most widely used +testing libraries in the JavaScript ecosystem. +We have refined our TypeScript types and connected them with the code using +JSDoc imports to assist in better code completion and type checking, +without sacrificing the debug ability of JavaScript. + +### What’s Next? + +The release of Gasket v7 marks a significant milestone in our journey to provide +a powerful, flexible, and developer-friendly framework. Whether you're working +with JavaScript or TypeScript, server-side or client-side rendering, Gasket v7 +gives you the tools you need to build applications faster and with more +flexibility than ever before. + +Follow the [Upgrade Guide] today and explore the new features and improvements +that make Gasket v7 the best version yet. Happy coding! + +[releases]: releases.md +[Upgrade Guide]: upgrade-to-7.md +[github repo]: https://github.com/godaddy/gasket diff --git a/site/blog/authors.yml b/site/blog/authors.yml index 2e766d0dd..bc28aa0a9 100644 --- a/site/blog/authors.yml +++ b/site/blog/authors.yml @@ -18,3 +18,9 @@ kquerna: url: https://github.com/kquerna-godaddy image_url: /img/authors/kquerna.png bio: Kirsten is a senior product manager at Godaddy. She is passionate about open source and the web. + +mmason: + name: Michael Mason + title: Senior Engineer + url: https://github.com/mmason2-godaddy + image_url: /img/authors/mmason.jpeg diff --git a/site/static/img/authors/mmason.jpeg b/site/static/img/authors/mmason.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..4b1caf43a42ad9b5683cc50a69b74d0210cd41de GIT binary patch literal 2284 zcmbW!dpOgJ9|!R7Y|KWNtxaf-(pVWCW<;6XN7#dM54qnG3kipg6e(6FDrasf%VpN& z8p(aE5W`Tqs*I3(B>Oq%{GRjt{`~!Z@8|h^{`q|Vc|C8@i0Bn?8IY8afJ%rbAaT%N0sbA37#Jch z0hNTorFH^hATU@A0u~pCK(;>Pw{8FgA&%UqX(X}B&I_tUMG+D+3MKa&b6U{${ok-! z-sdjC;4-^q<>ZxBa0d>m618;>>*^gbF*P$MTUZ`Hanixj$=Su#$Jft4ATTI6A~NcH z^o5w%q{~;5Q?907qi5dA%D#Q)ZqB`;`wxnl4@*ibA6He^)YjEMX>Duo=;U^F^9J~X zL&JiR(Xsa*K2Ci4{AE%&HNUX9w7jzVeQg~CfdA%f?Y}|);X!P9#2^qb1p223Bo@6j zU<5>bpQZ%T$PVg7-K9iGltdY46mnW%`?c)9p}o)b!)36<_sa8slKv9?cc4rEm*^kR zKOWH-APoj>6$VBC$AD!&?|KEJDg04)jyu`3u`1}Y6*gcsy`S2JdqoSethopaD@5Ne z7t*I418ivTUfr)FJSqN+zp0a$(TzPv(ahP%gdS&E+Z;LhrnY}&S_D8=NPRV5pXBW# zpzmfm>vXCr#5k_XwRA)p$jqy4%H-zEN~NmJo(MN;R%bv@{ge~|%T7#OYmcgRV|O$@ zkEP8k+{my1&sR8gdWcsIR29YtM1{Y=xt*-dXdLp6!=FCAJ(gCFUN={{;<}W3q~HGf zWEe%yy52{QN0?pqOtD%IjF$IjhL$^%;{re3yBUyiX-7EOTXln)yp~&2FclwvC8joM z`GCGU^(m0tG$3NtRt=_j2kSE_WO!*mSOYve`^G zISP`NzA@a_BZGZn;F%@4@Ns1-p*SbIvhKB^>E?#(+f3or$k&B$T@h-`1}AY(Y9 z-MGlU{57l6Ray9Hg05v3Vlhc7au5O8rEh1GoR7S{zQl%GVRC*CdgDCmIHn(_e`(K% zU+ktk-kXdtUC;?H;Bc!iTujf4oPRnumJrY$XE|AF8%|0**88+qrp*LFi(*7FcjIwo zqpq_*m-(B3@Q0=O4ek2eiuHJ|-Qmu-l!%EyT=!Syrx^>Rb@atjZq|O-|50Q zI`mP`Z*$DoHbE0TVf(Sy3>HK{UP9K42WnUZ)GS@e5&;74LKjH{^ewSF>#oD>b7M}1 z-BlTGVsqvM%_oaem<~rf9xQ}ZLrZjyX$?DG^ZTlT7xuG&|$)>}wMrmKfS z)iu78r8Y@BY^H{A2kHCTnWmxD-6xm~F_?C#Z=l6-0snMZK3`DNMZfQ`~=qr%_@hMM0#o8$!#}8JV7N_g!l> zp`Pl=N{ry)h$v#eneyD3^$q(3PwY*h80-`okqX|)p;KB$e3v^S6Ql(v%!lBVSD|0l zoHJYVJ;OF1l|N_8O>MPBEuQSElWw*0mo|J~-$ja8D#!P@#@$aJ7~t(mq1Kty?X}nC z(ZerH=eIVQ$Hbqq#ss^)S)AJ>^Pg+dlv0Mu?5OFiNPhJ*#c9q`q!yPLg7w3iyiD3e zAE|=QnYN9)ZJ7NwS9F2v(tpVG=3e^F*PU1%VW#im+2zTciybWanVFAuRgE<4oZy6W%p_f7{a($3wq>C9!Q!mi=p^6$~B0<}aRYY@vr9#rv zzoPt}65<5f6qOa*$P)gkYt!W7Ret4pn^;UF)%F3t(;#>*R0Nm{Dwr=8kG5mU#;nXN zuS-n0<{DDf%K6r*Hn}rD+lA@(F*k&3f`QVE^p<<(jz4%#EFBw_&Ud@rER>r+xhksx k8+sV{9V)U!$~f<-ee6b+U?TEja5cX7*p2wjMbYTL03O*b)&Kwi literal 0 HcmV?d00001