new file mode 100644
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
new file mode 100644
@@ -0,0 +1,22 @@
+"Mixin" layer for adding latest nodejs-18.x into the Yocto Project LTS.
+
+At the time Kirkstone was released in May 2022, nodejs v16 was the latest
+version and officially it's the only nodejs version supported by Kirkstone.
+Kirkstone will be supported until April 2026 but nodejs-16 is EOL as of October
+2023, making it unsuitable for projects during the lifetimg of Kirkstone.
+
+This mixin layer is meant to address this issue by backporting nodejs-18 and
+nodejs-20 versions from the mickledore and master branches of meta-openembedded,
+respectively.
+
+The actual versions of nodejs that are available can be found by inspecting the
+contents of recipes-devtools/nodejs.
+
+Including the layer automatically picks up the latest nodejs version; different
+versions must be set explicitly by adding the following line to your distro
+config or local.conf:
+
+NODE_VERSION = "20%"
+
+Maintainers:
+António Oliveira <antonio@amsobr.com>
new file mode 100644
@@ -0,0 +1,15 @@
+# We have a conf and classes directory, append to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have a recipes directory, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "lts-nodejs-mixin"
+BBFILE_PATTERN_lts-nodejs-mixin := "^${LAYERDIR}/"
+BBFILE_PRIORITY_lts-nodejs-mixin = "6"
+
+LAYERSERIES_COMPAT_lts-nodejs-mixin = "kirkstone"
+
+LAYERDEPENDS_lts-nodejs-mixin = " \
+ core \
+"