PageSourceSearch

https://nextjs-blog-jasonhiew.vercel.app/past_projects

html nextjs-blog-jasonhiew.vercel.app collected 2026-10-03 07:23:03 UTC 78,109 bytes, 29 lines download raw bytes

1<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="description" content="Jason Hiew Weng Yee&#x27;s personal website / resume"/><meta property="og:image" content="https://og-image.vercel.app/Jason%20Devs.png?theme=light&amp;md=0&amp;fontSize=75px&amp;images=https%3A%2F%2Fassets.zeit.co%2Fimage%2Fupload%2Ffront%2Fassets%2Fdesign%2Fnextjs-black-logo.svg"/><meta name="og:title" content="Jason Devs"/><meta name="twitter:card" content="summary_large_image"/><title>Past Projects</title><meta name="next-head-count" content="8"/><link rel="preload" href="/_next/static/css/8aa7c84bc70791d9.css" as="style"/><link rel="stylesheet" href="/_next/static/css/8aa7c84bc70791d9.css" data-n-g=""/><noscript data-n-css=""></noscript>
1<script defer="" nomodule="" src="/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script>
1<script src="/_next/static/chunks/webpack-2b0bfbf01cb651cd.js" defer=""></script>
1<script src="/_next/static/chunks/framework-91d7f78b5b4003c8.js" defer=""></script>
1<script src="/_next/static/chunks/main-83803dd478f5b5bc.js" defer=""></script>
1<script src="/_next/static/chunks/pages/_app-83b719c76d059bc6.js" defer=""></script>
1<script src="/_next/static/chunks/1bfc9850-46253fbc6277723c.js" defer=""></script>
1<script src="/_next/static/chunks/527-f3765eb8dc46f303.js" defer=""></script>
1<script src="/_next/static/chunks/421-ea85b8f43fb73432.js" defer=""></script>
1<script src="/_next/static/chunks/354-f2c3fcb2bdeee0db.js" defer=""></script>
1<script src="/_next/static/chunks/pages/past_projects-f739905981b7cc38.js" defer=""></script>
1<script src="/_next/static/bWWR5EaYdg-7KMCejb18s/_buildManifest.js" defer=""></script>
1<script src="/_next/static/bWWR5EaYdg-7KMCejb18s/_ssgManifest.js" defer=""></script>
1<script src="/_next/static/bWWR5EaYdg-7KMCejb18s/_middlewareManifest.js" defer=""></script>
1</head><body><div id="__next" data-reactroot=""><style data-emotion="css-global 1eqawat">:host,:root{--chakra-ring-inset:var(--chakra-empty,/*!*/ /*!*/);--chakra-ring-offset-width:0px;--chakra-ring-offset-color:#fff;--chakra-ring-color:rgba(66, 153, 225, 0.6);--chakra-ring-offset-shadow:0 0 #0000;--chakra-ring-shadow:0 0 #0000;--chakra-space-x-reverse:0;--chakra-space-y-reverse:0;--chakra-colors-transparent:transparent;--chakra-colors-current:currentColor;--chakra-colors-black:#000000;--chakra-colors-white:#FFFFFF;--chakra-colors-whiteAlpha-50:rgba(255, 255, 255, 0.04);--chakra-colors-whiteAlpha-100:rgba(255, 255, 255, 0.06);--chakra-colors-whiteAlpha-200:rgba(255, 255, 255, 0.08);--chakra-colors-whiteAlpha-300:rgba(255, 255, 255, 0.16);--chakra-colors-whiteAlpha-400:rgba(255, 255, 255, 0.24);--chakra-colors-whiteAlpha-500:rgba(255, 255, 255, 0.36);--chakra-colors-whiteAlpha-600:rgba(255, 255, 255, 0.48);--chakra-colors-whiteAlpha-700:rgba(255, 255, 255, 0.64);--chakra-colors-whiteAlpha-800:rgba(255, 255, 255, 0.80);--chakra-colors-whiteAlpha-900:rgba(255, 255, 255, 0.92);--chakra-colors-blackAlpha-50:rgba(0, 0, 0, 0.04);--chakra-colors-blackAlpha-100:rgba(0, 0, 0, 0.06);--chakra-colors-blackAlpha-200:rgba(0, 0, 0, 0.08);--chakra-colors-blackAlpha-300:rgba(0, 0, 0, 0.16);--chakra-colors-blackAlpha-400:rgba(0, 0, 0, 0.24);--chakra-colors-blackAlpha-500:rgba(0, 0, 0, 0.36);--chakra-colors-blackAlpha-600:rgba(0, 0, 0, 0.48);--chakra-colors-blackAlpha-700:rgba(0, 0, 0, 0.64);--chakra-colors-blackAlpha-800:rgba(0, 0, 0, 0.80);--chakra-colors-blackAlpha-900:rgba(0, 0, 0, 0.92);--chakra-colors-gray-50:#F7FAFC;--chakra-colors-gray-100:#EDF2F7;--chakra-colors-gray-200:#E2E8F0;--chakra-colors-gray-300:#CBD5E0;--chakra-colors-gray-400:#A0AEC0;--chakra-colors-gray-500:#718096;--chakra-colors-gray-600:#4A5568;--chakra-colors-gray-700:#2D3748;--chakra-colors-gray-800:#1A202C;--chakra-colors-gray-900:#171923;--chakra-colors-red-50:#FFF5F5;--chakra-colors-red-100:#FED7D7;--chakra-colors-red-200:#FEB2B2;--chakra-colors-red-300:#FC8181;--chakra-colors-red-400:#F56565;--chakra-colors-red-500:#E53E3E;--chakra-colors-red-600:#C53030;--chakra-colors-red-700:#9B2C2C;--chakra-colors-red-800:#822727;--chakra-colors-red-900:#63171B;--chakra-colors-orange-50:#FFFAF0;--chakra-colors-orange-100:#FEEBC8;--chakra-colors-orange-200:#FBD38D;--chakra-colors-orange-300:#F6AD55;--chakra-colors-orange-400:#ED8936;--chakra-colors-orange-500:#DD6B20;--chakra-colors-orange-600:#C05621;--chakra-colors-orange-700:#9C4221;--chakra-colors-orange-800:#7B341E;--chakra-colors-orange-900:#652B19;--chakra-colors-yellow-50:#FFFFF0;--chakra-colors-yellow-100:#FEFCBF;--chakra-colors-yellow-200:#FAF089;--chakra-colors-yellow-300:#F6E05E;--chakra-colors-yellow-400:#ECC94B;--chakra-colors-yellow-500:#D69E2E;--chakra-colors-yellow-600:#B7791F;--chakra-colors-yellow-700:#975A16;--chakra-colors-yellow-800:#744210;--chakra-colors-yellow-900:#5F370E;--chakra-colors-green-50:#F0FFF4;--chakra-colors-green-100:#C6F6D5;--chakra-colors-green-200:#9AE6B4;--chakra-colors-green-300:#68D391;
1--chakra-colors-green-400:#48BB78;--chakra-colors-green-500:#38A169;--chakra-colors-green-600:#2F855A;--chakra-colors-green-700:#276749;--chakra-colors-green-800:#22543D;--chakra-colors-green-900:#1C4532;--chakra-colors-teal-50:#E6FFFA;--chakra-colors-teal-100:#B2F5EA;--chakra-colors-teal-200:#81E6D9;--chakra-colors-teal-300:#4FD1C5;--chakra-colors-teal-400:#38B2AC;--chakra-colors-teal-500:#319795;--chakra-colors-teal-600:#2C7A7B;--chakra-colors-teal-700:#285E61;--chakra-colors-teal-800:#234E52;--chakra-colors-teal-900:#1D4044;--chakra-colors-blue-50:#ebf8ff;--chakra-colors-blue-100:#bee3f8;--chakra-colors-blue-200:#90cdf4;--chakra-colors-blue-300:#63b3ed;--chakra-colors-blue-400:#4299e1;--chakra-colors-blue-500:#3182ce;--chakra-colors-blue-600:#2b6cb0;--chakra-colors-blue-700:#2c5282;--chakra-colors-blue-800:#2a4365;--chakra-colors-blue-900:#1A365D;--chakra-colors-cyan-50:#EDFDFD;--chakra-colors-cyan-100:#C4F1F9;--chakra-colors-cyan-200:#9DECF9;--chakra-colors-cyan-300:#76E4F7;--chakra-colors-cyan-400:#0BC5EA;--chakra-colors-cyan-500:#00B5D8;--chakra-colors-cyan-600:#00A3C4;--chakra-colors-cyan-700:#0987A0;--chakra-colors-cyan-800:#086F83;--chakra-colors-cyan-900:#065666;--chakra-colors-purple-50:#FAF5FF;--chakra-colors-purple-100:#E9D8FD;--chakra-colors-purple-200:#D6BCFA;--chakra-colors-purple-300:#B794F4;--chakra-colors-purple-400:#9F7AEA;--chakra-colors-purple-500:#805AD5;--chakra-colors-purple-600:#6B46C1;--chakra-colors-purple-700:#553C9A;--chakra-colors-purple-800:#44337A;--chakra-colors-purple-900:#322659;--chakra-colors-pink-50:#FFF5F7;--chakra-colors-pink-100:#FED7E2;--chakra-colors-pink-200:#FBB6CE;--chakra-colors-pink-300:#F687B3;--chakra-colors-pink-400:#ED64A6;--chakra-colors-pink-500:#D53F8C;--chakra-colors-pink-600:#B83280;--chakra-colors-pink-700:#97266D;--chakra-colors-pink-800:#702459;--chakra-colors-pink-900:#521B41;--chakra-colors-linkedin-50:#E8F4F9;--chakra-colors-linkedin-100:#CFEDFB;--chakra-colors-linkedin-200:#9BDAF3;--chakra-colors-linkedin-300:#68C7EC;--chakra-colors-linkedin-400:#34B3E4;--chakra-colors-linkedin-500:#00A0DC;--chakra-colors-linkedin-600:#008CC9;--chakra-colors-linkedin-700:#0077B5;--chakra-colors-linkedin-800:#005E93;--chakra-colors-linkedin-900:#004471;--chakra-colors-facebook-50:#E8F4F9;--chakra-colors-facebook-100:#D9DEE9;--chakra-colors-facebook-200:#B7C2DA;--chakra-colors-facebook-300:#6482C0;--chakra-colors-facebook-400:#4267B2;--chakra-colors-facebook-500:#385898;--chakra-colors-facebook-600:#314E89;--chakra-colors-facebook-700:#29487D;--chakra-colors-facebook-800:#223B67;--chakra-colors-facebook-900:#1E355B;--chakra-colors-messenger-50:#D0E6FF;--chakra-colors-messenger-100:#B9DAFF;--chakra-colors-messenger-200:#A2CDFF;--chakra-colors-messenger-300:#7AB8FF;--chakra-colors-messenger-400:#2E90FF;--chakra-colors-messenger-500:#0078FF;--chakra-colors-messenger-600:#0063D1;--chakra-colors-messenger-700:#0052AC;--chakra-colors-messenger-800:#003C7E;--chakra-colors-messenger-900:#002C5C;--chakra-colors-whatsapp-50:#dffeec;--chakra-colors-whatsapp-100:#b9f5d0;--chakra-colors-whatsapp-200:#90edb3;--chakra-colors-whatsapp-300:#65e495;--chakra-colors-whatsapp-400:#3cdd78;--chakra-colors-whatsapp-500:#22c35e;--chakra-colors-whatsapp-600:#179848;--chakra-colors-whatsapp-700:#0c6c33;--chakra-colors-whatsapp-800:#01421c;--chakra-colors-whatsapp-900:#001803;--chakra-colors-twitter-50:#E5F4FD;--chakra-colors-twitter-100:#C8E9FB;--chakra-colors-twitter-200:#A8DCFA;--chakra-colors-twitter-300:#83CDF7;--chakra-colors-twitter-400:#57BBF5;--chakra-colors-twitter-500:#1DA1F2;--chakra-colors-twitter-600:#1A94DA;--chakra-colors-twitter-700:#1681BF;--chakra-colors-twitter-800:#136B9E;--chakra-colors-twitter-900:#0D4D71;--chakra-colors-telegram-50:#E3F2F9;--chakra-colors-telegram-100:#C5E4F3;--chakra-colors-telegram-200:#A2D4EC;--chakra-colors-telegram-300:#7AC1E4;--chakra-colors-telegram-400:#47A9DA;--chakra-colors-telegram-500:#0088CC;--chakra-colors-telegram-600:#007AB8;--chakra-colors-telegram-700:#006BA1;--chakra-colors-telegram-800:#005885;--chakra-colors-telegram-900:#003F5E;--chakra-borders-none:0;--chakra-borders-1px:1px solid;--chakra-borders-2px:2px solid;--chakra-borders-4px:4px solid;--chakra-borders-8px:8px solid;--chakra-fonts-heading:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--chakra-fontSizes-xs:0.75rem;--chakra-fontSizes-sm:0.875rem;--chakra-fontSizes-md:1rem;--chakra-fontSizes-lg:1.125rem;--chakra-fontSizes-xl:1.25rem;--chakra-fontSizes-2xl:1.5rem;--chakra-fontSizes-3xl:1.875rem;--chakra-fontSizes-4xl:2.25rem;--chakra-fontSizes-5xl:3rem;--chakra-fontSizes-6xl:3.75rem;--chakra-fontSizes-7xl:4.5rem;--chakra-fontSizes-8xl:6rem;--chakra-fontSizes-9xl:8rem;--chakra-fontWeights-hairline:100;--chakra-fontWeights-thin:200;--chakra-fontWeights-light:300;--chakra-fontWeights-normal:400;--chakra-fontWeights-medium:500;--chakra-fontWeights-semibold:600;--chakra-fontWeights-bold:700;--chakra-fontWeights-extrabold:800;--chakra-fontWeights-black:900;--chakra-letterSpacings-tighter:-0.05em;
1--chakra-letterSpacings-tight:-0.025em;--chakra-letterSpacings-normal:0;--chakra-letterSpacings-wide:0.025em;--chakra-letterSpacings-wider:0.05em;--chakra-letterSpacings-widest:0.1em;--chakra-lineHeights-3:.75rem;--chakra-lineHeights-4:1rem;--chakra-lineHeights-5:1.25rem;--chakra-lineHeights-6:1.5rem;--chakra-lineHeights-7:1.75rem;--chakra-lineHeights-8:2rem;--chakra-lineHeights-9:2.25rem;--chakra-lineHeights-10:2.5rem;--chakra-lineHeights-normal:normal;--chakra-lineHeights-none:1;--chakra-lineHeights-shorter:1.25;--chakra-lineHeights-short:1.375;--chakra-lineHeights-base:1.5;--chakra-lineHeights-tall:1.625;--chakra-lineHeights-taller:2;--chakra-radii-none:0;--chakra-radii-sm:0.125rem;--chakra-radii-base:0.25rem;--chakra-radii-md:0.375rem;--chakra-radii-lg:0.5rem;--chakra-radii-xl:0.75rem;--chakra-radii-2xl:1rem;--chakra-radii-3xl:1.5rem;--chakra-radii-full:9999px;--chakra-space-1:0.25rem;--chakra-space-2:0.5rem;--chakra-space-3:0.75rem;--chakra-space-4:1rem;--chakra-space-5:1.25rem;--chakra-space-6:1.5rem;--chakra-space-7:1.75rem;--chakra-space-8:2rem;--chakra-space-9:2.25rem;--chakra-space-10:2.5rem;--chakra-space-12:3rem;--chakra-space-14:3.5rem;--chakra-space-16:4rem;--chakra-space-20:5rem;--chakra-space-24:6rem;--chakra-space-28:7rem;--chakra-space-32:8rem;--chakra-space-36:9rem;--chakra-space-40:10rem;--chakra-space-44:11rem;--chakra-space-48:12rem;--chakra-space-52:13rem;--chakra-space-56:14rem;--chakra-space-60:15rem;--chakra-space-64:16rem;--chakra-space-72:18rem;--chakra-space-80:20rem;--chakra-space-96:24rem;--chakra-space-px:1px;--chakra-space-0-5:0.125rem;--chakra-space-1-5:0.375rem;--chakra-space-2-5:0.625rem;--chakra-space-3-5:0.875rem;--chakra-shadows-xs:0 0 0 1px rgba(0, 0, 0, 0.05);--chakra-shadows-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--chakra-shadows-base:0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);--chakra-shadows-md:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);--chakra-shadows-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--chakra-shadows-xl:0 20px 25px -5px rgba(0, 0, 0, 0.1),0 10px 10px -5px rgba(0, 0, 0, 0.04);--chakra-shadows-2xl:0 25px 50px -12px rgba(0, 0, 0, 0.25);--chakra-shadows-outline:0 0 0 3px rgba(66, 153, 225, 0.6);--chakra-shadows-inner:inset 0 2px 4px 0 rgba(0,0,0,0.06);--chakra-shadows-none:none;--chakra-shadows-dark-lg:rgba(0, 0, 0, 0.1) 0px 0px 0px 1px,rgba(0, 0, 0, 0.2) 0px 5px 10px,rgba(0, 0, 0, 0.4) 0px 15px 40px;--chakra-sizes-1:0.25rem;--chakra-sizes-2:0.5rem;--chakra-sizes-3:0.75rem;--chakra-sizes-4:1rem;--chakra-sizes-5:1.25rem;--chakra-sizes-6:1.5rem;--chakra-sizes-7:1.75rem;--chakra-sizes-8:2rem;--chakra-sizes-9:2.25rem;--chakra-sizes-10:2.5rem;--chakra-sizes-12:3rem;--chakra-sizes-14:3.5rem;--chakra-sizes-16:4rem;--chakra-sizes-20:5rem;--chakra-sizes-24:6rem;--chakra-sizes-28:7rem;--chakra-sizes-32:8rem;--chakra-sizes-36:9rem;--chakra-sizes-40:10rem;--chakra-sizes-44:11rem;--chakra-sizes-48:12rem;--chakra-sizes-52:13rem;--chakra-sizes-56:14rem;--chakra-sizes-60:15rem;--chakra-sizes-64:16rem;--chakra-sizes-72:18rem;--chakra-sizes-80:20rem;--chakra-sizes-96:24rem;--chakra-sizes-px:1px;--chakra-sizes-0-5:0.125rem;--chakra-sizes-1-5:0.375rem;--chakra-sizes-2-5:0.625rem;--chakra-sizes-3-5:0.875rem;--chakra-sizes-max:max-content;--chakra-sizes-min:min-content;--chakra-sizes-full:100%;--chakra-sizes-3xs:14rem;--chakra-sizes-2xs:16rem;--chakra-sizes-xs:20rem;--chakra-sizes-sm:24rem;--chakra-sizes-md:28rem;--chakra-sizes-lg:32rem;--chakra-sizes-xl:36rem;--chakra-sizes-2xl:42rem;--chakra-sizes-3xl:48rem;--chakra-sizes-4xl:56rem;--chakra-sizes-5xl:64rem;--chakra-sizes-6xl:72rem;--chakra-sizes-7xl:80rem;--chakra-sizes-8xl:90rem;--chakra-sizes-container-sm:640px;--chakra-sizes-container-md:768px;--chakra-sizes-container-lg:1024px;--chakra-sizes-container-xl:1280px;--chakra-zIndices-hide:-1;--chakra-zIndices-auto:auto;--chakra-zIndices-base:0;--chakra-zIndices-docked:10;--chakra-zIndices-dropdown:1000;--chakra-zIndices-sticky:1100;--chakra-zIndices-banner:1200;--chakra-zIndices-overlay:1300;--chakra-zIndices-modal:1400;--chakra-zIndices-popover:1500;--chakra-zIndices-skipLink:1600;--chakra-zIndices-toast:1700;--chakra-zIndices-tooltip:1800;--chakra-transition-property-common:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;--chakra-transition-property-colors:background-color,border-color,color,fill,stroke;--chakra-transition-property-dimensions:width,height;--chakra-transition-property-position:left,right,top,bottom;--chakra-transition-property-background:background-color,background-image,background-position;--chakra-transition-easing-ease-in:cubic-bezier(0.4, 0, 1, 1);--chakra-transition-easing-ease-out:cubic-bezier(0, 0, 0.2, 1);--chakra-transition-easing-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--chakra-transition-duration-ultra-fast:50ms;--chakra-transition-duration-faster:100ms;--chakra-transition-duration-fast:150ms;--chakra-transition-duration-normal:200ms;--chakra-transition-duration-slow:300ms;--chakra-transition-duration-slower:400ms;--chakra-transition-duration-ultra-slow:500ms;--chakra-blur-none:0;--chakra-blur-sm:4px;--chakra-blur-base:8px;--chakra-blur-md:12px;--chakra-blur-lg:16px;
1--chakra-blur-xl:24px;--chakra-blur-2xl:40px;--chakra-blur-3xl:64px;}</style><style data-emotion="css-global 1jqlf9g">html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;}body{position:relative;min-height:100%;font-feature-settings:'kern';}*,*::before,*::after{border-width:0;border-style:solid;box-sizing:border-box;}main{display:block;}hr{border-top-width:1px;box-sizing:content-box;height:0;overflow:visible;}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1em;}a{background-color:transparent;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bold;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none!important;}input[type="number"]{-moz-appearance:textfield;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none!important;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}template{display:none;}[hidden]{display:none!important;}body,blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0;}button{background:transparent;padding:0;}fieldset{margin:0;padding:0;}ol,ul{margin:0;padding:0;}textarea{resize:vertical;}button,[role="button"]{cursor:pointer;}button::-moz-focus-inner{border:0!important;}table{border-collapse:collapse;}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit;}img,svg,video,canvas,audio,iframe,embed,object{display:block;}img,video{max-width:100%;height:auto;}[data-js-focus-visible] :focus:not([data-focus-visible-added]){outline:none;box-shadow:none;}select::-ms-expand{display:none;}</style><style data-emotion="css-global 1baqkrf">body{font-family:var(--chakra-fonts-body);color:var(--chakra-colors-gray-800);background:var(--chakra-colors-white);transition-property:background-color;transition-duration:var(--chakra-transition-duration-normal);line-height:var(--chakra-lineHeights-base);}*::-webkit-input-placeholder{color:var(--chakra-colors-gray-400);}*::-moz-placeholder{color:var(--chakra-colors-gray-400);}*:-ms-input-placeholder{color:var(--chakra-colors-gray-400);}*::placeholder{color:var(--chakra-colors-gray-400);}*,*::before,::after{border-color:var(--chakra-colors-gray-200);word-wrap:break-word;}</style>
1<script>(function setScript(initialValue) {
2  var mql = window.matchMedia("(prefers-color-scheme: dark)");
3  var systemPreference = mql.matches ? "dark" : "light";
4  var persistedPreference = systemPreference;
5
6  try {
7    persistedPreference = localStorage.getItem("chakra-ui-color-mode");
8  } catch (error) {
9    console.log("Chakra UI: localStorage is not available. Color mode persistence might not work as expected");
10  }
11
12  var colorMode;
13
14  if (persistedPreference) {
15    colorMode = persistedPreference;
16  } else if (initialValue === "system") {
17    colorMode = systemPreference;
18  } else {
19    colorMode = initialValue != null ? initialValue : systemPreference;
20  }
21
22  if (colorMode) {
23    /**
24     * Keep in sync with `root.set() {@file ./color-mode.utils.ts}
25     */
26    document.documentElement.style.setProperty("--chakra-ui-color-mode", colorMode);
27    document.documentElement.setAttribute("data-theme", colorMode);
28  }
29})('light')</script>
29<div class="background-light css-0"><section><div class="css-0"><style data-emotion="css 1mpcfha">.css-1mpcfha{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--chakra-colors-white);color:var(--chakra-colors-gray-600);min-height:60px;padding-top:var(--chakra-space-2);padding-bottom:var(--chakra-space-2);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);border-bottom:1px;border-style:solid;border-color:var(--chakra-colors-gray-200);box-shadow:var(--chakra-shadows-md);}</style><div class="css-1mpcfha"><style data-emotion="css 1twb9xo">.css-1twb9xo{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;margin-left:calc(var(--chakra-space-2) * -1);}@media screen and (min-width: 48em){.css-1twb9xo{display:none;-webkit-flex:auto;-ms-flex:auto;flex:auto;}}</style><div class="css-1twb9xo"><style data-emotion="css 103jld">.css-103jld{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;white-space:nowrap;vertical-align:middle;outline:2px solid transparent;outline-offset:2px;width:auto;line-height:1.2;border-radius:var(--chakra-radii-md);font-weight:var(--chakra-fontWeights-semibold);transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-normal);height:var(--chakra-sizes-10);min-width:var(--chakra-sizes-10);font-size:var(--chakra-fontSizes-md);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);color:inherit;padding:0px;}.css-103jld:focus,.css-103jld[data-focus]{box-shadow:var(--chakra-shadows-outline);}.css-103jld[disabled],.css-103jld[aria-disabled=true],.css-103jld[data-disabled]{opacity:0.4;cursor:not-allowed;box-shadow:var(--chakra-shadows-none);}.css-103jld:hover,.css-103jld[data-hover]{background:var(--chakra-colors-gray-100);}.css-103jld:hover[disabled],.css-103jld[data-hover][disabled],.css-103jld:hover[aria-disabled=true],.css-103jld[data-hover][aria-disabled=true],.css-103jld:hover[data-disabled],.css-103jld[data-hover][data-disabled]{background:initial;}.css-103jld:active,.css-103jld[data-active]{background:var(--chakra-colors-gray-200);}</style><button type="button" class="chakra-button css-103jld" aria-label="Toggle Navigation"><style data-emotion="css bokek7">.css-bokek7{width:var(--chakra-sizes-5);height:var(--chakra-sizes-5);display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:currentColor;vertical-align:middle;}</style><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-bokek7" aria-hidden="true"><path fill="currentColor" d="M 3 5 A 1.0001 1.0001 0 1 0 3 7 L 21 7 A 1.0001 1.0001 0 1 0 21 5 L 3 5 z M 3 11 A 1.0001 1.0001 0 1 0 3 13 L 21 13 A 1.0001 1.0001 0 1 0 21 11 L 3 11 z M 3 17 A 1.0001 1.0001 0 1 0 3 19 L 21 19 A 1.0001 1.0001 0 1 0 21 17 L 3 17 z"></path></svg></button></div><style data-emotion="css 1ef8uzr">.css-1ef8uzr{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex:1;-ms-flex:1;flex:1;}@media screen and (min-width: 48em){.css-1ef8uzr{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:start;justify-content:start;}}</style><div class="css-1ef8uzr"><style data-emotion="css rzjbxd">.css-rzjbxd{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none;text-decoration:none;outline:2px solid transparent;outline-offset:2px;color:var(--chakra-colors-gray-800);font-family:var(--chakra-fonts-heading);font-weight:var(--chakra-fontWeights-bold);}.css-rzjbxd:hover,.css-rzjbxd[data-hover]{-webkit-text-decoration:none;text-decoration:none;}.css-rzjbxd:focus,.css-rzjbxd[data-focus]{box-shadow:var(--chakra-shadows-outline);}</style><a class="chakra-link css-rzjbxd" href="/">Jason Devs</a><style data-emotion="css 1ynfsgs">.css-1ynfsgs{display:none;margin-left:var(--chakra-space-10);}@media screen and (min-width: 48em){.css-1ynfsgs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}</style><div class="css-1ynfsgs"><style data-emotion="css nd8846">.css-nd8846{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-nd8846>
29*:not(style)~*:not(style){margin-top:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:var(--chakra-space-4);margin-inline-start:var(--chakra-space-4);}</style><div class="chakra-stack css-nd8846"><div class="css-0"><style data-emotion="css 1yt6u0r">.css-1yt6u0r{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none;text-decoration:none;outline:2px solid transparent;outline-offset:2px;color:var(--chakra-colors-gray-600);padding:var(--chakra-space-2);font-size:var(--chakra-fontSizes-sm);font-weight:500;}.css-1yt6u0r:hover,.css-1yt6u0r[data-hover]{-webkit-text-decoration:none;text-decoration:none;color:var(--chakra-colors-gray-800);}.css-1yt6u0r:focus,.css-1yt6u0r[data-focus]{box-shadow:var(--chakra-shadows-outline);}</style><a class="chakra-link css-1yt6u0r" href="/">Resume</a></div><div class="css-0"><a class="chakra-link css-1yt6u0r" href="/blog">Blog</a></div><div class="css-0"><a class="chakra-link css-1yt6u0r" href="/past_projects">Past Projects</a></div><div class="css-0"><a class="chakra-link css-1yt6u0r" href="/about">About</a></div></div></div></div><style data-emotion="css uiyb8i">.css-uiyb8i{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex:1;-ms-flex:1;flex:1;}.css-uiyb8i>*:not(style)~*:not(style){margin-top:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:var(--chakra-space-6);margin-inline-start:var(--chakra-space-6);}@media screen and (min-width: 48em){.css-uiyb8i{-webkit-flex:0;-ms-flex:0;flex:0;}}</style>
29<div class="chakra-stack css-uiyb8i"><style data-emotion="css sb5vjf">.css-sb5vjf{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;white-space:nowrap;vertical-align:middle;outline:2px solid transparent;outline-offset:2px;width:auto;line-height:1.2;border-radius:var(--chakra-radii-md);font-weight:600;transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-normal);height:var(--chakra-sizes-10);min-width:var(--chakra-sizes-10);font-size:var(--chakra-fontSizes-sm);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);background:var(--chakra-colors-gray-400);color:var(--chakra-colors-white);max-width:45px;}.css-sb5vjf:focus,.css-sb5vjf[data-focus]{box-shadow:var(--chakra-shadows-outline);}.css-sb5vjf[disabled],.css-sb5vjf[aria-disabled=true],.css-sb5vjf[data-disabled]{opacity:0.4;cursor:not-allowed;box-shadow:var(--chakra-shadows-none);}.css-sb5vjf:hover,.css-sb5vjf[data-hover]{background:var(--chakra-colors-purple-300);}.css-sb5vjf:active,.css-sb5vjf[data-active]{background:var(--chakra-colors-gray-300);}</style><button type="button" class="chakra-button css-sb5vjf" href="#"><style data-emotion="css 67098z">.css-67098z{width:var(--chakra-sizes-6);height:var(--chakra-sizes-6);display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:var(--chakra-colors-yellow-200);vertical-align:middle;}</style><svg viewBox="0 0 24 24" focusable="false" class="chakra-icon css-67098z"><g stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor"><circle cx="12" cy="12" r="5"></circle><path d="M12 1v2"></path><path d="M12 21v2"></path><path d="M4.22 4.22l1.42 1.42"></path><path d="M18.36 18.36l1.42 1.42"></path><path d="M1 12h2"></path><path d="M21 12h2"></path><path d="M4.22 19.78l1.42-1.42"></path><path d="M18.36 5.64l1.42-1.42"></path></g></svg></button></div></div><div class="chakra-collapse" style="overflow:hidden;display:none;opacity:0;height:0px"><style data-emotion="css 1lgh1g">.css-1lgh1g{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;background:var(--chakra-colors-white);padding:var(--chakra-space-4);}.css-1lgh1g>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}@media screen and (min-width: 48em){.css-1lgh1g{display:none;}}</style><div class="chakra-stack css-1lgh1g"><style data-emotion="css egoftb">.css-egoftb{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-egoftb>*:not(style)~*:not(style){margin-top:var(--chakra-space-4);-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}</style><div class="chakra-stack css-egoftb"><style data-emotion="css lxmzlz">.css-lxmzlz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;padding-top:var(--chakra-space-2);padding-bottom:var(--chakra-space-2);}.css-lxmzlz:hover,.css-lxmzlz[data-hover]{-webkit-text-decoration:none;text-decoration:none;}</style><style data-emotion="css ryc07z">.css-ryc07z{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none;text-decoration:none;outline:2px solid transparent;outline-offset:2px;color:inherit;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;
29-webkit-justify-content:space-between;justify-content:space-between;padding-top:var(--chakra-space-2);padding-bottom:var(--chakra-space-2);}.css-ryc07z:hover,.css-ryc07z[data-hover]{-webkit-text-decoration:underline;text-decoration:underline;}.css-ryc07z:focus,.css-ryc07z[data-focus]{box-shadow:var(--chakra-shadows-outline);}.css-ryc07z:hover,.css-ryc07z[data-hover]{-webkit-text-decoration:none;text-decoration:none;}</style><a class="chakra-link css-ryc07z" href="/"><style data-emotion="css 9y4vnp">.css-9y4vnp{font-weight:600;color:var(--chakra-colors-gray-600);}</style><p class="chakra-text css-9y4vnp">Resume</p></a><div class="chakra-collapse" style="overflow:hidden;display:none;margin-top:0!important;opacity:0;height:0px"><style data-emotion="css 11sp92w">.css-11sp92w{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-top:var(--chakra-space-2);padding-left:var(--chakra-space-4);border-left:1px;border-style:solid;border-color:var(--chakra-colors-gray-200);}.css-11sp92w>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}</style><div class="chakra-stack css-11sp92w"></div></div></div><div class="chakra-stack css-egoftb"><a class="chakra-link css-ryc07z" href="/blog"><p class="chakra-text css-9y4vnp">Blog</p></a><div class="chakra-collapse" style="overflow:hidden;display:none;margin-top:0!important;opacity:0;height:0px"><div class="chakra-stack css-11sp92w"></div></div></div><div class="chakra-stack css-egoftb"><a class="chakra-link css-ryc07z" href="/past_projects"><p class="chakra-text css-9y4vnp">Past Projects</p></a><div class="chakra-collapse" style="overflow:hidden;display:none;margin-top:0!important;opacity:0;height:0px"><div class="chakra-stack css-11sp92w"></div></div></div><div class="chakra-stack css-egoftb"><a class="chakra-link css-ryc07z" href="/about"><p class="chakra-text css-9y4vnp">About</p></a><div class="chakra-collapse" style="overflow:hidden;display:none;margin-top:0!important;opacity:0;height:0px"><div class="chakra-stack css-11sp92w"></div></div></div></div></div></div></section><style data-emotion="css kbdsfa">.css-kbdsfa{width:100%;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;max-width:400px;-webkit-padding-start:1rem;padding-inline-start:1rem;-webkit-padding-end:1rem;padding-inline-end:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media screen and (min-width: 30em){.css-kbdsfa{max-width:900px;}}@media screen and (min-width: 48em){.css-kbdsfa{max-width:1920px;}}</style><div class="chakra-container css-kbdsfa"><style data-emotion="css dvxtzn">.css-dvxtzn{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}</style><div class="css-dvxtzn"><style data-emotion="css tnfx2z">.css-tnfx2z{object-fit:cover;border:var(--chakra-borders-2px);border-radius:20px;border-color:var(--chakra-colors-black);background:var(--chakra-colors-white);box-shadow:var(--chakra-shadows-2xl);width:150px;height:150px;margin-top:var(--chakra-space-10);}</style><img alt="Jason Hiew Weng Yee" src="https://s3.ap-southeast-1.amazonaws.com/aws.s3.jasondevs/images/profile.jpg" class="chakra-image css-tnfx2z"/><style data-emotion="css 7g4t7q">.css-7g4t7q{margin-top:var(--chakra-space-3);margin-bottom:var(--chakra-space-3);padding:var(--chakra-space-3);border:var(--chakra-borders-2px);border-radius:20px;border-color:var(--chakra-colors-black);background:var(--chakra-colors-white);box-shadow:var(--chakra-shadows-2xl);}</style><div class="css-7g4t7q"><style data-emotion="css hscikp">.css-hscikp{font-family:var(--chakra-fonts-heading);font-weight:var(--chakra-fontWeights-bold);font-size:24px;line-height:1.33;margin-bottom:var(--chakra-space-3);text-align:center;}@media screen and (min-width: 48em){.css-hscikp{font-size:30px;line-height:1.2;}}@media screen and (min-width: 62em){.css-hscikp{font-size:40px;}}</style><h2 class="chakra-heading css-hscikp">Jason Hiew Weng Yee</h2><style data-emotion="css gmuwbf">.css-gmuwbf{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
29-webkit-justify-content:center;justify-content:center;}</style><div class="css-gmuwbf"><style data-emotion="css 1lm9oey">.css-1lm9oey{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1lm9oey>*:not(style)~*:not(style){margin-top:10px;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}@media screen and (min-width: 30em){.css-1lm9oey{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1lm9oey>*:not(style)~*:not(style){margin-top:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:10px;margin-inline-start:10px;}}</style><div class="chakra-stack css-1lm9oey"><div class="css-0"><style data-emotion="css 1pbci8a">.css-1pbci8a{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;white-space:nowrap;vertical-align:middle;outline:2px solid transparent;outline-offset:2px;width:130px;line-height:1.2;border-radius:var(--chakra-radii-full);font-weight:var(--chakra-fontWeights-semibold);transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-normal);height:var(--chakra-sizes-10);min-width:var(--chakra-sizes-10);font-size:var(--chakra-fontSizes-sm);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);background:var(--chakra-colors-purple-600);-webkit-flex:1;-ms-flex:1;flex:1;color:var(--chakra-colors-white);}.css-1pbci8a:focus,.css-1pbci8a[data-focus]{background:var(--chakra-colors-pink-500);}.css-1pbci8a[disabled],.css-1pbci8a[aria-disabled=true],.css-1pbci8a[data-disabled]{opacity:0.4;cursor:not-allowed;box-shadow:var(--chakra-shadows-none);}.css-1pbci8a:hover,.css-1pbci8a[data-hover]{background:var(--chakra-colors-pink-500);}.css-1pbci8a:active,.css-1pbci8a[data-active]{background:var(--chakra-colors-gray-300);}</style><style data-emotion="css 1gulw4w">.css-1gulw4w{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none;text-decoration:none;outline:2px solid transparent;outline-offset:2px;color:inherit;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;white-space:nowrap;vertical-align:middle;outline:2px solid transparent;outline-offset:2px;width:130px;line-height:1.2;border-radius:var(--chakra-radii-full);font-weight:var(--chakra-fontWeights-semibold);transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-normal);height:var(--chakra-sizes-10);min-width:var(--chakra-sizes-10);font-size:var(--chakra-fontSizes-sm);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);background:var(--chakra-colors-purple-600);-webkit-flex:1;-ms-flex:1;flex:1;color:var(--chakra-colors-white);}.css-1gulw4w:hover,.css-1gulw4w[data-hover]{-webkit-text-decoration:underline;text-decoration:underline;}.css-1gulw4w:focus,.css-1gulw4w[data-focus]{box-shadow:var(--chakra-shadows-outline);}.css-1gulw4w:focus,.css-1gulw4w[data-focus]{background:var(--chakra-colors-pink-500);}.css-1gulw4w[disabled],.css-1gulw4w[aria-disabled=true],.css-1gulw4w[data-disabled]{opacity:0.4;cursor:not-allowed;box-shadow:var(--chakra-shadows-none);}.css-1gulw4w:hover,.css-1gulw4w[data-hover]{background:var(--chakra-colors-pink-500);}.css-1gulw4w:active,.css-1gulw4w[data-active]{background:var(--chakra-colors-gray-300);}</style><a target="_blank" rel="noopener noreferrer" class="chakra-link chakra-button css-1gulw4w" href="https://github.com/JasonHiew"><style data-emotion="css 1r7pi23">.css-1r7pi23{width:var(--chakra-sizes-8);height:var(--chakra-sizes-8);display:inline-block;line-height:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:var(--chakra-colors-white);-webkit-margin-end:var(--chakra-space-1);margin-inline-end:var(--chakra-space-1);}</style><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 496 512" focusable="false" class="chakra-icon css-1r7pi23" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg>GitHub</a></div><div class="css-0"><style data-emotion="css 1vltrml">.css-1vltrml{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
29-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;white-space:nowrap;vertical-align:middle;outline:2px solid transparent;outline-offset:2px;width:130px;line-height:1.2;border-radius:var(--chakra-radii-full);font-weight:var(--chakra-fontWeights-semibold);transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-normal);height:var(--chakra-sizes-10);min-width:var(--chakra-sizes-10);font-size:var(--chakra-fontSizes-sm);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);background:var(--chakra-colors-blue-500);-webkit-flex:1;-ms-flex:1;flex:1;color:var(--chakra-colors-white);}.css-1vltrml:focus,.css-1vltrml[data-focus]{background:var(--chakra-colors-cyan-500);}.css-1vltrml[disabled],.css-1vltrml[aria-disabled=true],.css-1vltrml[data-disabled]{opacity:0.4;cursor:not-allowed;box-shadow:var(--chakra-shadows-none);}.css-1vltrml:hover,.css-1vltrml[data-hover]{background:var(--chakra-colors-cyan-500);}.css-1vltrml:active,.css-1vltrml[data-active]{background:var(--chakra-colors-gray-300);}</style><style data-emotion="css bxrlt3">.css-bxrlt3{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none;text-decoration:none;outline:2px solid transparent;outline-offset:2px;color:inherit;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;white-space:nowrap;vertical-align:middle;outline:2px solid transparent;outline-offset:2px;width:130px;line-height:1.2;border-radius:var(--chakra-radii-full);font-weight:var(--chakra-fontWeights-semibold);transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-normal);height:var(--chakra-sizes-10);min-width:var(--chakra-sizes-10);font-size:var(--chakra-fontSizes-sm);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);background:var(--chakra-colors-blue-500);-webkit-flex:1;-ms-flex:1;flex:1;color:var(--chakra-colors-white);}.css-bxrlt3:hover,.css-bxrlt3[data-hover]{-webkit-text-decoration:underline;text-decoration:underline;}.css-bxrlt3:focus,.css-bxrlt3[data-focus]{box-shadow:var(--chakra-shadows-outline);}.css-bxrlt3:focus,.css-bxrlt3[data-focus]{background:var(--chakra-colors-cyan-500);}.css-bxrlt3[disabled],.css-bxrlt3[aria-disabled=true],.css-bxrlt3[data-disabled]{opacity:0.4;cursor:not-allowed;box-shadow:var(--chakra-shadows-none);}.css-bxrlt3:hover,.css-bxrlt3[data-hover]{background:var(--chakra-colors-cyan-500);}.css-bxrlt3:active,.css-bxrlt3[data-active]{background:var(--chakra-colors-gray-300);}</style><a target="_blank" rel="noopener noreferrer" class="chakra-link chakra-button css-bxrlt3" href="https://www.linkedin.com/in/jason-hiew-weng-yee-785537112/"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" focusable="false" class="chakra-icon css-1r7pi23" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg>LinkedIn</a></div><div class="css-0"><style data-emotion="css 1wnm13l">.css-1wnm13l{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
29-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;white-space:nowrap;vertical-align:middle;outline:2px solid transparent;outline-offset:2px;width:130px;line-height:1.2;border-radius:var(--chakra-radii-full);font-weight:var(--chakra-fontWeights-semibold);transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-normal);height:var(--chakra-sizes-10);min-width:var(--chakra-sizes-10);font-size:var(--chakra-fontSizes-sm);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);background:var(--chakra-colors-gray-600);-webkit-flex:1;-ms-flex:1;flex:1;color:var(--chakra-colors-white);}.css-1wnm13l:focus,.css-1wnm13l[data-focus]{background:var(--chakra-colors-red-500);}.css-1wnm13l[disabled],.css-1wnm13l[aria-disabled=true],.css-1wnm13l[data-disabled]{opacity:0.4;cursor:not-allowed;box-shadow:var(--chakra-shadows-none);}.css-1wnm13l:hover,.css-1wnm13l[data-hover]{background:var(--chakra-colors-red-500);}.css-1wnm13l:active,.css-1wnm13l[data-active]{background:var(--chakra-colors-gray-300);}</style><style data-emotion="css 1ur1o7z">.css-1ur1o7z{transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-fast);transition-timing-function:var(--chakra-transition-easing-ease-out);cursor:pointer;-webkit-text-decoration:none;text-decoration:none;outline:2px solid transparent;outline-offset:2px;color:inherit;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;white-space:nowrap;vertical-align:middle;outline:2px solid transparent;outline-offset:2px;width:130px;line-height:1.2;border-radius:var(--chakra-radii-full);font-weight:var(--chakra-fontWeights-semibold);transition-property:var(--chakra-transition-property-common);transition-duration:var(--chakra-transition-duration-normal);height:var(--chakra-sizes-10);min-width:var(--chakra-sizes-10);font-size:var(--chakra-fontSizes-sm);-webkit-padding-start:var(--chakra-space-4);padding-inline-start:var(--chakra-space-4);-webkit-padding-end:var(--chakra-space-4);padding-inline-end:var(--chakra-space-4);background:var(--chakra-colors-gray-600);-webkit-flex:1;-ms-flex:1;flex:1;color:var(--chakra-colors-white);}.css-1ur1o7z:hover,.css-1ur1o7z[data-hover]{-webkit-text-decoration:underline;text-decoration:underline;}.css-1ur1o7z:focus,.css-1ur1o7z[data-focus]{box-shadow:var(--chakra-shadows-outline);}.css-1ur1o7z:focus,.css-1ur1o7z[data-focus]{background:var(--chakra-colors-red-500);}.css-1ur1o7z[disabled],.css-1ur1o7z[aria-disabled=true],.css-1ur1o7z[data-disabled]{opacity:0.4;cursor:not-allowed;box-shadow:var(--chakra-shadows-none);}.css-1ur1o7z:hover,.css-1ur1o7z[data-hover]{background:var(--chakra-colors-red-500);}.css-1ur1o7z:active,.css-1ur1o7z[data-active]{background:var(--chakra-colors-gray-300);}</style><a target="_blank" rel="noopener noreferrer" class="chakra-link chakra-button css-1ur1o7z" href="mailto:jason.h.devs[at]gmail.com"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" focusable="false" class="chakra-icon css-1r7pi23" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg>Email</a></div></div></div></div></div><main><section><style data-emotion="css fkhfj7">.css-fkhfj7{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;width:100%;padding-top:var(--chakra-space-4);padding-bottom:var(--chakra-space-4);}@media screen and (min-width: 48em){.css-fkhfj7{width:790px;}}</style><div class="chakra-stack css-fkhfj7"><style data-emotion="css nww7cy">.css-nww7cy{opacity:0;border:0;border-color:inherit;border-style:solid;border-left-width:1px;height:2em;}</style><hr aria-orientation="vertical" class="chakra-divider css-nww7cy"/><style data-emotion="css 1oa2b9s">.css-1oa2b9s{border-width:0;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;border-color:var(--chakra-colors-black);width:auto;height:auto;border:var(--chakra-borders-2px);opacity:0.85;}.css-1oa2b9s{-webkit-margin-start:0.5rem;margin-inline-start:0.5rem;-webkit-margin-end:0.5rem;margin-inline-end:0.5rem;margin-top:0px;margin-bottom:0px;border-left-width:1px;border-bottom-width:0;}</style><div class="chakra-stack__divider css-1oa2b9s"></div><style data-emotion="css 5s6aen">.css-5s6aen{font-family:var(--chakra-fonts-heading);font-weight:var(--chakra-fontWeights-bold);font-size:24px;line-height:1.33;background:var(--chakra-colors-white);padding:var(--chakra-space-1);border-top-right-radius:10px;border-bottom-right-radius:10px;border:var(--chakra-borders-2px);border-color:var(--chakra-colors-black);}@media screen and (min-width: 48em){.css-5s6aen{font-size:30px;line-height:1.2;}}@media screen and (min-width: 62em){.css-5s6aen{font-size:40px;}}</style><h2 class="chakra-heading css-5s6aen">Past Projects</h2></div><style data-emotion="css 1etkt4f">.css-1etkt4f{display:grid;grid-gap:var(--chakra-space-5);grid-template-columns:repeat(1, minmax(0, 1fr));-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}@media screen and (min-width: 30em){.css-1etkt4f{grid-template-columns:repeat(2, minmax(0, 1fr));}}</style><div class="css-1etkt4f"><style data-emotion="css s5mq3q">.css-s5mq3q{position:relative;max-width:445px;width:var(--chakra-sizes-full);background:var(--chakra-colors-white);box-shadow:var(--chakra-shadows-2xl);border-radius:var(--chakra-radii-md);padding:var(--chakra-space-6);overflow:hidden;border:var(--chakra-borders-2px);border-color:var(--chakra-colors-black);}.css-s5mq3q a[href]:not(.chakra-linkbox__overlay),.css-s5mq3q abbr[title]{position:relative;z-index:1;}</style><div class="chakra-linkbox css-s5mq3q"><style data-emotion="css 640u4w">.css-640u4w{height:210px;background:var(--chakra-colors-gray-100);margin-top:calc(var(--chakra-space-6) * -1);-webkit-margin-start:calc(var(--chakra-space-6) * -1);margin-inline-start:calc(var(--chakra-space-6) * -1);-webkit-margin-end:calc(var(--chakra-space-6) * -1);margin-inline-end:calc(var(--chakra-space-6) * -1);margin-bottom:var(--chakra-space-6);position:relative;}</style><div class="css-640u4w"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Weather App My Logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Weather App My Logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.j
29asondevs%2Fimages%2Fweather_app_my_logo.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fweather_app_my_logo.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fweather_app_my_logo.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fweather_app_my_logo.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fweather_app_my_logo.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fweather_app_my_logo.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fweather_app_my_logo.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fweather_app_my_logo.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fweather_app_my_logo.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></div><style data-emotion="css n21gh5">.css-n21gh5{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-n21gh5>*:not(style)~*:not(style){margin-top:0.5rem;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;}</style><div class="chakra-stack css-n21gh5"><style data-emotion="css 1qwhjdu">.css-1qwhjdu{color:var(--chakra-colors-green-500);text-transform:uppercase;font-weight:800;font-size:var(--chakra-fontSizes-sm);letter-spacing:1.1px;}</style><p class="chakra-text css-1qwhjdu">Personal Project</p><style data-emotion="css 8qff3i">.css-8qff3i{font-family:var(--chakra-fonts-body);font-weight:var(--chakra-fontWeights-bold);font-size:var(--chakra-fontSizes-2xl);line-height:1.33;color:var(--chakra-colors-gray-700);}@media screen and (min-width: 48em){.css-8qff3i{line-height:1.2;}}</style><h2 class="chakra-heading css-8qff3i"><style data-emotion="css 1hnz6hu">.css-1hnz6hu{position:static;}.css-1hnz6hu::before{content:'';cursor:inherit;display:block;position:absolute;top:0px;left:0px;z-index:0;width:100%;height:100%;}</style><a href="https://weather-app-my.vercel.app/" class="chakra-linkbox__overlay css-1hnz6hu" rel="noopener noreferrer" target="_blank">Weather App My</a></h2><style data-emotion="css 1ksnejm">.css-1ksnejm{color:var(--chakra-colors-gray-500);height:var(--chakra-sizes-20);}</style><p class="chakra-text css-1ksnejm">A Malaysian weather forecast app powered by APIs from the Malaysian Meteorological Department : https://api.met.gov.my/</p></div><style data-emotion="css 1lb4zpe">.css-1lb4zpe{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;margin-top:var(--chakra-space-6);}.css-1lb4zpe>*:not(style)~*:not(style){margin-top:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-bottom:0px;-webkit-margin-start:var(--chakra-space-4);margin-inline-start:var(--chakra-space-4);}</style><div class="chakra-stack css-1lb4zpe"><style data-emotion="css hboir5">.css-hboir5{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;}</style><div class="css-hboir5"><div class="css-0"><style data-emotion="css q9k0mw">.css-q9k0mw{color:var(--chakra-colors-gray-500);}</style><p class="chakra-text css-q9k0mw">May, 2022</p></div><style data-emotion="css 17xejub">.css-17xejub{-webkit-flex:1;-ms-flex:1;flex:1;justify-self:stretch;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;}</style><div class="css-17xejub"></div></div></div></div><div class="chakra-linkbox css-s5mq3q"><div class="css-640u4w"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Calculator Logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Calculator Logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.j
29asondevs%2Fimages%2Fnext_js_ts_calculator.jpg&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_calculator.jpg&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_calculator.jpg&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_calculator.jpg&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_calculator.jpg&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_calculator.jpg&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_calculator.jpg&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_calculator.jpg&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_calculator.jpg&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></div><div class="chakra-stack css-n21gh5"><p class="chakra-text css-1qwhjdu">Personal Project</p><h2 class="chakra-heading css-8qff3i"><a href="https://nextjs-tailwind-ts-calculator.vercel.app/" class="chakra-linkbox__overlay css-1hnz6hu" rel="noopener noreferrer" target="_blank">Typscript React Calculator</a></h2><p class="chakra-text css-1ksnejm">Built from scratch using the calculator guide by Zell Liew on Freecodecamp.org.</p></div><div class="chakra-stack css-1lb4zpe"><div class="css-hboir5"><div class="css-0"><p class="chakra-text css-q9k0mw">May, 2022</p></div><div class="css-17xejub"></div></div></div></div><div class="chakra-linkbox css-s5mq3q"><div class="css-640u4w"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Clocks Logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Clocks Logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_clocks_logo.jpg&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_clocks_logo.jpg&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_clocks_logo.jpg&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_clocks_logo.jpg&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_clocks_logo.jpg&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_clocks_logo.jpg&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_clocks_logo.jpg&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_clocks_logo.jpg&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fnext_js_ts_clocks_logo.jpg&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></div><div class="chakra-stack css-n21gh5"><p class="chakra-text css-1qwhjdu">Personal Project</p><h2 class="chakra-heading css-8qff3i"><a href="https://nextjs-ts-clocks.vercel.app/" class="chakra-linkbox__overlay css-1hnz6hu" rel="noopener noreferrer" target="_blank">Clocks!</a></h2><p class="chakra-text css-1ksnejm">More Typescript, Tailwind CSS, React Hooks and library usage practice.</p></div><div class="chakra-stack css-1lb4zpe"><div class="css-hboir5"><div class="css-0"><p class="chakra-text css-q9k0mw">May, 2022</p></div><div class="css-17xejub"></div></div></div></div><div class="chakra-linkbox css-s5mq3q"><div class="css-640u4w"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="React Logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="React Logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.j
29asondevs%2Fimages%2Freact-logo-512.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Freact-logo-512.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Freact-logo-512.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Freact-logo-512.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Freact-logo-512.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Freact-logo-512.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Freact-logo-512.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Freact-logo-512.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Freact-logo-512.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></div><div class="chakra-stack css-n21gh5"><p class="chakra-text css-1qwhjdu">Personal Project</p><h2 class="chakra-heading css-8qff3i"><a href="https://react-typescript-gold.vercel.app/" class="chakra-linkbox__overlay css-1hnz6hu" rel="noopener noreferrer" target="_blank">Randomuser API Testing + Typescript + Tailwind CSS + React</a></h2><p class="chakra-text css-1ksnejm">Practicing Typescript, Tailwind CSS, React Hooks and API Calls</p></div><div class="chakra-stack css-1lb4zpe"><div class="css-hboir5"><div class="css-0"><p class="chakra-text css-q9k0mw">May, 2022</p></div><div class="css-17xejub"></div></div></div></div><div class="chakra-linkbox css-s5mq3q"><div class="css-640u4w"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Daniel&#x27;s Private Tuition Logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Daniel&#x27;s Private Tuition Logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fdpt%2Fexam.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fdpt%2Fexam.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fdpt%2Fexam.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fdpt%2Fexam.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fdpt%2Fexam.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fdpt%2Fexam.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fdpt%2Fexam.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fdpt%2Fexam.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fdpt%2Fexam.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></div><div class="chakra-stack css-n21gh5"><p class="chakra-text css-1qwhjdu">Personal Project</p><h2 class="chakra-heading css-8qff3i"><a href="https://daniels-private-tuition.vercel.app/" class="chakra-linkbox__overlay css-1hnz6hu" rel="noopener noreferrer" target="_blank">Daniel&#x27;s Private Tuition</a></h2><p class="chakra-text css-1ksnejm">A website for a private tuition service.</p></div><div class="chakra-stack css-1lb4zpe"><div class="css-hboir5"><div class="css-0"><p class="chakra-text css-q9k0mw">May, 2022</p></div><div class="css-17xejub"></div></div></div></div><div class="chakra-linkbox css-s5mq3q"><div class="css-640u4w"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Wordle Clue Maker Logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Wordle Clue Maker Logo" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.j
29asondevs%2Fimages%2Fwordle_clue_maker_logo.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fwordle_clue_maker_logo.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fwordle_clue_maker_logo.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fwordle_clue_maker_logo.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fwordle_clue_maker_logo.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fwordle_clue_maker_logo.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fwordle_clue_maker_logo.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fwordle_clue_maker_logo.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fwordle_clue_maker_logo.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></div><div class="chakra-stack css-n21gh5"><p class="chakra-text css-1qwhjdu">Personal Project</p><h2 class="chakra-heading css-8qff3i"><a href="https://wordle-clue-maker.netlify.app" class="chakra-linkbox__overlay css-1hnz6hu" rel="noopener noreferrer" target="_blank">Wordle Clue Maker</a></h2><p class="chakra-text css-1ksnejm">Tired of having to write out clues to your wordle? Make wordle clues without giving away the word and share them anywhere as emojis. </p></div><div class="chakra-stack css-1lb4zpe"><div class="css-hboir5"><div class="css-0"><p class="chakra-text css-q9k0mw">Feb, 2022</p></div><div class="css-17xejub"></div></div></div></div><div class="chakra-linkbox css-s5mq3q"><div class="css-640u4w"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:absolute;top:0;left:0;bottom:0;right:0"><img alt="Secure Notes Homepage" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/><noscript><img alt="Secure Notes Homepage" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fsecure_notes_landing_page.png&amp;w=640&amp;q=75 640w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fsecure_notes_landing_page.png&amp;w=750&amp;q=75 750w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fsecure_notes_landing_page.png&amp;w=828&amp;q=75 828w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fsecure_notes_landing_page.png&amp;w=1080&amp;q=75 1080w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fsecure_notes_landing_page.png&amp;w=1200&amp;q=75 1200w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fsecure_notes_landing_page.png&amp;w=1920&amp;q=75 1920w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fsecure_notes_landing_page.png&amp;w=2048&amp;q=75 2048w, /_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.jasondevs%2Fimages%2Fsecure_notes_landing_page.png&amp;w=3840&amp;q=75 3840w" src="/_next/image?url=https%3A%2F%2Fs3.ap-southeast-1.amazonaws.com%2Faws.s3.j
29asondevs%2Fimages%2Fsecure_notes_landing_page.png&amp;w=3840&amp;q=75" decoding="async" data-nimg="fill" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" loading="lazy"/></noscript></span></div><div class="chakra-stack css-n21gh5"><p class="chakra-text css-1qwhjdu">Final Year Project, UMP</p><h2 class="chakra-heading css-8qff3i"><a href="https://jason-devs.me/secure_notes/" class="chakra-linkbox__overlay css-1hnz6hu" rel="noopener noreferrer" target="_blank">Secure Notes</a></h2><p class="chakra-text css-1ksnejm">Your ideas matter. Manage notes, lock, and share them with other users in your organization.</p></div><div class="chakra-stack css-1lb4zpe"><div class="css-hboir5"><div class="css-0"><p class="chakra-text css-q9k0mw">Dec, 2021</p></div><div class="css-17xejub"></div></div></div></div></div></section></main></div><span></span></div><span></span></div>
29<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"allPostsData":[{"id":"ssg-ssr","title":"When to Use Static Generation v.s. Server-side Rendering","date":"2022-01-02"},{"id":"pre-rendering","title":"Two Forms of Pre-rendering","date":"2022-01-01"}]},"__N_SSG":true},"page":"/past_projects","query":{},"buildId":"bWWR5EaYdg-7KMCejb18s","isFallback":false,"gsp":true,"scriptLoader":[]}</script>
29</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.