[{"data":1,"prerenderedAt":545},["ShallowReactive",2],{"navigation":3,"about-page":142,"mdc--um50lp-key":186},[4],{"title":5,"path":6,"stem":7,"children":8,"page":141},"Blog","\u002Fblog","blog",[9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137],{"title":10,"path":11,"stem":12},"VueJS Introducing Dynamic Layouts using the Atomic Design Principles","\u002Fblog\u002Fvuejs-introducing-dynamic-layouts-using-the-atomic-design-principles","blog\u002F001.vuejs-introducing-dynamic-layouts-using-the-atomic-design-principles",{"title":14,"path":15,"stem":16},"Understanding JavaScript and Its Quirks","\u002Fblog\u002Funderstanding-javascript-and-its-quirks","blog\u002F002.understanding-javascript-and-its-quirks",{"title":18,"path":19,"stem":20},"Introducing Vue’s latest experimental Vapor Mode","\u002Fblog\u002Fintroducing-vues-latest-experimental-vapor-mode","blog\u002F003.introducing-vues-latest-experimental-vapor-mode",{"title":22,"path":23,"stem":24},"ECMAScript 2024 Nears Finalization","\u002Fblog\u002Fecmascript-2024-nears-finalization","blog\u002F004.ecmascript-2024-nears-finalization",{"title":26,"path":27,"stem":28},"UI Libraries for VueJS: Vuetify, Tailwind, and PrimeVue","\u002Fblog\u002Fui-libraries-for-vuejs-vuetify-tailwind-and-primevue","blog\u002F005.ui-libraries-for-vuejs-vuetify-tailwind-and-primevue",{"title":30,"path":31,"stem":32},"Micro Frontend Architecture","\u002Fblog\u002Fmicro-frontend-architecture","blog\u002F006.micro-frontend-architecture",{"title":34,"path":35,"stem":36},"Pre-rendering and Hydration in Vue.js","\u002Fblog\u002Fpre-rendering-and-hydration-in-vuejs","blog\u002F007.pre-rendering-and-hydration-in-vuejs",{"title":38,"path":39,"stem":40},"Satori by Vercel — Dynamic Image Generation in JavaScript","\u002Fblog\u002Fsatori-by-vercel-dynamic-image-generation-in-javascript","blog\u002F008.satori-by-vercel-dynamic-image-generation-in-javascript",{"title":42,"path":43,"stem":44},"Vue.js and Progressive Web Apps (PWA) – Enhancing Web Experiences","\u002Fblog\u002Fvuejs-and-progressive-web-apps-pwa-enhancing-web-experiences","blog\u002F009.vuejs-and-progressive-web-apps-pwa-enhancing-web-experiences",{"title":46,"path":47,"stem":48},"Moving from a Traditional Node.js CRUD API to Serverless Architecture—A Deep Dive","\u002Fblog\u002Fmoving-from-a-traditional-nodejs-crud-api-to-serverless-architecturea-deep-dive","blog\u002F010.moving-from-a-traditional-nodejs-crud-api-to-serverless-architecturea-deep-dive",{"title":50,"path":51,"stem":52},"Nuxt 3 and Serverless Edge Functions—Unlocking Performance and Scalability","\u002Fblog\u002Fnuxt-3-and-serverless-edge-functionsunlocking-performance-and-scalability","blog\u002F011.nuxt-3-and-serverless-edge-functionsunlocking-performance-and-scalability",{"title":54,"path":55,"stem":56},"A Tribute to Asa Bain: Thank You for Everything","\u002Fblog\u002Fa-tribute-to-asa-bain-thank-you-for-everything","blog\u002F012.a-tribute-to-asa-bain-thank-you-for-everything",{"title":58,"path":59,"stem":60},"Migrating JavaScript to TypeScript in ASP.NET MVC Projects","\u002Fblog\u002Fmigrating-javascript-to-typescript-in-aspnet-mvc-projects","blog\u002F013.migrating-javascript-to-typescript-in-aspnet-mvc-projects",{"title":62,"path":63,"stem":64},"Modernizing Classic ASP.NET MVC with Vue.js","\u002Fblog\u002Fmodernizing-classic-aspnet-mvc-with-vuejs","blog\u002F014.modernizing-classic-aspnet-mvc-with-vuejs",{"title":66,"path":67,"stem":68},"Which UI JavaScript Framework Should You Use?","\u002Fblog\u002Fwhich-ui-javascript-framework-should-you-use","blog\u002F015.which-ui-javascript-framework-should-you-use",{"title":70,"path":71,"stem":72},"Vue + AI Integration Workflows: Enhancing Developer Productivity","\u002Fblog\u002Fvue-ai-integration-workflows-enhancing-developer-productivity","blog\u002F016.vue-ai-integration-workflows-enhancing-developer-productivity",{"title":74,"path":75,"stem":76},"OpenAPI Standards & Scalar Integration for Node.js Apps","\u002Fblog\u002Fopenapi-standards-scalar-integration-for-nodejs-apps","blog\u002F017.openapi-standards-scalar-integration-for-nodejs-apps",{"title":78,"path":79,"stem":80},"Nuxt 3.17 — Data Fetching Improvements","\u002Fblog\u002Fnuxt-317-data-fetching-improvements","blog\u002F019.nuxt-317-data-fetching-improvements",{"title":82,"path":83,"stem":84},"Subdomain-Based Multi-Tenancy in Nuxt","\u002Fblog\u002Fsubdomain-based-multi-tenancy-in-nuxt","blog\u002F020.subdomain-based-multi-tenancy-in-nuxt",{"title":86,"path":87,"stem":88},"Type-Safe Backends with TypeScript: tRPC, Zod, and Drizzle ORM","\u002Fblog\u002Ftype-safe-backends-with-typescript-trpc-zod-and-drizzle-orm","blog\u002F021.type-safe-backends-with-typescript-trpc-zod-and-drizzle-orm",{"title":90,"path":91,"stem":92},"Unit Testing Vue Applications with Vitest and Agentic AI","\u002Fblog\u002Funit-testing-vue-applications-with-vitest-and-agentic-ai","blog\u002F022.unit-testing-vue-applications-with-vitest-and-agentic-ai",{"title":94,"path":95,"stem":96},"Hidden Features & Lesser-Known TypeScript Gems","\u002Fblog\u002Fhidden-features-lesser-known-typescript-gems","blog\u002F023.hidden-features-lesser-known-typescript-gems",{"title":98,"path":99,"stem":100},"Nuxt\u002FVercel Acquisition and Its Impact on NuxtHub Users","\u002Fblog\u002Fnuxtvercel-acquisition-and-its-impact-on-nuxthub-users","blog\u002F024.nuxtvercel-acquisition-and-its-impact-on-nuxthub-users",{"title":102,"path":103,"stem":104},"State of Vue & Nuxt Ecosystem 2025","\u002Fblog\u002Fstate-of-vue-nuxt-ecosystem-2025","blog\u002F025.state-of-vue-nuxt-ecosystem-2025",{"title":106,"path":107,"stem":108},"Feature Adoption in TypeScript Over Time","\u002Fblog\u002Ffeature-adoption-in-typescript-over-time","blog\u002F026.feature-adoption-in-typescript-over-time",{"title":110,"path":111,"stem":112},"Migrating From WordPress to Nuxt Content & Using Nuxt Studio","\u002Fblog\u002Fmigrating-from-wordpress-to-nuxt-content-using-nuxt-studio","blog\u002F027.migrating-from-wordpress-to-nuxt-content-using-nuxt-studio",{"title":114,"path":115,"stem":116},"Strategic Topic: The “Rust-ification” of Tooling (Biome & Rolldown)","\u002Fblog\u002Fstrategic-topic-the-rust-ification-of-tooling-biome-rolldown","blog\u002F028.strategic-topic-the-rust-ification-of-tooling-biome-rolldown",{"title":118,"path":119,"stem":120},"Nuxt 4 and the Evolving Full-Stack Framework Landscape","\u002Fblog\u002Fnuxt-4-and-the-evolving-full-stack-framework-landscape","blog\u002F029.nuxt-4-and-the-evolving-full-stack-framework-landscape",{"title":122,"path":123,"stem":124},"Bun as a JavaScript Runtime: Evaluating Readiness Beyond Node.js","\u002Fblog\u002Fbun-as-a-javascript-runtime-evaluating-readiness-beyond-nodejs","blog\u002F030.bun-as-a-javascript-runtime-evaluating-readiness-beyond-nodejs",{"title":126,"path":127,"stem":128},"Top 10 Nuxt Modules That Supercharge Your App From Day One Introduction","\u002Fblog\u002Ftop-10-nuxt-modules-that-supercharge-your-app-from-day-one-introduction","blog\u002F031.top-10-nuxt-modules-that-supercharge-your-app-from-day-one-introduction",{"title":130,"path":131,"stem":132},"Strategic Topic: Vite+, VoidZero, and the Future of Frontend Tooling","\u002Fblog\u002Fstrategic-topic-vite-voidzero-and-the-future-of-frontend-tooling","blog\u002F032.strategic-topic-vite-voidzero-and-the-future-of-frontend-tooling",{"title":134,"path":135,"stem":136},"The Future of Time in JavaScript: Transitioning to the Native Temporal API","\u002Fblog\u002Fthe-future-of-time-in-javascript-transitioning-to-the-native-temporal-api","blog\u002F033.the-future-of-time-in-javascript-transitioning-to-the-native-temporal-api",{"title":138,"path":139,"stem":140},"Understanding Hydration Issues in Nuxt and How Nuxt Hints Helps","\u002Fblog\u002Funderstanding-hydration-issues-in-nuxt-and-how-nuxt-hints-helps","blog\u002F034.understanding-hydration-issues-in-nuxt-and-how-nuxt-hints-helps",false,{"id":143,"title":144,"body":145,"content":146,"description":147,"extension":148,"images":149,"meta":168,"navigation":169,"now":170,"path":179,"profileImage":180,"seo":183,"stem":184,"__hash__":185},"about\u002Fabout.yml","About Me",null,"Hi, I'm **Sean Erick Ramones**, an AI-augmented full‑stack software engineer with over 7 years of experience building modern, performant web applications.\n\nI focus on turning complex ideas into elegant, scalable products — pairing deep frontend craft (**Vue 3**, **Nuxt**, **React**, **Next.js**), backend systems work (**Node.js**, **FastAPI**), headless CMS (**Strapi**, **Nuxt Content**), containerization (**Docker**), data (**PostgreSQL\u002FSupabase**), and serverless deploys (**Vercel**, **Cloudflare**) with agentic AI tooling: **Claude Code**, **MCP**, the **Claude Agent SDK**, and the **Anthropic API**. Most of my hands-on manual work now flows through AI hand-offs while I drive architecture, judgment, and review.\n\n### What I care about\n\n- Type‑safe code and clean architecture\n- Reusable components and design systems\n- Performance, accessibility, and DX\n- CI\u002FCD and code review culture that scales\n\n### Selected experience\n\n- Miller Development AB — Full‑stack Software Engineer (Hybrid, May 2019–Present)\n- BetterTradeOff Ltd. — Frontend Developer (Contract, Apr 2023–Jan 2024)\n- SCI Global Services — Full‑stack Software Developer (Remote, Jun 2018–Apr 2019)\n\n### Education\n\n- **Silliman University** — Bachelor of Science in Information Technology (2014–2018), Dumaguete City\n  - Thesis: digital restaurant ordering system to improve order accuracy and speed for local food businesses.\n\n### Languages\n\n- **English** — Fluent\n- **Filipino \u002F Cebuano** — Native\n\n### Beyond the code\n\n- **Brewing coffee** — espresso and pour-over (with my terrible latte art)\n- **Pickleball** — current trending sport got me hooked\n- **Running** — sometimes jogging, sometimes walking\n- **Free diving** — mostly coastal areas near me\n- **Road-trips and traveling** — sea\u002Fcoastal or the mountains\n- Cross‑fit training\n- Watching anime; reading Japanese manga\u002Flight novels\n- Playing MOBA games (**Dota 2**) and relaxing games (**Stardew Valley**)\n\nIf you’d like to collaborate, reach me at **seancramones@gmail.com** or connect on [LinkedIn](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsean-erick-ramones-102a64192).\n","A bit more about my journey as a full‑stack engineer and how I build scalable, user‑centric products.","yml",[150,153,156,159,162,165],{"src":151,"alt":152},"\u002Fabout\u002Fawareness-run-2024-dumagete.jpg","Awareness Run 2024 in Dumaguete",{"src":154,"alt":155},"\u002Fabout\u002Fjob-agent-team-reunion-the-pub-dumaguete.jpg","Team reunion at The Pub in Dumaguete",{"src":157,"alt":158},"\u002Fabout\u002Fpad-thai-from-wok-bae-dumaguete.jpg","Pad Thai at Wok Bae in Dumaguete",{"src":160,"alt":161},"\u002Fabout\u002Fsipalay-beach-negros-occidental.jpg","Sipalay beach in Negros Occidental",{"src":163,"alt":164},"\u002Fabout\u002Fcasaroro-falls-valencia-negros-oriental.jpg","Casaroro Falls in Negros Oriental",{"src":166,"alt":167},"\u002Fabout\u002Fsipalay-coast-negros-occidental.jpg","Sipalay coast in Negros Occidental",{},true,{"openTo":171,"currently":175,"availability":178},[172,173,174],"Full-time","Contract","Remote (UTC+8 overlap)",[176,177],"Building data-rich dashboards with Nuxt","Learning advanced serverless patterns","Accepting new projects now","\u002Fabout",{"src":181,"alt":182},"\u002Favatars\u002Fprofile-image-2.png","Sean Erick C. Ramones",{"title":144,"description":147},"about","Y2pSKUE1Hsqz0dwk0w5OS54y2JpGElkRC437Cb_knOw",{"data":187,"body":188},{},{"type":189,"children":190},"root",[191,207,318,325,350,356,374,380,401,407,430,436,518],{"type":192,"tag":193,"props":194,"children":195},"element","p",{},[196,199,205],{"type":197,"value":198},"text","Hi, I'm ",{"type":192,"tag":200,"props":201,"children":202},"strong",{},[203],{"type":197,"value":204},"Sean Erick Ramones",{"type":197,"value":206},", an AI-augmented full‑stack software engineer with over 7 years of experience building modern, performant web applications.",{"type":192,"tag":193,"props":208,"children":209},{},[210,212,217,219,224,225,230,231,236,238,243,244,249,251,256,257,262,264,269,271,276,278,283,284,289,291,296,297,302,304,309,311,316],{"type":197,"value":211},"I focus on turning complex ideas into elegant, scalable products — pairing deep frontend craft (",{"type":192,"tag":200,"props":213,"children":214},{},[215],{"type":197,"value":216},"Vue 3",{"type":197,"value":218},", ",{"type":192,"tag":200,"props":220,"children":221},{},[222],{"type":197,"value":223},"Nuxt",{"type":197,"value":218},{"type":192,"tag":200,"props":226,"children":227},{},[228],{"type":197,"value":229},"React",{"type":197,"value":218},{"type":192,"tag":200,"props":232,"children":233},{},[234],{"type":197,"value":235},"Next.js",{"type":197,"value":237},"), backend systems work (",{"type":192,"tag":200,"props":239,"children":240},{},[241],{"type":197,"value":242},"Node.js",{"type":197,"value":218},{"type":192,"tag":200,"props":245,"children":246},{},[247],{"type":197,"value":248},"FastAPI",{"type":197,"value":250},"), headless CMS (",{"type":192,"tag":200,"props":252,"children":253},{},[254],{"type":197,"value":255},"Strapi",{"type":197,"value":218},{"type":192,"tag":200,"props":258,"children":259},{},[260],{"type":197,"value":261},"Nuxt Content",{"type":197,"value":263},"), containerization (",{"type":192,"tag":200,"props":265,"children":266},{},[267],{"type":197,"value":268},"Docker",{"type":197,"value":270},"), data (",{"type":192,"tag":200,"props":272,"children":273},{},[274],{"type":197,"value":275},"PostgreSQL\u002FSupabase",{"type":197,"value":277},"), and serverless deploys (",{"type":192,"tag":200,"props":279,"children":280},{},[281],{"type":197,"value":282},"Vercel",{"type":197,"value":218},{"type":192,"tag":200,"props":285,"children":286},{},[287],{"type":197,"value":288},"Cloudflare",{"type":197,"value":290},") with agentic AI tooling: ",{"type":192,"tag":200,"props":292,"children":293},{},[294],{"type":197,"value":295},"Claude Code",{"type":197,"value":218},{"type":192,"tag":200,"props":298,"children":299},{},[300],{"type":197,"value":301},"MCP",{"type":197,"value":303},", the ",{"type":192,"tag":200,"props":305,"children":306},{},[307],{"type":197,"value":308},"Claude Agent SDK",{"type":197,"value":310},", and the ",{"type":192,"tag":200,"props":312,"children":313},{},[314],{"type":197,"value":315},"Anthropic API",{"type":197,"value":317},". Most of my hands-on manual work now flows through AI hand-offs while I drive architecture, judgment, and review.",{"type":192,"tag":319,"props":320,"children":322},"h3",{"id":321},"what-i-care-about",[323],{"type":197,"value":324},"What I care about",{"type":192,"tag":326,"props":327,"children":328},"ul",{},[329,335,340,345],{"type":192,"tag":330,"props":331,"children":332},"li",{},[333],{"type":197,"value":334},"Type‑safe code and clean architecture",{"type":192,"tag":330,"props":336,"children":337},{},[338],{"type":197,"value":339},"Reusable components and design systems",{"type":192,"tag":330,"props":341,"children":342},{},[343],{"type":197,"value":344},"Performance, accessibility, and DX",{"type":192,"tag":330,"props":346,"children":347},{},[348],{"type":197,"value":349},"CI\u002FCD and code review culture that scales",{"type":192,"tag":319,"props":351,"children":353},{"id":352},"selected-experience",[354],{"type":197,"value":355},"Selected experience",{"type":192,"tag":326,"props":357,"children":358},{},[359,364,369],{"type":192,"tag":330,"props":360,"children":361},{},[362],{"type":197,"value":363},"Miller Development AB — Full‑stack Software Engineer (Hybrid, May 2019–Present)",{"type":192,"tag":330,"props":365,"children":366},{},[367],{"type":197,"value":368},"BetterTradeOff Ltd. — Frontend Developer (Contract, Apr 2023–Jan 2024)",{"type":192,"tag":330,"props":370,"children":371},{},[372],{"type":197,"value":373},"SCI Global Services — Full‑stack Software Developer (Remote, Jun 2018–Apr 2019)",{"type":192,"tag":319,"props":375,"children":377},{"id":376},"education",[378],{"type":197,"value":379},"Education",{"type":192,"tag":326,"props":381,"children":382},{},[383],{"type":192,"tag":330,"props":384,"children":385},{},[386,391,393],{"type":192,"tag":200,"props":387,"children":388},{},[389],{"type":197,"value":390},"Silliman University",{"type":197,"value":392}," — Bachelor of Science in Information Technology (2014–2018), Dumaguete City\n",{"type":192,"tag":326,"props":394,"children":395},{},[396],{"type":192,"tag":330,"props":397,"children":398},{},[399],{"type":197,"value":400},"Thesis: digital restaurant ordering system to improve order accuracy and speed for local food businesses.",{"type":192,"tag":319,"props":402,"children":404},{"id":403},"languages",[405],{"type":197,"value":406},"Languages",{"type":192,"tag":326,"props":408,"children":409},{},[410,420],{"type":192,"tag":330,"props":411,"children":412},{},[413,418],{"type":192,"tag":200,"props":414,"children":415},{},[416],{"type":197,"value":417},"English",{"type":197,"value":419}," — Fluent",{"type":192,"tag":330,"props":421,"children":422},{},[423,428],{"type":192,"tag":200,"props":424,"children":425},{},[426],{"type":197,"value":427},"Filipino \u002F Cebuano",{"type":197,"value":429}," — Native",{"type":192,"tag":319,"props":431,"children":433},{"id":432},"beyond-the-code",[434],{"type":197,"value":435},"Beyond the code",{"type":192,"tag":326,"props":437,"children":438},{},[439,449,459,469,479,489,494,499],{"type":192,"tag":330,"props":440,"children":441},{},[442,447],{"type":192,"tag":200,"props":443,"children":444},{},[445],{"type":197,"value":446},"Brewing coffee",{"type":197,"value":448}," — espresso and pour-over (with my terrible latte art)",{"type":192,"tag":330,"props":450,"children":451},{},[452,457],{"type":192,"tag":200,"props":453,"children":454},{},[455],{"type":197,"value":456},"Pickleball",{"type":197,"value":458}," — current trending sport got me hooked",{"type":192,"tag":330,"props":460,"children":461},{},[462,467],{"type":192,"tag":200,"props":463,"children":464},{},[465],{"type":197,"value":466},"Running",{"type":197,"value":468}," — sometimes jogging, sometimes walking",{"type":192,"tag":330,"props":470,"children":471},{},[472,477],{"type":192,"tag":200,"props":473,"children":474},{},[475],{"type":197,"value":476},"Free diving",{"type":197,"value":478}," — mostly coastal areas near me",{"type":192,"tag":330,"props":480,"children":481},{},[482,487],{"type":192,"tag":200,"props":483,"children":484},{},[485],{"type":197,"value":486},"Road-trips and traveling",{"type":197,"value":488}," — sea\u002Fcoastal or the mountains",{"type":192,"tag":330,"props":490,"children":491},{},[492],{"type":197,"value":493},"Cross‑fit training",{"type":192,"tag":330,"props":495,"children":496},{},[497],{"type":197,"value":498},"Watching anime; reading Japanese manga\u002Flight novels",{"type":192,"tag":330,"props":500,"children":501},{},[502,504,509,511,516],{"type":197,"value":503},"Playing MOBA games (",{"type":192,"tag":200,"props":505,"children":506},{},[507],{"type":197,"value":508},"Dota 2",{"type":197,"value":510},") and relaxing games (",{"type":192,"tag":200,"props":512,"children":513},{},[514],{"type":197,"value":515},"Stardew Valley",{"type":197,"value":517},")",{"type":192,"tag":193,"props":519,"children":520},{},[521,523,533,535,543],{"type":197,"value":522},"If you’d like to collaborate, reach me at ",{"type":192,"tag":200,"props":524,"children":525},{},[526],{"type":192,"tag":527,"props":528,"children":530},"a",{"href":529},"mailto:seancramones@gmail.com",[531],{"type":197,"value":532},"seancramones@gmail.com",{"type":197,"value":534}," or connect on ",{"type":192,"tag":527,"props":536,"children":540},{"href":537,"rel":538},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsean-erick-ramones-102a64192",[539],"nofollow",[541],{"type":197,"value":542},"LinkedIn",{"type":197,"value":544},".",1779638275096]