[{"data":1,"prerenderedAt":20},["ShallowReactive",2],{"$fs4XM6Z2hcmBeXyDh_m0kWCWazOVwwubgyT54v0o2REU":3},{"analytics":4,"html":10,"issueId":11,"issueNumber":12,"ogImage":13,"publishedAt":16,"title":17,"url":18,"version":19},{"clickRate":5,"clicks":6,"openRate":7,"sent":8,"views":9},10,409,45,3911,1776,"\u003C!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\u003Chtml lang=\"en\" dir=\"ltr\">\n\n  \u003Chead>\n    \u003Cmeta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n    \u003Cmeta name=\"x-apple-disable-message-reformatting\" />\n  \u003C/head>\n  \u003Ctitle>Weekly Vue News #174 - Nuxt's Built-In Storage\u003C/title>\n  \u003Cdiv style=\"display:none;overflow:hidden;line-height:1px;opacity:0;max-height:0;max-width:0;\">Ready for your weekly Vue & Nuxt dose?\u003Cdiv> ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿ ‌​‍‎‏﻿\u003C/div>\n  \u003C/div>\n\n  \u003Cbody class=\"mx-auto my-auto w-full bg-white font-sans\" style=\"margin-left: auto;\n    margin-right: auto; margin-top: auto;\n    margin-bottom: auto; width: 100%; background-color: rgb(255,255,255); font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica Neue&quot;, Arial, &quot;Noto Sans&quot;, sans-serif, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Noto Color Emoji&quot;;\">\n    \u003Ctable align=\"center\" width=\"100%\" role=\"presentation\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"max-width:37.5em; margin-left: auto;\n    margin-right: auto; margin-top: 40px;\n    margin-bottom: 40px; width: 100%; max-width: 650px; padding: 20px;\" class=\"md:p-7\">\n      \u003Ctbody>\n        \u003Ctr style=\"width: 100%\">\n          \u003Ctd>\n            \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" class=\"mt-4\" style=\"margin-top: 1rem;\">\n              \u003Ctbody>\n                \u003Ctr>\n                  \u003Ctd>\u003Cimg style=\"display:block;outline:none;border:none;text-decoration:none; margin-left: auto;\n    margin-right: auto; margin-top: 0px;\n    margin-bottom: 0px;\" src=\"https://mokkapps.twic.pics/weekly-vue.news/logo-with-text.png?twic=v1/cover=200\" width=\"114\" class=\"mx-auto my-0\" />\u003C/td>\n                \u003C/tr>\n              \u003C/tbody>\n            \u003C/table>\n            \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" class=\"mt-4 text-center\" style=\"margin-top: 1rem; text-align: center;\">\n              \u003Ctbody>\n                \u003Ctr>\n                  \u003Ctd>\n                    \u003Ch2 style=\"margin-bottom: 0.75rem; margin-top: 1rem;\" class=\"mb-3 mt-4\">Weekly Vue News #174\u003C/h2>\n                    \u003Ch1 style=\"margin-top: 0.5rem;\" class=\"mt-2\">Weekly Vue News #174 - Nuxt's Built-In Storage\u003C/h1>\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0px;\n    margin-bottom: 0px; text-align: center;\" class=\"my-0 text-center\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 12px; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://weekly-vue.news/issues/v2/138\" target=\"_blank\" class=\"hover:text-[#35495E]\">View online \u003C/a>\u003C/p>\n                  \u003C/td>\n                \u003C/tr>\n              \u003C/tbody>\n            \u003C/table>\n            \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" class=\"mt-4\" style=\"margin-top: 1rem;\">\n              \u003Ctbody>\n                \u003Ctr>\n                  \u003Ctd>\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px;\" class=\"mt-2 text-[16px]\">Hi 👋\u003C/p>\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px;\" class=\"mt-2 text-[16px]\">I hope you all enjoyed Black Week and snagged some great deals! 🎉 \u003C/p>\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px;\" class=\"mt-2 text-[16px]\">I grabbed \u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://www.founderstack.pro/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">FounderStack\u003C/a> and have been busy integrating \u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://www.aidbase.ai/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">Aidbase\u003C/a> into \u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://codesnap.dev@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">CodeSnap\u003C/a>. Plus, I added an \u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://mokkapps.de/chat@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">AI-powered avatar\u003C/a> to my portfolio website — lots of fun updates!\u003C/p>\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px;\" class=\"mt-2 text-[16px]\"> In this issue, as always, I've got some great tips and resources for you.\u003C/p>\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px;\" class=\"mt-2 text-[16px]\">Enjoy this issue and have a lovely week ☀️\u003C/p>\n                    \u003Ch2 style=\"margin-bottom: 0px; margin-top: 2.5rem; font-size: 24px;\" class=\"mb-0 mt-10 text-[24px]\">\u003Csvg style=\"height:25px;width:25px;\" viewbox=\"0 0 128 128\">\n                        \u003Cpath d=\"M0 8.934l49.854.158 14.167 24.47 14.432-24.47L128 8.935l-63.834 110.14zm126.98.637l-24.36.02-38.476 66.053L25.691 9.592.942 9.572l63.211 107.89zm-25.149-.008l-22.745.168-15.053 24.647L49.216 9.73l-22.794-.168 37.731 64.476zm-75.834-.17l23.002.009m-23.002-.01l23.002.01\" fill=\"none\" />\n                        \u003Cpath d=\"M25.997 9.393l23.002.009L64.035 34.36 79.018 9.404 102 9.398 64.15 75.053z\" fill=\"#35495e\" />\n                        \u003Cpath d=\"M.91 9.569l25.067-.172 38.15 65.659L101.98 9.401l25.11.026-62.966 108.06z\" fill=\"#41b883\" />\n                      \u003C/svg> Vue \u003C/h2>\n                    \u003Chr style=\"width:100%;border:none;border-top:1px solid #eaeaea; margin-bottom: 1rem; border-top-width: 4px;\" class=\"mb-4 border-t-4\" />\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://docs.google.com/forms/d/e/1FAIpQLSc6QQQ14ZuE4akaTZAkqOAMUSGjXVjKS-KuVu2eZ448jzK1Nw/viewform@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">📝 The State of Vue.js 2025 Survey\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 The Developer Survey for the upcoming The State of Vue.js Report 2025 is now live.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 It's a unique chance to contribute to the Vue community by sharing experiences and challenges when using Vue and Nuxt.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://alexop.dev/posts/sqlite-vue3-offline-first-web-apps-guide/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">📕 How to Use SQLite in Vue 3: Complete Guide to Offline-First Web Apps\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 Want to build web apps that work offline? \u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 While browsers have built-in storage options like IndexedDB, they’re not great for complex data operations.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 This guide shows you how to use SQLite with Vue 3 to build powerful offline-first apps.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://blog.dailysandbox.pro/how-to-set-up-a-vue-3-frontend-node-js-api-and-a-high-performance-websocket-server-in-docker/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">📕 How to Set Up a Vue 3 Frontend, Node.js API, and a High-Performance WebSocket Server in Docker\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 Learn how to set up a modern, containerized setup with Vue 3, a Node.js API server, and a lightning-fast WebSocket server using uWebSockets.js.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://olets.dev/posts/migrate-from-vuepress-to-vitepress/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">📕 Migrating from VuePress to VitePress\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 VuePress and VitePress are Vue-based static site generators which take Markdown content and export performant multipage sites.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 VitePress is supported by the Vue.js team, and VuePress is supported by the community.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://www.youtube.com/watch?v=aK6nyTn1t4s@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">📹 DejaVue #E035 - Error Handling in Vue \u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 Join Michael and Alex on a discussion of the different ways one can handle errors in Vue applications.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 That includes not always showing an error page, but also handling errors request-based or component-based.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://motion.dev/docs/vue@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">🛠️ Vue Motion\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 There's currently no dedicated Motion library for Vue.js but it's already possible to use Motion with Vue\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 The guide is available In early access and only available for Motion+ members, which is a paid service.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://simonwep.github.io/selection/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">🛠️ Viselect\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 If you’ve got a variety of elements and you want users to be able to select them in groups, individually, or even in multiple groups, this lets you offer that functionality easily. \u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 Can be used in a vanilla fashion or with integrations for P/React or Vue.js.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ch2 style=\"margin-bottom: 0px; margin-top: 2.5rem; font-size: 24px;\" class=\"mb-0 mt-10 text-[24px]\">\u003Csvg style=\"height:25px;width:25px;\" viewbox=\"0 0 900 900\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                        \u003Cpath d=\"M504.908 750H839.476C850.103 750.001 860.542 747.229 869.745 741.963C878.948 736.696 886.589 729.121 891.9 719.999C897.211 710.876 900.005 700.529 900 689.997C899.995 679.465 897.193 669.12 891.873 660.002L667.187 274.289C661.876 265.169 654.237 257.595 645.036 252.329C635.835 247.064 625.398 244.291 614.773 244.291C604.149 244.291 593.711 247.064 584.511 252.329C575.31 257.595 567.67 265.169 562.36 274.289L504.908 372.979L392.581 179.993C387.266 170.874 379.623 163.301 370.42 158.036C361.216 152.772 350.777 150 340.151 150C329.525 150 319.086 152.772 309.883 158.036C300.679 163.301 293.036 170.874 287.721 179.993L8.12649 660.002C2.80743 669.12 0.00462935 679.465 5.72978e-06 689.997C-0.00461789 700.529 2.78909 710.876 8.10015 719.999C13.4112 729.121 21.0523 736.696 30.255 741.963C39.4576 747.229 49.8973 750.001 60.524 750H270.538C353.748 750 415.112 713.775 457.336 643.101L559.849 467.145L614.757 372.979L779.547 655.834H559.849L504.908 750ZM267.114 655.737L120.551 655.704L340.249 278.586L449.87 467.145L376.474 593.175C348.433 639.03 316.577 655.737 267.114 655.737Z\" fill=\"#00DC82\" />\n                      \u003C/svg> Nuxt \u003C/h2>\n                    \u003Chr style=\"width:100%;border:none;border-top:1px solid #eaeaea; margin-bottom: 1rem; border-top-width: 4px;\" class=\"mb-4 border-t-4\" />\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://nuxtseo.com/announcement@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">📕 Announcing Nuxt SEO Stable\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 Announcing Nuxt SEO v2: The all-in-one technical SEO solution for Nuxt. \u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 6 modules: Robots, Sitemap, OG image, Schema․org, Link checker, plus SEO Utils.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 2 years of improvements: 884 issues closed & 4.8K commits.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 Brand new docs.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://www.netlify.com/blog/platform-primitives-with-nuxt-4/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">📕 Using Netlify's platform primitives is easier than ever with Nuxt 4\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 Nuxt takes a thoughtful approach to introducing new features over time.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 Tinkering with Nuxt 4 requires only a couple of lines of configuration. \u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 And you can already deploy Nuxt 4 sites on Netlify. \u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ch2 style=\"margin-bottom: 0px; margin-top: 2.5rem; font-size: 24px;\" class=\"mb-0 mt-10 text-[24px]\">💡 Nuxt's Built-In Storage\u003C/h2>\n                    \u003Chr style=\"width:100%;border:none;border-top:1px solid #eaeaea; margin-bottom: 1rem; border-top-width: 4px;\" class=\"mb-4 border-t-4\" />\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px;\" class=\"mt-2 text-[16px]\"> Nuxt has a built-in storage solution powered by \u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://nitro.build/guide/storage@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">Nitro\u003C/a> : \u003C/p>\u003Cpre class=\"shiki poimandres\" style=\"background-color:#1b1e28;display:block;white-space:pre;font-family:monospace;padding:10px;border-radius:5px;max-width:80vw;overflow:auto;\" tabindex=\"0\">\u003Cspan>\u003Cpre class=\"shiki poimandres\" style=\"background-color:#1b1e28;color:#a6accd\" tabindex=\"0\">\u003Ccode style=\"display: table; width: 100%;\">\u003Cspan class=\"line\" style=\"display: table-row; line-height: 1.5; height: 1.5em;\">\u003Cspan class=\"line-number\" style=\"padding-left: 5px; padding-right: 15px; color: #636E7B; user-select: none;\">1\u003C/span>\u003Cspan style=\"color:#767C9DB0;font-style:italic\">// Default storage is in memory\u003C/span>\u003C/span>\n\u003Cspan class=\"line\" style=\"display: table-row; line-height: 1.5; height: 1.5em;\">\u003Cspan class=\"line-number\" style=\"padding-left: 5px; padding-right: 15px; color: #636E7B; user-select: none;\">2\u003C/span>\u003Cspan style=\"color:#5DE4C7C0\">await\u003C/span>\u003Cspan style=\"color:#E4F0FBD0\"> useStorage\u003C/span>\u003Cspan style=\"color:#A6ACCD\">().\u003C/span>\u003Cspan style=\"color:#E4F0FBD0\">setItem\u003C/span>\u003Cspan style=\"color:#A6ACCD\">(\u003C/span>\u003Cspan style=\"color:#A6ACCD\">'\u003C/span>\u003Cspan style=\"color:#5DE4C7\">test:foo\u003C/span>\u003Cspan style=\"color:#A6ACCD\">'\u003C/span>\u003Cspan style=\"color:#A6ACCD\">, {\u003C/span>\u003Cspan style=\"color:#ADD7FF\"> hello\u003C/span>\u003Cspan style=\"color:#A6ACCD\">:\u003C/span>\u003Cspan style=\"color:#A6ACCD\"> '\u003C/span>\u003Cspan style=\"color:#5DE4C7\">world\u003C/span>\u003Cspan style=\"color:#A6ACCD\">'\u003C/span>\u003Cspan style=\"color:#A6ACCD\"> })\u003C/span>\u003C/span>\n\u003Cspan class=\"line\" style=\"display: table-row; line-height: 1.5; height: 1.5em;\">\u003Cspan class=\"line-number\" style=\"padding-left: 5px; padding-right: 15px; color: #636E7B; user-select: none;\">3\u003C/span>\u003Cspan style=\"color:#5DE4C7C0\">await\u003C/span>\u003Cspan style=\"color:#E4F0FBD0\"> useStorage\u003C/span>\u003Cspan style=\"color:#A6ACCD\">().\u003C/span>\u003Cspan style=\"color:#E4F0FBD0\">getItem\u003C/span>\u003Cspan style=\"color:#A6ACCD\">(\u003C/span>\u003Cspan style=\"color:#A6ACCD\">'\u003C/span>\u003Cspan style=\"color:#5DE4C7\">test:foo\u003C/span>\u003Cspan style=\"color:#A6ACCD\">'\u003C/span>\u003Cspan style=\"color:#A6ACCD\">)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003C/span>\u003C/pre>\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px;\" class=\"mt-2 text-[16px]\"> Nitro itself uses \u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://unstorage.unjs.io/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">unjs/unstorage \u003C/a> to provide a runtime agnostic persistent layer. \u003C/p>\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px;\" class=\"mt-2 text-[16px]\"> It's not a replacement for a robust database, but it's great for temporary data or as a caching layer. \u003C/p>\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px;\" class=\"mt-2 text-[16px]\"> This just scratches the surface. Learn more about the \u003Ccode class=\"cino\" style=\"background-color: rgb(240,240,240); color: rgb(53,73,94); padding-left: 0.25rem;\n    padding-right: 0.25rem; border-radius: 0.25rem;\">unjs/unstorage\u003C/code>\u003Cspan class=\"cio\" style=\"display:none; background-color: rgb(240,240,240); color: rgb(53,73,94); padding-left: 0.25rem;\n    padding-right: 0.25rem; border-radius: 0.25rem;\">unjs/unstorage\u003C/span> package that powers this: \u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://unstorage.unjs.io/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">unjs/unstorage \u003C/a>\u003C/p>\n                    \u003Ch2 style=\"margin-bottom: 0px; margin-top: 2.5rem; font-size: 24px;\" class=\"mb-0 mt-10 text-[24px]\">📅 Events\u003C/h2>\n                    \u003Chr style=\"width:100%;border:none;border-top:1px solid #eaeaea; margin-bottom: 1rem; border-top-width: 4px;\" class=\"mb-4 border-t-4\" />\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 0.25rem;\" class=\"mb-1 mt-1\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 16px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://vuejsnation.com/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">Vue.js Nation Conference\u003C/a> (29 - 30 January 2025, free online conference) \u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 0.25rem;\" class=\"mb-1 mt-1\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 16px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://vuejs.amsterdam/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">Vuejs Amsterdam\u003C/a> (12 - 13 March 2025, Amsterdam, Netherlands) \u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 0.25rem;\" class=\"mb-1 mt-1\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 16px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://vueconf.us/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">Vueconf.US\u003C/a> (13 - 15 May 2025, Tampa, Florida) \u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ch2 style=\"margin-bottom: 0px; margin-top: 2.5rem; font-size: 24px;\" class=\"mb-0 mt-10 text-[24px]\">💬 Quote of the week\u003C/h2>\n                    \u003Chr style=\"width:100%;border:none;border-top:1px solid #eaeaea; margin-bottom: 1rem; border-top-width: 4px;\" class=\"mb-4 border-t-4\" />\u003Cimg style=\"display:block;outline:none;border:none;text-decoration:none; border-radius: 0.375rem; margin-top: 1rem;\n    margin-bottom: 1rem; width: 100%; max-width: 600px;\" src=\"https://mokkapps.twic.pics/weekly-vue.news/issues/v2/138/quote.png?twic=v1/cover=600\" alt=\"Quote of the week\" class=\"rounded-md my-4 w-full max-w-[600px]\" />\n                    \u003Ch2 style=\"margin-bottom: 0px; margin-top: 2.5rem; font-size: 24px;\" class=\"mb-0 mt-10 text-[24px]\">🧑🏻‍💻 In Other News\u003C/h2>\n                    \u003Chr style=\"width:100%;border:none;border-top:1px solid #eaeaea; margin-bottom: 1rem; border-top-width: 4px;\" class=\"mb-4 border-t-4\" />\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://jvns.ca/blog/2024/11/18/how-to-import-a-javascript-library/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">📕 Importing a frontend Javascript library without a build system\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 Julia Evans explores how to import a JS library when taking a no-build-system approach.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://screencasting.com/cheap-video-hosting@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">📕 Delivering 15TB of 4K video with Cloudflare R2 for $2.18 \u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻Video hosting can be expensive, and there are a lot of providers to choose from. \u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 In this article, screencasting.com details how they use Cloudflare to host 15TB of video for only $2.18 a month.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://vite.dev/blog/announcing-vite6.html@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">🛠️ Vite 6\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 Vite 6 is the most significant major release since Vite 2. \u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://github.com/evanwashere/mitata@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">🛠️ mitata\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 For microbenchmarks, mitata is a great general-purpose tool.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 1.5rem;\" class=\"mb-1 mt-6\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 18px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://vercel.com/blog/ai-sdk-4-0@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">🛠️ AI SDK 4.0\u003C/a>\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻 Vercel's AI SDK is an open-source JavaScript/TypeScript toolkit for building AI applications.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.25rem; margin-bottom: 0px; font-size: 16px;\" class=\"mt-1 mb-0 text-[16px]\">👉🏻This release adds PDF support for document analysis across multiple providers and more.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ch2 style=\"margin-bottom: 0px; margin-top: 2.5rem; font-size: 24px;\" class=\"mb-0 mt-10 text-[24px]\">😂 Fun\u003C/h2>\n                    \u003Chr style=\"width:100%;border:none;border-top:1px solid #eaeaea; margin-bottom: 1rem; border-top-width: 4px;\" class=\"mb-4 border-t-4\" />\u003Cimg style=\"display:block;outline:none;border:none;text-decoration:none; border-radius: 0.375rem; margin-top: 1rem;\n    margin-bottom: 1rem; width: 100%; max-width: 600px;\" src=\"https://mokkapps.twic.pics/weekly-vue.news/issues/v2/138/fun.png?twic=v1/cover=600\" alt=\"Programmer Humor\" class=\"rounded-md my-4 w-full max-w-[600px]\" />\n                    \u003Ch2 style=\"margin-bottom: 0px; margin-top: 2.5rem; font-size: 24px;\" class=\"mb-0 mt-10 text-[24px]\">🔗 Want more Vue & Nuxt content?\u003C/h2>\n                    \u003Chr style=\"width:100%;border:none;border-top:1px solid #eaeaea; margin-bottom: 1rem; border-top-width: 4px;\" class=\"mb-4 border-t-4\" />\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 0.25rem; margin-left: 2rem; display: list-item;\" class=\"mb-1 mt-1 ml-8 list-item\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 16px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://michaelnthiessen.com/newsletter@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">More Exclusive Vue Tips\u003C/a>: Join Michael Thiessen's newsletter and get great Vue tips and insights delivered to your inbox each\n                            week.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 0.25rem; margin-left: 2rem; display: list-item;\" class=\"mb-1 mt-1 ml-8 list-item\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 16px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://www.youtube.com/@TheAlexLichter@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">Weekly Vue & Nuxt Videos\u003C/a>: You must subscribe Alexander Lichter's YouTube channel if you are interested in Vue & Nuxt.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody style=\"width:100%;\">\n                        \u003Ctr style=\"width:100%;\">\n                          \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.25rem; margin-top: 0.25rem; margin-left: 2rem; display: list-item;\" class=\"mb-1 mt-1 ml-8 list-item\">\u003Ca style=\"color:#067df7;text-decoration:none; font-size: 16px; color: rgb(66,184,131); text-decoration-thickness: 1px; text-decoration-line: underline; text-underline-offset: 6px; line-height: 1.625;\" href=\"https://dejavue.fm/@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">DejaVue Podcast\u003C/a>: A weekly podcast about Vue.js and the ecosystem around it.\u003C/p>\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                    \u003Chr style=\"width:100%;border:none;border-top:1px solid #eaeaea; margin-top: 1.5rem;\n    margin-bottom: 1.5rem;\" class=\"my-6\" />\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px;\" class=\"mt-2 text-[16px]\">Comments? Join the discussion about this issue in our \u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://discord.gg/AWxF7cq3Qj@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">Discord community\u003C/a>.\u003C/p>\n                    \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px;\" class=\"mt-2 text-[16px]\">Until next week,\u003C/p>\n                    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                      \u003Ctbody>\n                        \u003Ctr>\n                          \u003Ctd />\n                          \u003Ctd role=\"presentation\">\u003Cimg style=\"display:block;outline:none;border:none;text-decoration:none; height: 3rem; width: 3rem; border-radius: 9999px;\" src=\"https://mokkapps.twic.pics/weekly-vue.news/2024-profile-pic-2.png?twic=v1/cover=200\" class=\"h-12 w-12 rounded-full\" />\u003C/td>\n                          \u003Ctd role=\"presentation\">\n                            \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0;\">\u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://mokkapps.de@TrackLink\" target=\"_blank\" class=\"hover:text-[#35495E]\">Michael Hoffmann\u003C/a> (Curator) \u003C/p>\n                          \u003C/td>\n                          \u003Ctd role=\"presentation\" class=\"w-1/3\" style=\"width: 33.333333%;\" />\n                        \u003C/tr>\n                      \u003C/tbody>\n                    \u003C/table>\n                  \u003C/td>\n                \u003C/tr>\n              \u003C/tbody>\n            \u003C/table>\n            \u003Chr style=\"width:100%;border:none;border-top:1px solid #eaeaea; margin-top: 0.75rem;\n    margin-bottom: 0.75rem;\" class=\"my-3\" />\n            \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px; font-weight: 700;\" class=\"mt-2 text-[16px] font-bold\">To support me: \u003C/p>\n            \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n              \u003Ctbody style=\"width:100%;\">\n                \u003Ctr style=\"width:100%;\">\n                  \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px; margin-left: 2rem; display: list-item;\" class=\"mt-2 text-[16px] ml-8 list-item\">😘 Recommend the newsletter to your friends: it really helps!\u003C/p>\n                  \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px; margin-left: 2rem; display: list-item;\" class=\"mt-2 text-[16px] ml-8 list-item\">💸 \u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://weekly-vue.news/sponsor\" target=\"_blank\" class=\"hover:text-[#35495E]\">Sponsor\u003C/a> this newsletter\u003C/p>\n                  \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px; margin-left: 2rem; display: list-item;\" class=\"mt-2 text-[16px] ml-8 list-item\">🦋 \u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"https://bsky.app/profile/weekly-vue.news\" target=\"_blank\" class=\"hover:text-[#35495E]\">Repost\u003C/a> the latest BlueSky post\u003C/p>\n                  \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0.5rem; font-size: 16px; margin-left: 2rem; display: list-item;\" class=\"mt-2 text-[16px] ml-8 list-item\">📨 Reply to this email: feedback is welcome\u003C/p>\n                  \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; font-size: 12px; font-style: italic; color: rgb(112,106,123);\" class=\"text-[12px] italic text-[#706a7b]\"> * Some of my links are affiliate links; if you make a purchase, I gain a small percentage at no extra cost. Thank you for supporting my newsletter. \u003C/p>\n                \u003C/tr>\n              \u003C/tbody>\n            \u003C/table>\n            \u003Chr style=\"width:100%;border:none;border-top:1px solid #eaeaea; margin-top: 0.75rem;\n    margin-bottom: 0.75rem;\" class=\"my-3\" />\n          \u003C/td>\n        \u003C/tr>\n      \u003C/tbody>\n    \u003C/table>\n    \u003Ctable align=\"center\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n      \u003Ctbody>\n        \u003Ctr>\n          \u003Ctd>\n            \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-bottom: 0.5rem; text-align: center; color: rgb(112,106,123); font-size: 12px;\" class=\"mb-2 text-center text-[#706a7b] text-[12px]\">\u003Ca style=\"color:#067df7;text-decoration:none; color: rgb(66,184,131); text-decoration-line: underline; text-decoration-thickness: 1px;\" href=\"{{ UnsubscribeURL }}\" target=\"_blank\" class=\"hover:text-[#35495E]\">Unsubscribe \u003C/a>\u003C/p>\n            \u003Cp style=\"font-size:14px;line-height:24px;margin:16px 0; margin-top: 0px; text-align: center; color: rgb(112,106,123); font-size: 12px;\" class=\"mt-0 text-center text-[#706a7b] text-[12px]\"> Holzapfelkreuther Str. 19, 81375 Munich, Germany \u003C/p> {{ TrackView }}\n          \u003C/td>\n        \u003C/tr>\n      \u003C/tbody>\n    \u003C/table>\n  \u003C/body>\n\n\u003C/html>",138,174,{"absoluteUrl":14,"relativeUrl":15},"https://mokkapps.twic.pics/weekly-vue.news/issues/v2/138/og.png","/issues/v2/138/og.png","2024-12-02T14:00:00Z","Weekly Vue News #174 - Nuxt's Built-In Storage","/issues/v2/138",2,1794479153312]