[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"contentNavigation":3,"newsletter-stats":4,"$fQa3xUpnRDPNiFFu2QS4K-DAjYmsapeR9fNhPNBdpkOc":-1,"topic-security":6,"articles-feed-\u002Ftopics\u002Fsecurity-1-security-":11,"home-tags":99},[],{"confirmedCount":5},405,{"articleCount":7,"color":8,"id":9,"name":10,"slug":10},4,"#10b981","019dcdf3-fc84-73aa-a0be-6b7196c5a2e9","security",{"items":12,"page":97,"pageSize":98,"totalCount":7},[13,38,62,77],{"content":14,"createdAt":15,"id":16,"image":17,"isAffiliate":18,"isPublished":19,"publishedAt":20,"slug":21,"sourceId":22,"sourceName":23,"sourceType":24,"summary":25,"title":26,"updatedAt":27,"url":28,"urlHash":29,"tags":30},"Nuxt 4.5.1 and 3.21.10 are out now, fixing several security issues, alongside a critical fix in @nuxt\u002Fdevtools 3.3.1. We recommend upgrading as soon as possible.","2026-07-27T18:00:06.425Z","019fa4bb-e96b-7390-9dd8-103110495e6a","https:\u002F\u002Fnuxt.com\u002Fassets\u002Fblog\u002Fv4.5.1.png",false,true,"2026-07-27T00:00:00.000Z","nuxt-security-patch-releases","019d6c1a-e19c-736e-b489-240be1c0d29a","Nuxt Blog","rss","Nuxt has released security patches in versions 4.5.1 and 3.21.10, addressing multiple security vulnerabilities. Additionally, a critical fix has been made in @nuxt\u002Fdevtools 3.3.1, and users are advised to upgrade promptly.","Nuxt Security Patch Releases","2026-07-27T18:00:28.293Z","https:\u002F\u002Fnuxt.com\u002Fblog\u002Fv4-5-security","5318bf90e66f150f5a94e0899128c5a7f62763d5f48bbe98b941376204bd9b15",[31,34,35],{"color":8,"id":32,"name":33,"slug":33},"019d6bd8-fad3-70a9-a74d-ab96e3a2f45d","nuxt",{"color":8,"id":9,"name":10,"slug":10},{"color":8,"id":36,"name":37,"slug":37},"019d9d20-dfb9-7041-9973-39c545b33a2d","release",{"content":39,"createdAt":40,"id":41,"image":42,"isAffiliate":18,"isPublished":19,"publishedAt":43,"slug":44,"sourceId":45,"sourceName":46,"sourceType":47,"summary":48,"title":49,"updatedAt":50,"url":51,"urlHash":52,"tags":53},"Tree-shaking is widely regarded as a performance optimization technique in the Vue and Nuxt ecosystem—but have you ever ...","2026-05-01T12:00:08.125Z","019de369-15ab-754a-8e04-da461cb7068b","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FYXG514QueOc\u002Fhqdefault.jpg","2026-05-01T10:00:06.000Z","serko-vincent-ngai---when-tree-shaking-fails-security-risks-in-nuxt-amp-vue","019d9ce0-e8f2-774a-ba57-a61c19469fe1","Vuejs Amsterdam","youtube","The article discusses the security risks associated with tree shaking in the Vue and Nuxt frameworks, highlighting potential vulnerabilities that can arise when this optimization technique fails. It emphasizes the importance of understanding these risks to maintain secure applications.","SerKo Vincent Ngai - When Tree Shaking Fails: Security Risks in Nuxt &amp; Vue","2026-05-01T12:00:16.190Z","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=YXG514QueOc","305f1c090af38f6fa7ea715fff88cec084c05ba031f23220f80d6639a9a0f86a",[54,55,58,59],{"color":8,"id":32,"name":33,"slug":33},{"color":8,"id":56,"name":57,"slug":57},"019d6bd8-c9a8-7783-bd22-03145b355427","vue",{"color":8,"id":9,"name":10,"slug":10},{"color":8,"id":60,"name":61,"slug":61},"019d6bd8-ca26-775c-b9b5-c3439dbe5789","performance",{"content":63,"createdAt":64,"id":65,"image":66,"isAffiliate":18,"isPublished":19,"publishedAt":67,"slug":68,"sourceId":45,"sourceName":46,"sourceType":47,"summary":69,"title":70,"updatedAt":71,"url":72,"urlHash":73,"tags":74},"For many developers, learning about security in Vue can sound intimidating or boring. This session is designed to flip that ...","2026-04-29T12:00:01.783Z","019dd91c-44e3-71bc-8fb7-b1a6f1b7e5d0","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002Fy752-F2vWvk\u002Fhqdefault.jpg","2026-04-29T10:00:06.000Z","ramona-schwering-vue-tiful-defense-let39s-draw-security","This article discusses a session aimed at making security in Vue more engaging and accessible for developers. It emphasizes the importance of understanding security practices in Vue applications.","Ramona Schwering   Vue tiful Defense Let&#39;s draw Security","2026-04-29T12:00:12.310Z","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=y752-F2vWvk","52ac6b29860f72ca87b5c2c480e623dc245f8606ea2b094d4fbd10ce273c96b9",[75,76],{"color":8,"id":56,"name":57,"slug":57},{"color":8,"id":9,"name":10,"slug":10},{"content":78,"createdAt":79,"id":80,"image":81,"isAffiliate":18,"isPublished":19,"publishedAt":82,"slug":83,"sourceId":84,"sourceName":85,"sourceType":24,"summary":86,"title":87,"updatedAt":88,"url":89,"urlHash":90,"tags":91},"When building modern web applications, security is not optional. One of the most important protections you can add is a Content Security Policy (CSP). But here’s the catch: 👉 CSP often blocks inline scripts and styles — which can break your app. So how do you keep your app secure without disabling useful features? That’s where CSP nonce comes in - it allows you to safely execute inline code without opening security holes. In this article, we’ll explore: What CSP nonce is What problem it solves How to implement it How it works automatically in Nuxt with nuxt-security Best practices and common pitfalls Let’s dive in. 🤔 What Is CSP Nonce? A nonce (short for number used once) is a unique, random value generated for each request. It is used in CSP to explicitly allow trusted inline scripts or styles. Example: &lt;script nonce=\"abc123\"&gt; console.log('Secure inline script') &lt;\u002Fscript&gt; And in your HTTP headers: Content-Security-Policy: script-src 'nonce-abc123' The browser will only execute scripts that have a matching nonce. CSP nonce is a whitelist mechanism: Only scripts with the correct nonce are allowed Everything else is blocked The nonce changes on every request This makes it extremely effective against XSS (Cross-Site Scripting) attacks. CSP nonce is commonly used for: SSR frameworks - Injecting initial state, Hydration scripts Analytics \u002F tracking snippets - Inline scripts required by providers Critical inline scripts - Small scripts needed before app bootstraps 🟢 What Problem Does CSP Nonce Solve? Without nonce, you usually face a trade-off: ❌ Allow inline scripts (unsafe) Content-Security-Policy: script-src 'unsafe-inline' Problem: Opens the door to XSS attacks Any injected script can run ❌ Block inline scripts completely Content-Security-Policy: script-src 'self' Problem: breaks inline event handlers breaks injected scripts (SSR hydration, state) breaks some frameworks 🟢 How to Implement CSP Nonce The process is relatively simple but let's break it down and explain each step individually. Step 1: Generate a nonce per request Example (Node.js): import crypto from 'crypto' function generateNonce() { return crypto.randomBytes(16).toString('base64') } Step 2: Add it to response headers const nonce = generateNonce() res.setHeader( 'Content-Security-Policy', `script-src 'nonce-${nonce}'` ) Step 3: Inject it into your HTML &lt;script nonce=\"{{nonce}}\"&gt; window.__INITIAL_STATE__ = {} &lt;\u002Fscript&gt; ⚠️ Critical rule The nonce in the header and HTML must match exactly. Otherwise, script will be blocked and app may break silently. 🟢 CSP Nonce in Nuxt (with nuxt-security) If you’re using Nuxt, things get much easier thanks to nuxt-security module that can: Automatically generate nonce per request Inject it into CSP headers Attach it to scripts\u002Fstyles It makes it much easier to work with CSP nonces in Nuxt. Let's take a look at the following configuration: export default defineNuxtConfig({ modules: ['nuxt-security'], security: { headers: { contentSecurityPolicy: { 'script-src': [ \"'self'\", \"'nonce-{{nonce}}'\" ] } } } }) What happens automatically: Nuxt generates a nonce per request Replaces {{nonce}} in headers Applies nonce to inline scripts You don’t need to manually wire everything You can read more here: https:\u002F\u002Fnuxt-security.vercel.app\u002F 🟢 Common Mistakes Let's take a look at the list of common mistakes to understand what to look for: ❌ Reusing the same nonce - Nonce must be unique per request and cryptographically random ❌ Forgetting to apply nonce in HTML - if you only set CSP header the scripts will still be blocked ❌ Mixing nonce with unsafe-inline - script-src 'unsafe-inline' 'nonce-abc' ❌ Caching issues - if HTML is cached nonce may not match header 🧪 Best Practices Generate nonce per request Use secure randomness (crypto) Never reuse nonce Avoid unsafe-inline Use frameworks\u002Ftools (like nuxt-security) Test CSP in report-only mode first Monitor browser console for CSP violations 📖 Learn more If you would like to learn more about Vue, Nuxt, JavaScript or other useful technologies, checkout VueSchool by clicking this link or by clicking the image below: It covers most important concepts while building modern Vue or Nuxt applications that can help you in your daily work or side projects 😉 🧪 Advance skills A certification boosts your skills, builds credibility, and opens doors to new opportunities. Whether you're advancing your career or switching paths, it's a smart step toward success. Check out Certificates.dev by clicking this link or by clicking the image below: Invest in yourself—get certified in Vue.js, JavaScript, Nuxt, Angular, React, and more! ✅ Summary CSP nonce is a powerful mechanism that allows you to safely use inline scripts while maintaining strong security. In this article, you learned: What CSP nonce is and how it works What problem it solves (security vs flexibility) How to implement it step by step How Nuxt + nuxt-security handle it automatically Common mistakes and best practices Take care! And happy coding as always 🖥️","2026-04-27T08:00:05.007Z","019dcdf3-df7e-70dd-ba04-801be7e72c7d","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5bl1ap8ran4lh39r6v8.png","2026-04-27T06:46:57.000Z","how-to-safely-allow-inline-scripts-without-breaking-security-with-csp-nonce","019d6bd6-7fe0-7244-80dc-9a4e8751886a","Jakub Andrzejewski","This article discusses how to implement Content Security Policy (CSP) nonce to safely allow inline scripts in web applications without compromising security. It explains the challenges posed by CSP, particularly in SSR frameworks like Nuxt, and provides a step-by-step guide on generating and using nonces effectively, including how the nuxt-security module simplifies this process.","How to Safely Allow Inline Scripts Without Breaking Security with CSP Nonce","2026-06-10T14:35:13.934Z","https:\u002F\u002Fdev.to\u002Fjacobandrewsky\u002Fhow-to-safely-allow-inline-scripts-without-breaking-security-with-csp-nonce-3a2j","c7251f3ab53426399ca4e47e0e37b3c6cc6a18cf582be5d9d1521032441cb964",[92,93,94],{"color":8,"id":32,"name":33,"slug":33},{"color":8,"id":9,"name":10,"slug":10},{"color":8,"id":95,"name":96,"slug":96},"019d6bd8-ca89-735e-a52a-ee53a80a77a9","ssr",1,20,{"tags":100},[101,106,110,115,119,123,127,131,135,139,143,147,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,344,348,351,355,359,363,367,371,375,378,382,386,390,394,398,402,406,408,412,416,420,424,426,430,434,438,442,446,449,453,457,461,465,469,473,477,481,485,490,494,498,502,506,510,514,518,522,526,529,533,537,542],{"articleCount":102,"color":8,"createdAt":103,"id":104,"name":105,"slug":105,"updatedAt":103},0,"2026-04-30T04:19:02.605Z","019ddc9c-954c-7703-8288-76d562fec577","accelerator",{"articleCount":97,"color":8,"createdAt":107,"id":108,"name":109,"slug":109,"updatedAt":107},"2026-04-08T06:47:43.120Z","019d6bd8-caef-76b9-bacd-363e31e6d2a9","accessibility",{"articleCount":111,"color":8,"createdAt":112,"id":113,"name":114,"slug":114,"updatedAt":112},8,"2026-04-17T20:27:50.780Z","019d9d20-e07b-7685-9ebb-fae0b963f243","ai",{"articleCount":102,"color":8,"createdAt":116,"id":117,"name":118,"slug":118,"updatedAt":116},"2026-05-05T00:00:19.031Z","019df56f-8257-752e-a918-cdbb07c32b86","ai-agents",{"articleCount":97,"color":8,"createdAt":120,"id":121,"name":122,"slug":122,"updatedAt":120},"2026-06-01T12:00:14.713Z","019e830e-5378-722b-929b-a57d67bcf605","animation",{"articleCount":7,"color":8,"createdAt":124,"id":125,"name":126,"slug":126,"updatedAt":124},"2026-04-08T06:47:55.499Z","019d6bd8-fb46-77ef-a3b6-bd2d30ab8919","api",{"articleCount":111,"color":8,"createdAt":128,"id":129,"name":130,"slug":130,"updatedAt":128},"2026-04-17T19:35:19.300Z","019d9cf0-ca04-75bb-ad86-ce8da1c0be23","architecture",{"articleCount":102,"color":8,"createdAt":132,"id":133,"name":134,"slug":134,"updatedAt":132},"2026-04-23T12:00:11.615Z","019dba36-435e-765d-bfb2-c5be05362c27","astro",{"articleCount":102,"color":8,"createdAt":136,"id":137,"name":138,"slug":138,"updatedAt":136},"2026-06-01T20:00:15.958Z","019e84c5-cc55-7377-9e5d-77240ea8a880","authentication",{"articleCount":102,"color":8,"createdAt":140,"id":141,"name":142,"slug":142,"updatedAt":140},"2026-05-05T00:00:19.020Z","019df56f-824c-7031-9e34-2f47ad139eb6","automation",{"articleCount":102,"color":8,"createdAt":144,"id":145,"name":146,"slug":146,"updatedAt":144},"2026-06-11T16:00:12.019Z","019eb769-9af2-7471-b482-3f1a404f802e","azure",{"articleCount":148,"color":8,"createdAt":149,"id":150,"name":151,"slug":151,"updatedAt":149},2,"2026-04-17T20:27:50.776Z","019d9d20-e077-71cc-a605-8ac2a1566143","backend",{"articleCount":7,"color":8,"createdAt":153,"id":154,"name":155,"slug":155,"updatedAt":153},"2026-04-08T06:47:56.976Z","019d6bd9-010e-772d-b2f0-9378a042a676","best-practices",{"articleCount":102,"color":8,"createdAt":157,"id":158,"name":159,"slug":159,"updatedAt":157},"2026-06-06T00:00:11.711Z","019e9a3a-e5be-74b3-a01a-92c1f9427a2c","beta",{"articleCount":102,"color":8,"createdAt":161,"id":162,"name":163,"slug":163,"updatedAt":161},"2026-06-10T13:53:29.711Z","019eb1cf-3e6e-70f0-a761-0fb9b61d5675","budgeting",{"articleCount":97,"color":8,"createdAt":165,"id":166,"name":167,"slug":167,"updatedAt":165},"2026-06-16T16:11:31.438Z","019ed133-c4ee-70bb-8e21-7dc86e8adee4","bun",{"articleCount":102,"color":8,"createdAt":169,"id":170,"name":171,"slug":171,"updatedAt":169},"2026-05-19T20:00:14.559Z","019e41d3-1ade-77b0-9e4f-e9b97a6361ca","cdn",{"articleCount":97,"color":8,"createdAt":173,"id":174,"name":175,"slug":175,"updatedAt":173},"2026-06-27T16:00:12.237Z","019f09cf-5bcd-751c-8d46-9e123bd784af","clean-code",{"articleCount":97,"color":8,"createdAt":177,"id":178,"name":179,"slug":179,"updatedAt":177},"2026-05-16T18:48:40.777Z","019e321e-8248-75cc-9b69-59c2db6dd846","cli",{"articleCount":102,"color":8,"createdAt":181,"id":182,"name":183,"slug":183,"updatedAt":181},"2026-05-05T00:00:19.014Z","019df56f-8246-747f-be4b-a716863a93ea","cloud-platform",{"articleCount":97,"color":8,"createdAt":185,"id":186,"name":187,"slug":187,"updatedAt":185},"2026-06-16T16:11:31.289Z","019ed133-c458-74d8-a5c9-654f77837e7c","cloudflare",{"articleCount":97,"color":8,"createdAt":189,"id":190,"name":191,"slug":191,"updatedAt":189},"2026-07-27T18:11:45.304Z","019fa4c6-93c3-76ea-baa3-7d5fe541ac5b","cms",{"articleCount":97,"color":8,"createdAt":193,"id":194,"name":195,"slug":195,"updatedAt":193},"2026-04-30T04:19:02.045Z","019ddc9c-931c-743d-a1cb-e4449630fe47","collaboration",{"articleCount":97,"color":8,"createdAt":197,"id":198,"name":199,"slug":199,"updatedAt":197},"2026-06-10T13:53:29.567Z","019eb1cf-3dde-776d-9398-4863764f9ac3","community",{"articleCount":97,"color":8,"createdAt":201,"id":202,"name":203,"slug":203,"updatedAt":201},"2026-05-06T16:00:17.128Z","019dfe04-bee8-7384-bc58-a712f677807c","comparison",{"articleCount":97,"color":8,"createdAt":205,"id":206,"name":207,"slug":207,"updatedAt":205},"2026-05-14T12:00:21.354Z","019e265b-f569-71d8-a02a-a17ec8180644","component-design",{"articleCount":97,"color":8,"createdAt":209,"id":210,"name":211,"slug":211,"updatedAt":209},"2026-07-18T20:00:18.730Z","019f76d0-bb29-72d6-8d0b-05ffd1d3c8ed","composables",{"articleCount":7,"color":8,"createdAt":213,"id":214,"name":215,"slug":215,"updatedAt":213},"2026-04-08T06:47:42.915Z","019d6bd8-ca21-71c5-a236-37d94fe57d24","composition-api",{"articleCount":97,"color":8,"createdAt":217,"id":218,"name":219,"slug":219,"updatedAt":217},"2026-06-27T12:00:13.113Z","019f08f3-a538-74ed-82c5-038edce7100a","copilot",{"articleCount":102,"color":8,"createdAt":221,"id":222,"name":223,"slug":223,"updatedAt":221},"2026-04-25T12:00:12.674Z","019dc482-ff81-73ac-9b1c-6ad47f0afde0","data-management",{"articleCount":102,"color":8,"createdAt":225,"id":226,"name":227,"slug":227,"updatedAt":225},"2026-06-04T20:00:17.367Z","019e9438-e5d7-731f-bf47-8dcd86c6655c","data-privacy",{"articleCount":97,"color":8,"createdAt":229,"id":230,"name":231,"slug":231,"updatedAt":229},"2026-05-05T12:00:17.083Z","019df802-a8bb-775a-b843-93d883c7dfc5","data-science",{"articleCount":102,"color":8,"createdAt":233,"id":234,"name":235,"slug":235,"updatedAt":233},"2026-06-11T16:00:12.028Z","019eb769-9afb-7709-8a67-2a12f5e557c7","deepseek",{"articleCount":97,"color":8,"createdAt":237,"id":238,"name":239,"slug":239,"updatedAt":237},"2026-05-25T08:00:12.834Z","019e5e26-0e21-7366-87c7-0b1334180b0a","dependency-cruiser",{"articleCount":97,"color":8,"createdAt":241,"id":242,"name":243,"slug":243,"updatedAt":241},"2026-04-18T04:30:00.710Z","019d9eda-5005-7329-a463-189572e25635","deployment",{"articleCount":148,"color":8,"createdAt":245,"id":246,"name":247,"slug":247,"updatedAt":245},"2026-04-21T12:00:11.373Z","019dafe9-8a6d-7218-81f1-37052cbe9b78","development",{"articleCount":97,"color":8,"createdAt":249,"id":250,"name":251,"slug":251,"updatedAt":249},"2026-06-29T08:00:12.101Z","019f1264-9f44-762d-b5fd-837839fdc586","devtools",{"articleCount":102,"color":8,"createdAt":253,"id":254,"name":255,"slug":255,"updatedAt":253},"2026-05-29T20:00:13.197Z","019e7552-ad8c-731f-ad8b-49253ed0e1b9","docker",{"articleCount":97,"color":8,"createdAt":257,"id":258,"name":259,"slug":259,"updatedAt":257},"2026-06-27T12:00:13.081Z","019f08f3-a518-7607-aa8c-782b4f10c2ed","documentation",{"articleCount":97,"color":8,"createdAt":261,"id":262,"name":263,"slug":263,"updatedAt":261},"2026-04-30T04:19:02.055Z","019ddc9c-9327-744f-a2da-31b64c7b6ba4","editor",{"articleCount":97,"color":8,"createdAt":265,"id":266,"name":267,"slug":267,"updatedAt":265},"2026-07-06T12:00:24.261Z","019f374d-0cc4-71ff-b906-ebaec8b0c343","eslint",{"articleCount":102,"color":8,"createdAt":269,"id":270,"name":271,"slug":271,"updatedAt":269},"2026-05-02T00:00:23.123Z","019de5fc-7e52-740a-807c-d322c373865b","firewall",{"articleCount":97,"color":8,"createdAt":273,"id":274,"name":275,"slug":275,"updatedAt":273},"2026-05-06T16:00:17.134Z","019dfe04-beee-7481-b8e7-4034640e840a","frameworks",{"articleCount":102,"color":8,"createdAt":277,"id":278,"name":279,"slug":279,"updatedAt":277},"2026-04-08T06:47:56.883Z","019d6bd9-00b2-7199-8e88-2530ef258032","generics",{"articleCount":97,"color":8,"createdAt":281,"id":282,"name":283,"slug":283,"updatedAt":281},"2026-07-27T18:11:45.390Z","019fa4c6-9419-7657-844e-58ec868ed664","git",{"articleCount":148,"color":8,"createdAt":285,"id":286,"name":287,"slug":287,"updatedAt":285},"2026-07-15T00:00:22.207Z","019f6313-12bf-7151-81f2-c8b43b09d979","html",{"articleCount":102,"color":8,"createdAt":289,"id":290,"name":291,"slug":291,"updatedAt":289},"2026-05-06T00:00:17.012Z","019dfa95-d673-71ef-be4a-8761512ffe5c","infrastructure",{"articleCount":97,"color":8,"createdAt":293,"id":294,"name":295,"slug":295,"updatedAt":293},"2026-06-16T16:11:31.264Z","019ed133-c43f-704f-8c1a-fbc299c8a3e5","javascript",{"articleCount":97,"color":8,"createdAt":297,"id":298,"name":299,"slug":299,"updatedAt":297},"2026-07-13T08:00:18.266Z","019f5a7d-bf5a-76e0-903a-c87435cc3e09","lazy-loading",{"articleCount":97,"color":8,"createdAt":301,"id":302,"name":303,"slug":303,"updatedAt":301},"2026-05-11T12:00:19.963Z","019e16e8-dbfa-76d6-bb2d-793aee049186","loading",{"articleCount":102,"color":8,"createdAt":305,"id":306,"name":307,"slug":307,"updatedAt":305},"2026-04-25T12:00:12.682Z","019dc482-ff8a-7698-8af5-95db54a26d6b","local-first",{"articleCount":97,"color":8,"createdAt":309,"id":310,"name":311,"slug":311,"updatedAt":309},"2026-05-14T12:00:21.370Z","019e265b-f579-71cd-84b2-ac385b5225ae","maintainability",{"articleCount":97,"color":8,"createdAt":313,"id":314,"name":315,"slug":315,"updatedAt":313},"2026-05-10T16:00:18.613Z","019e129e-34b4-7107-acfb-27f6b8604eb0","management",{"articleCount":97,"color":8,"createdAt":317,"id":318,"name":319,"slug":319,"updatedAt":317},"2026-06-27T12:00:13.065Z","019f08f3-a508-7334-aa03-12b281698ea8","markdown",{"articleCount":97,"color":8,"createdAt":321,"id":322,"name":323,"slug":323,"updatedAt":321},"2026-07-28T12:00:27.878Z","019fa899-02e6-758e-bdcb-8a4a923507df","mcp",{"articleCount":97,"color":8,"createdAt":325,"id":326,"name":327,"slug":327,"updatedAt":325},"2026-06-17T12:00:12.439Z","019ed574-0a96-7485-9c90-522e4be3e092","meta-tags",{"articleCount":102,"color":8,"createdAt":329,"id":330,"name":331,"slug":331,"updatedAt":329},"2026-05-26T08:00:14.598Z","019e634c-7105-7073-bc86-c32fa0a4401b","microfrontends",{"articleCount":102,"color":8,"createdAt":333,"id":334,"name":335,"slug":335,"updatedAt":333},"2026-05-19T16:00:13.516Z","019e40f7-5ccc-729c-92ba-bcc0aad8a16f","microvm",{"articleCount":102,"color":8,"createdAt":337,"id":338,"name":339,"slug":339,"updatedAt":337},"2026-05-05T00:00:19.025Z","019df56f-8250-768c-a659-b9f524ff902c","multi-tenant",{"articleCount":102,"color":8,"createdAt":341,"id":342,"name":343,"slug":343,"updatedAt":341},"2026-05-08T04:00:17.998Z","019e05be-4c4d-759e-a51e-8ac760f82f6d","nextjs",{"articleCount":97,"color":8,"createdAt":345,"id":346,"name":347,"slug":347,"updatedAt":345},"2026-04-17T19:35:19.293Z","019d9cf0-c9fc-76a0-8c4e-b818a89c3774","nitro",{"articleCount":349,"color":8,"createdAt":350,"id":32,"name":33,"slug":33,"updatedAt":350},27,"2026-04-08T06:47:55.381Z",{"articleCount":97,"color":8,"createdAt":352,"id":353,"name":354,"slug":354,"updatedAt":352},"2026-04-30T04:19:02.038Z","019ddc9c-9315-735e-a7e8-8424790e8859","nuxt-ui",{"articleCount":97,"color":8,"createdAt":356,"id":357,"name":358,"slug":358,"updatedAt":356},"2026-06-08T12:00:16.030Z","019ea71a-dc9d-7607-9cfa-df0f31ab5876","observability",{"articleCount":102,"color":8,"createdAt":360,"id":361,"name":362,"slug":362,"updatedAt":360},"2026-05-04T20:00:20.503Z","019df493-ce17-76ed-bd80-2a3914e0f409","open-source",{"articleCount":97,"color":8,"createdAt":364,"id":365,"name":366,"slug":366,"updatedAt":364},"2026-06-08T12:00:16.022Z","019ea71a-dc95-72b8-a7e3-70f9e2ac3710","opentelemetry",{"articleCount":7,"color":8,"createdAt":368,"id":369,"name":370,"slug":370,"updatedAt":368},"2026-05-18T12:00:14.389Z","019e3af5-4a35-705c-8ab1-4404b653e0e8","optimization",{"articleCount":97,"color":8,"createdAt":372,"id":373,"name":374,"slug":374,"updatedAt":372},"2026-05-28T20:00:13.016Z","019e702c-50d7-74eb-8849-8b1cebcf411e","orchestration",{"articleCount":376,"color":8,"createdAt":377,"id":60,"name":61,"slug":61,"updatedAt":377},16,"2026-04-08T06:47:42.920Z",{"articleCount":97,"color":8,"createdAt":379,"id":380,"name":381,"slug":381,"updatedAt":379},"2026-06-10T13:53:29.575Z","019eb1cf-3de7-7326-87d9-c55ad1c0fa39","personalization",{"articleCount":97,"color":8,"createdAt":383,"id":384,"name":385,"slug":385,"updatedAt":383},"2026-04-17T19:35:19.263Z","019d9cf0-c9de-70b2-9057-76d771c3379e","pinia",{"articleCount":102,"color":8,"createdAt":387,"id":388,"name":389,"slug":389,"updatedAt":387},"2026-05-02T00:00:23.112Z","019de5fc-7e47-7075-8aeb-9e90f7689f57","postgres",{"articleCount":102,"color":8,"createdAt":391,"id":392,"name":393,"slug":393,"updatedAt":391},"2026-05-19T20:00:14.575Z","019e41d3-1aee-70c8-a07c-cec870115d14","pricing",{"articleCount":97,"color":8,"createdAt":395,"id":396,"name":397,"slug":397,"updatedAt":395},"2026-05-10T16:00:18.603Z","019e129e-34aa-723b-a568-45737915c7bf","qa",{"articleCount":97,"color":8,"createdAt":399,"id":400,"name":401,"slug":401,"updatedAt":399},"2026-05-08T04:00:18.013Z","019e05be-4c5c-75ad-8df5-602b3db57983","react",{"articleCount":7,"color":8,"createdAt":403,"id":404,"name":405,"slug":405,"updatedAt":403},"2026-04-20T12:00:11.653Z","019daac3-2f85-7393-b891-9da3891267ca","reactivity",{"articleCount":7,"color":8,"createdAt":407,"id":36,"name":37,"slug":37,"updatedAt":407},"2026-04-17T20:27:50.585Z",{"articleCount":102,"color":8,"createdAt":409,"id":410,"name":411,"slug":411,"updatedAt":409},"2026-05-26T08:00:14.619Z","019e634c-711a-728f-9b63-20f2c8b37ccb","routing",{"articleCount":102,"color":8,"createdAt":413,"id":414,"name":415,"slug":415,"updatedAt":413},"2026-05-19T16:00:13.509Z","019e40f7-5cc4-72e1-8f8b-692dd29fc716","sandbox",{"articleCount":97,"color":8,"createdAt":417,"id":418,"name":419,"slug":419,"updatedAt":417},"2026-05-14T12:00:21.362Z","019e265b-f571-7677-a537-2f7e96a490bf","scalability",{"articleCount":102,"color":8,"createdAt":421,"id":422,"name":423,"slug":423,"updatedAt":421},"2026-05-04T20:00:20.521Z","019df493-ce28-75e9-93d5-13251407a27b","scanning",{"articleCount":7,"color":8,"createdAt":425,"id":9,"name":10,"slug":10,"updatedAt":425},"2026-04-27T08:00:12.420Z",{"articleCount":97,"color":8,"createdAt":427,"id":428,"name":429,"slug":429,"updatedAt":427},"2026-06-17T12:00:12.428Z","019ed574-0a8b-7566-976f-8c281c820ed0","seo",{"articleCount":97,"color":8,"createdAt":431,"id":432,"name":433,"slug":433,"updatedAt":431},"2026-06-17T12:00:12.433Z","019ed574-0a91-74d8-b806-56681bb4b477","sitemap",{"articleCount":97,"color":8,"createdAt":435,"id":436,"name":437,"slug":437,"updatedAt":435},"2026-07-18T16:00:27.576Z","019f75f5-23b8-72eb-a2bf-79dd1fed3863","software-development",{"articleCount":97,"color":8,"createdAt":439,"id":440,"name":441,"slug":441,"updatedAt":439},"2026-04-17T19:35:19.297Z","019d9cf0-ca00-749d-9101-1c63bf62e215","spas",{"articleCount":148,"color":8,"createdAt":443,"id":444,"name":445,"slug":445,"updatedAt":443},"2026-06-03T16:00:12.620Z","019e8e36-bd4b-740d-b23a-81858b24025b","ssg",{"articleCount":447,"color":8,"createdAt":448,"id":95,"name":96,"slug":96,"updatedAt":448},9,"2026-04-08T06:47:43.020Z",{"articleCount":102,"color":8,"createdAt":450,"id":451,"name":452,"slug":452,"updatedAt":450},"2026-04-30T04:19:02.613Z","019ddc9c-9555-7544-a3e3-0605d2c1ea82","startup",{"articleCount":7,"color":8,"createdAt":454,"id":455,"name":456,"slug":456,"updatedAt":454},"2026-04-18T12:00:12.027Z","019da076-78fb-706b-9a4c-cee0c989cfff","state-management",{"articleCount":102,"color":8,"createdAt":458,"id":459,"name":460,"slug":460,"updatedAt":458},"2026-06-06T00:00:11.717Z","019e9a3a-e5c5-76d3-86e4-576c151a87b3","storage",{"articleCount":97,"color":8,"createdAt":462,"id":463,"name":464,"slug":464,"updatedAt":462},"2026-06-17T12:00:12.446Z","019ed574-0a9e-7712-8bc5-a0102787fe48","structured-data",{"articleCount":97,"color":8,"createdAt":466,"id":467,"name":468,"slug":468,"updatedAt":466},"2026-05-10T16:00:18.597Z","019e129e-34a4-771a-844d-09a7edefcd64","tdd",{"articleCount":102,"color":8,"createdAt":470,"id":471,"name":472,"slug":472,"updatedAt":470},"2026-06-04T20:00:17.351Z","019e9438-e5c6-7681-8704-897c7b499eb4","terms-of-service",{"articleCount":148,"color":8,"createdAt":474,"id":475,"name":476,"slug":476,"updatedAt":474},"2026-04-09T06:11:45.799Z","019d70de-3c07-76bf-9688-9619e1b0d427","testing",{"articleCount":97,"color":8,"createdAt":478,"id":479,"name":480,"slug":480,"updatedAt":478},"2026-06-16T16:11:31.088Z","019ed133-c390-75bf-8f1a-5c57cd221f14","threejs",{"articleCount":102,"color":8,"createdAt":482,"id":483,"name":484,"slug":484,"updatedAt":482},"2026-05-02T00:00:23.130Z","019de5fc-7e59-7426-8d46-e79e4bcf0d56","tls",{"articleCount":486,"color":8,"createdAt":487,"id":488,"name":489,"slug":489,"updatedAt":487},10,"2026-04-08T06:47:55.591Z","019d6bd8-fba5-743f-8f9f-4e23c0b31581","tutorial",{"articleCount":7,"color":8,"createdAt":491,"id":492,"name":493,"slug":493,"updatedAt":491},"2026-04-08T06:47:56.778Z","019d6bd9-0049-72ba-8cfa-139b1c1b249d","typescript",{"articleCount":495,"color":8,"createdAt":448,"id":496,"name":497,"slug":497,"updatedAt":448},5,"019d6bd8-ca8b-709c-b9a5-77d4910da162","ui-components",{"articleCount":97,"color":8,"createdAt":499,"id":500,"name":501,"slug":501,"updatedAt":499},"2026-05-11T12:00:19.969Z","019e16e8-dc00-714d-911a-a5bf39238587","user-experience",{"articleCount":97,"color":8,"createdAt":503,"id":504,"name":505,"slug":505,"updatedAt":503},"2026-05-18T12:00:14.379Z","019e3af5-4a29-759a-81b0-b6d502b2449e","v-memo",{"articleCount":102,"color":8,"createdAt":507,"id":508,"name":509,"slug":509,"updatedAt":507},"2026-04-30T04:19:02.228Z","019ddc9c-93d3-763e-ad3c-d3ad78642de7","vercel",{"articleCount":97,"color":8,"createdAt":511,"id":512,"name":513,"slug":513,"updatedAt":511},"2026-07-13T08:00:18.274Z","019f5a7d-bf61-746b-a44b-5c0a16ff57d3","video",{"articleCount":7,"color":8,"createdAt":515,"id":516,"name":517,"slug":517,"updatedAt":515},"2026-04-17T19:35:19.289Z","019d9cf0-c9f8-7411-beed-02265d8271db","vite",{"articleCount":97,"color":8,"createdAt":519,"id":520,"name":521,"slug":521,"updatedAt":519},"2026-04-25T18:08:02.132Z","019dc5d3-c054-70e2-bca4-08e2a2b9a096","vitest",{"articleCount":97,"color":8,"createdAt":523,"id":524,"name":525,"slug":525,"updatedAt":523},"2026-06-27T12:00:13.107Z","019f08f3-a532-7049-a02c-c17a4fd99306","vscode",{"articleCount":527,"color":8,"createdAt":528,"id":56,"name":57,"slug":57,"updatedAt":528},32,"2026-04-08T06:47:42.793Z",{"articleCount":97,"color":8,"createdAt":530,"id":531,"name":532,"slug":532,"updatedAt":530},"2026-04-18T12:00:12.007Z","019da076-78e6-76bd-b0d4-4e0597d36378","vue-router",{"articleCount":102,"color":8,"createdAt":534,"id":535,"name":536,"slug":536,"updatedAt":534},"2026-05-04T20:00:20.510Z","019df493-ce1d-7039-811a-ed57bf081d26","vulnerability",{"articleCount":538,"color":8,"createdAt":539,"id":540,"name":541,"slug":541,"updatedAt":539},3,"2026-05-05T12:00:17.078Z","019df802-a8b6-74d2-a0cd-b0509cf502fa","web-development",{"articleCount":538,"color":8,"createdAt":543,"id":544,"name":545,"slug":545,"updatedAt":543},"2026-05-10T16:00:18.576Z","019e129e-3490-7739-a218-5454a8c15d6e","workflow"]