PageSourceSearch

https://rolando-remolacio-portfolio.vercel.app/blog

html rolando-remolacio-portfolio.vercel.app collected 2026-10-03 07:38:17 UTC 90,857 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="scroll-smooth overflow-x-hidden"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Fimages%2Fads%2Fsmarterasp-banner.gif&amp;w=750&amp;q=75 1x, /_next/image?url=%2Fimages%2Fads%2Fsmarterasp-banner.gif&amp;w=1920&amp;q=75 2x" fetchPriority="high"/><link rel="stylesheet" href="/_next/static/css/9c6fe346b7a4ab7e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-167842b36b2d5803.js"/>
1<script src="/_next/static/chunks/fd9d1056-a7223fb5cd24b6ec.js" async=""></script>
1<script src="/_next/static/chunks/23-a0a0430d19748d46.js" async=""></script>
1<script src="/_next/static/chunks/main-app-f73cdb3bce740b12.js" async=""></script>
1<script src="/_next/static/chunks/231-05bca1aa767a40b0.js" async=""></script>
1<script src="/_next/static/chunks/173-06e997f2c170bb4c.js" async=""></script>
1<script src="/_next/static/chunks/915-5ea300d2f715180f.js" async=""></script>
1<script src="/_next/static/chunks/60-d2232ed5c729ee49.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-c75e8ccf0a7b0731.js" async=""></script>
1<script src="/_next/static/chunks/app/blog/page-7b528443fb45b76a.js" async=""></script>
1<title>Blog - Rolando Remolacio | Rolando Remolacio</title><meta name="description" content="Articles and tutorials by Rolando Remolacio"/><link rel="author" href="https://rolandoremolacio.com"/><meta name="author" content="Rolando Remolacio"/><meta name="keywords" content="Rolando Remolacio,Full Stack Developer,Web Developer Philippines,React Developer,Next.js Developer,TypeScript Expert,.NET Developer,C# Programming,Web Development,Software Engineer,Programmer Analyst,Front End Developer,Back End Developer,JavaScript Developer,Azure DevOps,Portfolio Website,Tech Blog,San Pedro Laguna Developer"/><meta name="creator" content="Rolando Remolacio"/><meta name="publisher" content="Rolando Remolacio"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta name="category" content="Technology"/><link rel="canonical" href="https://rolandoremolacio.com"/><meta name="format-detection" content="telephone=no, address=no, email=no"/><meta property="og:title" content="Rolando Remolacio | Full Stack Developer Portfolio"/><meta property="og:description" content="Professional Full Stack Developer with 3+ years of experience in .NET, React, Next.js, and TypeScript. Explore my projects, technical blog, and get in touch for collaboration opportunities."/><meta property="og:url" content="https://rolandoremolacio.com"/><meta property="og:site_name" content="Rolando Remolacio Portfolio"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://rolandoremolacio.com/images/og-image.jpg"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Rolando Remolacio - Full Stack Developer"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="@rolandoremolacio"/><meta name="twitter:title" content="Rolando Remolacio - Full Stack Developer"/><meta name="twitter:description" content="Professional Full Stack Developer with 3+ years of experience in .NET, React, Next.js, and TypeScript. Building modern web applications."/><meta name="twitter:image" content="https://rolandoremolacio.com/images/og-image.jpg"/><link rel="icon" href="/icon?9277f3cbc9077276" type="image/png" sizes="32x32"/><meta name="next-size-adjust"/><link rel="canonical" href="https://rolandoremolacio.com"/><meta name="google-site-verification" content="your-google-site-verification-code"/>
1<script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script>
1</head><body class="__className_f367f3 bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 antialiased transition-colors duration-300 overflow-x-hidden w-full">
1<script>((e,t,r,n,i,o,a,s)=>{let l=document.documentElement,u=["light","dark"];function c(t){(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&o?i.map(e=>o[e]||e):i;r?(l.classList.remove(...n),l.classList.add(o&&o[t]?o[t]:t)):l.setAttribute(e,t)}),s&&u.includes(t)&&(l.style.colorScheme=t)}if(n)c(n);else try{let e=localStorage.getItem(t)||r,n=a&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(n)}catch(e){}})("class","theme","system",null,["light","dark"],null,true,true)</script>
1<nav class="hidden md:block fixed top-6 left-1/2 z-50 select-none" style="transform:translateX(-50%) translateZ(0)"><div class="bg-white/80 dark:bg-gray-900/80 backdrop-blur-xl border border-gray-200 dark:border-gray-700 rounded-full shadow-2xl select-none transition-all px-6 py-3"><div class="flex items-center space-x-2"><a class="text-xl font-bold bg-gradient-to-r from-primary-600 to-blue-600 dark:from-primary-400 dark:to-blue-400 bg-clip-text text-transparent hover:from-primary-700 hover:to-blue-700 transition-all mr-2" draggable="false" href="/">RR</a><div class="cursor-move p-2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 select-none touch-none"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4 pointer-events-none"><polyline points="5 9 2 12 5 15"></polyline><polyline points="9 5 12 2 15 5"></polyline><polyline points="15 19 12 22 9 19"></polyline><polyline points="19 9 22 12 19 15"></polyline><line x1="2" x2="22" y1="12" y2="12"></line><line x1="12" x2="12" y1="2" y2="22"></line></svg></div><a class="relative group" href="/#home"><div class="relative flex items-center justify-center p-3 rounded-full transition-all duration-200 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5"><path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg></div><span class="absolute -bottom-10 left-1/2 -translate-x-1/2 px-2 py-1 bg-gray-900 dark:bg-gray-700 text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none">Home</span></a><a class="relative group" href="/#about"><div class="relative flex items-center justify-center p-3 rounded-full transition-all duration-200 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg></div><span class="absolute -bottom-10 left-1/2 -translate-x-1/2 px-2 py-1 bg-gray-900 dark:bg-gray-700 text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none">About</span></a><a class="relative group" href="/#projects"><div class="relative flex items-center justify-center p-3 rounded-full transition-all duration-200 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5"><rect width="20" height="14" x="2" y="7" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg></div><span class="absolute -bottom-10 left-1/2 -translate-x-1/2 px-2 py-1 bg-gray-900 dark:bg-gray-700 text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none">Projects</span></a><a class="relative group" href="/#contact"><div class="relative flex items-center justify-center p-3 rounded-full transition-all duration-200 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg></div><span class="absolute -bottom-10 left-1/2 -translate-x-1/2 px-2 py-1 bg-gray-900 dark:bg-gray-700 text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none">Contact</span></a><a class="relative group" href="/blog"><div class="relative flex items-center justify-center p-3 rounded-full transition-all duration-200 bg-primary-600 dark:bg-primary-500 text-white" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-5 h-5"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg></div><span class="absolute -bottom-10 left-1/2 -translate-x-1/2 px-2 py-1 bg-gray-900 dark:bg-gray-700 text-white text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none">Blog</span></a><div class="w-px h-6 bg-gray-300 dark:bg-gray-600 mx-1"></div><div class="w-10 h-10 rounded-lg bg-gray-100 dark:bg-gray-800 animate-pulse"></div><div class="w-px h-6 bg-gray-300 dark:bg-gray-600 mx-1"></div><button aria-label="Minimize navigation" class="p-2 rounded-full bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><path d="m15 18-6-6 6-6"></path></svg></button></div></div></nav><div class="md:hidden fixed top-4 right-4 z-50"><button class="p-2 rounded-full bg-white/80 dark:bg-gray-900/80 backdrop-blur-xl border border-gray-200 dark:border-gray-700 text-gray-700 dark:text-gray-300 hover:text-primary-600 dark:hover:text-primary-400 shadow-lg transition-colors" aria-label="Toggle menu"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-6 w-6"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div><main class="min-h-screen overflow-x-hidden"><section class="min-h-screen py-20 bg-gradient-to-b from-gray-50 to-white dark:from-gray-900 dark:to-gray-950"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="text-center mb-16" style="opacity:0;transform:translateY(30px) translateZ(0)"><h2 class="text-3xl sm:text-4xl font-bold text-gray-900 dark:text-white mb-4 mt-12">Blog</h2><p class="text-xl text-gray-600 dark:text-gray-400 max-w-3xl mx-auto">Thoughts, tutorials, personal experiences, insights on web development, design, and technology.</p></div><div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"><article class="group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-
1primary-500/10"><a class="block" href="/blog/clean-code-principles"><div class="relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20"><img alt="Clean Code Principles: Writing Code That Developer Can Read" loading="lazy" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-300 group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="100vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fclean-code-principles.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fclean-code-principles.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fclean-code-principles.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fclean-code-principles.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fclean-code-principles.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fclean-code-principles.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fclean-code-principles.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fclean-code-principles.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fclean-code-principles.png&amp;w=3840&amp;q=75"/><div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div></div><div class="p-6"><div class="flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><rect width="18" height="18" x="3" y="4" rx="2" ry="2"></rect><line x1="16" x2="16" y1="2" y2="6"></line><line x1="8" x2="8" y1="2" y2="6"></line><line x1="3" x2="21" y1="10" y2="10"></line></svg><time>Mar 5, 2026</time></div><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg><span>15 min read</span></div></div><h3 class="text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2">Clean Code Principles: Writing Code That Developer Can Read</h3><p class="text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3">Master the art of writing clean, maintainable code that your team will thank you for. Learn practical principles for naming, functions, comments, error handling, and code organization that make your code a joy to work with.</p><div class="flex items-center justify-between"><span class="text-sm font-medium text-gray-700 dark:text-gray-300">Rolando Remolacio</span><span class="ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a></article><article class="group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-primary-500/10"><a class="block" href="/blog/web-performance-optimization"><div class="relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20"><img alt="Web Performance Optimization: Making Your Site Lightning Fast" loading="lazy" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-300 group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="100vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fperformance-optimization.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fperformance-optimization.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fperformance-optimization.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fperformance-optimization.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fperformance-optimization.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fperformance-optimization.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fperformance-optimization.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fperformance-optimization.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fperformance-optimization.png&amp;w=3840&amp;q=75"/><div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div></div><div class="p-6"><div class="flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><rect width="18" height="18" x="3" y="4" rx="2" ry="2"></rect><line x1="16" x2="16" y1="2" y2="6"></line><line x1="8" x2="8" y1="2" y2="6"></line>
1<line x1="3" x2="21" y1="10" y2="10"></line></svg><time>Feb 10, 2026</time></div><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg><span>14 min read</span></div></div><h3 class="text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2">Web Performance Optimization: Making Your Site Lightning Fast</h3><p class="text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3">Discover proven techniques for dramatically improving web application performance. Learn about code splitting, lazy loading, image optimization, caching strategies, and performance metrics that matter in production environments.</p><div class="flex items-center justify-between"><span class="text-sm font-medium text-gray-700 dark:text-gray-300">Rolando Remolacio</span><span class="ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a></article><article class="group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-primary-500/10"><a class="block" href="/blog/production-ready-rest-apis"><div class="relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20"><img alt="Building Production-Ready REST APIs: A Comprehensive Guide" loading="lazy" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-300 group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="100vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Frest-api-guide.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Frest-api-guide.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Frest-api-guide.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Frest-api-guide.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Frest-api-guide.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Frest-api-guide.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Frest-api-guide.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Frest-api-guide.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Frest-api-guide.png&amp;w=3840&amp;q=75"/><div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div></div><div class="p-6"><div class="flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><rect width="18" height="18" x="3" y="4" rx="2" ry="2"></rect><line x1="16" x2="16" y1="2" y2="6"></line><line x1="8" x2="8" y1="2" y2="6"></line><line x1="3" x2="21" y1="10" y2="10"></line></svg><time>Jan 15, 2026</time></div><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg><span>12 min read</span></div></div><h3 class="text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2">Building Production-Ready REST APIs: A Comprehensive Guide</h3><p class="text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3">Learn the essential principles and best practices for building robust, scalable, and secure REST APIs that can handle real-world production traffic. From design patterns to error handling, this guide covers everything you need to know.</p><div class="flex items-center justify-between"><span class="text-sm font-medium text-gray-700 dark:text-gray-300">Rolando Remolacio</span><span class="ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a></article><article class="group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-
1primary-500/10"><a class="block" href="/blog/typescript-react-best-practices"><div class="relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20"><img alt="TypeScript Best Practices for React Developers" loading="lazy" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-300 group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="100vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Ftypescript-guide.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Ftypescript-guide.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Ftypescript-guide.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Ftypescript-guide.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Ftypescript-guide.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Ftypescript-guide.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Ftypescript-guide.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Ftypescript-guide.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Ftypescript-guide.png&amp;w=3840&amp;q=75"/><div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div></div><div class="p-6"><div class="flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><rect width="18" height="18" x="3" y="4" rx="2" ry="2"></rect><line x1="16" x2="16" y1="2" y2="6"></line><line x1="8" x2="8" y1="2" y2="6"></line><line x1="3" x2="21" y1="10" y2="10"></line></svg><time>Nov 15, 2025</time></div><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg><span>10 min read</span></div></div><h3 class="text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2">TypeScript Best Practices for React Developers</h3><p class="text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3">Discover essential TypeScript patterns and best practices for building type-safe React applications. Learn about proper typing, generics, utility types, and common pitfalls to avoid.</p><div class="flex items-center justify-between"><span class="text-sm font-medium text-gray-700 dark:text-gray-300">Rolando Remolacio</span><span class="ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a></article><article class="group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-primary-500/10"><a class="block" href="/blog/tailwind-css-guide"><div class="relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20"><img alt="Building Responsive Web Applications with Tailwind CSS" loading="lazy" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-300 group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="100vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Ftailwindcss-guide.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Ftailwindcss-guide.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Ftailwindcss-guide.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Ftailwindcss-guide.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Ftailwindcss-guide.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Ftailwindcss-guide.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Ftailwindcss-guide.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Ftailwindcss-guide.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Ftailwindcss-guide.png&amp;w=3840&amp;q=75"/><div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div></div><div class="p-6"><div class="flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><rect width="18" height="18" x="3" y="4" rx="2" ry="2"></rect><line x1="16" x2="16" y1="2" y2="6"></line><line x1="8" x2="8" y1="2" y2="6"></line>
1<line x1="3" x2="21" y1="10" y2="10"></line></svg><time>Nov 10, 2025</time></div><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg><span>7 min read</span></div></div><h3 class="text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2">Building Responsive Web Applications with Tailwind CSS</h3><p class="text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3">Master the art of creating beautiful, responsive designs with Tailwind CSS. Learn utility-first CSS principles, responsive design patterns, and optimization techniques.</p><div class="flex items-center justify-between"><span class="text-sm font-medium text-gray-700 dark:text-gray-300">Rolando Remolacio</span><span class="ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a></article><article class="group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-primary-500/10"><a class="block" href="/blog/nextjs-14-guide"><div class="relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20"><img alt="Getting Started with Next.js 14: A Comprehensive Guide" loading="lazy" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-300 group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="100vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Fnextjs-guide.png&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Fnextjs-guide.png&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Fnextjs-guide.png&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Fnextjs-guide.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Fnextjs-guide.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Fnextjs-guide.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Fnextjs-guide.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Fnextjs-guide.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Fnextjs-guide.png&amp;w=3840&amp;q=75"/><div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div></div><div class="p-6"><div class="flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><rect width="18" height="18" x="3" y="4" rx="2" ry="2"></rect><line x1="16" x2="16" y1="2" y2="6"></line><line x1="8" x2="8" y1="2" y2="6"></line><line x1="3" x2="21" y1="10" y2="10"></line></svg><time>Nov 1, 2025</time></div><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg><span>8 min read</span></div></div><h3 class="text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2">Getting Started with Next.js 14: A Comprehensive Guide</h3><p class="text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3">Learn how to build modern web applications with Next.js 14, exploring the App Router, Server Components, and best practices for performance optimization.</p><div class="flex items-center justify-between"><span class="text-sm font-medium text-gray-700 dark:text-gray-300">Rolando Remolacio</span><span class="ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a></article><article class="group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-
1primary-500/10"><a class="block" href="/blog/welcome-blog"><div class="relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20"><img alt="Welcome to my Blog" loading="lazy" decoding="async" data-nimg="fill" class="object-cover transition-transform duration-300 group-hover:scale-105" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="100vw" srcSet="/_next/image?url=%2Fimages%2Fblog%2Ffirst-blog.jpg&amp;w=640&amp;q=75 640w, /_next/image?url=%2Fimages%2Fblog%2Ffirst-blog.jpg&amp;w=750&amp;q=75 750w, /_next/image?url=%2Fimages%2Fblog%2Ffirst-blog.jpg&amp;w=828&amp;q=75 828w, /_next/image?url=%2Fimages%2Fblog%2Ffirst-blog.jpg&amp;w=1080&amp;q=75 1080w, /_next/image?url=%2Fimages%2Fblog%2Ffirst-blog.jpg&amp;w=1200&amp;q=75 1200w, /_next/image?url=%2Fimages%2Fblog%2Ffirst-blog.jpg&amp;w=1920&amp;q=75 1920w, /_next/image?url=%2Fimages%2Fblog%2Ffirst-blog.jpg&amp;w=2048&amp;q=75 2048w, /_next/image?url=%2Fimages%2Fblog%2Ffirst-blog.jpg&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=%2Fimages%2Fblog%2Ffirst-blog.jpg&amp;w=3840&amp;q=75"/><div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div></div><div class="p-6"><div class="flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3"><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><rect width="18" height="18" x="3" y="4" rx="2" ry="2"></rect><line x1="16" x2="16" y1="2" y2="6"></line><line x1="8" x2="8" y1="2" y2="6"></line><line x1="3" x2="21" y1="10" y2="10"></line></svg><time>Oct 21, 2025</time></div><div class="flex items-center gap-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-3.5 h-3.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg><span>3 min read</span></div></div><h3 class="text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2">Welcome to my Blog</h3><p class="text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3">This is my first blog. So please be kind. LOL</p><div class="flex items-center justify-between"><span class="text-sm font-medium text-gray-700 dark:text-gray-300">Rolando Remolacio</span><span class="ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all">Read more<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a></article></div></div></section></main><footer class="bg-gray-100 dark:bg-gray-950 text-gray-900 dark:text-white transition-colors duration-300"><div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:px-8"><div class="flex justify-center mb-8"><a href="https://www.smarterasp.net/index?r=ulosolutions" target="_blank" rel="noopener noreferrer" aria-label="Visit SmarterASP hosting"><img alt="SmarterASP hosting banner advertisement" fetchPriority="high" width="728" height="90" decoding="async" data-nimg="1" class="rounded-md border border-gray-200 dark:border-gray-700" style="color:transparent" srcSet="/_next/image?url=%2Fimages%2Fads%2Fsmarterasp-banner.gif&amp;w=750&amp;q=75 1x, /_next/image?url=%2Fimages%2Fads%2Fsmarterasp-banner.gif&amp;w=1920&amp;q=75 2x" src="/_next/image?url=%2Fimages%2Fads%2Fsmarterasp-banner.gif&amp;w=1920&amp;q=75"/></a></div><div class="grid grid-cols-1 md:grid-cols-3 gap-8"><div class="col-span-1 md:col-span-2"><h3 class="text-2xl font-bold text-gray-900 dark:text-white mb-4">Rolando Remolacio</h3><p class="text-gray-600 dark:text-gray-400 mb-6 max-w-md">Full Stack Developer specializing in .NET, C#, JavaScript, and React. Building robust, scalable, and user-friendly applications.</p><div class="flex space-x-6"><a class="text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors" target="_blank" rel="noopener noreferrer" aria-label="GitHub" href="https://github.com/paynuj1099"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-6 h-6"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a><a class="text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" href="https://www.linkedin.com/in/rolando-remolacio"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-6 h-6"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect width="4" height="12" x="2" y="9"></rect><circle cx="4" cy="4" r="2"></circle></svg></a><a class="text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors" target="_blank" rel="noopener noreferrer" aria-label="Email" href="mailto:[email protected]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-6 h-6"><rect width="20" height="16" x="2" y="4" rx="2"></rect><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path></svg></a></div></div><div><h4 class="text-lg font-semibold text-gray-900 dark:text-white mb-4">Quick Links</h4><ul class="grid grid-cols-2 gap-x-4 gap-y-2"><li><a class="text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors" href="/">Home</a></li><li><a class="text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors" href="/#about">About</a></li><li><a class="text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors" href="/blog">Blog</a></li><li><a class="text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors" href="/#contact">Contact</a></li></ul></div></div><div class="mt-8 pt-8 border-t border-gray-300 dark:border-gray-800"><div class="flex flex-col sm:flex-row justify-between items-center mb-4"><p class="text-gray-600 dark:text-gray-400 text-sm">© <!-- -->2026<!-- --> Rolando Remolacio. All rights reserved.</p><div class="flex items-center space-x-4 mt-2 sm:mt-0"><a class="text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 text-sm transition-colors" href="/privacy">Privacy Policy</a><span class="text-gray-400">•</span><a class="text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 text-sm transition-colors" href="/terms">Terms of Service</a></div></div><p class="text-gray-600 dark:text-gray-400 text-sm text-center">This portfolio is built using Next.js &amp; Tailwind CSS. Deployed in Vercel.</p></div></div></footer><button class="fixed bottom-4 sm:bottom-6 right-4 sm:right-6 z-50 w-14 h-14 bg-primary-600 dark:bg-primary-500 text-white rounded-full shadow-lg hover:bg-primary-700 dark:hover:bg-primary-600 transition-colors flex items-center justify-center" aria-label="Toggle AI Assistant" tabindex="0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-6 h-6"><path d="m3 21 1.9-5.7a8.5 8.5 0 1 1 3.8 3.8z"></path></svg></button><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$-->
1<script src="/_next/static/chunks/webpack-167842b36b2d5803.js" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script>
1<script>self.__next_f.push([1,"1:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/css/9c6fe346b7a4ab7e.css\",\"style\"]\n"])</script>
1<script>self.__next_f.push([1,"3:I[5751,[],\"\"]\n6:I[9275,[],\"\"]\n7:I[1343,[],\"\"]\n8:I[4080,[\"231\",\"static/chunks/231-05bca1aa767a40b0.js\",\"173\",\"static/chunks/173-06e997f2c170bb4c.js\",\"915\",\"static/chunks/915-5ea300d2f715180f.js\",\"60\",\"static/chunks/60-d2232ed5c729ee49.js\",\"185\",\"static/chunks/app/layout-c75e8ccf0a7b0731.js\"],\"\"]\na:I[2943,[\"231\",\"static/chunks/231-05bca1aa767a40b0.js\",\"173\",\"static/chunks/173-06e997f2c170bb4c.js\",\"915\",\"static/chunks/915-5ea300d2f715180f.js\",\"60\",\"static/chunks/60-d2232ed5c729ee49.js\",\"185\",\"static/chunks/app/layout-c75e8ccf0a7b0731.js\"],\"ThemeProvider\"]\nb:I[1732,[\"231\",\"static/chunks/231-05bca1aa767a40b0.js\",\"173\",\"static/chunks/173-06e997f2c170bb4c.js\",\"915\",\"static/chunks/915-5ea300d2f715180f.js\",\"60\",\"static/chunks/60-d2232ed5c729ee49.js\",\"185\",\"static/chunks/app/layout-c75e8ccf0a7b0731.js\"],\"default\"]\nc:I[8173,[\"231\",\"static/chunks/231-05bca1aa767a40b0.js\",\"173\",\"static/chunks/173-06e997f2c170bb4c.js\",\"915\",\"static/chunks/915-5ea300d2f715180f.js\",\"404\",\"static/chunks/app/blog/page-7b528443fb45b76a.js\"],\"Image\"]\nd:I[231,[\"231\",\"static/chunks/231-05bca1aa767a40b0.js\",\"173\",\"static/chunks/173-06e997f2c170bb4c.js\",\"915\",\"static/chunks/915-5ea300d2f715180f.js\",\"404\",\"static/chunks/app/blog/page-7b528443fb45b76a.js\"],\"\"]\ne:I[1347,[\"231\",\"static/chunks/231-05bca1aa767a40b0.js\",\"173\",\"static/chunks/173-06e997f2c170bb4c.js\",\"915\",\"static/chunks/915-5ea300d2f715180f.js\",\"60\",\"static/chunks/60-d2232ed5c729ee49.js\",\"185\",\"static/chunks/app/layout-c75e8ccf0a7b0731.js\"],\"default\"]\nf:I[1164,[\"231\",\"static/chunks/231-05bca1aa767a40b0.js\",\"173\",\"static/chunks/173-06e997f2c170bb4c.js\",\"915\",\"static/chunks/915-5ea300d2f715180f.js\",\"60\",\"static/chunks/60-d2232ed5c729ee49.js\",\"185\",\"static/chunks/app/layout-c75e8ccf0a7b0731.js\"],\"Analytics\"]\n10:I[7240,[\"231\",\"static/chunks/231-05bca1aa767a40b0.js\",\"173\",\"static/chunks/173-06e997f2c170bb4c.js\",\"915\",\"static/chunks/915-5ea300d2f715180f.js\",\"60\",\"static/chunks/60-d2232ed5c729ee49.js\",\"185\",\"static/chunks/app/layout-c75e8ccf0a7b0731.js\"],\"SpeedInsights\"]\n12:I[6130,[],\"\"]\n9:T779,{\"@c"])</script>
1<script>self.__next_f.push([1,"ontext\":\"https://schema.org\",\"@type\":\"ProfessionalService\",\"name\":\"Rolando Remolacio - Full Stack Development Services\",\"image\":\"https://rolandoremolacio.com/images/profile1.png\",\"url\":\"https://rolandoremolacio.com\",\"telephone\":\"+639625871454\",\"email\":\"[email protected]\",\"address\":{\"@type\":\"PostalAddress\",\"addressLocality\":\"San Pedro\",\"addressRegion\":\"Laguna\",\"addressCountry\":\"PH\"},\"priceRange\":\"$$\",\"servedCuisine\":[],\"areaServed\":{\"@type\":\"GeoCircle\",\"geoMidpoint\":{\"@type\":\"GeoCoordinates\",\"latitude\":\"14.3586\",\"longitude\":\"121.0430\"},\"geoRadius\":\"99999999\"},\"availableChannel\":{\"@type\":\"ServiceChannel\",\"serviceUrl\":\"https://rolandoremolacio.com\",\"serviceType\":\"Web Development\",\"availableLanguage\":{\"@type\":\"Language\",\"name\":\"English\",\"alternateName\":\"en\"}},\"hasOfferCatalog\":{\"@type\":\"OfferCatalog\",\"name\":\"Development Services\",\"itemListElement\":[{\"@type\":\"OfferCatalog\",\"name\":\"Custom Web Application Development\",\"itemListElement\":[{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Full-stack Web Application Development\",\"description\":\"Build modern, scalable web applications using React, Next.js, .NET, and TypeScript\"}}]},{\"@type\":\"OfferCatalog\",\"name\":\"Frontend Development\",\"itemListElement\":[{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"React \u0026 Next.js Development\",\"description\":\"Create stunning, responsive user interfaces with modern frameworks\"}}]},{\"@type\":\"OfferCatalog\",\"name\":\"Backend Development\",\"itemListElement\":[{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\".NET \u0026 Node.js Backend Development\",\"description\":\"Build robust, scalable backend systems and APIs\"}}]},{\"@type\":\"OfferCatalog\",\"name\":\"Database Design \u0026 Management\",\"itemListElement\":[{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Database Design and Optimization\",\"description\":\"Design efficient database solutions with SQL Server, PostgreSQL, and MongoDB\"}}]}]}}13:[]\n"])</script>
1<script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9c6fe346b7a4ab7e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L3\",null,{\"buildId\":\"-mEYalZ_LLni2MYqv6ict\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/blog\",\"initialTree\":[\"\",{\"children\":[\"blog\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"blog\",{\"children\":[\"__PAGE__\",{},[[\"$L4\",\"$L5\"],null],null]},[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"blog\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"scroll-smooth overflow-x-hidden\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"canonical\",\"href\":\"https://rolandoremolacio.com\"}],[\"$\",\"meta\",null,{\"name\":\"google-site-verification\",\"content\":\"your-google-site-verification-code\"}],[[\"$\",\"$L8\",null,{\"id\":\"website-schema\",\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"Rolando Remolacio Portfolio\\\",\\\"url\\\":\\\"https://rolandoremolacio.com\\\",\\\"description\\\":\\\"Professional Full Stack Developer specializing in .NET, C#, React, Next.js, and TypeScript\\\",\\\"publisher\\\":{\\\"@type\\\":\\\"Person\\\",\\\"@id\\\":\\\"https://rolandoremolacio.com/#person\\\"},\\\"potentialAction\\\":{\\\"@type\\\":\\\"SearchAction\\\",\\\"target\\\":\\\"https://rolandoremolacio.com/blog?search={search_term_string}\\\",\\\"query-input\\\":\\\"required name=search_term_string\\\"}}\"}}],[\"$\",\"$L8\",null,{\"id\":\"person-schema\",\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Person\\\",\\\"@id\\\":\\\"https://rolandoremolacio.com/#person\\\",\\\"name\\\":\\\"Rolando Remolacio\\\",\\\"alternateName\\\":\\\"Jun Remolacio\\\",\\\"image\\\":\\\"https://rolandoremolacio.com/images/profile1.png\\\",\\\"url\\\":\\\"https://rolandoremolacio.com\\\",\\\"sameAs\\\":[\\\"https://github.com/paynuj1099\\\",\\\"https://www.linkedin.com/in/rolando-remolacio\\\"],\\\"jobTitle\\\":\\\"Full Stack Developer\\\",\\\"worksFor\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"Practice AI\\\"},\\\"address\\\":{\\\"@type\\\":\\\"PostalAddress\\\",\\\"addressLocality\\\":\\\"San Pedro\\\",\\\"addressRegion\\\":\\\"Laguna\\\",\\\"addressCountry\\\":\\\"PH\\\"},\\\"email\\\":\\\"[email protected]\\\",\\\"telephone\\\":\\\"+639625871454\\\",\\\"knowsAbout\\\":[\\\"Web Development\\\",\\\"Full Stack Development\\\",\\\".NET Development\\\",\\\"React Development\\\",\\\"Next.js\\\",\\\"TypeScript\\\",\\\"C# Programming\\\",\\\"JavaScript\\\",\\\"Database Design\\\",\\\"API Development\\\",\\\"Software Engineering\\\"],\\\"alumniOf\\\":{\\\"@type\\\":\\\"EducationalOrganization\\\",\\\"name\\\":\\\"Cavite State University - Carmona\\\",\\\"sameAs\\\":\\\"https://cvsu.edu.ph/\\\"}}\"}}],[\"$\",\"$L8\",null,{\"id\":\"professional-service-schema\",\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$9\"}}],[\"$\",\"$L8\",null,{\"id\":\"breadcrumb-schema\",\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BreadcrumbList\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":1,\\\"name\\\":\\\"Home\\\",\\\"item\\\":\\\"https://rolandoremolacio.com\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":2,\\\"name\\\":\\\"About\\\",\\\"item\\\":\\\"https://rolandoremolacio.com/about\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":3,\\\"name\\\":\\\"Services\\\",\\\"item\\\":\\\"https://rolandoremolacio.com/services\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":4,\\\"name\\\":\\\"Blog\\\",\\\"item\\\":\\\"https://rolandoremolacio.com/blog\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":5,\\\"name\\\":\\\"FAQ\\\",\\\"item\\\":\\\"https://rolandoremolacio.com/faq\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":6,\\\"name\\\":\\\"Uses\\\",\\\"item\\\":\\\"https://rolandoremolacio.com/uses\\\"}]}\"}}]]]}],[\"$\",\"body\",null,{\"className\":\"__className_f367f3 bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 antialiased transition-colors duration-300 overflow-x-hidden w-full\",\"children\":[[\"$\",\"$L8\",null,{\"src\":\"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1337466475251034\",\"crossOrigin\":\"anonymous\",\"strategy\":\"lazyOnload\"}],[\"$\",\"$La\",null,{\"children\":[[\"$\",\"$Lb\",null,{}],[\"$\",\"main\",null,{\"className\":\"min-h-screen overflow-x-hidden\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\"
1:\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"styles\":null}]}],[\"$\",\"footer\",null,{\"className\":\"bg-gray-100 dark:bg-gray-950 text-gray-900 dark:text-white transition-colors duration-300\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:px-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex justify-center mb-8\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.smarterasp.net/index?r=ulosolutions\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"Visit SmarterASP hosting\",\"children\":[\"$\",\"$Lc\",null,{\"src\":\"/images/ads/smarterasp-banner.gif\",\"alt\":\"SmarterASP hosting banner advertisement\",\"width\":728,\"height\":90,\"priority\":true,\"className\":\"rounded-md border border-gray-200 dark:border-gray-700\"}]}]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 md:grid-cols-3 gap-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"col-span-1 md:col-span-2\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-2xl font-bold text-gray-900 dark:text-white mb-4\",\"children\":\"Rolando Remolacio\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-600 dark:text-gray-400 mb-6 max-w-md\",\"children\":\"Full Stack Developer specializing in .NET, C#, JavaScript, and React. Building robust, scalable, and user-friendly applications.\"}],[\"$\",\"div\",null,{\"className\":\"flex space-x-6\",\"children\":[[\"$\",\"$Ld\",\"GitHub\",{\"href\":\"https://github.com/paynuj1099\",\"className\":\"text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"GitHub\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-6 h-6\",\"children\":[[\"$\",\"path\",\"tonef\",{\"d\":\"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4\"}],[\"$\",\"path\",\"9comsn\",{\"d\":\"M9 18c-4.51 2-5-2-7-2\"}],\"$undefined\"]}]}],[\"$\",\"$Ld\",\"LinkedIn\",{\"href\":\"https://www.linkedin.com/in/rolando-remolacio\",\"className\":\"text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"LinkedIn\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-6 h-6\",\"children\":[[\"$\",\"path\",\"c2jq9f\",{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"}],[\"$\",\"rect\",\"mk3on5\",{\"width\":\"4\",\"height\":\"12\",\"x\":\"2\",\"y\":\"9\"}],[\"$\",\"circle\",\"bt5ra8\",{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"}],\"$undefined\"]}]}],[\"$\",\"$Ld\",\"Email\",{\"href\":\"mailto:[email protected]\",\"className\":\"text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"Email\",\"children\":[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-6 h-6\",\"children\":[[\"$\",\"rect\",\"18n3k1\",{\"width\":\"20\",\"height\":\"16\",\"x\":\"2\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"1ocrg3\",{\"d\":\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\"}],\"$undefined\"]}]}]]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h4\",null,{\"className\":\"text-lg font-semibold text-gray-900 dark:text-white mb-4\",\"children\":\"Quick Links\"}],[\"$\",\"ul\",null,{\"className\":\"grid grid-cols-2 gap-x-4 gap-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$Ld\",null,{\"href\":\"/\",\"className\":\"text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors\",\"children\":\"Home\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$Ld\",null,{\"href\":\"/#about\",\"className\":\"text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors\",\"children\":\"About\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$Ld\",null,{\"href\":\"/blog\",\"className\":\"text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors\",\"children\":\"Blog\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$Ld\",null,{\"href\":\"/#contact\",\"className\":\"text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 transition-colors\",\"children\":\"Contact\"}]}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-8 pt-8 border-t border-gray-300 dark:border-gray-800\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col sm:flex-row justify-between items-center mb-4\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-gray-600 dark:text-gray-400 text-sm\",\"children\":[\"© \",2026,\" Rolando Remolacio. All rights reserved.\"]}],[\"$\",\"div\",null,{\"className\":\"flex items-center space-x-4 mt-2 sm:mt-0\",\"children\":[[\"$\",\"$Ld\",null,{\"href\":\"/privacy\",\"className\":\"text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 text-sm transition-colors\",\"children\":\"Privacy Policy\"}],[\"$\",\"span\",null,{\"className\":\"text-gray-400\",\"children\":\"•\"}],[\"$\",\"$Ld\",null,{\"href\":\"/terms\",\"className\":\"text-gray-600 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400 text-sm transition-colors\",\"children\":\"Terms of Service\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"text-gray-600 dark:text-gray-400 text-sm text-center\",\"children\":\"This portfolio is built using Next.js \u0026 Tailwind CSS. Deployed in Vercel.\"}]]}]]}]}],[\"$\",\"$Le\",null,{}],[\"$\",\"$Lf\",null,{}],[\"$\",\"$L10\",null,{}],false]}]]}]]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L11\"],\"globalErrorComponent\":\"$12\",\"missingSlots\":\"$W13\"}]]\n"])</script>
1<script>self.__next_f.push([1,"14:I[8378,[\"231\",\"static/chunks/231-05bca1aa767a40b0.js\",\"173\",\"static/chunks/173-06e997f2c170bb4c.js\",\"915\",\"static/chunks/915-5ea300d2f715180f.js\",\"404\",\"static/chunks/app/blog/page-7b528443fb45b76a.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"5:[\"$\",\"section\",null,{\"className\":\"min-h-screen py-20 bg-gradient-to-b from-gray-50 to-white dark:from-gray-900 dark:to-gray-950\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\",\"children\":[[\"$\",\"$L14\",null,{}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8\",\"children\":[[\"$\",\"article\",null,{\"className\":\"group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-primary-500/10\",\"children\":[\"$\",\"$Ld\",null,{\"href\":\"/blog/clean-code-principles\",\"className\":\"block\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20\",\"children\":[[\"$\",\"$Lc\",null,{\"src\":\"/images/blog/clean-code-principles.png\",\"alt\":\"Clean Code Principles: Writing Code That Developer Can Read\",\"fill\":true,\"className\":\"object-cover transition-transform duration-300 group-hover:scale-105\"}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 bg-gradient-to-t from-black/50 to-transparent\"}]]}],false,[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"rect\",\"eu3xkr\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}],[\"$\",\"line\",\"m3sa8f\",{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"18kwsl\",{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"xt86sb\",{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}],\"$undefined\"]}],[\"$\",\"time\",null,{\"children\":\"Mar 5, 2026\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"polyline\",\"68esgv\",{\"points\":\"12 6 12 12 16 14\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"15 min read\"}]]}]]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2\",\"children\":\"Clean Code Principles: Writing Code That Developer Can Read\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3\",\"children\":\"Master the art of writing clean, maintainable code that your team will thank you for. Learn practical principles for naming, functions, comments, error handling, and code organization that make your code a joy to work with.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-sm font-medium text-gray-700 dark:text-gray-300\",\"children\":\"Rolando Remolacio\"}],[\"$\",\"span\",null,{\"className\":\"ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-4 h-4\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]]}]}],[\"$\",\"article\",null,{\"className\":\"group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-
1primary-500/10\",\"children\":[\"$\",\"$Ld\",null,{\"href\":\"/blog/web-performance-optimization\",\"className\":\"block\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20\",\"children\":[[\"$\",\"$Lc\",null,{\"src\":\"/images/blog/performance-optimization.png\",\"alt\":\"Web Performance Optimization: Making Your Site Lightning Fast\",\"fill\":true,\"className\":\"object-cover transition-transform duration-300 group-hover:scale-105\"}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 bg-gradient-to-t from-black/50 to-transparent\"}]]}],false,[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"rect\",\"eu3xkr\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}],[\"$\",\"line\",\"m3sa8f\",{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"18kwsl\",{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"xt86sb\",{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}],\"$undefined\"]}],[\"$\",\"time\",null,{\"children\":\"Feb 10, 2026\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"polyline\",\"68esgv\",{\"points\":\"12 6 12 12 16 14\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"14 min read\"}]]}]]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2\",\"children\":\"Web Performance Optimization: Making Your Site Lightning Fast\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3\",\"children\":\"Discover proven techniques for dramatically improving web application performance. Learn about code splitting, lazy loading, image optimization, caching strategies, and performance metrics that matter in production environments.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-sm font-medium text-gray-700 dark:text-gray-300\",\"children\":\"Rolando Remolacio\"}],[\"$\",\"span\",null,{\"className\":\"ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-4 h-4\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]]}]}],[\"$\",\"article\",null,{\"className\":\"group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-primary-500/10\",\"children\":[\"$\",\"$Ld\",null,{\"href\":\"/blog/production-ready-rest-apis\",\"className\":\"block\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20\",\"children\":[[\"$\",\"$Lc\",null,{\"src\":\"/images/blog/rest-api-guide.png\",\"alt\":\"Building Production-Ready REST APIs: A Comprehensive Guide\",\"fill\":true,\"className\":\"object-cover transition-transform duration-300 group-hover:scale-105\"}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 bg-gradient-to-t from-black/50 to-transparent\"}]]}],false,[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"rect\",\"eu3xkr\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}],[\"$\",\"line\",\"m3sa8f\",{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"18kwsl\",{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"xt86sb\",{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}],\"$undefined\"]}],[\"$\",\"time\",null,{\"children\":\"Jan 15, 2026\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"polyline\",\"68esgv\",{\"points\":\"12 6 12 12 16 14\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"12 min read\"}]]}]]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2\",\"children\":\"Building Production-Ready REST APIs: A Comprehensive Guide\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3\",\"children\":\"Learn the essential principles and best practices for building robust, scalable, and secure REST APIs that can handle real-world production traffic. From design patterns to error handling, this guide covers everything you need to know.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-sm font-medium text-gray-700 dark:text-gray-300\",\"children\":\"Rolando Remolacio\"}],[\"$\",\"span\",null,{\"className\":\"ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-4 h-4\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]]}]}],[\"$\",\"article\",null,{\"className\":\"group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-primary-500/10\",\"children\":[\"$\",\"$Ld\",null,{\"href\":\"/blog/typescript-react-best-practices\",\"className\":\"block\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20\",\"children\":[[\"$\",\"$Lc\",null,{\"src\":\"/images/blog/typescript-guide.png\",\"alt\":\"TypeScript Best Practices for React Developers\",\"fill\":true,\"className\":\"object-cover transition-transform duration-300 group-hover:scale-105\"}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 bg-gradient-to-t from-black/50 to-transparent\"}]]}],false,[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"rect\",\"eu3xkr\",{\"width\":\"18\",\"height\"
1:\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}],[\"$\",\"line\",\"m3sa8f\",{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"18kwsl\",{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"xt86sb\",{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}],\"$undefined\"]}],[\"$\",\"time\",null,{\"children\":\"Nov 15, 2025\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"polyline\",\"68esgv\",{\"points\":\"12 6 12 12 16 14\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"10 min read\"}]]}]]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2\",\"children\":\"TypeScript Best Practices for React Developers\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3\",\"children\":\"Discover essential TypeScript patterns and best practices for building type-safe React applications. Learn about proper typing, generics, utility types, and common pitfalls to avoid.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-sm font-medium text-gray-700 dark:text-gray-300\",\"children\":\"Rolando Remolacio\"}],[\"$\",\"span\",null,{\"className\":\"ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-4 h-4\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]]}]}],[\"$\",\"article\",null,{\"className\":\"group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-primary-500/10\",\"children\":[\"$\",\"$Ld\",null,{\"href\":\"/blog/tailwind-css-guide\",\"className\":\"block\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20\",\"children\":[[\"$\",\"$Lc\",null,{\"src\":\"/images/blog/tailwindcss-guide.png\",\"alt\":\"Building Responsive Web Applications with Tailwind CSS\",\"fill\":true,\"className\":\"object-cover transition-transform duration-300 group-hover:scale-105\"}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 bg-gradient-to-t from-black/50 to-transparent\"}]]}],false,[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"rect\",\"eu3xkr\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}],[\"$\",\"line\",\"m3sa8f\",{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"18kwsl\",{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"xt86sb\",{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}],\"$undefined\"]}],[\"$\",\"time\",null,{\"children\":\"Nov 10, 2025\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"polyline\",\"68esgv\",{\"points\":\"12 6 12 12 16 14\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"7 min read\"}]]}]]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2\",\"children\":\"Building Responsive Web Applications with Tailwind CSS\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3\",\"children\":\"Master the art of creating beautiful, responsive designs with Tailwind CSS. Learn utility-first CSS principles, responsive design patterns, and optimization techniques.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-sm font-medium text-gray-700 dark:text-gray-300\",\"children\":\"Rolando Remolacio\"}],[\"$\",\"span\",null,{\"className\":\"ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-4 h-4\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]]}]}],[\"$\",\"article\",null,{\"className\":\"group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-primary-500/10\",\"children\":[\"$\",\"$Ld\",null,{\"href\":\"/blog/nextjs-14-guide\",\"className\":\"block\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20\",\"children\":[[\"$\",\"$Lc\",null,{\"src\":\"/images/blog/nextjs-guide.png\",\"alt\":\"Getting Started with Next.js 14: A Comprehensive Guide\",\"fill\":true,\"className\":\"object-cover transition-transform duration-300 group-hover:scale-105\"}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 bg-gradient-to-t from-black/50 to-transparent\"}]]}],false,[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"rect\",\"eu3xkr\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}],[\"$\",\"line\",\"m3sa8f\",{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"18kwsl\",{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"xt86sb\",{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}],\"$undefined\"]}],[\"$\",\"time\",null,{\"children\":\"Nov 1, 2025\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"polyline\",\"68esgv\",{\"points\":\"12 6 12 12 16 14\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"8 min read\"}]]}]]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2\",\"children\":\"Getting Started with Next.js 14: A Comprehensive Guide\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3\",\"children\":\"Learn how to build modern web applications with Next.js 14, exploring the App Router, Server Components, and best practices for performance optimization.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-sm font-medium text-gray-700 dark:text-gray-300\",\"children\":\"Rolando Remolacio\"}],[\"$\",\"span\",null,{\"className\":\"ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-4 h-4\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]]}]}],[\"$\",\"article\",null,{\"className\":\"group relative overflow-hidden rounded-2xl bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 hover:border-primary-500 dark:hover:border-primary-500 transition-all duration-300 hover:shadow-xl hover:shadow-primary-500/10\",\"children\":[\"$\",\"$Ld\",null,{\"href\":\"/blog/welcome-blog\",\"className\":\"block\",\"children\":[[\"$\",\"div\",null,{\"className\":\"relative h-48 w-full overflow-hidden bg-gradient-to-br from-primary-500/20 to-blue-500/20\",\"children\":[[\"$\",\"$Lc\",null,{\"src\":\"/images/blog/first-blog.jpg\",\"alt\":\"Welcome to my Blog\",\"fill\":true,\"className\":\"object-cover transition-transform duration-300 group-hover:scale-105\"}],[\"$\",\"div\",null,{\"className\":\"absolute inset-0 bg-gradient-to-t from-black/50 to-transparent\"}]]}],false,[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-4 text-xs text-gray-500 dark:text-gray-400 mb-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"rect\",\"eu3xkr\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\",\"ry\":\"2\"}],[\"$\",\"line\",\"m3sa8f\",{\"x1\":\"16\",\"x2\":\"16\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"18kwsl\",{\"x1\":\"8\",\"x2\":\"8\",\"y1\":\"2\",\"y2\":\"6\"}],[\"$\",\"line\",\"xt86sb\",{\"x1\":\"3\",\"x2\":\"21\",\"y1\":\"10\",\"y2\":\"10\"}],\"$undefined\"]}],[\"$\",\"time\",null,{\"children\":\"Oct 21, 2025\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-3.5 h-3.5\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"polyline\",\"68esgv\",{\"points\":\"12 6 12 12 16 14\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"children\":\"3 min read\"}]]}]]}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold mb-2 text-gray-900 dark:text-white group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2\",\"children\":\"Welcome to my Blog\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-600 dark:text-gray-300 text-sm mb-4 line-clamp-3\",\"children\":\"This is my first blog. So please be kind. LOL\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-sm font-medium text-gray-700 dark:text-gray-300\",\"children\":\"Rolando Remolacio\"}],[\"$\",\"span\",null,{\"className\":\"ml-auto flex items-center gap-1 text-sm font-medium text-primary-600 dark:text-primary-400 group-hover:gap-2 transition-all\",\"children\":[\"Read more\",[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"w-4 h-4\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]]}]]}]]}]}]]}],false]}]}]\n"])</script>
1<script>self.__next_f.push([1,"11:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Blog - Rolando Remolacio | Rolando Remolacio\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Articles and tutorials by Rolando Remolacio\"}],[\"$\",\"link\",\"4\",{\"rel\":\"author\",\"href\":\"https://rolandoremolacio.com\"}],[\"$\",\"meta\",\"5\",{\"name\":\"author\",\"content\":\"Rolando Remolacio\"}],[\"$\",\"meta\",\"6\",{\"name\":\"keywords\",\"content\":\"Rolando Remolacio,Full Stack Developer,Web Developer Philippines,React Developer,Next.js Developer,TypeScript Expert,.NET Developer,C# Programming,Web Development,Software Engineer,Programmer Analyst,Front End Developer,Back End Developer,JavaScript Developer,Azure DevOps,Portfolio Website,Tech Blog,San Pedro Laguna Developer\"}],[\"$\",\"meta\",\"7\",{\"name\":\"creator\",\"content\":\"Rolando Remolacio\"}],[\"$\",\"meta\",\"8\",{\"name\":\"publisher\",\"content\":\"Rolando Remolacio\"}],[\"$\",\"meta\",\"9\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"10\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"11\",{\"name\":\"category\",\"content\":\"Technology\"}],[\"$\",\"link\",\"12\",{\"rel\":\"canonical\",\"href\":\"https://rolandoremolacio.com\"}],[\"$\",\"meta\",\"13\",{\"name\":\"format-detection\",\"content\":\"telephone=no, address=no, email=no\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:title\",\"content\":\"Rolando Remolacio | Full Stack Developer Portfolio\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:description\",\"content\":\"Professional Full Stack Developer with 3+ years of experience in .NET, React, Next.js, and TypeScript. Explore my projects, technical blog, and get in touch for collaboration opportunities.\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:url\",\"content\":\"https://rolandoremolacio.com\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:site_name\",\"content\":\"Rolando Remolacio Portfolio\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:image\",\"content\":\"https://rolandoremolacio.com/images/og-image.jpg\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"22\",{\"property\":\"og:image:alt\",\"content\":\"Rolando Remolacio - Full Stack Developer\"}],[\"$\",\"meta\",\"23\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:creator\",\"content\":\"@rolandoremolacio\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:title\",\"content\":\"Rolando Remolacio - Full Stack Developer\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:description\",\"content\":\"Professional Full Stack Developer with 3+ years of experience in .NET, React, Next.js, and TypeScript. Building modern web applications.\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:image\",\"content\":\"https://rolandoremolacio.com/images/og-image.jpg\"}],[\"$\",\"link\",\"29\",{\"rel\":\"icon\",\"href\":\"/icon?9277f3cbc9077276\",\"alt\":\"$undefined\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"meta\",\"30\",{\"name\":\"next-size-adjust\"}]]\n"])</script>
1<script>self.__next_f.push([1,"4:null\n"])</script>
1</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.