[{"type_of":"article","id":3653901,"title":"I Built 30 Free Real Estate Investment Calculators — Here Is the Tech Stack","description":"Most real estate investors still analyze deals in spreadsheets. Formulas break, inputs get pasted...","readable_publish_date":"May 12","slug":"i-built-30-free-real-estate-investment-calculators-here-is-the-tech-stack-9o6","path":"/linakreeves/i-built-30-free-real-estate-investment-calculators-here-is-the-tech-stack-9o6","url":"https://dev.to/linakreeves/i-built-30-free-real-estate-investment-calculators-here-is-the-tech-stack-9o6","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T05:11:48Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywdh2ielm3np4d9bdc1q.png","canonical_url":"https://dev.to/linakreeves/i-built-30-free-real-estate-investment-calculators-here-is-the-tech-stack-9o6","created_at":"2026-05-12T05:11:48Z","edited_at":"2026-05-12T05:54:07Z","crossposted_at":null,"published_at":"2026-05-12T05:11:48Z","last_comment_at":"2026-05-12T05:11:48Z","reading_time_minutes":3,"tag_list":["webdev","javascript","vue","sideprojects"],"tags":"webdev, javascript, vue, sideprojects","user":{"name":"Lina Reeves ","username":"linakreeves","twitter_username":null,"github_username":null,"user_id":3926257,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3926257%2F29c4cbf3-d4eb-426c-8e7b-f4df43d31a3b.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3926257%2F29c4cbf3-d4eb-426c-8e7b-f4df43d31a3b.jpg"}},{"type_of":"article","id":3649523,"title":"Inside AutoBot's Frontend: A Developer Walkthrough","description":"A tour of AutoBot's Vue 3 chat + knowledge-base UI — what you see, how the components are wired, and how to make your first contribution.","readable_publish_date":"May 11","slug":"inside-autobots-frontend-a-developer-walkthrough-2k3j","path":"/mrveiss/inside-autobots-frontend-a-developer-walkthrough-2k3j","url":"https://dev.to/mrveiss/inside-autobots-frontend-a-developer-walkthrough-2k3j","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-11T11:32:51Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhltnmesj83er26dxt8pp.png","canonical_url":"https://dev.to/mrveiss/inside-autobots-frontend-a-developer-walkthrough-2k3j","created_at":"2026-05-11T11:32:51Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T11:32:51Z","last_comment_at":"2026-05-11T11:32:51Z","reading_time_minutes":4,"tag_list":["vue","typescript","opensource","ai"],"tags":"vue, typescript, opensource, ai","user":{"name":"Mārtiņš Veiss","username":"mrveiss","twitter_username":null,"github_username":null,"user_id":3867783,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3867783%2Fb7397987-7baa-4c63-b090-414707e4daa6.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3867783%2Fb7397987-7baa-4c63-b090-414707e4daa6.jpg"}},{"type_of":"article","id":3642949,"title":"Vite Cold Start White Screen? A Plugin Shows Resource Loading on Page","description":"TL;DR      White screen ✅ A plugin show progress       vite-plugin-white-screen-progress...","readable_publish_date":"May 10","slug":"vite-cold-start-white-screen-a-plugin-shows-resource-loading-on-page-4gj7","path":"/devzuo/vite-cold-start-white-screen-a-plugin-shows-resource-loading-on-page-4gj7","url":"https://dev.to/devzuo/vite-cold-start-white-screen-a-plugin-shows-resource-loading-on-page-4gj7","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-10T04:15:23Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F13f5s5hknv2k14jn9l7u.png","canonical_url":"https://dev.to/devzuo/vite-cold-start-white-screen-a-plugin-shows-resource-loading-on-page-4gj7","created_at":"2026-05-10T03:20:35Z","edited_at":"2026-05-10T04:21:02Z","crossposted_at":null,"published_at":"2026-05-10T04:15:23Z","last_comment_at":"2026-05-10T04:15:23Z","reading_time_minutes":3,"tag_list":["javascript","vue","vite"],"tags":"javascript, vue, vite","user":{"name":"dev-zuo","username":"devzuo","twitter_username":null,"github_username":"dev-zuo","user_id":3922701,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3922701%2Fec2ce5e5-cfe7-45ff-af93-c89c7bc235ae.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3922701%2Fec2ce5e5-cfe7-45ff-af93-c89c7bc235ae.png"}},{"type_of":"article","id":3639968,"title":"How I built a browser watermark library that survives DevTools","description":"Identifying the leaker after a screenshot escapes, when the obvious tricks no longer work.          ...","readable_publish_date":"May 9","slug":"how-i-built-a-browser-watermark-library-that-survives-devtools-56ec","path":"/matrix2526/how-i-built-a-browser-watermark-library-that-survives-devtools-56ec","url":"https://dev.to/matrix2526/how-i-built-a-browser-watermark-library-that-survives-devtools-56ec","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-09T11:56:32Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9mzlmy05766y7r1ws76.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9mzlmy05766y7r1ws76.jpg","canonical_url":"https://dev.to/matrix2526/how-i-built-a-browser-watermark-library-that-survives-devtools-56ec","created_at":"2026-05-09T11:56:32Z","edited_at":"2026-05-09T11:57:23Z","crossposted_at":null,"published_at":"2026-05-09T11:56:32Z","last_comment_at":"2026-05-09T11:56:32Z","reading_time_minutes":3,"tag_list":["frontend","angular","vue","react"],"tags":"frontend, angular, vue, react","user":{"name":"Mohammed Hassan ","username":"matrix2526","twitter_username":null,"github_username":"MohammedAldosari","user_id":320685,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F320685%2F28b69267-4353-4f3a-aecc-b1edab70a75f.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F320685%2F28b69267-4353-4f3a-aecc-b1edab70a75f.jpeg"}},{"type_of":"article","id":3637108,"title":"How I Built a Real-Time Monitoring Dashboard for OpenClaw Agents","description":"The Stack Behind the Monitor   When I decided to build a monitoring dashboard for OpenClaw,...","readable_publish_date":"May 9","slug":"how-i-built-a-real-time-monitoring-dashboard-for-openclaw-agents-32m9","path":"/flik2002/how-i-built-a-real-time-monitoring-dashboard-for-openclaw-agents-32m9","url":"https://dev.to/flik2002/how-i-built-a-real-time-monitoring-dashboard-for-openclaw-agents-32m9","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-09T00:41:08Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1ki7g3vmbs5rxtxykvi.png","canonical_url":"https://dev.to/flik2002/how-i-built-a-real-time-monitoring-dashboard-for-openclaw-agents-32m9","created_at":"2026-05-09T00:41:08Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-09T00:41:08Z","last_comment_at":"2026-05-09T00:41:08Z","reading_time_minutes":1,"tag_list":["javascript","monitoring","showdev","vue"],"tags":"javascript, monitoring, showdev, vue","user":{"name":"flik2002","username":"flik2002","twitter_username":null,"github_username":"flik2002","user_id":3904530,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3904530%2F65aee2df-56dd-4e44-817b-f4cef3c24b20.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3904530%2F65aee2df-56dd-4e44-817b-f4cef3c24b20.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":3630405,"title":"I finally recorded a full demo of VMMS — 3 minutes, all 3 roles","description":"I've written a couple of posts here about how I built VMMS — the workflow routing, the Laravel...","readable_publish_date":"May 8","slug":"i-finally-recorded-a-full-demo-of-vmms-3-minutes-all-3-roles-4mg6","path":"/chrislfallaria/i-finally-recorded-a-full-demo-of-vmms-3-minutes-all-3-roles-4mg6","url":"https://dev.to/chrislfallaria/i-finally-recorded-a-full-demo-of-vmms-3-minutes-all-3-roles-4mg6","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-08T04:12:07Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx92v5cgt1bzbm97duifi.png","canonical_url":"https://dev.to/chrislfallaria/i-finally-recorded-a-full-demo-of-vmms-3-minutes-all-3-roles-4mg6","created_at":"2026-05-08T04:12:07Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-08T04:12:07Z","last_comment_at":"2026-05-08T04:12:07Z","reading_time_minutes":1,"tag_list":["laravel","vue","showdev","inertiajs"],"tags":"laravel, vue, showdev, inertiajs","user":{"name":"Chris Lloyd Fallaria","username":"chrislfallaria","twitter_username":null,"github_username":null,"user_id":3908488,"website_url":"https://getvmms.gumroad.com/l/zeroqz","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3908488%2Ff1a01733-eafb-43fb-b97c-767dc1ecddb9.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3908488%2Ff1a01733-eafb-43fb-b97c-767dc1ecddb9.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":3630597,"title":"Mood UI","description":"I just published my first library to npm, it's a component library for Vue/Nuxt. I invite you to use...","readable_publish_date":"May 8","slug":"mood-ui-2hpa","path":"/agpsalgado/mood-ui-2hpa","url":"https://dev.to/agpsalgado/mood-ui-2hpa","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-08T04:57:51Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fugm73g44x4qm85xk80cm.png","canonical_url":"https://dev.to/agpsalgado/mood-ui-2hpa","created_at":"2026-05-08T04:57:51Z","edited_at":"2026-05-08T05:05:30Z","crossposted_at":null,"published_at":"2026-05-08T04:57:51Z","last_comment_at":"2026-05-08T04:57:51Z","reading_time_minutes":1,"tag_list":["vue","tailwindcss","webdev","programming"],"tags":"vue, tailwindcss, webdev, programming","user":{"name":"Alan Pacheco","username":"agpsalgado","twitter_username":null,"github_username":null,"user_id":3919170,"website_url":"https://mood-ui.com","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3919170%2Fe2360676-1767-4dc7-aca3-d40ee31d77f8.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3919170%2Fe2360676-1767-4dc7-aca3-d40ee31d77f8.jpeg"}},{"type_of":"article","id":3648351,"title":"Why Loaders Matter for Performance","description":"When developers think about performance optimization, they usually focus on things like:   lazy...","readable_publish_date":"May 11","slug":"why-loaders-matter-for-performance-4b8a","path":"/jacobandrewsky/why-loaders-matter-for-performance-4b8a","url":"https://dev.to/jacobandrewsky/why-loaders-matter-for-performance-4b8a","comments_count":0,"public_reactions_count":2,"collection_id":22630,"published_timestamp":"2026-05-11T09:29:43Z","language":"en","subforem_id":1,"positive_reactions_count":2,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbym0bvla6v4jibn66jc3.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbym0bvla6v4jibn66jc3.png","canonical_url":"https://dev.to/jacobandrewsky/why-loaders-matter-for-performance-4b8a","created_at":"2026-05-11T09:27:02Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-11T09:29:43Z","last_comment_at":"2026-05-11T09:29:43Z","reading_time_minutes":3,"tag_list":["vue","performance","tutorial","javascript"],"tags":"vue, performance, tutorial, javascript","user":{"name":"Jakub Andrzejewski","username":"jacobandrewsky","twitter_username":"jacobandrewsky","github_username":"Baroshem","user_id":652576,"website_url":"https://pl.linkedin.com/in/jakub-andrzejewski","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F652576%2F71679021-521f-4d3b-b57f-af2d4ad055d9.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F652576%2F71679021-521f-4d3b-b57f-af2d4ad055d9.png"}},{"type_of":"article","id":3619662,"title":"RTL Is Not Just dir=\"rtl\": What I Learned Shipping Vue Templates for the Arab Web","description":"I spent the last several months building Vue 3 templates with native RTL support. Along the way I...","readable_publish_date":"May 6","slug":"rtl-is-not-just-dirrtl-what-i-learned-shipping-vue-templates-for-the-arab-web-1gbb","path":"/amine_benmoussa_5d7d5a82/rtl-is-not-just-dirrtl-what-i-learned-shipping-vue-templates-for-the-arab-web-1gbb","url":"https://dev.to/amine_benmoussa_5d7d5a82/rtl-is-not-just-dirrtl-what-i-learned-shipping-vue-templates-for-the-arab-web-1gbb","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-06T08:39:00Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx9er3a3pyg6ackkk4egp.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx9er3a3pyg6ackkk4egp.png","canonical_url":"https://dev.to/amine_benmoussa_5d7d5a82/rtl-is-not-just-dirrtl-what-i-learned-shipping-vue-templates-for-the-arab-web-1gbb","created_at":"2026-05-06T08:34:51Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-06T08:39:00Z","last_comment_at":"2026-05-06T08:39:00Z","reading_time_minutes":6,"tag_list":["vue","tailwindcss","i18n","a11y"],"tags":"vue, tailwindcss, i18n, a11y","user":{"name":"amine ben moussa","username":"amine_benmoussa_5d7d5a82","twitter_username":null,"github_username":null,"user_id":2214822,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2214822%2Fbcd59a8d-48ec-4543-a4f9-cb3226ce4f98.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2214822%2Fbcd59a8d-48ec-4543-a4f9-cb3226ce4f98.jpg"}},{"type_of":"article","id":3623456,"title":"CLAUDE.md for Vue.js and Nuxt.js: 13 Rules That Make AI Write Composable, SSR-Ready Components","description":"Ask Claude Code to \"add a user dashboard\" to a Nuxt 3 app and the default output is a 2018 Vue...","readable_publish_date":"May 7","slug":"claudemd-for-vuejs-and-nuxtjs-13-rules-that-make-ai-write-composable-ssr-ready-components-m9h","path":"/olivia_craft/claudemd-for-vuejs-and-nuxtjs-13-rules-that-make-ai-write-composable-ssr-ready-components-m9h","url":"https://dev.to/olivia_craft/claudemd-for-vuejs-and-nuxtjs-13-rules-that-make-ai-write-composable-ssr-ready-components-m9h","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-07T00:16:10Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4kkqpkhhtcq91kpril3v.png","canonical_url":"https://dev.to/olivia_craft/claudemd-for-vuejs-and-nuxtjs-13-rules-that-make-ai-write-composable-ssr-ready-components-m9h","created_at":"2026-05-07T00:16:10Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-07T00:16:10Z","last_comment_at":"2026-05-07T00:16:10Z","reading_time_minutes":5,"tag_list":["vue","nuxt","claudeai","webdev"],"tags":"vue, nuxt, claudeai, webdev","user":{"name":"Olivia Craft","username":"olivia_craft","twitter_username":"OliviaCraftLat","github_username":null,"user_id":3860999,"website_url":"https://oliviacraft.lat","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3860999%2Fbb205e04-9977-4cb0-88e0-ffbbf2f009ab.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3860999%2Fbb205e04-9977-4cb0-88e0-ffbbf2f009ab.png"}},{"type_of":"article","id":3616138,"title":"How I Built a Scalable i18n System in Nuxt 3 — Rolling Out New Languages One Page at a Time","description":"I run BulkPicTools — a browser-based image tools site with 38 landing pages, all processing happening...","readable_publish_date":"May 5","slug":"how-i-built-a-scalable-i18n-system-in-nuxt-3-rolling-out-new-languages-one-page-at-a-time-23of","path":"/genglin-bulkpictools/how-i-built-a-scalable-i18n-system-in-nuxt-3-rolling-out-new-languages-one-page-at-a-time-23of","url":"https://dev.to/genglin-bulkpictools/how-i-built-a-scalable-i18n-system-in-nuxt-3-rolling-out-new-languages-one-page-at-a-time-23of","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-05T15:23:57Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyu9ewf2ghulvrririqe0.png","canonical_url":"https://dev.to/genglin-bulkpictools/how-i-built-a-scalable-i18n-system-in-nuxt-3-rolling-out-new-languages-one-page-at-a-time-23of","created_at":"2026-05-05T15:23:58Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-05T15:23:57Z","last_comment_at":"2026-05-05T15:23:57Z","reading_time_minutes":7,"tag_list":["nuxt","seo","i18n","vue"],"tags":"nuxt, seo, i18n, vue","user":{"name":"Genglin Zheng","username":"genglin-bulkpictools","twitter_username":"kbmjj123","github_username":"kbmjj123","user_id":2654065,"website_url":"https://bulkpictools.com","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2654065%2Fd7a7b773-7671-4953-ad37-cf07f3a8e1e8.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2654065%2Fd7a7b773-7671-4953-ad37-cf07f3a8e1e8.png"}},{"type_of":"article","id":3653914,"title":"Modern MEVN Stack Trends: Vue 3, Node.js Updates \u0026 MongoDB Scaling","description":"Businesses looking for scalable web applications are increasingly partnering with a custom MEVN Stack...","readable_publish_date":"May 12","slug":"modern-mevn-stack-trends-vue-3-nodejs-updates-mongodb-scaling-c7a","path":"/elite_websolutions_157cc/modern-mevn-stack-trends-vue-3-nodejs-updates-mongodb-scaling-c7a","url":"https://dev.to/elite_websolutions_157cc/modern-mevn-stack-trends-vue-3-nodejs-updates-mongodb-scaling-c7a","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-12T05:13:01Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkojgg8syv0le4bwzx4f5.webp","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkojgg8syv0le4bwzx4f5.webp","canonical_url":"https://dev.to/elite_websolutions_157cc/modern-mevn-stack-trends-vue-3-nodejs-updates-mongodb-scaling-c7a","created_at":"2026-05-12T05:13:01Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-12T05:13:01Z","last_comment_at":"2026-05-12T05:13:01Z","reading_time_minutes":2,"tag_list":["vue","node","fullstack"],"tags":"vue, node, fullstack","user":{"name":"Elite Web Solutions","username":"elite_websolutions_157cc","twitter_username":null,"github_username":null,"user_id":3782231,"website_url":"https://elitewebsolutions.co/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3782231%2Fa86a150d-2d6a-499a-9644-63fcc10e88a4.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3782231%2Fa86a150d-2d6a-499a-9644-63fcc10e88a4.png"}},{"type_of":"article","id":3605981,"title":"\"AI monitoring AI\" — I built a free monitoring dashboard for OpenClaw agents","description":"A free, self-hostable monitoring dashboard for OpenClaw AI agents — real-time heartbeat detection, token tracking, and gateway management.","readable_publish_date":"May 4","slug":"ai-monitoring-ai-i-built-a-free-monitoring-dashboard-for-openclaw-agents-4p67","path":"/flik2002/ai-monitoring-ai-i-built-a-free-monitoring-dashboard-for-openclaw-agents-4p67","url":"https://dev.to/flik2002/ai-monitoring-ai-i-built-a-free-monitoring-dashboard-for-openclaw-agents-4p67","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-04T01:28:02Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvaawca3anc6zxicxlfza.png","canonical_url":"https://dev.to/flik2002/ai-monitoring-ai-i-built-a-free-monitoring-dashboard-for-openclaw-agents-4p67","created_at":"2026-05-04T01:28:02Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-04T01:28:02Z","last_comment_at":"2026-05-04T01:28:02Z","reading_time_minutes":1,"tag_list":["opensource","vue","monitoring","ai"],"tags":"opensource, vue, monitoring, ai","user":{"name":"flik2002","username":"flik2002","twitter_username":null,"github_username":"flik2002","user_id":3904530,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3904530%2F65aee2df-56dd-4e44-817b-f4cef3c24b20.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3904530%2F65aee2df-56dd-4e44-817b-f4cef3c24b20.png"}},{"type_of":"article","id":3602896,"title":"vite-plugin-pack-orchestrator，One Vite Plugin for Compression, Checksums, and Auto Hash-Renaming","description":"Why Another Wheel?   There are already some Vite packing plugins out there —...","readable_publish_date":"May 3","slug":"vite-plugin-pack-orchestratorone-vite-plugin-for-compression-checksums-and-auto-hash-renaming-5di7","path":"/kai000/vite-plugin-pack-orchestratorone-vite-plugin-for-compression-checksums-and-auto-hash-renaming-5di7","url":"https://dev.to/kai000/vite-plugin-pack-orchestratorone-vite-plugin-for-compression-checksums-and-auto-hash-renaming-5di7","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-03T07:18:48Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezdtwb743r8lsosl4ozs.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezdtwb743r8lsosl4ozs.png","canonical_url":"https://dev.to/kai000/vite-plugin-pack-orchestratorone-vite-plugin-for-compression-checksums-and-auto-hash-renaming-5di7","created_at":"2026-05-03T07:18:48Z","edited_at":"2026-05-03T07:26:22Z","crossposted_at":null,"published_at":"2026-05-03T07:18:48Z","last_comment_at":"2026-05-03T07:18:48Z","reading_time_minutes":5,"tag_list":["vite","javascript","vue","react"],"tags":"vite, javascript, vue, react","user":{"name":"tianmiao_studio","username":"kai000","twitter_username":null,"github_username":"wangkai000","user_id":1278860,"website_url":"https://tianmiao.site/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1278860%2F3651bb4c-ded8-44b1-8f95-89654ac467c4.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1278860%2F3651bb4c-ded8-44b1-8f95-89654ac467c4.jpeg"}},{"type_of":"article","id":3605297,"title":"From Modal to Full Page: How We Refactored a Vue 3 Recipe Detail View","description":"A deep dive into migrating a bloated modal into a clean, SEO-friendly full page in a Vue 3 application, improving performance and UX.","readable_publish_date":"May 3","slug":"from-modal-to-full-page-how-we-refactored-a-vue-3-recipe-detail-view-hef","path":"/johnrusu/from-modal-to-full-page-how-we-refactored-a-vue-3-recipe-detail-view-hef","url":"https://dev.to/johnrusu/from-modal-to-full-page-how-we-refactored-a-vue-3-recipe-detail-view-hef","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-03T19:51:54Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnvx704756mdqb42g46a.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnvx704756mdqb42g46a.png","canonical_url":"https://dev.to/johnrusu/from-modal-to-full-page-how-we-refactored-a-vue-3-recipe-detail-view-hef","created_at":"2026-05-03T19:51:55Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-03T19:51:54Z","last_comment_at":"2026-05-03T19:51:54Z","reading_time_minutes":5,"tag_list":["vue","webdev","refactoring","ux"],"tags":"vue, webdev, refactoring, ux","user":{"name":"Rusu Ionut","username":"johnrusu","twitter_username":"johnrusu","github_username":"johnrusu","user_id":144753,"website_url":"https://rusu-ionut.ro/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F144753%2Ffed5f112-6526-409a-83c9-24b4234d3f54.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F144753%2Ffed5f112-6526-409a-83c9-24b4234d3f54.jpg"}},{"type_of":"article","id":3598983,"title":"NanoStores: A Tiny Redux Alternative for React, Vue, Svelte, and More","description":"Nano Stores is a tiny state management library with atomic stores, zero dependencies, and framework support across React, Vue, Svelte, Solid, and more.","readable_publish_date":"May 2","slug":"nanostores-a-tiny-redux-alternative-for-react-vue-svelte-and-more-59pd","path":"/alaminrifat/nanostores-a-tiny-redux-alternative-for-react-vue-svelte-and-more-59pd","url":"https://dev.to/alaminrifat/nanostores-a-tiny-redux-alternative-for-react-vue-svelte-and-more-59pd","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-02T07:48:14Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feqnlr6p40xgyx8wj26nn.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feqnlr6p40xgyx8wj26nn.png","canonical_url":"https://dev.to/alaminrifat/nanostores-a-tiny-redux-alternative-for-react-vue-svelte-and-more-59pd","created_at":"2026-05-02T07:48:14Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-02T07:48:14Z","last_comment_at":"2026-05-02T07:48:14Z","reading_time_minutes":4,"tag_list":["javascript","react","vue","webdev"],"tags":"javascript, react, vue, webdev","user":{"name":"Al Amin Rifat","username":"alaminrifat","twitter_username":"al_amin_rifat","github_username":"alaminrifat","user_id":1014020,"website_url":"https://alaminrifat.pages.dev/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1014020%2Fea5aae15-12d3-49bf-a88a-2cc95d5654a4.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1014020%2Fea5aae15-12d3-49bf-a88a-2cc95d5654a4.png"}},{"type_of":"article","id":3637368,"title":"React vs Vue vs Angular vs Svelte (2026): Best Frontend Framework?","description":"An honest head-to-head comparison of the 4 major frontend frameworks — performance, learning curve, ecosystem, job market, and real-world DX.","readable_publish_date":"May 9","slug":"react-vs-vue-vs-angular-vs-svelte-2026-best-frontend-framework-35ff","path":"/_6638a39c349d7e9c85ee20/react-vs-vue-vs-angular-vs-svelte-2026-best-frontend-framework-35ff","url":"https://dev.to/_6638a39c349d7e9c85ee20/react-vs-vue-vs-angular-vs-svelte-2026-best-frontend-framework-35ff","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-09T01:54:03Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F901qwelns951wxrn0uhy.png","canonical_url":"https://dingjiu1989-hue.github.io/en/compare/react-vs-vue-vs-angular-vs-svelte.html","created_at":"2026-05-09T01:54:03Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-09T01:54:03Z","last_comment_at":"2026-05-09T01:54:03Z","reading_time_minutes":3,"tag_list":["react","vue","angular","frontend"],"tags":"react, vue, angular, frontend","user":{"name":"丁久","username":"_6638a39c349d7e9c85ee20","twitter_username":null,"github_username":null,"user_id":3919125,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3919125%2F3e3556a1-d332-4fdf-af2f-f9c73f94408d.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3919125%2F3e3556a1-d332-4fdf-af2f-f9c73f94408d.png"}},{"type_of":"article","id":3597112,"title":"Building a Self-Healing SEO Architecture for a Vue SPA","description":"How we solved the \"SPA Meta Trap\" and built an organic, self-growing sitemap architecture for millions of recipes using Vue, Vite, Express, and MongoDB.","readable_publish_date":"May 1","slug":"building-a-self-healing-seo-architecture-for-a-vue-spa-4lfb","path":"/johnrusu/building-a-self-healing-seo-architecture-for-a-vue-spa-4lfb","url":"https://dev.to/johnrusu/building-a-self-healing-seo-architecture-for-a-vue-spa-4lfb","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-01T18:18:17Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flr275gbbib99opdejnow.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flr275gbbib99opdejnow.jpg","canonical_url":"https://dev.to/johnrusu/building-a-self-healing-seo-architecture-for-a-vue-spa-4lfb","created_at":"2026-05-01T18:17:13Z","edited_at":"2026-05-01T18:33:26Z","crossposted_at":null,"published_at":"2026-05-01T18:18:17Z","last_comment_at":"2026-05-01T18:18:17Z","reading_time_minutes":3,"tag_list":["webdev","seo","vue","node"],"tags":"webdev, seo, vue, node","user":{"name":"Rusu Ionut","username":"johnrusu","twitter_username":"johnrusu","github_username":"johnrusu","user_id":144753,"website_url":"https://rusu-ionut.ro/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F144753%2Ffed5f112-6526-409a-83c9-24b4234d3f54.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F144753%2Ffed5f112-6526-409a-83c9-24b4234d3f54.jpg"}},{"type_of":"article","id":3639438,"title":"I shipped a video player to npm — twice. What I learned about scoped CSS, \"use client\", and Nuxt modules.","description":"A small, HLS-capable video player for React and Vue, with zero global CSS side-effects. The build-in-public story behind @glitchlab/react-video-player and @glitchlab/vue-video-player, plus a live Vercel demo.","readable_publish_date":"May 9","slug":"i-shipped-a-video-player-to-npm-twice-what-i-learned-about-scoped-css-use-client-and-nuxt-2dfl","path":"/imfahad/i-shipped-a-video-player-to-npm-twice-what-i-learned-about-scoped-css-use-client-and-nuxt-2dfl","url":"https://dev.to/imfahad/i-shipped-a-video-player-to-npm-twice-what-i-learned-about-scoped-css-use-client-and-nuxt-2dfl","comments_count":1,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-05-09T10:28:33Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fss9wecu9ggwh038gqm2t.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fss9wecu9ggwh038gqm2t.png","canonical_url":"https://medium.com/@REPLACE-WITH-YOUR-MEDIUM-HANDLE/REPLACE-WITH-MEDIUM-SLUG","created_at":"2026-05-09T10:25:14Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-09T10:28:33Z","last_comment_at":"2026-05-10T13:53:32Z","reading_time_minutes":8,"tag_list":["react","vue","opensource","webdev"],"tags":"react, vue, opensource, webdev","user":{"name":"Abdullah Al Fahad","username":"imfahad","twitter_username":null,"github_username":"im-fahad","user_id":245020,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F245020%2F09ecdc39-71a3-4bc3-aa60-316734281d96.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F245020%2F09ecdc39-71a3-4bc3-aa60-316734281d96.png"}},{"type_of":"article","id":3593519,"title":"Why God Kit? A Lightweight Vue 3 UI Library and Design System for Admin Apps","description":"Why God Kit? A Lightweight Vue 3 Component Library Built for Real Dashboards   If you are...","readable_publish_date":"Apr 30","slug":"why-god-kit-a-lightweight-vue-3-ui-library-and-design-system-for-admin-apps-55al","path":"/parsajiravand/why-god-kit-a-lightweight-vue-3-ui-library-and-design-system-for-admin-apps-55al","url":"https://dev.to/parsajiravand/why-god-kit-a-lightweight-vue-3-ui-library-and-design-system-for-admin-apps-55al","comments_count":0,"public_reactions_count":5,"collection_id":null,"published_timestamp":"2026-04-30T21:22:25Z","language":"en","subforem_id":1,"positive_reactions_count":5,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6mjqsbw3yg1hf7zl5uqf.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6mjqsbw3yg1hf7zl5uqf.png","canonical_url":"https://godkit.godplans.org/guide/why-god-kit","created_at":"2026-04-30T21:14:43Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-30T21:22:25Z","last_comment_at":"2026-04-30T21:22:25Z","reading_time_minutes":4,"tag_list":["vue","frontend","nuxt","webdev"],"tags":"vue, frontend, nuxt, webdev","user":{"name":"Parsa Jiravand","username":"parsajiravand","twitter_username":null,"github_username":null,"user_id":3831018,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3831018%2Ff09b70fc-3b0d-4ce2-bb7e-d78ee6f7d701.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3831018%2Ff09b70fc-3b0d-4ce2-bb7e-d78ee6f7d701.jpg"}},{"type_of":"article","id":3553092,"title":"I built an offline replacement of MS Money","description":"I’m an Aussie dev and a long‑time Microsoft Money user. After Microsoft shuttered Money, I spent...","readable_publish_date":"Apr 26","slug":"i-built-an-offline-replacement-of-ms-money-160a","path":"/sun_sunny_a1ddacbaba62476/i-built-an-offline-replacement-of-ms-money-160a","url":"https://dev.to/sun_sunny_a1ddacbaba62476/i-built-an-offline-replacement-of-ms-money-160a","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-26T11:43:59Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbaw02xbn16ddvlvdbc48.png","canonical_url":"https://dev.to/sun_sunny_a1ddacbaba62476/i-built-an-offline-replacement-of-ms-money-160a","created_at":"2026-04-26T11:43:59Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-26T11:43:59Z","last_comment_at":"2026-04-26T11:43:59Z","reading_time_minutes":1,"tag_list":["tauri","vue"],"tags":"tauri, vue","user":{"name":"sun sunny","username":"sun_sunny_a1ddacbaba62476","twitter_username":null,"github_username":null,"user_id":3898684,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3898684%2Ff129fad1-5df8-4074-85dd-0240023cca85.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3898684%2Ff129fad1-5df8-4074-85dd-0240023cca85.png"}},{"type_of":"article","id":3639591,"title":"I built a Vite plugin to bring Nuxt-style middleware to Vue","description":"Vue is great. Vite is great. Vue Router is great. But there's one area where the \"bring your own...","readable_publish_date":"May 9","slug":"i-built-a-vite-plugin-to-bring-nuxt-style-middleware-to-vue-2na7","path":"/roya_lan_c712e571a6d261e/i-built-a-vite-plugin-to-bring-nuxt-style-middleware-to-vue-2na7","url":"https://dev.to/roya_lan_c712e571a6d261e/i-built-a-vite-plugin-to-bring-nuxt-style-middleware-to-vue-2na7","comments_count":0,"public_reactions_count":4,"collection_id":null,"published_timestamp":"2026-05-09T10:57:24Z","language":"en","subforem_id":1,"positive_reactions_count":4,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzz8nggu018msf78yqouk.png","canonical_url":"https://dev.to/roya_lan_c712e571a6d261e/i-built-a-vite-plugin-to-bring-nuxt-style-middleware-to-vue-2na7","created_at":"2026-05-09T10:57:24Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-09T10:57:24Z","last_comment_at":"2026-05-09T10:57:24Z","reading_time_minutes":4,"tag_list":["vue","typescript","webdev","opensource"],"tags":"vue, typescript, webdev, opensource","user":{"name":"Roya","username":"roya_lan_c712e571a6d261e","twitter_username":null,"github_username":null,"user_id":3921583,"website_url":"https://awdr74100.github.io/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3921583%2Fefa35192-81db-47c8-9732-b9c97cfb379f.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3921583%2Fefa35192-81db-47c8-9732-b9c97cfb379f.jpg"}},{"type_of":"article","id":3553679,"title":"\"React, Vue, or Svelte: The Ultimate Showdown - Which JavaScript Framework to Learn First in 2025 for a Future-Proof Career\"","description":"Introduction   As a developer, choosing the right JavaScript framework can be a daunting...","readable_publish_date":"Apr 26","slug":"react-vue-or-svelte-the-ultimate-showdown-which-javascript-framework-to-learn-first-in-2025-2kic","path":"/orbit_websites_b004ed2787/react-vue-or-svelte-the-ultimate-showdown-which-javascript-framework-to-learn-first-in-2025-2kic","url":"https://dev.to/orbit_websites_b004ed2787/react-vue-or-svelte-the-ultimate-showdown-which-javascript-framework-to-learn-first-in-2025-2kic","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-26T15:30:18Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7ccdtyfbizj5p6nyocd.png","canonical_url":"https://dev.to/orbit_websites_b004ed2787/react-vue-or-svelte-the-ultimate-showdown-which-javascript-framework-to-learn-first-in-2025-2kic","created_at":"2026-04-26T15:30:18Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-26T15:30:18Z","last_comment_at":"2026-04-26T15:30:18Z","reading_time_minutes":3,"tag_list":["react","vue","javascript"],"tags":"react, vue, javascript","user":{"name":"Orbit Websites","username":"orbit_websites_b004ed2787","twitter_username":null,"github_username":"orbitwebsites-cloud","user_id":3897836,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3897836%2Fa25600a9-d0de-44d1-9d4e-95ca314eaed4.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3897836%2Fa25600a9-d0de-44d1-9d4e-95ca314eaed4.png"}},{"type_of":"article","id":3550530,"title":"Building Recipe-Finder.org: A Full-Stack Journey with Vue, Express, MongoDB, and Vuetify 🍳","description":"A deep dive into how I built a full-stack recipe search engine using a modified MEVN stack to solve the \"what's for dinner\" problem.","readable_publish_date":"Apr 25","slug":"building-recipe-finderorg-a-full-stack-journey-with-vue-express-mongodb-and-vuetify-2k57","path":"/johnrusu/building-recipe-finderorg-a-full-stack-journey-with-vue-express-mongodb-and-vuetify-2k57","url":"https://dev.to/johnrusu/building-recipe-finderorg-a-full-stack-journey-with-vue-express-mongodb-and-vuetify-2k57","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-25T16:30:34Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xo25yepogzd4s97p4yt.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xo25yepogzd4s97p4yt.png","canonical_url":"https://dev.to/johnrusu/building-recipe-finderorg-a-full-stack-journey-with-vue-express-mongodb-and-vuetify-2k57","created_at":"2026-04-25T16:25:57Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-25T16:30:34Z","last_comment_at":"2026-04-25T16:30:34Z","reading_time_minutes":3,"tag_list":["vue","node","mongodb","webdev"],"tags":"vue, node, mongodb, webdev","user":{"name":"Rusu Ionut","username":"johnrusu","twitter_username":"johnrusu","github_username":"johnrusu","user_id":144753,"website_url":"https://rusu-ionut.ro/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F144753%2Ffed5f112-6526-409a-83c9-24b4234d3f54.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F144753%2Ffed5f112-6526-409a-83c9-24b4234d3f54.jpg"}},{"type_of":"article","id":3551244,"title":"\"React, Vue, or Svelte: Which JavaScript Framework to Learn First in 2025 for a Future-Proof Career\"","description":"React, Vue, or Svelte: Which JavaScript Framework to Learn First in 2025 for a Future-Proof...","readable_publish_date":"Apr 25","slug":"react-vue-or-svelte-which-javascript-framework-to-learn-first-in-2025-for-a-future-proof-career-mkc","path":"/orbit_websites_b004ed2787/react-vue-or-svelte-which-javascript-framework-to-learn-first-in-2025-for-a-future-proof-career-mkc","url":"https://dev.to/orbit_websites_b004ed2787/react-vue-or-svelte-which-javascript-framework-to-learn-first-in-2025-for-a-future-proof-career-mkc","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-25T21:30:17Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2jn41hx88a2xjgyd6nfc.png","canonical_url":"https://dev.to/orbit_websites_b004ed2787/react-vue-or-svelte-which-javascript-framework-to-learn-first-in-2025-for-a-future-proof-career-mkc","created_at":"2026-04-25T21:30:17Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-25T21:30:17Z","last_comment_at":"2026-04-25T21:30:17Z","reading_time_minutes":3,"tag_list":["react","vue","javascript"],"tags":"react, vue, javascript","user":{"name":"Orbit Websites","username":"orbit_websites_b004ed2787","twitter_username":null,"github_username":"orbitwebsites-cloud","user_id":3897836,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3897836%2Fa25600a9-d0de-44d1-9d4e-95ca314eaed4.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3897836%2Fa25600a9-d0de-44d1-9d4e-95ca314eaed4.png"}},{"type_of":"article","id":3551208,"title":"Vue 3 Google Login (OAuth) – Quick Setup with vue3-google-login","description":"Adding Google login in a Vue 3 app can quickly become messy with OAuth setup, SDK loading, and...","readable_publish_date":"Apr 25","slug":"vue-3-google-login-oauth-quick-setup-with-vue3-google-login-2m28","path":"/devbaji/vue-3-google-login-oauth-quick-setup-with-vue3-google-login-2m28","url":"https://dev.to/devbaji/vue-3-google-login-oauth-quick-setup-with-vue3-google-login-2m28","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-25T21:18:25Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnpim9qxcpxixo33ndju5.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnpim9qxcpxixo33ndju5.jpg","canonical_url":"https://medium.com/@devbaji/vue-3-google-login-in-5-minutes-simple-clean-integration-938712e3ea79","created_at":"2026-04-25T21:18:26Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-25T21:18:25Z","last_comment_at":"2026-04-25T21:18:25Z","reading_time_minutes":2,"tag_list":["vue","javascript","authentication"],"tags":"vue, javascript, authentication","user":{"name":"Ananthakrishnan Baji","username":"devbaji","twitter_username":null,"github_username":null,"user_id":3898004,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3898004%2F65dbd0f7-b8f7-42c0-be9a-21bdb2a338c2.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3898004%2F65dbd0f7-b8f7-42c0-be9a-21bdb2a338c2.jpg"}},{"type_of":"article","id":3545001,"title":"Building a Markdown editor (Markflow)","description":"I’ve been working with Markdown editors both as a user. At some point I wanted to better understand...","readable_publish_date":"Apr 24","slug":"building-a-markdown-editor-markflow-2oam","path":"/igorkha/building-a-markdown-editor-markflow-2oam","url":"https://dev.to/igorkha/building-a-markdown-editor-markflow-2oam","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-24T08:16:35Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc61hd10qpf3wupt6xwh5.png","canonical_url":"https://dev.to/igorkha/building-a-markdown-editor-markflow-2oam","created_at":"2026-04-24T08:15:21Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-24T08:16:35Z","last_comment_at":"2026-04-24T08:16:35Z","reading_time_minutes":2,"tag_list":["markdown","converter","vue"],"tags":"markdown, converter, vue","user":{"name":"IgorKha","username":"igorkha","twitter_username":null,"github_username":"IgorKha","user_id":1095593,"website_url":"https://igorkha.github.io","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1095593%2F0a5bcf02-7768-4711-9c1b-62bcb684e35a.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1095593%2F0a5bcf02-7768-4711-9c1b-62bcb684e35a.png"}},{"type_of":"article","id":3598973,"title":"Cataracte : Stress Oxydatif Cristallinien et Curcumine","description":"Cataracte : Stress Oxydatif Cristallinien et Curcumine   La cataracte est l'opacification du...","readable_publish_date":"May 2","slug":"cataracte-stress-oxydatif-cristallinien-et-curcumine-5cm7","path":"/metime_support_e00703a3b/cataracte-stress-oxydatif-cristallinien-et-curcumine-5cm7","url":"https://dev.to/metime_support_e00703a3b/cataracte-stress-oxydatif-cristallinien-et-curcumine-5cm7","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-05-02T07:46:23Z","language":null,"subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ncsve8xxozabc9rwcxc.png","canonical_url":"https://inti-drink.com/blogs/news/cataracte-stress-oxydatif-curcumine-fr","created_at":"2026-05-02T07:46:23Z","edited_at":null,"crossposted_at":null,"published_at":"2026-05-02T07:46:23Z","last_comment_at":"2026-05-02T07:46:23Z","reading_time_minutes":1,"tag_list":["cataracte","vue","curcumine","œil"],"tags":"cataracte, vue, curcumine, œil","user":{"name":"Me-Time Support","username":"metime_support_e00703a3b","twitter_username":null,"github_username":null,"user_id":3903695,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3903695%2Fec1c9e6b-8d93-411f-a1d9-de528c14abd2.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3903695%2Fec1c9e6b-8d93-411f-a1d9-de528c14abd2.png"}},{"type_of":"article","id":3538321,"title":"I Built a Japanese Poetry Quiz and the Web Speech API Showed Me Its Teeth","description":"A thousand-year-old poetry anthology, a thirty-year-old JavaScript API, and modern TypeScript — what...","readable_publish_date":"Apr 22","slug":"i-built-a-japanese-poetry-quiz-and-the-web-speech-api-showed-me-its-teeth-3bce","path":"/sendotltd/i-built-a-japanese-poetry-quiz-and-the-web-speech-api-showed-me-its-teeth-3bce","url":"https://dev.to/sendotltd/i-built-a-japanese-poetry-quiz-and-the-web-speech-api-showed-me-its-teeth-3bce","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-22T23:38:25Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frx9olvnp9pr3my9b4u2h.png","canonical_url":"https://dev.to/sendotltd/i-built-a-japanese-poetry-quiz-and-the-web-speech-api-showed-me-its-teeth-3bce","created_at":"2026-04-22T23:38:25Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-22T23:38:25Z","last_comment_at":"2026-04-22T23:38:25Z","reading_time_minutes":5,"tag_list":["vue","typescript","webspeechapi","japanese"],"tags":"vue, typescript, webspeechapi, japanese","user":{"name":"SEN LLC","username":"sendotltd","twitter_username":null,"github_username":null,"user_id":3871729,"website_url":"https://sen.ltd","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3871729%2F54856949-f27c-4da1-a1c3-3db40b93c8d8.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3871729%2F54856949-f27c-4da1-a1c3-3db40b93c8d8.png"}},{"type_of":"article","id":3533960,"title":"Cursor Rules for Vue.js: Composition API Patterns That Scale","description":"8 Cursor rules that make AI write Vue 3 you would actually merge — script setup, defineProps generics, composables, Pinia, v-for keys, async components, and Vitest structure.","readable_publish_date":"Apr 22","slug":"cursor-rules-for-vuejs-composition-api-patterns-that-scale-5col","path":"/olivia_craft/cursor-rules-for-vuejs-composition-api-patterns-that-scale-5col","url":"https://dev.to/olivia_craft/cursor-rules-for-vuejs-composition-api-patterns-that-scale-5col","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-22T03:52:20Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fop8ql96iyrjv6apb53tn.png","canonical_url":"https://dev.to/olivia_craft/cursor-rules-for-vuejs-composition-api-patterns-that-scale-5col","created_at":"2026-04-22T02:01:09Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-22T03:52:20Z","last_comment_at":"2026-04-22T03:52:20Z","reading_time_minutes":9,"tag_list":["vue","cursorrules","javascript","ai"],"tags":"vue, cursorrules, javascript, ai","user":{"name":"Olivia Craft","username":"olivia_craft","twitter_username":"OliviaCraftLat","github_username":null,"user_id":3860999,"website_url":"https://oliviacraft.lat","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3860999%2Fbb205e04-9977-4cb0-88e0-ffbbf2f009ab.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3860999%2Fbb205e04-9977-4cb0-88e0-ffbbf2f009ab.png"}}]