1<!DOCTYPE html><html class="text-gray-500 antialiased bg-white min-h-full"><head><meta charSet="utf-8"/> 2<!-- This site is hosted on Netlify. Anyone can build and deploy a site 3 like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=321d13bf-96fe-4d22-b62b-6fa6b4328fdb 4 Netlify hosting facts for this site: static/SSR served via Netlify Edge. --><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="stylesheet"/><style data-href="/styles.f99176b0b5068e5860de.css" id="gatsby-global-css">.header-module--menu--2Uxwi a{margin-bottom:2.5rem;font-size:3rem;line-height:1;font-weight:600;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity));transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;transition-duration:.2s}@media (min-width:768px){.header-module--menu--2Uxwi a{margin-bottom:0;margin-left:2rem;font-size:1rem;line-height:1.5rem;font-weight:500;--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.header-module--menu--2Uxwi a:hover{--tw-text-opacity:1;color:rgba(17,24,39,var(--tw-text-opacity))}}@media (min-width:1024px){.header-module--menu--2Uxwi a{margin-left:2.5rem}}.header-module--menu--2Uxwi .header-module--active--1JOPQ{--tw-text-opacity:1;color:rgba(124,58,237,var(--tw-text-opacity))}@media (min-width:768px){.header-module--menu--2Uxwi .header-module--active--1JOPQ{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}} 5 6/*! tailwindcss v2.1.1 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{font-family:inherit;line-height:inherit}*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}
6[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*{--tw-shadow:0 0 transparent;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent}html{font-family:Inter,ui-sans-serif,system-ui;line-height:1.5}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:#374151;max-width:65ch}.prose [class~=lead]{color:#4b5563;font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose a{color:#111827;text-decoration:underline;font-weight:500}.prose strong{color:#111827;font-weight:600}.prose ol[type=A]{--list-counter-style:upper-alpha}.prose ol[type=a]{--list-counter-style:lower-alpha}.prose ol[type="A s"]{--list-counter-style:upper-alpha}.prose ol[type="a s"]{--list-counter-style:lower-alpha}.prose ol[type=I]{--list-counter-style:upper-roman}.prose ol[type=i]{--list-counter-style:lower-roman}.prose ol[type="I s"]{--list-counter-style:upper-roman}.prose ol[type="i s"]{--list-counter-style:lower-roman}.prose ol[type="1"]{--list-counter-style:decimal}.prose ol>li{position:relative;padding-left:1.75em}.prose ol>li:before{content:counter(list-item,var(--list-counter-style,decimal)) ".";position:absolute;font-weight:400;color:#6b7280;left:0}.prose ul>li{position:relative;padding-left:1.75em}.prose ul>li:before{content:"";position:absolute;background-color:#d1d5db;border-radius:50%;width:.375em;height:.375em;top:.6875em;left:.25em}.prose hr{border-color:#e5e7eb;border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose blockquote{font-weight:500;font-style:italic;color:#111827;border-left-width:.25rem;border-left-color:#e5e7eb;quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose blockquote p:first-of-type:before{content:open-quote}.prose blockquote p:last-of-type:after{content:close-quote}.prose h1{color:#111827;font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose h2{color:#111827;font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose h3{font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose h3,.prose h4{color:#111827;font-weight:600}.prose h4{margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose figure figcaption{color:#6b7280;font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose code{color:#111827;font-weight:600;font-size:.875em}.prose code:before{content:"`"}.prose code:after{content:"`"}.prose a code{color:#111827}.prose pre{color:#e5e7eb;background-color:#1f2937;overflow-x:auto;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.prose pre code{background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose pre code:before{content:none}.prose pre code:after{content:none}.prose table{width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose thead{color:#111827;font-weight:600;border-bottom-width:1px;border-bottom-color:#d1d5db}.prose thead th{vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose tbody tr{border-bottom-width:1px;border-bottom-color:#e5e7eb}.prose tbody tr:last-child{border-bottom-width:0}.prose tbody td{vertical-align:top;padding:.5714286em}.prose{font-size:1rem;line-height:1.75}.prose p{margin-top:1.25em;margin-bottom:1.25em}.prose figure,.prose img,.prose video{margin-top:2em;margin-bottom:2em}.prose figure>*{margin-top:0;margin-bottom:0}.prose h2 code{font-size:.875em}.prose h3 code{font-size:.9em}.prose ol,.prose ul{margin-top:1.25em;margin-bottom:1.25em}.prose li{margin-top:.5em;margin-bottom:.5em}.prose>ul>li p{margin-top:.75em;margin-bottom:.75em}.prose>ul>li>:first-child{margin-top:1.25em}.prose>ul>li>:last-child{margin-bottom:1.25em}.prose>ol>li>:first-child{margin-top:1.25em}.prose>ol>li>:last-child{margin-bottom:1.25em}.prose ol ol,.prose ol ul,.prose ul ol,.prose ul ul{margin-top:.75em;margin-bottom:.75em}.prose hr+*{margin-top:0}.prose h2+*{margin-top:0}.prose h3+*{margin-top:0}.prose h4+*{margin-top:0}.prose thead th:first-child{padding-left:0}.prose thead th:last-child{padding-right:0}.prose tbody td:first-child{padding-left:0}.prose tbody td:last-child{padding-right:0}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg p{margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg [class~=lead]{font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg blockquote{margin-top:1.6666667em;margin-bottom:1.6666667em;padding-left:1em}.prose-lg h1{font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg h2{font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg h3{font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg h4{margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg figure,.prose-lg img,.prose-lg video{margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg figure>*{margin-top:0;margin-bottom:0}.prose-lg figure figcaption{font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg code{font-size:.8888889em}.prose-lg h2 code{font-size:.8666667em}.prose-lg h3 code{font-size:.875em}.prose-lg pre{font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding:1em 1.5em}.prose-lg ol,.prose-lg ul{margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg li{margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg ol>li{padding-left:1.6666667em}.prose-lg ol>li:before{left:0}.prose-lg ul>li{padding-left:1.6666667em}.prose-lg ul>li:before{width:.3333333em;height:.3333333em;top:.72222em;left:.2222222em}.prose-lg>ul>li p{margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg>ul>li>:first-child{margin-top:1.3333333em}.prose-lg>ul>li>:last-child{margin-bottom:1.3333333em}.prose-lg>ol>li>:first-child{margin-top:1.3333333em}.prose-lg>ol>li>:last-child{margin-bottom:1.3333333em}.prose-lg ol ol,.prose-lg ol ul,.prose-lg ul ol,.prose-lg ul ul{margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg hr{margin-top:3.1111111em;margin-bottom:3.1111111em}.prose-lg hr+*{margin-top:0}.prose-lg h2+*{margin-top:0}.prose-lg h3+*{margin-top:0}.prose-lg h4+*{margin-top:0}.prose-lg table{font-size:.8888889em;line-height:1.5}.prose-lg thead th{padding-right:.75em;padding-bottom:.75em;padding-left:.75em}.prose-lg thead th:first-child{padding-left:0}.prose-lg thead th:last-child{padding-right:0}.prose-lg tbody td{padding:.75em}.prose-lg tbody td:first-child{padding-left:0}.prose-lg tbody td:last-child{padding-right:0}.prose-lg>:first-child{margin-top:0}.prose-lg>:last-child{margin-bottom:0}.prose-purple a,.prose-purple a code{color:#7c3aed}.fixed{position:fixed}.relative{position:relative}.absolute{position:absolute}.top-0{top:0}.left-0{left:0}.-right-2{right:-.5rem}.-top-4{top:-1rem}.-top-8{top:-2rem}.-left-2{left:-.5rem}.bottom-16{bottom:4rem}.-left-6{left:-1.5rem}.bottom-11{bottom:2.75rem}.z-30{z-index:30}.z-50{z-index:50}.z-40{z-index:40}.z-0{z-index:0}.z-20{z-index:20}.order-first{order:-9999}.mx-auto{margin-left:auto;margin-right:auto}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mr-2{margin-right:.5rem}.mt-8{margin-top:2rem}.mt-1{margin-top:.25rem}.mb-16{margin-bottom:4rem}.mb-3{margin-bottom:.75rem}.mb-12{margin-bottom:3rem}.mt-3{margin-top:.75rem}.mt-2{margin-top:.5rem}.mb-10{margin-bottom:2.5rem}.mt-16{margin-top:4rem}.mb-7{margin-bottom:1.75rem}.mb-5{margin-bottom:1.25rem}.mb-20{margin-bottom:5rem}.mb-4{margin-bottom:1rem}.mt-28{margin-top:7rem}.block{display:block}.inline-block{display:inline-block}
6.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-full{height:100%}.h-screen{height:100vh}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-auto{width:auto}.w-8{width:2rem}.w-1\/4{width:25%}.w-2\/12{width:16.666667%}.w-5{width:1.25rem}.max-w-screen-lg{max-width:1024px}.max-w-md{max-width:28rem}.max-w-4xl{max-width:56rem}.max-w-3xl{max-width:48rem}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.auto-cols-max{grid-auto-columns:-webkit-max-content;grid-auto-columns:max-content}.grid-flow-col{grid-auto-flow:column}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-items-center{justify-items:center}.gap-8{gap:2rem}.gap-y-10{row-gap:2.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-14{row-gap:3.5rem}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.5rem*var(--tw-space-x-reverse));margin-left:calc(0.5rem*(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.5rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgba(229,231,235,var(--tw-divide-opacity))}.justify-self-start{justify-self:start}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:9999px}
6.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-3xl{border-radius:1.5rem}.rounded-lg{border-radius:.5rem}.rounded-2xl{border-radius:1rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-transparent{border-color:transparent}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(17,24,39,var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.bg-purple-50{--tw-bg-opacity:1;background-color:rgba(245,243,255,var(--tw-bg-opacity))}.bg-\[\#00AFF0\]{--tw-bg-opacity:1;background-color:rgba(0,175,240,var(--tw-bg-opacity))}.bg-lightBlue-100{--tw-bg-opacity:1;background-color:rgba(224,242,254,var(--tw-bg-opacity))}.bg-\[\#1DA1F2\]{--tw-bg-opacity:1;background-color:rgba(29,161,242,var(--tw-bg-opacity))}.bg-purple-400{--tw-bg-opacity:1;background-color:rgba(167,139,250,var(--tw-bg-opacity))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgba(237,233,254,var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(107,114,128,var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243,244,246,var(--tw-bg-opacity))}.bg-pink-400{--tw-bg-opacity:1;background-color:rgba(244,114,182,var(--tw-bg-opacity))}.bg-pink-100{--tw-bg-opacity:1;background-color:rgba(252,231,243,var(--tw-bg-opacity))}.bg-\[\#0A66C2\]{--tw-bg-opacity:1;background-color:rgba(10,102,194,var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgba(219,234,254,var(--tw-bg-opacity))}.bg-\[\#0676E8\]{--tw-bg-opacity:1;background-color:rgba(6,118,232,var(--tw-bg-opacity))}.bg-gradient-to-b{background-image:linear-gradient(180deg,var(--tw-gradient-stops))}.from-white{--tw-gradient-from:#fff;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,hsla(0,0%,100%,0))}.to-transparent{--tw-gradient-to:transparent}.p-2{padding:.5rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-3{padding:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.px-3{padding-left:.75rem;padding-right:.75rem}.pb-12{padding-bottom:3rem}.pt-16{padding-top:4rem}.pb-14{padding-bottom:3.5rem}.pt-10{padding-top:2.5rem}.pt-6{padding-top:1.5rem}.pb-4{padding-bottom:1rem}.text-center{text-align:center}.text-left{text-align:left}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.text-\[13px\]{font-size:13px}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-extrabold{font-weight:800}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-none{line-height:1}.leading-6{line-height:1.5rem}.tracking-tighter{letter-spacing:-.05em}.tracking-wide{letter-spacing:.025em}.tracking-tight{letter-spacing:-.025em}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(17,24,39,var(--tw-text-opacity))}.text-purple-400{--tw-text-opacity:1;color:rgba(167,139,250,var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-purple-600{--tw-text-opacity:1;color:rgba(124,58,237,var(--tw-text-opacity))}.text-purple-800{--tw-text-opacity:1;color:rgba(91,33,182,var(--tw-text-opacity))}.text-purple-500{--tw-text-opacity:1;color:rgba(139,92,246,var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-\[\#00AFF0\]{--tw-text-opacity:1;color:rgba(0,175,240,var(--tw-text-opacity))}.text-gray-50{--tw-text-opacity:1;color:rgba(249,250,251,var(--tw-text-opacity))}.text-\[\#1DA1F2\]{--tw-text-opacity:1;color:rgba(29,161,242,var(--tw-text-opacity))}.text-pink-500{--tw-text-opacity:1;color:rgba(236,72,153,var(--tw-text-opacity))}.text-\[\#0A66C2\]{--tw-text-opacity:1;color:rgba(10,102,194,var(--tw-text-opacity))}.text-\[\#0676E8\]{--tw-text-opacity:1;color:rgba(6,118,232,var(--tw-text-opacity))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-sha
6dow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.ring-gray-900{--tw-ring-opacity:1;--tw-ring-color:rgba(17,24,39,var(--tw-ring-opacity))}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-white{--tw-ring-offset-color:#fff}.transition-colors{transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-100{transition-duration:.1s}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.container{margin-left:auto;margin-right:auto;width:91.666667%;max-width:80rem}.underline-effect{transition:all .1s ease;box-shadow:inset 0 -.166667em 0 0 hsla(0,0%,100%,0),inset 0 -.333333em 0 0 rgba(182,148,241,50%)}.underline-effect:hover{box-shadow:inset 0 -.166667em 0 0 hsla(0,0%,100%,0),inset 0 -.533333em 0 0 rgba(182,148,241,50%)}.section-margin-top{margin-top:7rem}@media (min-width:640px){.section-margin-top{margin-top:11rem}}.focus-within\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgba(209,213,219,var(--tw-border-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgba(17,24,39,var(--tw-text-opacity))}.hover\:text-purple-400:hover{--tw-text-opacity:1;color:rgba(167,139,250,var(--tw-text-opacity))}.hover\:text-gray-100:hover{--tw-text-opacity:1;color:rgba(243,244,246,var(--tw-text-opacity))}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px rgba(0,0,0,0.25);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-sha
6dow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width:640px){.sm\:right-6{right:1.5rem}.sm\:-right-2{right:-.5rem}.sm\:mt-10{margin-top:2.5rem}.sm\:mb-8{margin-bottom:2rem}.sm\:mb-14{margin-bottom:3.5rem}.sm\:mb-10{margin-bottom:2.5rem}.sm\:mt-24{margin-top:6rem}.sm\:mb-28{margin-bottom:7rem}.sm\:w-2\/4{width:50%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.sm\:pt-20{padding-top:5rem}.sm\:pb-20{padding-bottom:5rem}.sm\:pb-8{padding-bottom:2rem}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:font-semibold{font-weight:600}.sm\:leading-snug{line-height:1.375}.sm\:leading-10{line-height:2.5rem}.sm\:leading-9{line-height:2.25rem}}@media (min-width:768px){.md\:relative{position:relative}.md\:-mt-40{margin-top:-10rem}.md\:mb-32{margin-bottom:8rem}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.md\:gap-y-14{row-gap:3.5rem}.md\:gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.md\:space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.md\:bg-transparent{background-color:transparent}.md\:pt-6{padding-top:1.5rem}.md\:pb-12{padding-bottom:3rem}}@media (min-width:1024px){.lg\:inline{display:inline}.lg\:hidden{display:none}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:justify-items-start{justify-items:start}.lg\:text-7xl{font-size:4.5rem;line-height:1}.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}.lg\:leading-9{line-height:2.25rem}}@media (min-width:1280px){.xl\:max-w-screen-xl{max-width:1280px}}.about-module--devphoto--1-F5z{border-radius:30% 70% 70% 30%/30% 30% 70% 70%;transition:all .2s cubic-bezier(.175,.885,.32,1.275)}.about-module--devphoto--1-F5z:hover{border-radius:59% 41% 29% 71%/26% 38% 62% 74%}.hero-module--hero--3n9n6{background:#f0f9ff url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNDQwIDMwMCI+PHBhdGggZmlsbD0iIzA5ZiIgZD0iTTAgNjRsMTguNSAzMkMzNi45IDEyOCA3NCAxOTIgMTExIDIzNC43YzM2LjcgNDIuMyA3NCA2NC4zIDExMSA1OC42IDM2LjUtNS4zIDczLTM3LjMgMTEwLTY5LjMgMzcuMi0zMiA3NC02NCAxMTEtOTZzNzQtNjQgMTExLTY5LjNjMzYuOC01LjcgNzQgMTYuMyAxMTEgMzIgMzYuNSAxNi4zIDczIDI2LjMgMTEwIDE2QzgxMi4zIDk2IDg0OSA2NCA4ODYgNTMuM2MzNy4xLTEwLjMgNzQtLjMgMTExIDMyIDM2LjggMzEuNyA3NCA4NS43IDExMSA4MCAzNi42LTUuMyA3NC02OS4zIDExMC04NS4zIDM3LjQtMTYgNzQgMTYgMTExIDUzLjMgMzcuMiAzNy43IDc0IDc5LjcgOTMgMTAxLjRsMTggMjEuM3Y2NEgweiIvPjwvc3ZnPg==) 0 100% no-repeat;min-height:650px}@media (max-width:768px){.hero-module--hero--3n9n6{background-size:200%}}.project-card-module--imgWrapper--15ai4{background:radial-gradient(98.02% 134.33% at 1.93% 97.54%,#7e22ce 0,#581c87 100%);perspective:400px;transform-style:preserve-3d}.project-card-module--imgBubble--1Euj0{background:radial-gradient(74.79% 74.79% at 15.42% 13.12%,#581c87 0,#e9d5ff .01%,#a855f7 100%);padding-top:100%}</style><meta name="generator" content="Gatsby 3.1.0"/><title data-react-helmet="true">Developer Ruhul | Fullstack web developer</title><meta data-react-helmet="true" name="description" content="Ruhul is a fullstack web developer with 2 years of experience. He creates outstanding websites and webapps with beautiful and smooth user interfaces but also he's able to develop the backend and then integrate the two(website and API) to create a full blown web application - usually, he does both at the same time. This allows him to build almost any kind of web app or application very quickly."/><meta data-react-helmet="true" name="image" content="https://i.imgur.com/VNlq0Oo.png"/><meta data-react-helmet="true" property="og:url" content="https://ruhulamin.dev"/><meta data-react-helmet="true" property="og:title" content="Developer Ruhul | Fullstack web developer"/><meta data-react-helmet="true" property="og:description" content="Ruhul is a fullstack web developer with 2 years of experience. He creates outstanding websites and webapps with beautiful and smooth user interfaces but also he's able to develop the backend and then integrate the two(website and API) to create a full blown web application - usually, he does both at the same time. This allows him to build almost any kind of web app or application very quickly."/><meta data-react-helmet="true" property="og:image" content="https://i.imgur.com/VNlq0Oo.png"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:creator" content="@developerruhul"/><meta data-react-helmet="true" name="twitter:title" content="Developer Ruhul | Fullstack web developer"/><meta data-react-helmet="true" name="twitter:description" content="Ruhul is a fullstack web developer with 2 years of experience. He creates outstanding websites and webapps with beautiful and smooth user interfaces but also he's able to develop the backend and then integrate the two(website and API) to create a full blown web application - usually, he does both at the same time. This allows him to build almost any kind of web app or application very quickly."/><meta data-react-helmet="true" name="twitter:image" content="https://i.imgur.com/VNlq0Oo.png"/><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper img{all:inherit;bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript>
6<script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){if(void 0===e.target.dataset.mainImage)return;if(void 0===e.target.dataset.gatsbyImageSsr)return;const t=e.target;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script>
6<link rel="icon" href="/favicon-32x32.png?v=868b3f16bda44b8d3fdcad5c157e30e4" type="image/png"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><meta name="theme-color" content="#7C3AED"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=868b3f16bda44b8d3fdcad5c157e30e4"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=868b3f16bda44b8d3fdcad5c157e30e4"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=868b3f16bda44b8d3fdcad5c157e30e4"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=868b3f16bda44b8d3fdcad5c157e30e4"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=868b3f16bda44b8d3fdcad5c157e30e4"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=868b3f16bda44b8d3fdcad5c157e30e4"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=868b3f16bda44b8d3fdcad5c157e30e4"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=868b3f16bda44b8d3fdcad5c157e30e4"/><link as="script" rel="preload" href="/webpack-runtime-e45682f8fdbbe04d7c5f.js"/><link as="script" rel="preload" href="/framework-369a570a8ae8f23c72f9.js"/><link as="script" rel="preload" href="/app-f2c303476592e22c1f3b.js"/><link as="script" rel="preload" href="/77a0769f2789749dc1ee9a336e7c6bcb7a892f12-aca30b9e5009bdac8d7b.js"/><link as="script" rel="preload" href="/component---src-pages-index-js-2a498a236840c4e1e93d.js"/><link as="fetch" rel="preload" href="/page-data/index/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/1522653120.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/sq/d/3444287458.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body class="min-h-full"><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><div class="flex flex-col min-h-screen"><header class="pb-12 bg-gradient-to-b from-white to-transparent z-30 fixed w-full top-0 left-0"><div class="container flex items-center justify-between py-4"><a aria-current="page" aria-label="Go to homepage" class="flex items-center undefined" href="/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained rounded-full mr-2"><div style="max-width:48px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='50' width='48' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAVABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAMCBAX/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/9oADAMBAAIQAxAAAAGOb5iudYo9ChsbCP/EABoQAAIDAQEAAAAAAAAAAAAAAAECAAMSESL/2gAIAQEAAQUCtoUS+lUCoOW+Qd3IKFmBlVzAOz//xAAWEQADAAAAAAAAAAAAAAAAAAABIDH/2gAIAQMBAT8BET//xAAYEQACAwAAAAAAAAAAAAAAAAAAEQEQEv/aAAgBAgEBPwFs1F//xAAgEAAABQMFAAAAAAAAAAAAAAAAAQIRIRAScSIxMkFR/9oACAEBAAY/AkzkOl/ByYXJUeBGxdDUo3pFP//EABwQAQACAgMBAAAAAAAAAAAAAAEAESFhMUFxof/aAAgBAQABPyEN352hEnm1xZa6QtmVh0hvhox3Yo+RLAsO+UEWg+k//9oADAMBAAIAAwAAABAg+MP/xAAYEQADAQEAAAAAAAAAAAAAAAAAAREQUf/aAAgBAwEBPxCGxRcz/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQARMf/aAAgBAgEBPxA6FhYEht//xAAdEAEBAAIDAAMAAAAAAAAAAAABEQAhMUFRYXGR/9oACAEBAAE/ECBFkFQdB8YBedno8frAwxChm5hnoMS9m+4oldRrurmycM1wOucL0uq3n3NvCmwYfmF1nFo5/9k=" alt=""/><picture><source type="image/avif" srcSet="/static/868b3f16bda44b8d3fdcad5c157e30e4/0e6d5/developer-ruhul.avif 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/a7512/developer-ruhul.avif 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/22146/developer-ruhul.avif 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/a7d79/developer-ruhul.avif 96w" sizes="(min-width: 48px) 48px, 100vw"/><source type="image/webp" srcSet="/static/868b3f16bda44b8d3fdcad5c157e30e4/b3350/developer-ruhul.webp 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/0bad1/developer-ruhul.webp 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/d2fe5/developer-ruhul.webp 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/f80fb/developer-ruhul.webp 96w" sizes="(min-width: 48px) 48px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 48px) 48px, 100vw" decoding="async" loading="lazy" data-src="/static/868b3f16bda44b8d3fdcad5c157e30e4/19dc5
6/developer-ruhul.jpg" data-srcset="/static/868b3f16bda44b8d3fdcad5c157e30e4/5f6a2/developer-ruhul.jpg 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/69672/developer-ruhul.jpg 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/19dc5/developer-ruhul.jpg 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/7cf2b/developer-ruhul.jpg 96w" alt="Ruhul Amin"/></picture><noscript><picture><source type="image/avif" srcSet="/static/868b3f16bda44b8d3fdcad5c157e30e4/0e6d5/developer-ruhul.avif 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/a7512/developer-ruhul.avif 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/22146/developer-ruhul.avif 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/a7d79/developer-ruhul.avif 96w" sizes="(min-width: 48px) 48px, 100vw"/><source type="image/webp" srcSet="/static/868b3f16bda44b8d3fdcad5c157e30e4/b3350/developer-ruhul.webp 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/0bad1/developer-ruhul.webp 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/d2fe5/developer-ruhul.webp 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/f80fb/developer-ruhul.webp 96w" sizes="(min-width: 48px) 48px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 48px) 48px, 100vw" decoding="async" loading="lazy" src="/static/868b3f16bda44b8d3fdcad5c157e30e4/19dc5/developer-ruhul.jpg" srcSet="/static/868b3f16bda44b8d3fdcad5c157e30e4/5f6a2/developer-ruhul.jpg 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/69672/developer-ruhul.jpg 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/19dc5/developer-ruhul.jpg 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/7cf2b/developer-ruhul.jpg 96w" alt="Ruhul Amin"/></picture></noscript>
6<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t)e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset")),e.complete&&(e.style.opacity=1)}</script>
6</div><span class="text-gray-900 font-bold tracking-tighter">Developer Ruhul</span></a><nav><button class="w-auto bg-gray-900 rounded-full p-2 hover:bg-gray-700 transition-colors duration-100 focus-within:outline-none z-50 relative md:hidden"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="w-8 text-white"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button><div class="fixed bg-black top-0 left-0 w-full h-full flex justify-center items-center md:relative md:flex md:bg-transparent z-40 hidden"><section class="flex flex-col header-module--menu--2Uxwi md:flex-row md:items-center"><a aria-current="page" class="header-module--active--1JOPQ" href="/">Home</a><a href="/about">About</a><a href="/work">Work</a><a href="/contact">Contact</a></section></div></nav></div></header><main class="main flex-auto flex-grow flex-shrink-0 mb-16"><section class="h-screen w-full flex items-center relative overflow-hidden hero-module--hero--3n9n6"><div class="container md:-mt-40"><article class="flex flex-col"><h1 class="text-4xl sm:text-6xl lg:text-7xl leading-none font-extrabold tracking-tight text-gray-900 mb-3 sm:mb-8">I'm a Full stack web developer</h1><h3 class="order-first sm:text-lg sm:leading-snug font-semibold tracking-wide uppercase text-purple-600 mb-3"><a href="/about">HELLO, MY NAME IS RUHUL AMIN</a></h3><p class="max-w-screen-lg text-lg sm:text-2xl sm:leading-10 font-medium mb-12 sm:mb-14 text-gray-500">I'm a professional freelancer. I develop outstanding websites and webapps with beautiful and smooth user interfaces with a fast and scalable backend.</p></article><a class="flex-none bg-gray-900 hover:bg-gray-700 text-white text-lg leading-6 font-semibold py-3 px-6 border border-transparent rounded-xl ring-2 ring-offset-2 ring-offset-white ring-gray-900 focus:outline-none transition-colors duration-200" href="/contact"><span class="lg:hidden">Contact me</span><span class="hidden lg:inline">Let's work together</span></a></div></section><section class="mb-20 sm:mb-10 container section-margin-top"><article class="text-center"><h3 class="text-3xl sm:text-4xl lg:text-5xl leading-none font-extrabold text-gray-900 tracking-tight mb-4">
6Work samples</h3><div class="font-medium sm:font-semibold"><a class="underline-effect" href="/work">Go to work page</a> <!-- -->to see more of my work.</div></article><section class="mt-16 sm:mt-24 grid grid-cols-1 items-start justify-items-center gap-y-14 md:gap-x-14 md:grid-cols-2 lg:grid-cols-3"><article class="rounded-3xl max-w-md border"><a href="https://moon.ly" target="_blank" rel="noreferrer" title="Go to live website"><div class="project-card-module--imgWrapper--15ai4 rounded-t-md p-5 relative"><div style="transform:translateZ(0)" class="w-1/4 sm:w-2/4 absolute z-0 -right-2 sm:right-6 -top-4 transition-all duration-500 ease-out"><div class="project-card-module--imgBubble--1Euj0 rounded-full"></div></div><div style="transform:translateZ(0)" class="w-2/12 absolute z-0 -left-2 bottom-16 transition-transform duration-500 ease-out"><div class="project-card-module--imgBubble--1Euj0 rounded-full"></div></div><div style="transform:translateZ(0)" class="w-5 absolute z-0 -left-6 bottom-11 transition-transform duration-500 ease-out"><div class="project-card-module--imgBubble--1Euj0 rounded-full"></div></div><div data-gatsby-image-wrapper="" style="transform:translateZ(0)" class="gatsby-image-wrapper gatsby-image-wrapper-constrained rounded-lg hover:shadow-2xl z-20 transition-all duration-500 ease-out"><div style="max-width:440px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='338' width='440' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAA7DAAAOwwHHb6hkAAACx0lEQVQ4y0VUuY7UQBR0BBESY4+vtrvbtz2e2bnYRYsE2oCEBIlgEwKiRZARkcAP8BdIhKSLiPgUPqao9/YgaPX4HVX1ys8TrOcdvOuwjHIsFgkWjxNkaQlbNkiSAt53aJrx5q5HrQsXqdYVpkbfn6DyI5xtkWcOgXcTymIgAJvsxMT/I7HS9HrfHc1J/L5nRcAZgiO5oPIrDP0Odb2GyVsWEsDeNLfNBn235e/hJs5bct6tNH537nKOucDZAatZAFeoqzWLRwLXyPOGY46MTRzdIYkdrag4Vk2ADqtpj2k68j6oOukTrECSwihqJJgTTAAEUJrTxKsCeZbfAmpMi47eDeOBfWvEsUWWVdof5FnDh4YGt7eJGi1V+bLXRiET5U5tGFBQgBDZsoNzg6qytkfXzKj4HBSmU+aERwCEIFwWqlLi0izschuqFIVCLrViw70VEmdNICzinyTS1GvT64s3OKzP2NTcNlnES4swKpVEAMdhq7Vqh5CxNiVooMbXk6qQkT3H+vvrDz5ffYJnPKXSpVjBu+GYQp4JcdGoyqqaUTJuzI3fgeVSF0xGoUHMQBpXeHr2AsfdM8zzXt94FBUEtKjLlku+oiKPlsBdt9F8HJdc+EInCSxNbZiU7c8MFWUDlosBY3/Efn9GMMPikmQFTOXVfBlvfnKK/fqAmkst00mdAHNtWv10FgRMs56nw4OHj+Ar7ue0uwUsFLDwnm92xOk84+XFOabhBA1HFu+1ji8zKIoam/WRb7VEGJZUWeHb1y+4fHWJknZIoRbHBsY59dsai8P2gM0sSz3oRkRhTmKDQMwdyLSMMjJwmV2P39c/8PHdeyT82KUoZHFO9lF2z/f0ccL58wtsVlvu6KwfQxhmChqIH/KPIf8iUURALun1z+/48PYKrup1jHDB3DJHVlqO3KtF++M5asd9zLi7eUXLMgX9B8RKn/qiyD6jAAAAAElFTkSuQmCC" alt=""/><picture><source type="image/avif" srcSet="/static/a9afdbbd88087a05c1aa877ce54968d8/d8b22/moonly.avif 110w,/static/a9afdbbd88087a05c1aa877ce54968d8/24b4e/moonly.avif 220w,/static/a9afdbbd88087a05c1aa877ce54968d8/70526/moonly.avif 440w,/static/a9afdbbd88087a05c1aa877ce54968d8/f1b70/moonly.avif 880w" sizes="(min-width: 440px) 440px, 100vw"/><source type="image/webp" srcSet="/static/a9afdbbd88087a05c1aa877ce54968d8/955c5/moonly.webp 110w,/static/a9afdbbd88087a05c1aa877ce54968d8/386f1/moonly.webp 220w,/static/a9afdbbd88087a05c1aa877ce54968d8/8cc27/moonly.webp 440w,/static/a9afdbbd88087a05c1aa877ce54968d8/154ee/moonly.webp 880w" sizes="(min-width: 440px) 440px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 440px) 440px, 100vw" decoding="async" loading="lazy" data-src="/static/a9afdbbd88087a05c1aa877ce54968d8/6dfdf/moonly.png" data-srcset="/static/a9afdbbd88087a05c1aa877ce54968d8/3f5e1/moonly.png 110w,/static/a9afdbbd88087a05c1aa877ce54968d8/e7bcd/moonly.png 220w,/static/a9afdbbd88087a05c1aa877ce54968d8/6dfdf/moonly.png 440w,/static/a9afdbbd88087a05c1aa877ce54968d8/1dbdf/moonly.png 880w" alt="Moonly is a service that provides advanced tools to help users make informed decisions about their NFT investments. Moonly was created to help make it easier to understand what projects to get involved with in the Wild West that is the Solana NFT space. If you search âNFT rugâ itâs clear why a service that can help minimize risk is critical. Beyond the outright scams, many projects fail in this space. Knowing where and when to get involved is about as clear as mud."/></picture><noscript><picture><source type="image/avif" srcSet="/static/a9afdbbd88087a05c1aa877ce54968d8/d8b22/moonly.avif 110w,/static/a9afdbbd88087a05c1aa877ce54968d8/24b4e/moonly.avif 220w,/static/a9afdbbd88087a05c1aa877ce54968d8/70526/moonly.avif 440w,/static/a9afdbbd88087a05c1aa877ce54968d8/f1b70/moonly.avif 880w" sizes="(min-width: 440px) 440px, 100vw"/><source type="image/webp" srcSet="/static/a9afdbbd88087a05c1aa877ce54968d8/955c5/moonly.webp 110w,/static/a9afdbbd88087a05c1aa877ce54968d8/386f1/moonly.webp 220w,/static/a9afdbbd88087a05c1aa877ce54968d8/8cc27/moonly.webp 440w,/static/a9afdbbd88087a05c1aa877ce54968d8/154ee/moonly.webp 880w" sizes="(min-width: 440px) 440px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 440px) 440px, 100vw" decoding="async" loading="lazy" src="/static/a9afdbbd88087a05c1aa877ce54968d8/6dfdf/moonly.png" srcSet="/static/a9afdbbd88087a05c1aa877ce54968d8/3f5e1/moonly.png 110w,/static/a9afdbbd88087a05c1aa877ce54968d8/e7bcd/moonly.png 220w,/static/a9afdbbd88087a05c1aa877ce54968d8/6dfdf/moonly.png 440w,/static/a9afdbbd88087a05c1aa877ce54968d8/1dbdf/moonly.png 880w" alt="Moonly is a service that provides advanced tools to help users make informed decisions about their NFT investments. Moonly was created to help make it easier to understand what projects to get involved with in the Wild West that is the Solana NFT space. If you search âNFT rugâ itâs clear why a service that can help minimize risk is critical. Beyond the outright scams, many projects fail in this space. Knowing where and when to get involved is about as clear as mud."/></picture></noscript>
6<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t)e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset")),e.complete&&(e.style.opacity=1)}</script>
6</div></div></a><section class="p-6"><h3 class="font-bold text-sm tracking-tight text-purple-800">Frontend & Backend</h3><h2 class="text-xl font-extrabold tracking-tight text-gray-900 mt-1 capitalize">Moonly from Automatio</h2><div class="mt-3"><p>Moonly is a service that provides advanced tools to help users make informed decisions about their NFT investments. Moonly was created to help make it easier to understan...</p><button class="underline-effect outline-none focus:outline-none mt-1 text-purple-400 text-sm font-medium rounded">Read More</button></div><footer class="mt-8"><section class="flex items-center space-x-2 "><a target="_blank" rel="noreferrer" class="hover:text-purple-400 py-1.5 px-3 bg-purple-50 rounded-md transition-colors font-bold text-purple-500 text-[13px]">Github</a><a target="_blank" rel="noreferrer" href="https://moon.ly" class="hover:text-purple-400 py-1.5 px-3 bg-purple-50 rounded-md transition-colors font-bold text-purple-500 text-[13px]">Live link</a></section></footer></section></article><article class="rounded-3xl max-w-md border"><a href="https://automatio.co/#chromeExt" target="_blank" rel="noreferrer" title="Go to live website"><div class="project-card-module--imgWrapper--15ai4 rounded-t-md p-5 relative"><div style="transform:translateZ(0)" class="w-1/4 sm:w-2/4 absolute z-0 -right-2 sm:right-6 -top-4 transition-all duration-500 ease-out"><div class="project-card-module--imgBubble--1Euj0 rounded-full"></div></div><div style="transform:translateZ(0)" class="w-2/12 absolute z-0 -left-2 bottom-16 transition-transform duration-500 ease-out"><div class="project-card-module--imgBubble--1Euj0 rounded-full"></div></div><div style="transform:translateZ(0)" class="w-5 absolute z-0 -left-6 bottom-11 transition-transform duration-500 ease-out"><div class="project-card-module--imgBubble--1Euj0 rounded-full"></div></div><div data-gatsby-image-wrapper="" style="transform:translateZ(0)" class="gatsby-image-wrapper gatsby-image-wrapper-constrained rounded-lg hover:shadow-2xl z-20 transition-all duration-500 ease-out"><div style="max-width:440px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='235' width='440' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAACBklEQVQoz23T23KiQBAGYB9CEQYYznLyAIqAmmiWijEptdzKxt3a2vd/jn97BjSprb3owgv5+u+ZpqfqCVQjhWaMoZmiJmB8SjWDbmXQ7TkMZ0FVwHSXML0SureGG+3gxU/QrArMrmD5K9jBGr0hgUM9hUKgavwHtPIOLWRxAjXrEYrVQHUaKHyHvvkIfgeZABNwFmOoxRhoCRRGDXTRYPoF7FI6lNDdw8+uCGY/Ec8+YIRHSrgmcCVAgghtxmvEUQU/rhEmK4QpjRVWXdIchr2QKHdLevkFo+kvpOUf8PQd+ugfUKGKsy22zQUPT2dstid8e35HuXqldDmlWtxTmi6N7jdwJh9Ii98Yz358gjR2T5EJY+pML9iZLFP8dub0pyUlXlGt76BOSRW+gT35jpDGzbIWFGdo3UBFi2A5GZLpA3wa2wkKuKMlPZf0LOkiFmCWaDaX8NCoEUQnRIsr/PGFwLcOrFtwQKDj5ijXBxTVM0ZJ3aElNaglzHi7QozOUzHorNMLkuIKNz1DDw5fwQgDNYTj5ag3r8iLBl64lAm9sAUFzORO5vKC+jqtT3xCMD0jTo8wgj1NUXcgpRPF+Bi2N5fLzfikK7E27T7eblvAfTYn8I3AIy33AYwuqQUrAYa4oQM1kjd+W3bxBX0u+0xiolROCaMXxPmRVmwP5u3oC6oIrfAXaNhDpkubI/0AAAAASUVORK5CYII=" alt=""/><picture><source type="image/avif" srcSet="/static/2a9477690cbee27f1bf899619f540c22/f5f62/automatio-extension.avif 110w,/static/2a9477690cbee27f1bf899619f540c22/f13b9/automatio-extension.avif 220w,/static/2a9477690cbee27f1bf899619f540c22/4ab24/automatio-extension.avif 440w,/static/2a9477690cbee27f1bf899619f540c22/fa22c/automatio-extension.avif 880w" sizes="(min-width: 440px) 440px, 100vw"/><source type="image/webp" srcSet="/static/2a9477690cbee27f1bf899619f540c22/0f706/automatio-extension.webp 110w,/static/2a9477690cbee27f1bf899619f540c22/007af/automatio-extension.webp 220w,/static/2a9477690cbee27f1bf899619f540c22/9774a/automatio-extension.webp 440w,/static/2a9477690cbee27f1bf899619f540c22/3164c/automatio-extension.webp 880w" sizes="(min-width: 440px) 440px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 440px) 440px, 100vw" decoding="async" loading="lazy" data-src="/static/2a9477690cbee27f1bf899619f540c22/a46ec/automatio-extension.png" data-srcset="/static/2a9477690cbee27f1bf899619f540c22/6660e/automatio-extension.png 110w,/static/2a9477690cbee27f1bf899619f540c22/bf736/automatio-extension.png 220w,/static/2a9477690cbee27f1bf899619f540c22/a46ec/automatio-extension.png 440w,/static/2a9477690cbee27f1bf899619f540c22/b9f2b/automatio-extension.png 880w" alt="It's a well-designed chrome extension with a drag-&-drop interface to build a complete bot/web scraper without knowing a single line of code. The features are too many to list here. Of the 1.5 years of work there, "my favorite part was coming up with a solution to add support of shadow DOM, iframe, and lazy-loading which none of the competitors have yet. I've developed a deep understanding of the Javascript DOM while working on this project."/></picture><noscript><picture><source type="image/avif" srcSet="/static/2a9477690cbee27f1bf899619f540c22/f5f62/automatio-extension.avif 110w,/static/2a9477690cbee27f1bf899619f540c22/f13b9/automatio-extension.avif 220w,/static/2a9477690cbee27f1bf899619f540c22/4ab24/automatio-extension.avif 440w,/static/2a9477690cbee27f1bf899619f540c22/fa22c/automatio-extension.avif 880w" sizes="(min-width: 440px) 440px, 100vw"/><source type="image/webp" srcSet="/static/2a9477690cbee27f1bf899619f540c22/0f706/automatio-extension.webp 110w,/static/2a9477690cbee27f1bf899619f540c22/007af/automatio-extension.webp 220w,/static/2a9477690cbee27f1bf899619f540c22/9774a/automatio-extension.webp 440w,/static/2a9477690cbee27f1bf899619f540c22/3164c/automatio-extension.webp 880w" sizes="(min-width: 440px) 440px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 440px) 440px, 100vw" decoding="async" loading="lazy" src="/static/2a9477690cbee27f1bf899619f540c22/a46ec/automatio-extension.png" srcSet="/static/2a9477690cbee27f1bf899619f540c22/6660e/automatio-extension.png 110w,/static/2a9477690cbee27f1bf899619f540c22/bf736/automatio-extension.png 220w,/static/2a9477690cbee27f1bf899619f540c22/a46ec/automatio-extension.png 440w,/static/2a9477690cbee27f1bf899619f540c22/b9f2b/automatio-extension.png 880w" alt="It's a well-designed chrome extension with a drag-&-drop interface to build a complete bot/web scraper without knowing a single line of code. The features are too many to list here. Of the 1.5 years of work there, "my favorite part was coming up with a solution to add support of shadow DOM, iframe, and lazy-loading which none of the competitors have yet. I've developed a deep understanding of the Javascript DOM while working on this project."/></picture></noscript>
6<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t)e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset")),e.complete&&(e.style.opacity=1)}</script>
6</div></div></a><section class="p-6"><h3 class="font-bold text-sm tracking-tight text-purple-800">Advanced Frontend & Web scraping</h3><h2 class="text-xl font-extrabold tracking-tight text-gray-900 mt-1 capitalize">Automatio Chrome Extension</h2><div class="mt-3"><p>It's a well-designed chrome extension with a drag-&-drop interface to build a complete bot/web scraper without knowing a single line of code. The features are too many to...</p><button class="underline-effect outline-none focus:outline-none mt-1 text-purple-400 text-sm font-medium rounded">Read More</button></div><footer class="mt-8"><section class="flex items-center space-x-2 "><a target="_blank" rel="noreferrer" class="hover:text-purple-400 py-1.5 px-3 bg-purple-50 rounded-md transition-colors font-bold text-purple-500 text-[13px]">Github</a><a target="_blank" rel="noreferrer" href="https://automatio.co/#chromeExt" class="hover:text-purple-400 py-1.5 px-3 bg-purple-50 rounded-md transition-colors font-bold text-purple-500 text-[13px]">Live link</a></section></footer></section></article><article class="rounded-3xl max-w-md border"><a href="https://automatio.co/#dashboard" target="_blank" rel="noreferrer" title="Go to live website"><div class="project-card-module--imgWrapper--15ai4 rounded-t-md p-5 relative"><div style="transform:translateZ(0)" class="w-1/4 sm:w-2/4 absolute z-0 -right-2 sm:right-6 -top-4 transition-all duration-500 ease-out"><div class="project-card-module--imgBubble--1Euj0 rounded-full"></div></div><div style="transform:translateZ(0)" class="w-2/12 absolute z-0 -left-2 bottom-16 transition-transform duration-500 ease-out"><div class="project-card-module--imgBubble--1Euj0 rounded-full"></div></div><div style="transform:translateZ(0)" class="w-5 absolute z-0 -left-6 bottom-11 transition-transform duration-500 ease-out"><div class="project-card-module--imgBubble--1Euj0 rounded-full"></div></div><div data-gatsby-image-wrapper="" style="transform:translateZ(0)" class="gatsby-image-wrapper gatsby-image-wrapper-constrained rounded-lg hover:shadow-2xl z-20 transition-all duration-500 ease-out"><div style="max-width:440px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='235' width='440' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB/0lEQVQoz12S6ZLaMBCEeZGEw7bkEwPGsBxeMNjY3MdubVWyRyXv/w50WjJQW/nx1ciHWt0zqi1WbxhMfl3jyTsqPh5Eo/f/+HjQJ+nsL6bJH/THX+RTU/tRj6/CThCEOVmRAn5YIuhsYMoFDLGEJfMKewVhl6wlpLPGZ/obm9EbZHCE7e4gSU3aU/6UXC2ZoGVOYVgJTDEjKRxvRUp+z7mh5HoN29vAa+9Zt2jINQxnq8X88Iyw+0pBOeHpE0QxHYkpfjaf6GAON1jBdZb8aYeGMYPgxrB3YS20qHDX3Fdot8JRhxwrQSHHsASRU1blLuF6zlOXsJ2M0XJuyFkLOP6mgu4UtmbHd3s6PFHwhYJixI0JeSYzOK6KuoTr5XD9gpTwgg389pYwGuP67QN7fUS7c9YEjBt0LlxfULPEEJ7/DD9IEbQzCihnqXb4XdT115rvom6w14Ld/qsWC+6Ctj1Ct7fUoibjG9aYrtR0Z7cBzflcoMN+Cju7Dalg31/o7sBEKsHx7jCGpKCi3uij3hyg0XrSTl0/0/1sGgmvRKZ72bJ4lazqKnX7Fw5KxT2R891hzGEM0GxFFIzQuAmqayRv0SWnbdkLiqUPQVOyPYGa7o51x3q4ObQiCDlkrAEFexSMKThkjJQxMsLr4+faoSnTh6hy2IlO5Fy5DCuX/wD/12ITUh9zCQAAAABJRU5ErkJggg==" alt=""/><picture><source type="image/avif" srcSet="/static/2a2bf133a06c8c5e93e78feb5dd938c5/f5f62/automatio-dashboard.avif 110w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/f13b9/automatio-dashboard.avif 220w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/4ab24/automatio-dashboard.avif 440w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/fa22c/automatio-dashboard.avif 880w" sizes="(min-width: 440px) 440px, 100vw"/><source type="image/webp" srcSet="/static/2a2bf133a06c8c5e93e78feb5dd938c5/0f706/automatio-dashboard.webp 110w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/007af/automatio-dashboard.webp 220w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/9774a/automatio-dashboard.webp 440w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/3164c/automatio-dashboard.webp 880w" sizes="(min-width: 440px) 440px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 440px) 440px, 100vw" decoding="async" loading="lazy" data-src="/static/2a2bf133a06c8c5e93e78feb5dd938c5/a46ec/automatio-dashboard.png" data-srcset="/static/2a2bf133a06c8c5e93e78feb5dd938c5/6660e/automatio-dashboard.png 110w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/bf736/automatio-dashboard.png 220w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/a46ec/automatio-dashboard.png 440w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/b9f2b/automatio-dashboard.png 880w" alt="Itâs the dashboard or control panel of the automatio app that runs in the cloud. It displays the output data of the web scraper bot(that was created using the chrome-extension) running in the cloud. It has payments, notifications, etc. The feature list is just too long to list here. Besides transforming the beautiful design into code I also worked on a whole lot of other things including building the notification system, optimizing the frontend and backend to show the output data(which can sometimes be over 30-40MB), improving a real-time âoutput dataâ update system that shows scraped data as soon as itâs finished in the cloud. I have learned so much about design, architecture, performance etc while working on it."/></picture><noscript><picture><source type="image/avif" srcSet="/static/2a2bf133a06c8c5e93e78feb5dd938c5/f5f62/automatio-dashboard.avif 110w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/f13b9/automatio-dashboard.avif 220w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/4ab24/automatio-dashboard.avif 440w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/fa22c/automatio-dashboard.avif 880w" sizes="(min-width: 440px) 440px, 100vw"/><source type="image/webp" srcSet="/static/2a2bf133a06c8c5e93e78feb5dd938c5/0f706/automatio-dashboard.webp 110w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/007af/automatio-dashboard.webp 220w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/9774a/automatio-dashboard.webp 440w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/3164c/automatio-dashboard.webp 880w" sizes="(min-width: 440px) 440px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 440px) 440px, 100vw" decoding="async" loading="lazy" src="/static/2a2bf133a06c8c5e93e78feb5dd938c5/a46ec/automatio-dashboard.png" srcSet="/static/2a2bf133a06c8c5e93e78feb5dd938c5/6660e/automatio-dashboard.png 110w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/bf736/automatio-dashboard.png 220w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/a46ec/automatio-dashboard.png 440w,/static/2a2bf133a06c8c5e93e78feb5dd938c5/b9f2b/automatio-dashboard.png 880w" alt="Itâs the dashboard or control panel of the automatio app that runs in the cloud. It displays the output data of the web scraper bot(that was created using the chrome-extension) running in the cloud. It has payments, notifications, etc. The feature list is just too long to list here. Besides transforming the beautiful design into code I also worked on a whole lot of other things including building the notification system, optimizing the frontend and backend to show the output data(which can sometimes be over 30-40MB), improving a real-time âoutput dataâ update system that shows scraped data as soon as itâs finished in the cloud. I have learned so much about design, architecture, performance etc while working on it."/></picture></noscript>
6<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t)e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset")),e.complete&&(e.style.opacity=1)}</script>
6</div></div></a><section class="p-6"><h3 class="font-bold text-sm tracking-tight text-purple-800">Advanced Frontend & Backend</h3><h2 class="text-xl font-extrabold tracking-tight text-gray-900 mt-1 capitalize">Automatio Dashboard</h2><div class="mt-3"><p>Itâs the dashboard or control panel of the automatio app that runs in the cloud. It displays the output data of the web scraper bot(that was created using the chrome-exte...</p><button class="underline-effect outline-none focus:outline-none mt-1 text-purple-400 text-sm font-medium rounded">Read More</button></div><footer class="mt-8"><section class="flex items-center space-x-2 "><a target="_blank" rel="noreferrer" class="hover:text-purple-400 py-1.5 px-3 bg-purple-50 rounded-md transition-colors font-bold text-purple-500 text-[13px]">Github</a><a target="_blank" rel="noreferrer" href="https://automatio.co/#dashboard" class="hover:text-purple-400 py-1.5 px-3 bg-purple-50 rounded-md transition-colors font-bold text-purple-500 text-[13px]">Live link</a></section></footer></section></article></section></section></main><footer class="footer justify-self-start bg-gray-50 pb-12 pt-16 sm:pt-20 mt-8 sm:mt-10"><div class="max-w-screen-lg xl:max-w-screen-xl mx-auto divide-y divide-gray-200 container"><section class="text-sm font-medium pb-14 sm:pb-20 grid sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-y-10"><article class="space-y-5"><h4 class="text-xs font-semibold tracking-wide text-gray-900 uppercase">SOCIAL</h4><ul class="space-y-4"><li class="hover:text-gray-900 transition-colors duration-200 tracking-tight font-medium"><a target="_blank" rel="noreferrer" href="https://twitter.com/developerruhul">Twitter</a></li><li class="hover:text-gray-900 transition-colors duration-200 tracking-tight font-medium"><a target="_blank" rel="noreferrer" href="https://github.com/developerruhul">Github</a></li><li class="hover:text-gray-900 transition-colors duration-200 tracking-tight font-medium"><a target="_blank" rel="noreferrer" href="https://www.linkedin.com/in/developerruhul/">LinkedIn</a></li><li class="hover:text-gray-900 transition-colors duration-200 tracking-tight font-medium"><a target="_blank" rel="noreferrer" href="https://facebook.com/developerruhul/">Facebook</a></li><li class="hover:text-gray-900 transition-colors duration-200 tracking-tight font-medium"><a target="_blank" rel="noreferrer" href="https://blog.ruhulamin.dev">Blog</a></li></ul></article><article class="space-y-5"><h4 class="text-xs font-semibold tracking-wide text-gray-900 uppercase">Legal</h4><ul class="space-y-4"><li class="hover:text-gray-900 transition-colors duration-200 tracking-tight font-medium"><a class="block" href="/privacy-policy">Privacy Policy</a></li><li class="hover:text-gray-900 transition-colors duration-200 tracking-tight font-medium"><a aria-current="page" class="" href="/">© 2021, Ruhul Amin</a></li></ul></article></section><a aria-current="page" aria-label="Go to homepage" class="flex items-center pt-10" href="/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained rounded-full mr-2"><div style="max-width:48px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg height='50' width='48' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAVABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAMCBAX/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/9oADAMBAAIQAxAAAAGOb5iudYo9ChsbCP/EABoQAAIDAQEAAAAAAAAAAAAAAAECAAMSESL/2gAIAQEAAQUCtoUS+lUCoOW+Qd3IKFmBlVzAOz//xAAWEQADAAAAAAAAAAAAAAAAAAABIDH/2gAIAQMBAT8BET//xAAYEQACAwAAAAAAAAAAAAAAAAAAEQEQEv/aAAgBAgEBPwFs1F//xAAgEAAABQMFAAAAAAAAAAAAAAAAAQIRIRAScSIxMkFR/9oACAEBAAY/AkzkOl/ByYXJUeBGxdDUo3pFP//EABwQAQACAgMBAAAAAAAAAAAAAAEAESFhMUFxof/aAAgBAQABPyEN352hEnm1xZa6QtmVh0hvhox3Yo+RLAsO+UEWg+k//9oADAMBAAIAAwAAABAg+MP/xAAYEQADAQEAAAAAAAAAAAAAAAAAAREQUf/aAAgBAwEBPxCGxRcz/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQARMf/aAAgBAgEBPxA6FhYEht//xAAdEAEBAAIDAAMAAAAAAAAAAAABEQAhMUFRYXGR/9oACAEBAAE/ECBFkFQdB8YBedno8frAwxChm5hnoMS9m+4oldRrurmycM1wOucL0uq3n3NvCmwYfmF1nFo5/9k=" alt=""/><picture><source type="image/avif" srcSet="/static/868b3f16bda44b8d3fdcad5c157e30e4/0e6d5/developer-ruhul.avif 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/a7512/developer-ruhul.avif 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/22146/developer-ruhul.avif 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/a7d79/developer-ruhul.avif 96w" sizes="(min-width: 48px) 48px, 100vw"/><source type="image/webp" srcSet="/static/868b3f16bda44b8d3fdcad5c157e30e4/b3350/developer-ruhul.webp 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/0bad1/developer-ruhul.webp 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/d2fe5/developer-ruhul.webp 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/f80fb/developer-ruhul.webp 96w" sizes="(min-width: 48px) 48px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 48px) 48px, 100vw" decoding="async" loading="lazy" data-src="/static/868b3f16bda44b8d3fdcad5c157e30e4/19dc5
6/developer-ruhul.jpg" data-srcset="/static/868b3f16bda44b8d3fdcad5c157e30e4/5f6a2/developer-ruhul.jpg 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/69672/developer-ruhul.jpg 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/19dc5/developer-ruhul.jpg 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/7cf2b/developer-ruhul.jpg 96w" alt="Ruhul Amin"/></picture><noscript><picture><source type="image/avif" srcSet="/static/868b3f16bda44b8d3fdcad5c157e30e4/0e6d5/developer-ruhul.avif 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/a7512/developer-ruhul.avif 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/22146/developer-ruhul.avif 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/a7d79/developer-ruhul.avif 96w" sizes="(min-width: 48px) 48px, 100vw"/><source type="image/webp" srcSet="/static/868b3f16bda44b8d3fdcad5c157e30e4/b3350/developer-ruhul.webp 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/0bad1/developer-ruhul.webp 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/d2fe5/developer-ruhul.webp 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/f80fb/developer-ruhul.webp 96w" sizes="(min-width: 48px) 48px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 48px) 48px, 100vw" decoding="async" loading="lazy" src="/static/868b3f16bda44b8d3fdcad5c157e30e4/19dc5/developer-ruhul.jpg" srcSet="/static/868b3f16bda44b8d3fdcad5c157e30e4/5f6a2/developer-ruhul.jpg 12w,/static/868b3f16bda44b8d3fdcad5c157e30e4/69672/developer-ruhul.jpg 24w,/static/868b3f16bda44b8d3fdcad5c157e30e4/19dc5/developer-ruhul.jpg 48w,/static/868b3f16bda44b8d3fdcad5c157e30e4/7cf2b/developer-ruhul.jpg 96w" alt="Ruhul Amin"/></picture></noscript>
6<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t)e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset")),e.complete&&(e.style.opacity=1)}</script>
6</div><span class="text-gray-900 font-bold tracking-tighter">Developer Ruhul</span></a></div></footer></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div>
6<script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script>
6<script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"polyfill":["/polyfill-cd76840a32b08216758f.js"],"app":["/app-f2c303476592e22c1f3b.js"],"component---src-pages-404-js":["/component---src-pages-404-js-5397b8f649cbe7ac5268.js"],"component---src-pages-about-index-js":["/component---src-pages-about-index-js-f5131c38da1396ddb6bf.js"],"component---src-pages-contact-index-js":["/component---src-pages-contact-index-js-add5ab4bd8562bd00fce.js"],"component---src-pages-contact-social-list-js":["/component---src-pages-contact-social-list-js-43960c831b37b0076885.js"],"component---src-pages-home-index-js":["/component---src-pages-home-index-js-3d56854f04c3ce5c5d5a.js"],"component---src-pages-home-work-samples-js":["/component---src-pages-home-work-samples-js-bca502bd386cf27dda20.js"],"component---src-pages-index-js":["/component---src-pages-index-js-2a498a236840c4e1e93d.js"],"component---src-pages-privacy-policy-index-js":["/component---src-pages-privacy-policy-index-js-f86075717fcdd67e6754.js"],"component---src-pages-work-index-js":["/component---src-pages-work-index-js-df09c9590c9f0e17e2e6.js"],"component---src-pages-work-projects-js":["/component---src-pages-work-projects-js-ee2890b82e7dbed84b4f.js"],"component---src-pages-work-work-header-js":["/component---src-pages-work-work-header-js-075a5fb878a6bcf91412.js"]};/*]]>*/</script>
6<script src="/polyfill-cd76840a32b08216758f.js" nomodule=""></script>
6<script src="/component---src-pages-index-js-2a498a236840c4e1e93d.js" async=""></script>
6<script src="/77a0769f2789749dc1ee9a336e7c6bcb7a892f12-aca30b9e5009bdac8d7b.js" async=""></script>
6<script src="/app-f2c303476592e22c1f3b.js" async=""></script>
6<script src="/framework-369a570a8ae8f23c72f9.js" async=""></script>
6<script src="/webpack-runtime-e45682f8fdbbe04d7c5f.js" async=""></script>
6</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.