PageSourceSearch

https://www.vinodliyanage.me/

html vinodliyanage.me collected 2026-10-02 02:00:22 UTC 18,593 bytes, 1 lines download raw bytes

1<!DOCTYPE html><!--Rl8KFTiow0__zSn63sOLp--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/1b99372b3eaef0c8-s.p.758e15a8.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/47fe1b7cd6e6ed85-s.p.855a563b.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/8e6fa89aa22d24ec-s.p.3aec397d.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/a218039a3287bcfd-s.p.4a23d71b.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c875c6f5d3e977ac-s.p.80fc2c9e.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/e2334d715941921e-s.p.d82a9aff.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/e7ef8dc0baa4f9a9.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/e10256e77dd23fa1.js"/>
1<script src="/_next/static/chunks/2ccbbd6bdb95ffba.js" async=""></script>
1<script src="/_next/static/chunks/9b0981b13ed6a1be.js" async=""></script>
1<script src="/_next/static/chunks/6a43564e0e5dafba.js" async=""></script>
1<script src="/_next/static/chunks/2886c86d337704c6.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-c1832d15d138a986.js" async=""></script>
1<script src="/_next/static/chunks/9b57d60b52ca2954.js" async=""></script>
1<script src="/_next/static/chunks/7bc11eaa8761707b.js" async=""></script>
1<script src="/_next/static/chunks/d039e786b0e486e1.js" async=""></script>
1<script src="/_next/static/chunks/1a95c5597d39db16.js" async=""></script>
1<script src="/_next/static/chunks/0098f15e5394d696.js" async=""></script>
1<script src="/_next/static/chunks/1cf61b634eeef4aa.js" async=""></script>
1<script src="/_next/static/chunks/fe8494bee9e0d1a4.js" async=""></script>
1<script src="/_next/static/chunks/906994807a4f5002.js" async=""></script>
1<script src="/_next/static/chunks/484be986eb205e71.js" async=""></script>
1<script src="/_next/static/chunks/f5f6def668db120e.js" async=""></script>
1<link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-NMQFF37D00" as="script"/><meta name="next-size-adjust" content=""/><title>Vinod Liyanage | Full Stack Developer</title><meta name="description" content="Hi I&#x27;m Vinod Liyanage, a Full Stack Developer from Sri Lanka, specializing in building modern web applications, immersive experiences, and scalable software solutions using React, Next.js, Node.js, and more."/><meta name="application-name" content="Vinod Liyanage Portfolio"/><link rel="author" href="https://vinodliyanage.me"/><meta name="author" content="Vinod Liyanage"/><meta name="generator" content="Next.js"/><meta name="keywords" content="Vinod Liyanage,Full Stack Developer,Creative Engineer,Software Engineer,Frontend Developer,Backend Developer,React Developer,Next.js,Node.js,TypeScript,JavaScript,Web Development,Sri Lanka,Portfolio,Three.js,Web Applications"/><meta name="referrer" content="origin-when-cross-origin"/><meta name="creator" content="Vinod Liyanage"/><meta name="publisher" content="Vinod Liyanage"/><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="google-site-verification" content="LRSfBm9JjbhHLkNzG-u84HGlnEPdyfhJlsZVawWqraY"/><meta property="og:title" content="Vinod Liyanage | Full Stack Developer"/><meta property="og:description" content="Hi I&#x27;m Vinod Liyanage, a Full Stack Developer from Sri Lanka, specializing in building modern web applications, immersive experiences, and scalable software solutions using React, Next.js, Node.js, and more."/><meta property="og:url" content="https://vinodliyanage.me"/><meta property="og:site_name" content="Vinod Liyanage"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://cdn.vinodliyanage.me/images/og-image.jpg"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Vinod Liyanage - Full Stack Developer Portfolio"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="@vinod_liyanage"/><meta name="twitter:title" content="Vinod Liyanage | Full Stack Developer"/><meta name="twitter:description" content="Hi I&#x27;m Vinod Liyanage, a Full Stack Developer from Sri Lanka, specializing in building modern web applications, immersive experiences, and scalable software solutions using React, Next.js, Node.js, and more."/><meta name="twitter:image" content="https://cdn.vinodliyanage.me/images/og-image.jpg"/><link rel="icon" href="/favicon.ico?favicon.fc325c0a.ico" sizes="48x48" type="image/x-icon"/><link rel="icon" href="/favicon.ico"/>
1<script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script>
1</head><body class="outfit_8778cd42-module__wRojWG__variable poppins_2024bc9-module__OvfM1W__variable antialiased"><div hidden=""><!--$--><!--/$--></div>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","name":"Vinod Liyanage","alternateName":"Vinod Liyanage Portfolio","url":"https://vinodliyanage.me"},{"@type":"Person","name":"Vinod Liyanage","url":"https://vinodliyanage.me","image":"https://cdn.vinodliyanage.me/images/og-image.jpg","description":"Full Stack Developer from Sri Lanka, specializing in building modern web applications, immersive experiences, and scalable software solutions.","jobTitle":"Full Stack Developer","sameAs":["https://github.com/vinodliyanage","https://linkedin.com/in/vinodliyanage","https://www.facebook.com/vinodliyanage.me","https://gravatar.com/vinodliyanage","https://www.npmjs.com/~vinodliyanage"]}]}</script>
1<!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$-->
1<script src="/_next/static/chunks/e10256e77dd23fa1.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[96036,[\"/_next/static/chunks/9b57d60b52ca2954.js\",\"/_next/static/chunks/7bc11eaa8761707b.js\"],\"default\"]\n3:I[28921,[\"/_next/static/chunks/9b57d60b52ca2954.js\",\"/_next/static/chunks/7bc11eaa8761707b.js\"],\"default\"]\n5:I[27729,[\"/_next/static/chunks/d039e786b0e486e1.js\"],\"Analytics\"]\n6:I[84655,[\"/_next/static/chunks/d039e786b0e486e1.js\"],\"GoogleAnalytics\"]\n7:I[74199,[\"/_next/static/chunks/d039e786b0e486e1.js\",\"/_next/static/chunks/1a95c5597d39db16.js\",\"/_next/static/chunks/0098f15e5394d696.js\",\"/_next/static/chunks/1cf61b634eeef4aa.js\",\"/_next/static/chunks/fe8494bee9e0d1a4.js\",\"/_next/static/chunks/906994807a4f5002.js\"],\"StoryProvider\"]\n8:I[91920,[\"/_next/static/chunks/d039e786b0e486e1.js\",\"/_next/static/chunks/1a95c5597d39db16.js\",\"/_next/static/chunks/0098f15e5394d696.js\",\"/_next/static/chunks/1cf61b634eeef4aa.js\",\"/_next/static/chunks/fe8494bee9e0d1a4.js\",\"/_next/static/chunks/906994807a4f5002.js\"],\"default\"]\n9:I[28964,[\"/_next/static/chunks/d039e786b0e486e1.js\",\"/_next/static/chunks/1a95c5597d39db16.js\",\"/_next/static/chunks/0098f15e5394d696.js\",\"/_next/static/chunks/1cf61b634eeef4aa.js\",\"/_next/static/chunks/fe8494bee9e0d1a4.js\",\"/_next/static/chunks/906994807a4f5002.js\"],\"default\"]\na:I[63109,[\"/_next/static/chunks/d039e786b0e486e1.js\",\"/_next/static/chunks/1a95c5597d39db16.js\",\"/_next/static/chunks/0098f15e5394d696.js\",\"/_next/static/chunks/1cf61b634eeef4aa.js\",\"/_next/static/chunks/fe8494bee9e0d1a4.js\",\"/_next/static/chunks/906994807a4f5002.js\"],\"default\"]\nb:I[8008,[\"/_next/static/chunks/d039e786b0e486e1.js\",\"/_next/static/chunks/1a95c5597d39db16.js\",\"/_next/static/chunks/0098f15e5394d696.js\",\"/_next/static/chunks/1cf61b634eeef4aa.js\",\"/_next/static/chunks/fe8494bee9e0d1a4.js\",\"/_next/static/chunks/906994807a4f5002.js\"],\"HeroBackground\"]\nd:I[50570,[\"/_next/static/chunks/9b57d60b52ca2954.js\",\"/_next/static/chunks/7bc11eaa8761707b.js\"],\"ClientPageRoot\"]\ne:I[22474,[\"/_next/static/chunks/d039e786b0e486e1.js\",\"/_next/static/chunks/1a95c5597d39db16.js\",\"/_next/static/chunks/0098f15e5394d696.js\",\"/_next/static/chunks/1cf61b634eeef4aa.js\",\"/_next/static/chunks/fe8494bee9e0d1a4.js\",\"/_next/static/chunks/906994807a4f5002.js\",\"/_next/static/chunks/484be986eb205e71.js\",\"/_next/static/chunks/f5f6def668db120e.js\"],\"default\"]\n11:I[54283,[\"/_next/static/chunks/9b57d60b52ca2954.js\",\"/_next/static/chunks/7bc11eaa8761707b.js\"],\"OutletBoundary\"]\n12:\"$Sreact.suspense\"\n14:I[54283,[\"/_next/static/chunks/9b57d60b52ca2954.js\",\"/_next/static/chunks/7bc11eaa8761707b.js\"],\"ViewportBoundary\"]\n16:I[54283,[\"/_next/static/chunks/9b57d60b52ca2954.js\",\"/_next/static/chunks/7bc11eaa8761707b.js\"],\"MetadataBoundary\"]\n18:I[80036,[],\"default\"]\n:HL[\"/_next/static/chunks/e7ef8dc0baa4f9a9.css\",\"style\"]\n:HL[\"/_next/static/media/1b99372b3eaef0c8-s.p.758e15a8.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/47fe1b7cd6e6ed85-s.p.855a563b.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/8e6fa89aa22d24ec-s.p.3aec397d.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/a218039a3287bcfd-s.p.4a23d71b.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/c875c6f5d3e977ac-s.p.80fc2c9e.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e2334d715941921e-s.p.d82a9aff.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Rl8KFTiow0-_zSn63sOLp\",\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(main)\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/e7ef8dc0baa4f9a9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d039e786b0e486e1.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"outfit_8778cd42-module__wRojWG__variable poppins_2024bc9-module__OvfM1W__variable antialiased\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@graph\\\":[{\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"Vinod Liyanage\\\",\\\"alternateName\\\":\\\"Vinod Liyanage Portfolio\\\",\\\"url\\\":\\\"https://vinodliyanage.me\\\"},{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"Vinod Liyanage\\\",\\\"url\\\":\\\"https://vinodliyanage.me\\\",\\\"image\\\":\\\"https://cdn.vinodliyanage.me/images/og-image.jpg\\\",\\\"description\\\":\\\"Full Stack Developer from Sri Lanka, specializing in building modern web applications, immersive experiences, and scalable software solutions.\\\",\\\"jobTitle\\\":\\\"Full Stack Developer\\\",\\\"sameAs\\\":[\\\"https://github.com/vinodliyanage\\\",\\\"https://linkedin.com/in/vinodliyanage\\\",\\\"https://www.facebook.com/vinodliyanage.me\\\",\\\"https://gravatar.com/vinodliyanage\\\",\\\"https://www.npmjs.com/~vinodliyanage\\\"]}]}\"}}],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$L4\",[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L5\",null,{}],[\"$\",\"$L6\",null,{\"gaId\":\"G-NMQFF37D00\"}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1a95c5597d39db16.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0098f15e5394d696.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/1cf61b634eeef4aa.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/fe8494bee9e0d1a4.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/906994807a4f5002.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L8\",null,{\"children\":[[\"$\",\"$L9\",null,{}],[\"$\",\"$La\",null,{}],[\"$\",\"$Lb\",null,{}],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$Lc\",[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Ld\",null,{\"Component\":\"$e\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@f\",\"$@10\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/484be986eb205e71.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/f5f6def668db120e.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L11\",null,{\"children\":[\"$\",\"$12\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@13\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L14\",null,{\"children\":\"$L15\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L16\",null,{\"children\":[\"$\",\"$12\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L17\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$18\",[]],\"S\":true}\n"])</script>
1<script>self.__next_f.push([1,"4:E{\"digest\":\"NEXT_REDIRECT;replace;/;307;\"}\nc:E{\"digest\":\"NEXT_REDIRECT;replace;/;307;\"}\n"])</script>
1<script>self.__next_f.push([1,"f:{}\n10:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script>
1<script>self.__next_f.push([1,"15:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
1<script>self.__next_f.push([1,"19:I[94966,[\"/_next/static/chunks/9b57d60b52ca2954.js\",\"/_next/static/chunks/7bc11eaa8761707b.js\"],\"IconMark\"]\n13:null\n"])</script>
1<script>self.__next_f.push([1,"17:[[\"$\",\"title\",\"0\",{\"children\":\"Vinod Liyanage | Full Stack Developer\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Hi I'm Vinod Liyanage, a Full Stack Developer from Sri Lanka, specializing in building modern web applications, immersive experiences, and scalable software solutions using React, Next.js, Node.js, and more.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"Vinod Liyanage Portfolio\"}],[\"$\",\"link\",\"3\",{\"rel\":\"author\",\"href\":\"https://vinodliyanage.me\"}],[\"$\",\"meta\",\"4\",{\"name\":\"author\",\"content\":\"Vinod Liyanage\"}],[\"$\",\"meta\",\"5\",{\"name\":\"generator\",\"content\":\"Next.js\"}],[\"$\",\"meta\",\"6\",{\"name\":\"keywords\",\"content\":\"Vinod Liyanage,Full Stack Developer,Creative Engineer,Software Engineer,Frontend Developer,Backend Developer,React Developer,Next.js,Node.js,TypeScript,JavaScript,Web Development,Sri Lanka,Portfolio,Three.js,Web Applications\"}],[\"$\",\"meta\",\"7\",{\"name\":\"referrer\",\"content\":\"origin-when-cross-origin\"}],[\"$\",\"meta\",\"8\",{\"name\":\"creator\",\"content\":\"Vinod Liyanage\"}],[\"$\",\"meta\",\"9\",{\"name\":\"publisher\",\"content\":\"Vinod Liyanage\"}],[\"$\",\"meta\",\"10\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"11\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"12\",{\"name\":\"google-site-verification\",\"content\":\"LRSfBm9JjbhHLkNzG-u84HGlnEPdyfhJlsZVawWqraY\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:title\",\"content\":\"Vinod Liyanage | Full Stack Developer\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:description\",\"content\":\"Hi I'm Vinod Liyanage, a Full Stack Developer from Sri Lanka, specializing in building modern web applications, immersive experiences, and scalable software solutions using React, Next.js, Node.js, and more.\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:url\",\"content\":\"https://vinodliyanage.me\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:site_name\",\"content\":\"Vinod Liyanage\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:image\",\"content\":\"https://cdn.vinodliyanage.me/images/og-image.jpg\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:image:alt\",\"content\":\"Vinod Liyanage - Full Stack Developer Portfolio\"}],[\"$\",\"meta\",\"22\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:creator\",\"content\":\"@vinod_liyanage\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:title\",\"content\":\"Vinod Liyanage | Full Stack Developer\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:description\",\"content\":\"Hi I'm Vinod Liyanage, a Full Stack Developer from Sri Lanka, specializing in building modern web applications, immersive experiences, and scalable software solutions using React, Next.js, Node.js, and more.\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:image\",\"content\":\"https://cdn.vinodliyanage.me/images/og-image.jpg\"}],[\"$\",\"link\",\"28\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.fc325c0a.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"29\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"$L19\",\"30\",{}]]\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.