feat: serve static files in dist directory
This commit is contained in:
parent
2f972b6a43
commit
053513b4e6
8 changed files with 5 additions and 2371 deletions
Binary file not shown.
Before Width: | Height: | Size: 13 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.1 KiB |
|
@ -1,455 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en" data-astro-cid-sckkx6r4>
|
|
||||||
<head>
|
|
||||||
<title>Not Found</title>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width" />
|
|
||||||
<meta name="theme-color" content="#3054bf" />
|
|
||||||
<meta
|
|
||||||
name="description"
|
|
||||||
content="Have you tried turning it off and on again?"
|
|
||||||
/>
|
|
||||||
<meta name="author" content="Ayo Ayco" />
|
|
||||||
<meta name="origin" content="https://ayo.ayco.io/404/" />
|
|
||||||
<!-- Open Graph data -->
|
|
||||||
<meta property="og:site_name" content="Ayo Ayco" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:url" content="https://ayo.ayco.io/404/" />
|
|
||||||
<meta property="og:title" content="Not Found" />
|
|
||||||
<meta
|
|
||||||
property="og:description"
|
|
||||||
content="Have you tried turning it off and on again?"
|
|
||||||
/>
|
|
||||||
<meta property="og:image" content="/ayo.png" />
|
|
||||||
<link rel="me" href="https://ayos.blog" />
|
|
||||||
<link rel="me" href="https://social.ayco.io/@ayo" />
|
|
||||||
<link rel="me" href="https://metapixl.com/@ayo" />
|
|
||||||
<link rel="me" href="https://theres.life/@ayo" />
|
|
||||||
<link rel="shortcut icon" type="image/png" href="static/favicon.ico" />
|
|
||||||
<script>
|
|
||||||
const title = document.title;
|
|
||||||
const defaultTitle =
|
|
||||||
"Ayo Ayco | Software Engineer, Web Developer, Consultant";
|
|
||||||
if (title) {
|
|
||||||
document.title = `${title} | ${defaultTitle}`;
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<style>
|
|
||||||
*,
|
|
||||||
*:before,
|
|
||||||
*:after {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
* {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
height: 100%;
|
|
||||||
background: #fff;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
line-height: 1.5;
|
|
||||||
letter-spacing: 0.25px;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
}
|
|
||||||
img,
|
|
||||||
picture,
|
|
||||||
video,
|
|
||||||
canvas,
|
|
||||||
svg,
|
|
||||||
iframe {
|
|
||||||
display: block;
|
|
||||||
max-width: 100%;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
input,
|
|
||||||
button,
|
|
||||||
textarea,
|
|
||||||
select {
|
|
||||||
font: inherit;
|
|
||||||
}
|
|
||||||
p,
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
overflow-wrap: break-word;
|
|
||||||
}
|
|
||||||
#root,
|
|
||||||
#__next {
|
|
||||||
isolation: isolate;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] {
|
|
||||||
background: var(--ayo-gradient);
|
|
||||||
display: flex;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec] {
|
|
||||||
display: inline-block;
|
|
||||||
text-decoration: underline;
|
|
||||||
color: var(--text-color-light);
|
|
||||||
padding: 0.5em 1em;
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover {
|
|
||||||
color: var(--color-brand-complement);
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec]
|
|
||||||
a[data-astro-cid-dmqpwcec]
|
|
||||||
svg[data-astro-cid-dmqpwcec] {
|
|
||||||
width: 1.5rem;
|
|
||||||
}
|
|
||||||
#wrapper[data-astro-cid-dmqpwcec] {
|
|
||||||
flex: 1;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
margin: 0 auto;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
@media only screen and (max-device-width: 360px) {
|
|
||||||
#wrapper[data-astro-cid-dmqpwcec] {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec] {
|
|
||||||
padding: 0.5em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
main {
|
|
||||||
margin: auto;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-size: var(--font-size-xl);
|
|
||||||
}
|
|
||||||
h2 {
|
|
||||||
font-size: var(--font-size-lg);
|
|
||||||
}
|
|
||||||
code {
|
|
||||||
font-family: Menlo, Monaco, Lucida Console, Liberation Mono,
|
|
||||||
DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace;
|
|
||||||
}
|
|
||||||
p,
|
|
||||||
img,
|
|
||||||
table,
|
|
||||||
ul {
|
|
||||||
margin: 1em 0;
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
}
|
|
||||||
.text-gradient {
|
|
||||||
font-weight: 900;
|
|
||||||
background-image: var(--ayo-gradient);
|
|
||||||
animation: pulse 4s ease-in-out infinite;
|
|
||||||
background-size: 500% 500%;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-size: 100% 200%;
|
|
||||||
background-position-y: 100%;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
a {
|
|
||||||
color: var(--color-brand-complement);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
:root {
|
|
||||||
--content-width: 700px;
|
|
||||||
--font-size-sm: clamp(0.75rem, 0.2vw + 0.66rem, 0.8rem);
|
|
||||||
--font-size-base: clamp(1rem, 0.34vw + 0.91rem, 1.19rem);
|
|
||||||
--font-size-lg: clamp(1.2rem, 0.7vw + 1.2rem, 1.5rem);
|
|
||||||
--font-size-xl: clamp(2.44rem, 2.38vw + 1.85rem, 3.75rem);
|
|
||||||
--color-border: hsl(17, 24%, 90%);
|
|
||||||
--color-link: var(--color-brand-blue-3);
|
|
||||||
--color-brand-blue-1: #3054bf;
|
|
||||||
--color-brand-blue-2: #203880;
|
|
||||||
--color-brand-blue-3: #416fff;
|
|
||||||
--color-brand-blue-4: #101c40;
|
|
||||||
--color-brand-blue-5: #3964e6;
|
|
||||||
--color-brand-complement: orange;
|
|
||||||
--ayo-gradient: linear-gradient(45deg, #3054bf, #416fff);
|
|
||||||
--text-color-dark: black;
|
|
||||||
--text-color-light: #f8f9fa;
|
|
||||||
--bg-dark: #343a40;
|
|
||||||
--bg-darker: #212529;
|
|
||||||
--bg-darkest: #000;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
[data-astro-cid-sckkx6r4] {
|
|
||||||
font-family: system-ui, sans-serif;
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
color: var(--text-color-dark);
|
|
||||||
background-color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
[data-astro-cid-sckkx6r4] {
|
|
||||||
background: var(--bg-darker);
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes pulse {
|
|
||||||
0%,
|
|
||||||
to {
|
|
||||||
background-position-y: 0%;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
background-position-y: 80%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
footer[data-astro-cid-sz7xmlte] {
|
|
||||||
margin-top: 1em;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
footer[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte] {
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
h1[data-astro-cid-zetdm5md] {
|
|
||||||
margin: 0;
|
|
||||||
color: #ffffffbf;
|
|
||||||
}
|
|
||||||
h1[data-astro-cid-zetdm5md] span[data-astro-cid-zetdm5md].heavy-text {
|
|
||||||
font-weight: 900;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
main[data-astro-cid-zetdm5md] {
|
|
||||||
max-width: 100% !important;
|
|
||||||
}
|
|
||||||
.highlighted-section__content[data-astro-cid-zetdm5md] {
|
|
||||||
margin: auto;
|
|
||||||
padding: 1em;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: (--font-size-lg);
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
.now-wrapper[data-astro-cid-zetdm5md] {
|
|
||||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
||||||
border-radius: 40px;
|
|
||||||
padding: 8px 4px;
|
|
||||||
font-weight: 400;
|
|
||||||
color: #fff;
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.now-label[data-astro-cid-zetdm5md] {
|
|
||||||
border-radius: 40px;
|
|
||||||
background-color: #0009;
|
|
||||||
color: #fff;
|
|
||||||
padding: 4px 8px;
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
.status[data-astro-cid-zetdm5md] {
|
|
||||||
padding-right: 4px;
|
|
||||||
}
|
|
||||||
.highlighted-section[data-astro-cid-zetdm5md] {
|
|
||||||
background: var(--ayo-gradient);
|
|
||||||
background-size: 500% 500%;
|
|
||||||
animation: pulse 15s ease-in-out infinite;
|
|
||||||
}
|
|
||||||
.highlighted-section__content[data-astro-cid-zetdm5md]
|
|
||||||
ul[data-astro-cid-zetdm5md]
|
|
||||||
a[data-astro-cid-zetdm5md] {
|
|
||||||
color: #fff;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
.highlighted-section__content[data-astro-cid-zetdm5md]
|
|
||||||
ul[data-astro-cid-zetdm5md] {
|
|
||||||
list-style-type: none;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.cards-section[data-astro-cid-zetdm5md] {
|
|
||||||
margin: auto;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
}
|
|
||||||
.cards-section__grid[data-astro-cid-zetdm5md] {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fit, minmax(24ch, 1fr));
|
|
||||||
gap: 1rem;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
@media only screen and (max-device-width: 360px) {
|
|
||||||
.now-wrapper[data-astro-cid-zetdm5md] {
|
|
||||||
border: 0px;
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
width: 100%;
|
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-line-clamp: 1;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.now-label[data-astro-cid-zetdm5md] {
|
|
||||||
background-color: transparent;
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: underline;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.now-label[data-astro-cid-zetdm5md]:before {
|
|
||||||
content: "* ";
|
|
||||||
}
|
|
||||||
.now-label[data-astro-cid-zetdm5md]:after {
|
|
||||||
content: ":";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media only screen and (min-device-width: 280px) and (max-device-width: 653px) {
|
|
||||||
.highlighted-section__content[data-astro-cid-zetdm5md]
|
|
||||||
ul[data-astro-cid-zetdm5md]
|
|
||||||
li[data-astro-cid-zetdm5md] {
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media only screen and (min-device-width: 360px) and (max-device-width: 812px) {
|
|
||||||
.highlighted-section__content[data-astro-cid-zetdm5md]
|
|
||||||
ul[data-astro-cid-zetdm5md]
|
|
||||||
li[data-astro-cid-zetdm5md] {
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body data-astro-cid-sckkx6r4>
|
|
||||||
<nav data-astro-cid-dmqpwcec>
|
|
||||||
<div id="wrapper" data-astro-cid-dmqpwcec>
|
|
||||||
<a href="/" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:home"
|
|
||||||
>
|
|
||||||
<path fill="currentColor" d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" />
|
|
||||||
</svg>
|
|
||||||
home </a
|
|
||||||
><a href="https://ayos.blog" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:blog"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="M3 3v18h18V3zm15 15H6v-1h12zm0-2H6v-1h12zm0-4H6V6h12z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
blog </a
|
|
||||||
><a href="https://ayco.io/@ayo" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:mastodon"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="M20.94 14c-.28 1.41-2.44 2.96-4.97 3.26-1.31.15-2.6.3-3.97.24-2.25-.11-4-.54-4-.54v.62c.32 2.22 2.22 2.35 4.03 2.42 1.82.05 3.44-.46 3.44-.46l.08 1.65s-1.28.68-3.55.81c-1.25.07-2.81-.03-4.62-.5-3.92-1.05-4.6-5.24-4.7-9.5l-.01-3.43c0-4.34 2.83-5.61 2.83-5.61C6.95 2.3 9.41 2 11.97 2h.06c2.56 0 5.02.3 6.47.96 0 0 2.83 1.27 2.83 5.61 0 0 .04 3.21-.39 5.43M18 8.91c0-1.08-.3-1.91-.85-2.56-.56-.63-1.3-.96-2.23-.96-1.06 0-1.87.41-2.42 1.23l-.5.88-.5-.88c-.56-.82-1.36-1.23-2.43-1.23-.92 0-1.66.33-2.23.96C6.29 7 6 7.83 6 8.91v5.26h2.1V9.06c0-1.06.45-1.62 1.36-1.62 1 0 1.5.65 1.5 1.93v2.79h2.07V9.37c0-1.28.5-1.93 1.51-1.93.9 0 1.35.56 1.35 1.62v5.11H18z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
social </a
|
|
||||||
><a href="https://metapixl.com/i/portfolio/ayo" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:image"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="m8.5 13.5 2.5 3 3.5-4.5 4.5 6H5m16 1V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
photos </a
|
|
||||||
><a href="https://www.npmjs.com/~aayco" data-astro-cid-dmqpwcec>
|
|
||||||
<svg viewBox="0 0 24 24" data-astro-cid-dmqpwcec astro-icon="gg:npm">
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
fill-rule="evenodd"
|
|
||||||
d="M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2zm1-3V6h12v12h-3V9h-3v9z"
|
|
||||||
clip-rule="evenodd"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
npm
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<section class="highlighted-section" data-astro-cid-zetdm5md>
|
|
||||||
<div class="highlighted-section__content" data-astro-cid-zetdm5md>
|
|
||||||
<h1
|
|
||||||
title="Ayo Ayco | Software Engineer + Web Developer"
|
|
||||||
data-astro-cid-zetdm5md
|
|
||||||
>
|
|
||||||
<span class="heavy-text" data-astro-cid-zetdm5md>Not</span>Found
|
|
||||||
</h1>
|
|
||||||
<p data-astro-cid-zetdm5md>
|
|
||||||
I tried my best, but the resource you are looking for is not in the
|
|
||||||
website.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<main data-astro-cid-zetdm5md>
|
|
||||||
<section class="cards-section" data-astro-cid-zetdm5md>
|
|
||||||
<h2 data-astro-cid-zetdm5md>Don't worry 🤗</h2>
|
|
||||||
<p data-astro-cid-zetdm5md>
|
|
||||||
For your convenience, here are some possibly interesting links:
|
|
||||||
</p>
|
|
||||||
<ol data-astro-cid-zetdm5md>
|
|
||||||
<li data-astro-cid-zetdm5md>
|
|
||||||
<a href="https://ayo.ayco.io" data-astro-cid-zetdm5md
|
|
||||||
>Let's get you back home</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-zetdm5md>
|
|
||||||
<a href="https://ayo.ayco.io/now" data-astro-cid-zetdm5md
|
|
||||||
>Now: What am I currently up to?</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-zetdm5md>
|
|
||||||
<a href="https://social.ayco.io" data-astro-cid-zetdm5md
|
|
||||||
>Social / Microblog</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-zetdm5md>
|
|
||||||
<a href="https://ayo.ayco.io/showcase" data-astro-cid-zetdm5md
|
|
||||||
>Fun Side Projects</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
<p data-astro-cid-zetdm5md>
|
|
||||||
If you still feel this is a mistake that I can fix on my end, please
|
|
||||||
feel free to email me: ayo[at]ayco.io
|
|
||||||
</p>
|
|
||||||
<footer data-astro-cid-sz7xmlte>
|
|
||||||
<ul style="list-style: none" data-astro-cid-sz7xmlte>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
© 2022-2024
|
|
||||||
<strong data-astro-cid-sz7xmlte>Ayo Ayco</strong>. All Rights
|
|
||||||
Reserved
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
This website
|
|
||||||
<a
|
|
||||||
href="https://ayos.blog/stopped-tracking-on-my-sites"
|
|
||||||
data-astro-cid-sz7xmlte
|
|
||||||
>does not track users</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
See the
|
|
||||||
<a
|
|
||||||
href="https://ayco.io/sh/ayco.io-flask/tree"
|
|
||||||
data-astro-cid-sz7xmlte
|
|
||||||
>source code</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</footer>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,562 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en" data-astro-cid-sckkx6r4>
|
|
||||||
<head>
|
|
||||||
<title>Ayo Ayco | Software Engineer, Web Developer, Consultant</title>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width" />
|
|
||||||
<meta name="theme-color" content="#3054bf" />
|
|
||||||
<meta
|
|
||||||
name="description"
|
|
||||||
content="Professional software engineer specializing in web development with a decade of experience building web applications for both private businesses and government-funded high-impact projects utilizing web technologies, IoT, data viz/insights, remote sensing, and GIS"
|
|
||||||
/>
|
|
||||||
<meta name="author" content="Ayo Ayco" />
|
|
||||||
<meta name="origin" content="https://ayo.ayco.io/" />
|
|
||||||
<!-- Open Graph data -->
|
|
||||||
<meta property="og:site_name" content="Ayo Ayco" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:url" content="https://ayo.ayco.io/" />
|
|
||||||
<meta
|
|
||||||
property="og:title"
|
|
||||||
content="Ayo Ayco | Software Engineer, Web Developer, Consultant"
|
|
||||||
/>
|
|
||||||
<meta
|
|
||||||
property="og:description"
|
|
||||||
content="Professional software engineer specializing in web development with a decade of experience building web applications for both private businesses and government-funded high-impact projects utilizing web technologies, IoT, data viz/insights, remote sensing, and GIS"
|
|
||||||
/>
|
|
||||||
<meta property="og:image" content="/ayo.png" />
|
|
||||||
<link rel="me" href="https://ayos.blog" />
|
|
||||||
<link rel="me" href="https://social.ayco.io/@ayo" />
|
|
||||||
<link rel="me" href="https://metapixl.com/@ayo" />
|
|
||||||
<link rel="me" href="https://theres.life/@ayo" />
|
|
||||||
<link rel="shortcut icon" type="image/png" href="static/favicon.ico" />
|
|
||||||
<style>
|
|
||||||
*,
|
|
||||||
*:before,
|
|
||||||
*:after {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
* {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
height: 100%;
|
|
||||||
background: #fff;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
line-height: 1.5;
|
|
||||||
letter-spacing: 0.25px;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
}
|
|
||||||
img,
|
|
||||||
picture,
|
|
||||||
video,
|
|
||||||
canvas,
|
|
||||||
svg,
|
|
||||||
iframe {
|
|
||||||
display: block;
|
|
||||||
max-width: 100%;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
input,
|
|
||||||
button,
|
|
||||||
textarea,
|
|
||||||
select {
|
|
||||||
font: inherit;
|
|
||||||
}
|
|
||||||
p,
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
overflow-wrap: break-word;
|
|
||||||
}
|
|
||||||
#root,
|
|
||||||
#__next {
|
|
||||||
isolation: isolate;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] {
|
|
||||||
background: var(--ayo-gradient);
|
|
||||||
display: flex;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec] {
|
|
||||||
display: inline-block;
|
|
||||||
text-decoration: underline;
|
|
||||||
color: var(--text-color-light);
|
|
||||||
padding: 0.5em 1em;
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover {
|
|
||||||
color: var(--color-brand-complement);
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec]
|
|
||||||
a[data-astro-cid-dmqpwcec]
|
|
||||||
svg[data-astro-cid-dmqpwcec] {
|
|
||||||
width: 1.5rem;
|
|
||||||
}
|
|
||||||
#wrapper[data-astro-cid-dmqpwcec] {
|
|
||||||
flex: 1;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
margin: 0 auto;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
@media only screen and (max-device-width: 360px) {
|
|
||||||
#wrapper[data-astro-cid-dmqpwcec] {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec] {
|
|
||||||
padding: 0.5em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
main {
|
|
||||||
margin: auto;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-size: var(--font-size-xl);
|
|
||||||
}
|
|
||||||
h2 {
|
|
||||||
font-size: var(--font-size-lg);
|
|
||||||
}
|
|
||||||
code {
|
|
||||||
font-family: Menlo, Monaco, Lucida Console, Liberation Mono,
|
|
||||||
DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace;
|
|
||||||
}
|
|
||||||
p,
|
|
||||||
img,
|
|
||||||
table,
|
|
||||||
ul {
|
|
||||||
margin: 1em 0;
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
}
|
|
||||||
.text-gradient {
|
|
||||||
font-weight: 900;
|
|
||||||
background-image: var(--ayo-gradient);
|
|
||||||
animation: pulse 4s ease-in-out infinite;
|
|
||||||
background-size: 500% 500%;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-size: 100% 200%;
|
|
||||||
background-position-y: 100%;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
a {
|
|
||||||
color: var(--color-brand-complement);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
:root {
|
|
||||||
--content-width: 700px;
|
|
||||||
--font-size-sm: clamp(0.75rem, 0.2vw + 0.66rem, 0.8rem);
|
|
||||||
--font-size-base: clamp(1rem, 0.34vw + 0.91rem, 1.19rem);
|
|
||||||
--font-size-lg: clamp(1.2rem, 0.7vw + 1.2rem, 1.5rem);
|
|
||||||
--font-size-xl: clamp(2.44rem, 2.38vw + 1.85rem, 3.75rem);
|
|
||||||
--color-border: hsl(17, 24%, 90%);
|
|
||||||
--color-link: var(--color-brand-blue-3);
|
|
||||||
--color-brand-blue-1: #3054bf;
|
|
||||||
--color-brand-blue-2: #203880;
|
|
||||||
--color-brand-blue-3: #416fff;
|
|
||||||
--color-brand-blue-4: #101c40;
|
|
||||||
--color-brand-blue-5: #3964e6;
|
|
||||||
--color-brand-complement: orange;
|
|
||||||
--ayo-gradient: linear-gradient(45deg, #3054bf, #416fff);
|
|
||||||
--text-color-dark: black;
|
|
||||||
--text-color-light: #f8f9fa;
|
|
||||||
--bg-dark: #343a40;
|
|
||||||
--bg-darker: #212529;
|
|
||||||
--bg-darkest: #000;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
[data-astro-cid-sckkx6r4] {
|
|
||||||
font-family: system-ui, sans-serif;
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
color: var(--text-color-dark);
|
|
||||||
background-color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
[data-astro-cid-sckkx6r4] {
|
|
||||||
background: var(--bg-darker);
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes pulse {
|
|
||||||
0%,
|
|
||||||
to {
|
|
||||||
background-position-y: 0%;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
background-position-y: 80%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
footer[data-astro-cid-sz7xmlte] {
|
|
||||||
margin-top: 1em;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
footer[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte] {
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
:root {
|
|
||||||
--link-gradient: linear-gradient(
|
|
||||||
45deg,
|
|
||||||
var(--color-brand-blue-1),
|
|
||||||
var(--color-brand-blue-3) 30%,
|
|
||||||
var(--color-border) 60%
|
|
||||||
);
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5] {
|
|
||||||
list-style: none;
|
|
||||||
display: flex;
|
|
||||||
padding: 0.15rem;
|
|
||||||
background-size: 400%;
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
background-position: 100%;
|
|
||||||
background-image: var(--link-gradient);
|
|
||||||
transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1);
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5] > a[data-astro-cid-dohjnao5] {
|
|
||||||
width: 100%;
|
|
||||||
text-decoration: none;
|
|
||||||
padding: 1em 1.3em;
|
|
||||||
border-radius: 0.35rem;
|
|
||||||
background-color: #fff;
|
|
||||||
color: var(--text-color-dark);
|
|
||||||
}
|
|
||||||
h2[data-astro-cid-dohjnao5] {
|
|
||||||
margin: 0;
|
|
||||||
transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1);
|
|
||||||
}
|
|
||||||
p[data-astro-cid-dohjnao5] {
|
|
||||||
font-weight: 400;
|
|
||||||
margin-top: 0.75rem;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
h2[data-astro-cid-dohjnao5] span[data-astro-cid-dohjnao5] {
|
|
||||||
display: inline-block;
|
|
||||||
transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5]:is(:hover, :focus-within) {
|
|
||||||
background-position: 0;
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5]:is(:hover, :focus-within)
|
|
||||||
h2[data-astro-cid-dohjnao5]
|
|
||||||
span[data-astro-cid-dohjnao5] {
|
|
||||||
will-change: transform;
|
|
||||||
transform: translate(2px);
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
.link-card[data-astro-cid-dohjnao5] > a[data-astro-cid-dohjnao5] {
|
|
||||||
background-color: var(--bg-dark);
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
h1[data-astro-cid-j7pv25f6] {
|
|
||||||
margin: 0;
|
|
||||||
color: #ffffffbf;
|
|
||||||
}
|
|
||||||
h1[data-astro-cid-j7pv25f6] span[data-astro-cid-j7pv25f6].heavy-text {
|
|
||||||
font-weight: 900;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
main[data-astro-cid-j7pv25f6] {
|
|
||||||
max-width: 100% !important;
|
|
||||||
}
|
|
||||||
.now-wrapper[data-astro-cid-j7pv25f6] {
|
|
||||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
||||||
border-radius: 40px;
|
|
||||||
padding: 8px 4px;
|
|
||||||
font-weight: 400;
|
|
||||||
color: #fff;
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.now-label[data-astro-cid-j7pv25f6] {
|
|
||||||
border-radius: 40px;
|
|
||||||
background-color: #0009;
|
|
||||||
color: #fff;
|
|
||||||
padding: 4px 8px;
|
|
||||||
margin-right: 0.25em;
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
.status[data-astro-cid-j7pv25f6] {
|
|
||||||
padding-right: 4px;
|
|
||||||
}
|
|
||||||
.highlighted-section[data-astro-cid-j7pv25f6] {
|
|
||||||
background: var(--ayo-gradient);
|
|
||||||
background-size: 500% 500%;
|
|
||||||
animation: pulse 15s ease-in-out infinite;
|
|
||||||
border-bottom: 1px solid var(--color-brand-blue-1);
|
|
||||||
}
|
|
||||||
.highlighted-section__content[data-astro-cid-j7pv25f6] {
|
|
||||||
margin: auto;
|
|
||||||
padding: 1em 0;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: var(--font-size-lg);
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
.highlighted-section__content__profile-picture[data-astro-cid-j7pv25f6] {
|
|
||||||
float: right;
|
|
||||||
margin: 1em 1em 0 0;
|
|
||||||
border: 5px solid var(--color-brand-blue-1);
|
|
||||||
background-color: var(--color-brand-blue-1);
|
|
||||||
display: block;
|
|
||||||
border-radius: 50%;
|
|
||||||
width: 140px;
|
|
||||||
height: 140px;
|
|
||||||
}
|
|
||||||
.highlighted-section__content[data-astro-cid-j7pv25f6]
|
|
||||||
ul[data-astro-cid-j7pv25f6]
|
|
||||||
a[data-astro-cid-j7pv25f6] {
|
|
||||||
color: #fff;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
.highlighted-section__content[data-astro-cid-j7pv25f6]
|
|
||||||
ul[data-astro-cid-j7pv25f6] {
|
|
||||||
list-style-type: none;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.highlighted-section__content[data-astro-cid-j7pv25f6]
|
|
||||||
ul[data-astro-cid-j7pv25f6]
|
|
||||||
li[data-astro-cid-j7pv25f6] {
|
|
||||||
padding: 5px 0;
|
|
||||||
}
|
|
||||||
.cards-section[data-astro-cid-j7pv25f6] {
|
|
||||||
margin: auto;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
}
|
|
||||||
.cards-section__grid[data-astro-cid-j7pv25f6] {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fit, minmax(24ch, 1fr));
|
|
||||||
gap: 1rem;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
@media only screen and (max-device-width: 360px) {
|
|
||||||
.now-wrapper[data-astro-cid-j7pv25f6] {
|
|
||||||
border: 0px;
|
|
||||||
border-radius: 0;
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
width: 100%;
|
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-line-clamp: 1;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.now-label[data-astro-cid-j7pv25f6] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.status[data-astro-cid-j7pv25f6]:before {
|
|
||||||
content: "Now: ";
|
|
||||||
}
|
|
||||||
.status[data-astro-cid-j7pv25f6] {
|
|
||||||
text-decoration: underline;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.highlighted-section__content__profile-picture[data-astro-cid-j7pv25f6] {
|
|
||||||
float: none;
|
|
||||||
width: 100px;
|
|
||||||
height: 100px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media only screen and (min-device-width: 280px) and (max-device-width: 653px) {
|
|
||||||
.highlighted-section__content[data-astro-cid-j7pv25f6] {
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
.highlighted-section__content__profile-picture[data-astro-cid-j7pv25f6] {
|
|
||||||
float: none;
|
|
||||||
margin: 0;
|
|
||||||
width: 100px;
|
|
||||||
height: 100px;
|
|
||||||
}
|
|
||||||
.highlighted-section__content[data-astro-cid-j7pv25f6]
|
|
||||||
ul[data-astro-cid-j7pv25f6]
|
|
||||||
li[data-astro-cid-j7pv25f6] {
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media only screen and (min-device-width: 360px) and (max-device-width: 812px) {
|
|
||||||
.highlighted-section__content[data-astro-cid-j7pv25f6] {
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
.highlighted-section__content[data-astro-cid-j7pv25f6]
|
|
||||||
ul[data-astro-cid-j7pv25f6]
|
|
||||||
li[data-astro-cid-j7pv25f6] {
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body data-astro-cid-sckkx6r4>
|
|
||||||
<nav data-astro-cid-dmqpwcec>
|
|
||||||
<div id="wrapper" data-astro-cid-dmqpwcec>
|
|
||||||
<a href="https://ayos.blog" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:blog"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="M3 3v18h18V3zm15 15H6v-1h12zm0-2H6v-1h12zm0-4H6V6h12z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
blog </a
|
|
||||||
><a href="https://ayco.io/@ayo" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:mastodon"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="M20.94 14c-.28 1.41-2.44 2.96-4.97 3.26-1.31.15-2.6.3-3.97.24-2.25-.11-4-.54-4-.54v.62c.32 2.22 2.22 2.35 4.03 2.42 1.82.05 3.44-.46 3.44-.46l.08 1.65s-1.28.68-3.55.81c-1.25.07-2.81-.03-4.62-.5-3.92-1.05-4.6-5.24-4.7-9.5l-.01-3.43c0-4.34 2.83-5.61 2.83-5.61C6.95 2.3 9.41 2 11.97 2h.06c2.56 0 5.02.3 6.47.96 0 0 2.83 1.27 2.83 5.61 0 0 .04 3.21-.39 5.43M18 8.91c0-1.08-.3-1.91-.85-2.56-.56-.63-1.3-.96-2.23-.96-1.06 0-1.87.41-2.42 1.23l-.5.88-.5-.88c-.56-.82-1.36-1.23-2.43-1.23-.92 0-1.66.33-2.23.96C6.29 7 6 7.83 6 8.91v5.26h2.1V9.06c0-1.06.45-1.62 1.36-1.62 1 0 1.5.65 1.5 1.93v2.79h2.07V9.37c0-1.28.5-1.93 1.51-1.93.9 0 1.35.56 1.35 1.62v5.11H18z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
social </a
|
|
||||||
><a href="https://metapixl.com/i/portfolio/ayo" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:image"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="m8.5 13.5 2.5 3 3.5-4.5 4.5 6H5m16 1V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
photos </a
|
|
||||||
><a href="https://www.npmjs.com/~aayco" data-astro-cid-dmqpwcec>
|
|
||||||
<svg viewBox="0 0 24 24" data-astro-cid-dmqpwcec astro-icon="gg:npm">
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
fill-rule="evenodd"
|
|
||||||
d="M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2zm1-3V6h12v12h-3V9h-3v9z"
|
|
||||||
clip-rule="evenodd"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
npm
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<section class="highlighted-section" data-astro-cid-j7pv25f6>
|
|
||||||
<div class="highlighted-section__content" data-astro-cid-j7pv25f6>
|
|
||||||
<img
|
|
||||||
class="highlighted-section__content__profile-picture"
|
|
||||||
alt="Ayo Ayco's picture"
|
|
||||||
src="https://media.ayco.io/accounts/avatars/109/547/735/999/980/313/original/12bfe46c4e978562.jpeg"
|
|
||||||
width="140"
|
|
||||||
height="140"
|
|
||||||
data-astro-cid-j7pv25f6
|
|
||||||
/>
|
|
||||||
<div class="highlighted-section__content__text" data-astro-cid-j7pv25f6>
|
|
||||||
<h1
|
|
||||||
title="Ayo Ayco | Software Engineer + Web Developer"
|
|
||||||
data-astro-cid-j7pv25f6
|
|
||||||
>
|
|
||||||
<span class="heavy-text" data-astro-cid-j7pv25f6>Ayo</span>Ayco
|
|
||||||
</h1>
|
|
||||||
<ul data-astro-cid-j7pv25f6>
|
|
||||||
<li style="display: flex; gap: 0.25em" data-astro-cid-j7pv25f6>
|
|
||||||
<span class="icon" data-astro-cid-j7pv25f6>😱</span>
|
|
||||||
<span class="text" data-astro-cid-j7pv25f6>Building</span>
|
|
||||||
<a href="https://mcfly.js.org" data-astro-cid-j7pv25f6>McFly</a>
|
|
||||||
</li>
|
|
||||||
<li style="display: flex; gap: 0.25em" data-astro-cid-j7pv25f6>
|
|
||||||
<span class="icon" data-astro-cid-j7pv25f6>🧸</span>
|
|
||||||
<span class="text" data-astro-cid-j7pv25f6>Creator of</span>
|
|
||||||
<a href="https://ayco.io/gh/cozy#readme" data-astro-cid-j7pv25f6
|
|
||||||
>Cozy</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li style="display: flex; gap: 0.25em" data-astro-cid-j7pv25f6>
|
|
||||||
<span class="icon" data-astro-cid-j7pv25f6>🧱</span>
|
|
||||||
<span class="text" data-astro-cid-j7pv25f6>Creator of</span>
|
|
||||||
<a href="https://webcomponent.io" data-astro-cid-j7pv25f6
|
|
||||||
>WebComponent.io</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li style="display: flex; gap: 0.25em" data-astro-cid-j7pv25f6>
|
|
||||||
<span class="icon" data-astro-cid-j7pv25f6>🦌</span>
|
|
||||||
<span class="text" data-astro-cid-j7pv25f6>Contributor to</span>
|
|
||||||
<a href="https://elk.zone/@ayo@ayco.io" data-astro-cid-j7pv25f6
|
|
||||||
>Elk.zone</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<a href="/now" class="now-wrapper" data-astro-cid-j7pv25f6>
|
|
||||||
<span class="now-label" data-astro-cid-j7pv25f6>Now</span>
|
|
||||||
<span class="status" data-astro-cid-j7pv25f6
|
|
||||||
>Certified Software Architecture Professional</span
|
|
||||||
>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<main data-astro-cid-j7pv25f6>
|
|
||||||
<section class="cards-section" data-astro-cid-j7pv25f6>
|
|
||||||
<ul class="cards-section__grid" data-astro-cid-j7pv25f6>
|
|
||||||
<li class="link-card" data-astro-cid-dohjnao5>
|
|
||||||
<a href="/showcase" data-astro-cid-dohjnao5>
|
|
||||||
<h2 data-astro-cid-dohjnao5>
|
|
||||||
Fun Side Projects
|
|
||||||
<span data-astro-cid-dohjnao5> →</span>
|
|
||||||
</h2>
|
|
||||||
<p data-astro-cid-dohjnao5>See demos of my side projects</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="link-card" data-astro-cid-dohjnao5>
|
|
||||||
<a
|
|
||||||
href="https://ayco.io/cv"
|
|
||||||
target="_blank"
|
|
||||||
data-astro-cid-dohjnao5
|
|
||||||
>
|
|
||||||
<h2 data-astro-cid-dohjnao5>
|
|
||||||
CV / Resume <span data-astro-cid-dohjnao5> ↗</span>
|
|
||||||
</h2>
|
|
||||||
<p data-astro-cid-dohjnao5>
|
|
||||||
Download and peruse my skills and experience
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<footer data-astro-cid-sz7xmlte>
|
|
||||||
<ul style="list-style: none" data-astro-cid-sz7xmlte>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
© 2022-2024
|
|
||||||
<strong data-astro-cid-sz7xmlte>Ayo Ayco</strong>. All Rights
|
|
||||||
Reserved
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
This website
|
|
||||||
<a
|
|
||||||
href="https://ayos.blog/stopped-tracking-on-my-sites"
|
|
||||||
data-astro-cid-sz7xmlte
|
|
||||||
>does not track users</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
See the
|
|
||||||
<a
|
|
||||||
href="https://ayco.io/sh/ayco.io-flask/tree"
|
|
||||||
data-astro-cid-sz7xmlte
|
|
||||||
>source code</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</footer>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,484 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en" data-astro-cid-sckkx6r4>
|
|
||||||
<head>
|
|
||||||
<title>Now</title>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width" />
|
|
||||||
<meta name="theme-color" content="#3054bf" />
|
|
||||||
<meta name="description" content="What is Ayo Ayco currently up to?" />
|
|
||||||
<meta name="author" content="Ayo Ayco" />
|
|
||||||
<meta name="origin" content="https://ayo.ayco.io/now/" />
|
|
||||||
<!-- Open Graph data -->
|
|
||||||
<meta property="og:site_name" content="Ayo Ayco" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:url" content="https://ayo.ayco.io/now/" />
|
|
||||||
<meta property="og:title" content="Now" />
|
|
||||||
<meta
|
|
||||||
property="og:description"
|
|
||||||
content="What is Ayo Ayco currently up to?"
|
|
||||||
/>
|
|
||||||
<meta property="og:image" content="/ayo.png" />
|
|
||||||
<link rel="me" href="https://ayos.blog" />
|
|
||||||
<link rel="me" href="https://social.ayco.io/@ayo" />
|
|
||||||
<link rel="me" href="https://metapixl.com/@ayo" />
|
|
||||||
<link rel="me" href="https://theres.life/@ayo" />
|
|
||||||
<link rel="shortcut icon" type="image/png" href="/static/favicon.ico" />
|
|
||||||
<script>
|
|
||||||
const title = document.title;
|
|
||||||
const defaultTitle =
|
|
||||||
"Ayo Ayco | Software Engineer, Web Developer, Consultant";
|
|
||||||
if (title) {
|
|
||||||
document.title = `${title} | ${defaultTitle}`;
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<style>
|
|
||||||
*,
|
|
||||||
*:before,
|
|
||||||
*:after {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
* {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
height: 100%;
|
|
||||||
background: #fff;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
line-height: 1.5;
|
|
||||||
letter-spacing: 0.25px;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
}
|
|
||||||
img,
|
|
||||||
picture,
|
|
||||||
video,
|
|
||||||
canvas,
|
|
||||||
svg,
|
|
||||||
iframe {
|
|
||||||
display: block;
|
|
||||||
max-width: 100%;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
input,
|
|
||||||
button,
|
|
||||||
textarea,
|
|
||||||
select {
|
|
||||||
font: inherit;
|
|
||||||
}
|
|
||||||
p,
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
overflow-wrap: break-word;
|
|
||||||
}
|
|
||||||
#root,
|
|
||||||
#__next {
|
|
||||||
isolation: isolate;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] {
|
|
||||||
background: var(--ayo-gradient);
|
|
||||||
display: flex;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec] {
|
|
||||||
display: inline-block;
|
|
||||||
text-decoration: underline;
|
|
||||||
color: var(--text-color-light);
|
|
||||||
padding: 0.5em 1em;
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover {
|
|
||||||
color: var(--color-brand-complement);
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec]
|
|
||||||
a[data-astro-cid-dmqpwcec]
|
|
||||||
svg[data-astro-cid-dmqpwcec] {
|
|
||||||
width: 1.5rem;
|
|
||||||
}
|
|
||||||
#wrapper[data-astro-cid-dmqpwcec] {
|
|
||||||
flex: 1;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
margin: 0 auto;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
@media only screen and (max-device-width: 360px) {
|
|
||||||
#wrapper[data-astro-cid-dmqpwcec] {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec] {
|
|
||||||
padding: 0.5em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
main {
|
|
||||||
margin: auto;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-size: var(--font-size-xl);
|
|
||||||
}
|
|
||||||
h2 {
|
|
||||||
font-size: var(--font-size-lg);
|
|
||||||
}
|
|
||||||
code {
|
|
||||||
font-family: Menlo, Monaco, Lucida Console, Liberation Mono,
|
|
||||||
DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace;
|
|
||||||
}
|
|
||||||
p,
|
|
||||||
img,
|
|
||||||
table,
|
|
||||||
ul {
|
|
||||||
margin: 1em 0;
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
}
|
|
||||||
.text-gradient {
|
|
||||||
font-weight: 900;
|
|
||||||
background-image: var(--ayo-gradient);
|
|
||||||
animation: pulse 4s ease-in-out infinite;
|
|
||||||
background-size: 500% 500%;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-size: 100% 200%;
|
|
||||||
background-position-y: 100%;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
a {
|
|
||||||
color: var(--color-brand-complement);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
:root {
|
|
||||||
--content-width: 700px;
|
|
||||||
--font-size-sm: clamp(0.75rem, 0.2vw + 0.66rem, 0.8rem);
|
|
||||||
--font-size-base: clamp(1rem, 0.34vw + 0.91rem, 1.19rem);
|
|
||||||
--font-size-lg: clamp(1.2rem, 0.7vw + 1.2rem, 1.5rem);
|
|
||||||
--font-size-xl: clamp(2.44rem, 2.38vw + 1.85rem, 3.75rem);
|
|
||||||
--color-border: hsl(17, 24%, 90%);
|
|
||||||
--color-link: var(--color-brand-blue-3);
|
|
||||||
--color-brand-blue-1: #3054bf;
|
|
||||||
--color-brand-blue-2: #203880;
|
|
||||||
--color-brand-blue-3: #416fff;
|
|
||||||
--color-brand-blue-4: #101c40;
|
|
||||||
--color-brand-blue-5: #3964e6;
|
|
||||||
--color-brand-complement: orange;
|
|
||||||
--ayo-gradient: linear-gradient(45deg, #3054bf, #416fff);
|
|
||||||
--text-color-dark: black;
|
|
||||||
--text-color-light: #f8f9fa;
|
|
||||||
--bg-dark: #343a40;
|
|
||||||
--bg-darker: #212529;
|
|
||||||
--bg-darkest: #000;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
[data-astro-cid-sckkx6r4] {
|
|
||||||
font-family: system-ui, sans-serif;
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
color: var(--text-color-dark);
|
|
||||||
background-color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
[data-astro-cid-sckkx6r4] {
|
|
||||||
background: var(--bg-darker);
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes pulse {
|
|
||||||
0%,
|
|
||||||
to {
|
|
||||||
background-position-y: 0%;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
background-position-y: 80%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
footer[data-astro-cid-sz7xmlte] {
|
|
||||||
margin-top: 1em;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
footer[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte] {
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
main[data-astro-cid-lfnvi74r] {
|
|
||||||
margin: auto;
|
|
||||||
padding: 1em;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
}
|
|
||||||
.text-gradient[data-astro-cid-lfnvi74r] {
|
|
||||||
font-weight: 900;
|
|
||||||
background-image: var(--ayo-gradient);
|
|
||||||
animation: pulse 4s ease-in-out infinite;
|
|
||||||
background-size: 500% 500%;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-size: 100% 200%;
|
|
||||||
background-position-y: 100%;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
}
|
|
||||||
.highlighted-content[data-astro-cid-lfnvi74r] {
|
|
||||||
margin: 1rem 0;
|
|
||||||
background: #4f39fa;
|
|
||||||
padding: 1rem;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
color: var(--color-bg);
|
|
||||||
}
|
|
||||||
.highlighted-content[data-astro-cid-lfnvi74r]
|
|
||||||
code[data-astro-cid-lfnvi74r] {
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
border: 0.1em solid var(--color-border);
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 0.15em 0.25em;
|
|
||||||
}
|
|
||||||
.link-card-grid[data-astro-cid-lfnvi74r] {
|
|
||||||
display: grid;
|
|
||||||
gap: 1rem;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
main[data-astro-cid-hc67wfev] {
|
|
||||||
margin: auto;
|
|
||||||
padding: 1em;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
}
|
|
||||||
.text-gradient[data-astro-cid-hc67wfev] {
|
|
||||||
font-weight: 900;
|
|
||||||
background-image: var(--ayo-gradient);
|
|
||||||
animation: pulse 4s ease-in-out infinite;
|
|
||||||
background-size: 500% 500%;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-size: 100% 200%;
|
|
||||||
background-position-y: 100%;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
}
|
|
||||||
.highlighted-content[data-astro-cid-hc67wfev] {
|
|
||||||
margin: 1rem 0;
|
|
||||||
background: #4f39fa;
|
|
||||||
padding: 1rem;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
.highlighted-content[data-astro-cid-hc67wfev]
|
|
||||||
code[data-astro-cid-hc67wfev] {
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
border: 0.1em solid var(--color-border);
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 0.15em 0.25em;
|
|
||||||
}
|
|
||||||
.link-card-grid[data-astro-cid-hc67wfev] {
|
|
||||||
display: grid;
|
|
||||||
gap: 1rem;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
main[data-astro-cid-g2ggi6j6] {
|
|
||||||
margin: auto;
|
|
||||||
padding: 1em;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
}
|
|
||||||
.text-gradient[data-astro-cid-g2ggi6j6] {
|
|
||||||
font-weight: 900;
|
|
||||||
background-image: var(--ayo-gradient);
|
|
||||||
animation: pulse 4s ease-in-out infinite;
|
|
||||||
background-size: 500% 500%;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-size: 100% 200%;
|
|
||||||
background-position-y: 100%;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
}
|
|
||||||
.highlighted-content[data-astro-cid-g2ggi6j6] {
|
|
||||||
margin: 1rem 0;
|
|
||||||
background: #4f39fa;
|
|
||||||
padding: 1rem;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
.highlighted-content[data-astro-cid-g2ggi6j6]
|
|
||||||
code[data-astro-cid-g2ggi6j6] {
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
border: 0.1em solid var(--color-border);
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 0.15em 0.25em;
|
|
||||||
}
|
|
||||||
.link-card-grid[data-astro-cid-g2ggi6j6] {
|
|
||||||
display: grid;
|
|
||||||
gap: 1rem;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
main[data-astro-cid-vbmtzxad] {
|
|
||||||
margin: auto;
|
|
||||||
padding: 1em;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
}
|
|
||||||
.text-gradient[data-astro-cid-vbmtzxad] {
|
|
||||||
font-weight: 900;
|
|
||||||
background-image: var(--ayo-gradient);
|
|
||||||
animation: pulse 4s ease-in-out infinite;
|
|
||||||
background-size: 500% 500%;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-size: 100% 200%;
|
|
||||||
background-position-y: 100%;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
}
|
|
||||||
.highlighted-content[data-astro-cid-vbmtzxad] {
|
|
||||||
margin: 1rem 0;
|
|
||||||
background: #4f39fa;
|
|
||||||
padding: 1rem;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
.highlighted-content[data-astro-cid-vbmtzxad]
|
|
||||||
code[data-astro-cid-vbmtzxad] {
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
border: 0.1em solid var(--color-border);
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 0.15em 0.25em;
|
|
||||||
}
|
|
||||||
.link-card-grid[data-astro-cid-vbmtzxad] {
|
|
||||||
display: grid;
|
|
||||||
gap: 1rem;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body data-astro-cid-sckkx6r4>
|
|
||||||
<nav data-astro-cid-dmqpwcec>
|
|
||||||
<div id="wrapper" data-astro-cid-dmqpwcec>
|
|
||||||
<a href="/" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:home"
|
|
||||||
>
|
|
||||||
<path fill="currentColor" d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" />
|
|
||||||
</svg>
|
|
||||||
home </a
|
|
||||||
><a href="https://ayos.blog" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:blog"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="M3 3v18h18V3zm15 15H6v-1h12zm0-2H6v-1h12zm0-4H6V6h12z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
blog </a
|
|
||||||
><a href="https://ayco.io/@ayo" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:mastodon"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="M20.94 14c-.28 1.41-2.44 2.96-4.97 3.26-1.31.15-2.6.3-3.97.24-2.25-.11-4-.54-4-.54v.62c.32 2.22 2.22 2.35 4.03 2.42 1.82.05 3.44-.46 3.44-.46l.08 1.65s-1.28.68-3.55.81c-1.25.07-2.81-.03-4.62-.5-3.92-1.05-4.6-5.24-4.7-9.5l-.01-3.43c0-4.34 2.83-5.61 2.83-5.61C6.95 2.3 9.41 2 11.97 2h.06c2.56 0 5.02.3 6.47.96 0 0 2.83 1.27 2.83 5.61 0 0 .04 3.21-.39 5.43M18 8.91c0-1.08-.3-1.91-.85-2.56-.56-.63-1.3-.96-2.23-.96-1.06 0-1.87.41-2.42 1.23l-.5.88-.5-.88c-.56-.82-1.36-1.23-2.43-1.23-.92 0-1.66.33-2.23.96C6.29 7 6 7.83 6 8.91v5.26h2.1V9.06c0-1.06.45-1.62 1.36-1.62 1 0 1.5.65 1.5 1.93v2.79h2.07V9.37c0-1.28.5-1.93 1.51-1.93.9 0 1.35.56 1.35 1.62v5.11H18z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
social </a
|
|
||||||
><a href="https://metapixl.com/i/portfolio/ayo" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:image"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="m8.5 13.5 2.5 3 3.5-4.5 4.5 6H5m16 1V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
photos </a
|
|
||||||
><a href="https://www.npmjs.com/~aayco" data-astro-cid-dmqpwcec>
|
|
||||||
<svg viewBox="0 0 24 24" data-astro-cid-dmqpwcec astro-icon="gg:npm">
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
fill-rule="evenodd"
|
|
||||||
d="M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2zm1-3V6h12v12h-3V9h-3v9z"
|
|
||||||
clip-rule="evenodd"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
npm
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<main data-astro-cid-lfnvi74r>
|
|
||||||
<h1 data-astro-cid-lfnvi74r>
|
|
||||||
<span class="text-gradient" data-astro-cid-lfnvi74r>Now</span>
|
|
||||||
</h1>
|
|
||||||
<em data-astro-cid-lfnvi74r>What am I currently up to?</em>
|
|
||||||
<p data-astro-cid-lfnvi74r>
|
|
||||||
🎉 Thrilled to share I am now a Certified Professional for Software
|
|
||||||
Architecture (CPSA-F®) after having completed and passed the
|
|
||||||
<a href="https://www.isaqb.org/" target="_blank" data-astro-cid-lfnvi74r
|
|
||||||
>iSAQB® – International Software Architecture Qualification Board</a
|
|
||||||
>'s intensive training and examination.
|
|
||||||
</p>
|
|
||||||
<p data-astro-cid-lfnvi74r>
|
|
||||||
This means I have the necessary basis for facilitating / participating
|
|
||||||
in architectural design activities for software development.
|
|
||||||
</p>
|
|
||||||
<p data-astro-cid-lfnvi74r>
|
|
||||||
Having a consistent language in Software Architecture is beneficial when
|
|
||||||
communicating with stakeholders and clarifying consistent patterns and
|
|
||||||
principles that guide the development of software products.
|
|
||||||
</p>
|
|
||||||
<!-- <h2>Previously...</h2>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="/now/and-then/posts/01-19-2023" title="01-19-2023">
|
|
||||||
01-19-2023
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/now/and-then/posts/06-23-2023" title="06-23-2023">
|
|
||||||
06-23-2023
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/now/and-then/posts/09-20-2022" title="09-20-2022">
|
|
||||||
09-20-2022
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul> -->
|
|
||||||
<hr data-astro-cid-lfnvi74r />
|
|
||||||
<em data-astro-cid-lfnvi74r
|
|
||||||
><a href="https://nownownow.com/about" data-astro-cid-lfnvi74r
|
|
||||||
>About now pages</a
|
|
||||||
></em
|
|
||||||
>
|
|
||||||
<footer data-astro-cid-sz7xmlte>
|
|
||||||
<ul style="list-style: none" data-astro-cid-sz7xmlte>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
© 2022-2024 <strong data-astro-cid-sz7xmlte>Ayo Ayco</strong>.
|
|
||||||
All Rights Reserved
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
This website
|
|
||||||
<a
|
|
||||||
href="https://ayos.blog/stopped-tracking-on-my-sites"
|
|
||||||
data-astro-cid-sz7xmlte
|
|
||||||
>does not track users</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
See the
|
|
||||||
<a
|
|
||||||
href="https://ayco.io/sh/ayco.io-flask/tree"
|
|
||||||
data-astro-cid-sz7xmlte
|
|
||||||
>source code</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</footer>
|
|
||||||
</main>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,438 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en" data-astro-cid-sckkx6r4>
|
|
||||||
<head>
|
|
||||||
<title>Fun Side Projects</title>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width" />
|
|
||||||
<meta name="theme-color" content="#3054bf" />
|
|
||||||
<meta
|
|
||||||
name="description"
|
|
||||||
content="See demos of side projects Ayo Ayco created"
|
|
||||||
/>
|
|
||||||
<meta name="author" content="Ayo Ayco" />
|
|
||||||
<meta name="origin" content="https://ayo.ayco.io/showcase/" />
|
|
||||||
<!-- Open Graph data -->
|
|
||||||
<meta property="og:site_name" content="Ayo Ayco" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:url" content="https://ayo.ayco.io/showcase/" />
|
|
||||||
<meta property="og:title" content="Fun Side Projects" />
|
|
||||||
<meta
|
|
||||||
property="og:description"
|
|
||||||
content="See demos of side projects Ayo Ayco created"
|
|
||||||
/>
|
|
||||||
<meta property="og:image" content="/ayo.png" />
|
|
||||||
<link rel="me" href="https://ayos.blog" />
|
|
||||||
<link rel="me" href="https://social.ayco.io/@ayo" />
|
|
||||||
<link rel="me" href="https://metapixl.com/@ayo" />
|
|
||||||
<link rel="me" href="https://theres.life/@ayo" />
|
|
||||||
<link rel="shortcut icon" type="image/png" href="/static/favicon.ico" />
|
|
||||||
<script>
|
|
||||||
const title = document.title;
|
|
||||||
const defaultTitle =
|
|
||||||
"Ayo Ayco | Software Engineer, Web Developer, Consultant";
|
|
||||||
if (title) {
|
|
||||||
document.title = `${title} | ${defaultTitle}`;
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<style>
|
|
||||||
*,
|
|
||||||
*:before,
|
|
||||||
*:after {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
* {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
height: 100%;
|
|
||||||
background: #fff;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
line-height: 1.5;
|
|
||||||
letter-spacing: 0.25px;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
}
|
|
||||||
img,
|
|
||||||
picture,
|
|
||||||
video,
|
|
||||||
canvas,
|
|
||||||
svg,
|
|
||||||
iframe {
|
|
||||||
display: block;
|
|
||||||
max-width: 100%;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
input,
|
|
||||||
button,
|
|
||||||
textarea,
|
|
||||||
select {
|
|
||||||
font: inherit;
|
|
||||||
}
|
|
||||||
p,
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
overflow-wrap: break-word;
|
|
||||||
}
|
|
||||||
#root,
|
|
||||||
#__next {
|
|
||||||
isolation: isolate;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] {
|
|
||||||
background: var(--ayo-gradient);
|
|
||||||
display: flex;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec] {
|
|
||||||
display: inline-block;
|
|
||||||
text-decoration: underline;
|
|
||||||
color: var(--text-color-light);
|
|
||||||
padding: 0.5em 1em;
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover {
|
|
||||||
color: var(--color-brand-complement);
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec]
|
|
||||||
a[data-astro-cid-dmqpwcec]
|
|
||||||
svg[data-astro-cid-dmqpwcec] {
|
|
||||||
width: 1.5rem;
|
|
||||||
}
|
|
||||||
#wrapper[data-astro-cid-dmqpwcec] {
|
|
||||||
flex: 1;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
margin: 0 auto;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
@media only screen and (max-device-width: 360px) {
|
|
||||||
#wrapper[data-astro-cid-dmqpwcec] {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec] {
|
|
||||||
padding: 0.5em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
main {
|
|
||||||
margin: auto;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-size: var(--font-size-xl);
|
|
||||||
}
|
|
||||||
h2 {
|
|
||||||
font-size: var(--font-size-lg);
|
|
||||||
}
|
|
||||||
code {
|
|
||||||
font-family: Menlo, Monaco, Lucida Console, Liberation Mono,
|
|
||||||
DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace;
|
|
||||||
}
|
|
||||||
p,
|
|
||||||
img,
|
|
||||||
table,
|
|
||||||
ul {
|
|
||||||
margin: 1em 0;
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
}
|
|
||||||
.text-gradient {
|
|
||||||
font-weight: 900;
|
|
||||||
background-image: var(--ayo-gradient);
|
|
||||||
animation: pulse 4s ease-in-out infinite;
|
|
||||||
background-size: 500% 500%;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-size: 100% 200%;
|
|
||||||
background-position-y: 100%;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
a {
|
|
||||||
color: var(--color-brand-complement);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
:root {
|
|
||||||
--content-width: 700px;
|
|
||||||
--font-size-sm: clamp(0.75rem, 0.2vw + 0.66rem, 0.8rem);
|
|
||||||
--font-size-base: clamp(1rem, 0.34vw + 0.91rem, 1.19rem);
|
|
||||||
--font-size-lg: clamp(1.2rem, 0.7vw + 1.2rem, 1.5rem);
|
|
||||||
--font-size-xl: clamp(2.44rem, 2.38vw + 1.85rem, 3.75rem);
|
|
||||||
--color-border: hsl(17, 24%, 90%);
|
|
||||||
--color-link: var(--color-brand-blue-3);
|
|
||||||
--color-brand-blue-1: #3054bf;
|
|
||||||
--color-brand-blue-2: #203880;
|
|
||||||
--color-brand-blue-3: #416fff;
|
|
||||||
--color-brand-blue-4: #101c40;
|
|
||||||
--color-brand-blue-5: #3964e6;
|
|
||||||
--color-brand-complement: orange;
|
|
||||||
--ayo-gradient: linear-gradient(45deg, #3054bf, #416fff);
|
|
||||||
--text-color-dark: black;
|
|
||||||
--text-color-light: #f8f9fa;
|
|
||||||
--bg-dark: #343a40;
|
|
||||||
--bg-darker: #212529;
|
|
||||||
--bg-darkest: #000;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
[data-astro-cid-sckkx6r4] {
|
|
||||||
font-family: system-ui, sans-serif;
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
color: var(--text-color-dark);
|
|
||||||
background-color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
[data-astro-cid-sckkx6r4] {
|
|
||||||
background: var(--bg-darker);
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes pulse {
|
|
||||||
0%,
|
|
||||||
to {
|
|
||||||
background-position-y: 0%;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
background-position-y: 80%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
footer[data-astro-cid-sz7xmlte] {
|
|
||||||
margin-top: 1em;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
footer[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte] {
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
:root {
|
|
||||||
--link-gradient: linear-gradient(
|
|
||||||
45deg,
|
|
||||||
var(--color-brand-blue-1),
|
|
||||||
var(--color-brand-blue-3) 30%,
|
|
||||||
var(--color-border) 60%
|
|
||||||
);
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5] {
|
|
||||||
list-style: none;
|
|
||||||
display: flex;
|
|
||||||
padding: 0.15rem;
|
|
||||||
background-size: 400%;
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
background-position: 100%;
|
|
||||||
background-image: var(--link-gradient);
|
|
||||||
transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1);
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5] > a[data-astro-cid-dohjnao5] {
|
|
||||||
width: 100%;
|
|
||||||
text-decoration: none;
|
|
||||||
padding: 1em 1.3em;
|
|
||||||
border-radius: 0.35rem;
|
|
||||||
background-color: #fff;
|
|
||||||
color: var(--text-color-dark);
|
|
||||||
}
|
|
||||||
h2[data-astro-cid-dohjnao5] {
|
|
||||||
margin: 0;
|
|
||||||
transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1);
|
|
||||||
}
|
|
||||||
p[data-astro-cid-dohjnao5] {
|
|
||||||
font-weight: 400;
|
|
||||||
margin-top: 0.75rem;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
h2[data-astro-cid-dohjnao5] span[data-astro-cid-dohjnao5] {
|
|
||||||
display: inline-block;
|
|
||||||
transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5]:is(:hover, :focus-within) {
|
|
||||||
background-position: 0;
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5]:is(:hover, :focus-within)
|
|
||||||
h2[data-astro-cid-dohjnao5]
|
|
||||||
span[data-astro-cid-dohjnao5] {
|
|
||||||
will-change: transform;
|
|
||||||
transform: translate(2px);
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
.link-card[data-astro-cid-dohjnao5] > a[data-astro-cid-dohjnao5] {
|
|
||||||
background-color: var(--bg-dark);
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ul[data-astro-cid-w3h7vj4w] {
|
|
||||||
list-style: none;
|
|
||||||
display: grid;
|
|
||||||
gap: 1rem;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body data-astro-cid-sckkx6r4>
|
|
||||||
<nav data-astro-cid-dmqpwcec>
|
|
||||||
<div id="wrapper" data-astro-cid-dmqpwcec>
|
|
||||||
<a href="/" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:home"
|
|
||||||
>
|
|
||||||
<path fill="currentColor" d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" />
|
|
||||||
</svg>
|
|
||||||
home </a
|
|
||||||
><a href="https://ayos.blog" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:blog"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="M3 3v18h18V3zm15 15H6v-1h12zm0-2H6v-1h12zm0-4H6V6h12z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
blog </a
|
|
||||||
><a href="https://ayco.io/@ayo" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:mastodon"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="M20.94 14c-.28 1.41-2.44 2.96-4.97 3.26-1.31.15-2.6.3-3.97.24-2.25-.11-4-.54-4-.54v.62c.32 2.22 2.22 2.35 4.03 2.42 1.82.05 3.44-.46 3.44-.46l.08 1.65s-1.28.68-3.55.81c-1.25.07-2.81-.03-4.62-.5-3.92-1.05-4.6-5.24-4.7-9.5l-.01-3.43c0-4.34 2.83-5.61 2.83-5.61C6.95 2.3 9.41 2 11.97 2h.06c2.56 0 5.02.3 6.47.96 0 0 2.83 1.27 2.83 5.61 0 0 .04 3.21-.39 5.43M18 8.91c0-1.08-.3-1.91-.85-2.56-.56-.63-1.3-.96-2.23-.96-1.06 0-1.87.41-2.42 1.23l-.5.88-.5-.88c-.56-.82-1.36-1.23-2.43-1.23-.92 0-1.66.33-2.23.96C6.29 7 6 7.83 6 8.91v5.26h2.1V9.06c0-1.06.45-1.62 1.36-1.62 1 0 1.5.65 1.5 1.93v2.79h2.07V9.37c0-1.28.5-1.93 1.51-1.93.9 0 1.35.56 1.35 1.62v5.11H18z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
social </a
|
|
||||||
><a href="https://metapixl.com/i/portfolio/ayo" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:image"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="m8.5 13.5 2.5 3 3.5-4.5 4.5 6H5m16 1V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
photos </a
|
|
||||||
><a href="https://www.npmjs.com/~aayco" data-astro-cid-dmqpwcec>
|
|
||||||
<svg viewBox="0 0 24 24" data-astro-cid-dmqpwcec astro-icon="gg:npm">
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
fill-rule="evenodd"
|
|
||||||
d="M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2zm1-3V6h12v12h-3V9h-3v9z"
|
|
||||||
clip-rule="evenodd"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
npm
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<main data-astro-cid-w3h7vj4w>
|
|
||||||
<h1 data-astro-cid-w3h7vj4w>
|
|
||||||
Fun
|
|
||||||
<span class="text-gradient" data-astro-cid-w3h7vj4w>Side Projects</span>
|
|
||||||
</h1>
|
|
||||||
<p data-astro-cid-w3h7vj4w>
|
|
||||||
See more of my previous projects at
|
|
||||||
<a href="https://ayos.blog/projects" data-astro-cid-w3h7vj4w>my blog</a
|
|
||||||
>.
|
|
||||||
</p>
|
|
||||||
<ul data-astro-cid-w3h7vj4w>
|
|
||||||
<li class="link-card" data-astro-cid-dohjnao5>
|
|
||||||
<a href="/stuff" data-astro-cid-dohjnao5>
|
|
||||||
<h2 data-astro-cid-dohjnao5>
|
|
||||||
Small Stuff 🧱 <span data-astro-cid-dohjnao5> →</span>
|
|
||||||
</h2>
|
|
||||||
<p data-astro-cid-dohjnao5>Building blocks for projects</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="link-card" data-astro-cid-dohjnao5>
|
|
||||||
<a
|
|
||||||
href="https://ayco.io/gh/cozy#readme"
|
|
||||||
target="_blank"
|
|
||||||
data-astro-cid-dohjnao5
|
|
||||||
>
|
|
||||||
<h2 data-astro-cid-dohjnao5>
|
|
||||||
Cozy 🧸 <span data-astro-cid-dohjnao5> ↗</span>
|
|
||||||
</h2>
|
|
||||||
<p data-astro-cid-dohjnao5>Your modern-day reading assistant</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="link-card" data-astro-cid-dohjnao5>
|
|
||||||
<a
|
|
||||||
href="https://kaboom.ayco.io"
|
|
||||||
target="_blank"
|
|
||||||
data-astro-cid-dohjnao5
|
|
||||||
>
|
|
||||||
<h2 data-astro-cid-dohjnao5>
|
|
||||||
Kaboom! <span data-astro-cid-dohjnao5> ↗</span>
|
|
||||||
</h2>
|
|
||||||
<p data-astro-cid-dohjnao5>
|
|
||||||
Simple physics simulation with Matter.js 👨🏻🔬
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="link-card" data-astro-cid-dohjnao5>
|
|
||||||
<a href="https://mnswpr.com" target="_blank" data-astro-cid-dohjnao5>
|
|
||||||
<h2 data-astro-cid-dohjnao5>
|
|
||||||
Minesweeper <span data-astro-cid-dohjnao5> ↗</span>
|
|
||||||
</h2>
|
|
||||||
<p data-astro-cid-dohjnao5>
|
|
||||||
Recreated the classic game for the web 💣
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="link-card" data-astro-cid-dohjnao5>
|
|
||||||
<a href="https://github.com/astro-reactive/astro-reactive" target="_blank" data-astro-cid-dohjnao5>
|
|
||||||
<h2 data-astro-cid-dohjnao5>
|
|
||||||
Reactive Form <span data-astro-cid-dohjnao5> ↗</span>
|
|
||||||
</h2>
|
|
||||||
<p data-astro-cid-dohjnao5>
|
|
||||||
The reactive form component for Astro 🔥
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="link-card" data-astro-cid-dohjnao5>
|
|
||||||
<a href="https://ayco.io/gh/astro-github-stats" target="_blank" data-astro-cid-dohjnao5>
|
|
||||||
<h2 data-astro-cid-dohjnao5>
|
|
||||||
GitHub Stats <span data-astro-cid-dohjnao5> ↗</span>
|
|
||||||
</h2>
|
|
||||||
<p data-astro-cid-dohjnao5>
|
|
||||||
Embed GitHub stats on your Astro page ✨
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<footer data-astro-cid-sz7xmlte>
|
|
||||||
<ul style="list-style: none" data-astro-cid-sz7xmlte>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
© 2022-2024 <strong data-astro-cid-sz7xmlte>Ayo Ayco</strong>.
|
|
||||||
All Rights Reserved
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
This website
|
|
||||||
<a
|
|
||||||
href="https://ayos.blog/stopped-tracking-on-my-sites"
|
|
||||||
data-astro-cid-sz7xmlte
|
|
||||||
>does not track users</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
See the
|
|
||||||
<a
|
|
||||||
href="https://ayco.io/sh/ayco.io-flask/tree"
|
|
||||||
data-astro-cid-sz7xmlte
|
|
||||||
>source code</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</footer>
|
|
||||||
</main>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,417 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en" data-astro-cid-sckkx6r4>
|
|
||||||
<head>
|
|
||||||
<title>Stuff: Smaller Building Blocks</title>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width" />
|
|
||||||
<meta name="theme-color" content="#3054bf" />
|
|
||||||
<meta
|
|
||||||
name="description"
|
|
||||||
content="See demos of side projects Ayo Ayco created"
|
|
||||||
/>
|
|
||||||
<meta name="author" content="Ayo Ayco" />
|
|
||||||
<meta name="origin" content="https://ayo.ayco.io/stuff/" />
|
|
||||||
<!-- Open Graph data -->
|
|
||||||
<meta property="og:site_name" content="Ayo Ayco" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:url" content="https://ayo.ayco.io/stuff/" />
|
|
||||||
<meta property="og:title" content="Stuff: Smaller Building Blocks" />
|
|
||||||
<meta
|
|
||||||
property="og:description"
|
|
||||||
content="See demos of side projects Ayo Ayco created"
|
|
||||||
/>
|
|
||||||
<meta property="og:image" content="/ayo.png" />
|
|
||||||
<link rel="me" href="https://ayos.blog" />
|
|
||||||
<link rel="me" href="https://social.ayco.io/@ayo" />
|
|
||||||
<link rel="me" href="https://metapixl.com/@ayo" />
|
|
||||||
<link rel="me" href="https://theres.life/@ayo" />
|
|
||||||
<link rel="shortcut icon" type="image/png" href="/static/favicon.ico" />
|
|
||||||
<script>
|
|
||||||
const title = document.title;
|
|
||||||
const defaultTitle =
|
|
||||||
"Ayo Ayco | Software Engineer, Web Developer, Consultant";
|
|
||||||
if (title) {
|
|
||||||
document.title = `${title} | ${defaultTitle}`;
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<style>
|
|
||||||
*,
|
|
||||||
*:before,
|
|
||||||
*:after {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
* {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
height: 100%;
|
|
||||||
background: #fff;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
line-height: 1.5;
|
|
||||||
letter-spacing: 0.25px;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
}
|
|
||||||
img,
|
|
||||||
picture,
|
|
||||||
video,
|
|
||||||
canvas,
|
|
||||||
svg,
|
|
||||||
iframe {
|
|
||||||
display: block;
|
|
||||||
max-width: 100%;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
input,
|
|
||||||
button,
|
|
||||||
textarea,
|
|
||||||
select {
|
|
||||||
font: inherit;
|
|
||||||
}
|
|
||||||
p,
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
overflow-wrap: break-word;
|
|
||||||
}
|
|
||||||
#root,
|
|
||||||
#__next {
|
|
||||||
isolation: isolate;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] {
|
|
||||||
background: var(--ayo-gradient);
|
|
||||||
display: flex;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec] {
|
|
||||||
display: inline-block;
|
|
||||||
text-decoration: underline;
|
|
||||||
color: var(--text-color-light);
|
|
||||||
padding: 0.5em 1em;
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec]:hover {
|
|
||||||
color: var(--color-brand-complement);
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec]
|
|
||||||
a[data-astro-cid-dmqpwcec]
|
|
||||||
svg[data-astro-cid-dmqpwcec] {
|
|
||||||
width: 1.5rem;
|
|
||||||
}
|
|
||||||
#wrapper[data-astro-cid-dmqpwcec] {
|
|
||||||
flex: 1;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
margin: 0 auto;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
@media only screen and (max-device-width: 360px) {
|
|
||||||
#wrapper[data-astro-cid-dmqpwcec] {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
nav[data-astro-cid-dmqpwcec] a[data-astro-cid-dmqpwcec] {
|
|
||||||
padding: 0.5em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
main {
|
|
||||||
margin: auto;
|
|
||||||
max-width: var(--content-width);
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-size: var(--font-size-xl);
|
|
||||||
}
|
|
||||||
h2 {
|
|
||||||
font-size: var(--font-size-lg);
|
|
||||||
}
|
|
||||||
code {
|
|
||||||
font-family: Menlo, Monaco, Lucida Console, Liberation Mono,
|
|
||||||
DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace;
|
|
||||||
}
|
|
||||||
p,
|
|
||||||
img,
|
|
||||||
table,
|
|
||||||
ul {
|
|
||||||
margin: 1em 0;
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
}
|
|
||||||
.text-gradient {
|
|
||||||
font-weight: 900;
|
|
||||||
background-image: var(--ayo-gradient);
|
|
||||||
animation: pulse 4s ease-in-out infinite;
|
|
||||||
background-size: 500% 500%;
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-size: 100% 200%;
|
|
||||||
background-position-y: 100%;
|
|
||||||
border-radius: 0.4rem;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
a {
|
|
||||||
color: var(--color-brand-complement);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
:root {
|
|
||||||
--content-width: 700px;
|
|
||||||
--font-size-sm: clamp(0.75rem, 0.2vw + 0.66rem, 0.8rem);
|
|
||||||
--font-size-base: clamp(1rem, 0.34vw + 0.91rem, 1.19rem);
|
|
||||||
--font-size-lg: clamp(1.2rem, 0.7vw + 1.2rem, 1.5rem);
|
|
||||||
--font-size-xl: clamp(2.44rem, 2.38vw + 1.85rem, 3.75rem);
|
|
||||||
--color-border: hsl(17, 24%, 90%);
|
|
||||||
--color-link: var(--color-brand-blue-3);
|
|
||||||
--color-brand-blue-1: #3054bf;
|
|
||||||
--color-brand-blue-2: #203880;
|
|
||||||
--color-brand-blue-3: #416fff;
|
|
||||||
--color-brand-blue-4: #101c40;
|
|
||||||
--color-brand-blue-5: #3964e6;
|
|
||||||
--color-brand-complement: orange;
|
|
||||||
--ayo-gradient: linear-gradient(45deg, #3054bf, #416fff);
|
|
||||||
--text-color-dark: black;
|
|
||||||
--text-color-light: #f8f9fa;
|
|
||||||
--bg-dark: #343a40;
|
|
||||||
--bg-darker: #212529;
|
|
||||||
--bg-darkest: #000;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
[data-astro-cid-sckkx6r4] {
|
|
||||||
font-family: system-ui, sans-serif;
|
|
||||||
font-size: var(--font-size-base);
|
|
||||||
color: var(--text-color-dark);
|
|
||||||
background-color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
html,
|
|
||||||
body,
|
|
||||||
[data-astro-cid-sckkx6r4] {
|
|
||||||
background: var(--bg-darker);
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes pulse {
|
|
||||||
0%,
|
|
||||||
to {
|
|
||||||
background-position-y: 0%;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
background-position-y: 80%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
footer[data-astro-cid-sz7xmlte] {
|
|
||||||
margin-top: 1em;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
footer[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte] {
|
|
||||||
font-size: var(--font-size-sm);
|
|
||||||
}
|
|
||||||
:root {
|
|
||||||
--link-gradient: linear-gradient(
|
|
||||||
45deg,
|
|
||||||
var(--color-brand-blue-1),
|
|
||||||
var(--color-brand-blue-3) 30%,
|
|
||||||
var(--color-border) 60%
|
|
||||||
);
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5] {
|
|
||||||
list-style: none;
|
|
||||||
display: flex;
|
|
||||||
padding: 0.15rem;
|
|
||||||
background-size: 400%;
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
background-position: 100%;
|
|
||||||
background-image: var(--link-gradient);
|
|
||||||
transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1);
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5] > a[data-astro-cid-dohjnao5] {
|
|
||||||
width: 100%;
|
|
||||||
text-decoration: none;
|
|
||||||
padding: 1em 1.3em;
|
|
||||||
border-radius: 0.35rem;
|
|
||||||
background-color: #fff;
|
|
||||||
color: var(--text-color-dark);
|
|
||||||
}
|
|
||||||
h2[data-astro-cid-dohjnao5] {
|
|
||||||
margin: 0;
|
|
||||||
transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1);
|
|
||||||
}
|
|
||||||
p[data-astro-cid-dohjnao5] {
|
|
||||||
font-weight: 400;
|
|
||||||
margin-top: 0.75rem;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
h2[data-astro-cid-dohjnao5] span[data-astro-cid-dohjnao5] {
|
|
||||||
display: inline-block;
|
|
||||||
transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5]:is(:hover, :focus-within) {
|
|
||||||
background-position: 0;
|
|
||||||
}
|
|
||||||
.link-card[data-astro-cid-dohjnao5]:is(:hover, :focus-within)
|
|
||||||
h2[data-astro-cid-dohjnao5]
|
|
||||||
span[data-astro-cid-dohjnao5] {
|
|
||||||
will-change: transform;
|
|
||||||
transform: translate(2px);
|
|
||||||
}
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
.link-card[data-astro-cid-dohjnao5] > a[data-astro-cid-dohjnao5] {
|
|
||||||
background-color: var(--bg-dark);
|
|
||||||
color: var(--text-color-light);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ul[data-astro-cid-2zbi74ef] {
|
|
||||||
list-style: none;
|
|
||||||
display: grid;
|
|
||||||
gap: 1rem;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body data-astro-cid-sckkx6r4>
|
|
||||||
<nav data-astro-cid-dmqpwcec>
|
|
||||||
<div id="wrapper" data-astro-cid-dmqpwcec>
|
|
||||||
<a href="/" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:home"
|
|
||||||
>
|
|
||||||
<path fill="currentColor" d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" />
|
|
||||||
</svg>
|
|
||||||
home </a
|
|
||||||
><a href="https://ayos.blog" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:blog"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="M3 3v18h18V3zm15 15H6v-1h12zm0-2H6v-1h12zm0-4H6V6h12z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
blog </a
|
|
||||||
><a href="https://ayco.io/@ayo" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:mastodon"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="M20.94 14c-.28 1.41-2.44 2.96-4.97 3.26-1.31.15-2.6.3-3.97.24-2.25-.11-4-.54-4-.54v.62c.32 2.22 2.22 2.35 4.03 2.42 1.82.05 3.44-.46 3.44-.46l.08 1.65s-1.28.68-3.55.81c-1.25.07-2.81-.03-4.62-.5-3.92-1.05-4.6-5.24-4.7-9.5l-.01-3.43c0-4.34 2.83-5.61 2.83-5.61C6.95 2.3 9.41 2 11.97 2h.06c2.56 0 5.02.3 6.47.96 0 0 2.83 1.27 2.83 5.61 0 0 .04 3.21-.39 5.43M18 8.91c0-1.08-.3-1.91-.85-2.56-.56-.63-1.3-.96-2.23-.96-1.06 0-1.87.41-2.42 1.23l-.5.88-.5-.88c-.56-.82-1.36-1.23-2.43-1.23-.92 0-1.66.33-2.23.96C6.29 7 6 7.83 6 8.91v5.26h2.1V9.06c0-1.06.45-1.62 1.36-1.62 1 0 1.5.65 1.5 1.93v2.79h2.07V9.37c0-1.28.5-1.93 1.51-1.93.9 0 1.35.56 1.35 1.62v5.11H18z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
social </a
|
|
||||||
><a href="https://metapixl.com/i/portfolio/ayo" data-astro-cid-dmqpwcec>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
data-astro-cid-dmqpwcec
|
|
||||||
astro-icon="mdi:image"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
d="m8.5 13.5 2.5 3 3.5-4.5 4.5 6H5m16 1V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
photos </a
|
|
||||||
><a href="https://www.npmjs.com/~aayco" data-astro-cid-dmqpwcec>
|
|
||||||
<svg viewBox="0 0 24 24" data-astro-cid-dmqpwcec astro-icon="gg:npm">
|
|
||||||
<path
|
|
||||||
fill="currentColor"
|
|
||||||
fill-rule="evenodd"
|
|
||||||
d="M5 21a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2zm1-3V6h12v12h-3V9h-3v9z"
|
|
||||||
clip-rule="evenodd"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
npm
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<main data-astro-cid-2zbi74ef>
|
|
||||||
<h1 class="text-gradient" data-astro-cid-2zbi74ef>Stuff</h1>
|
|
||||||
<p data-astro-cid-2zbi74ef>
|
|
||||||
Because software is not just a huge pile of code, but a combination of
|
|
||||||
small, reusable stuff...
|
|
||||||
</p>
|
|
||||||
<ul data-astro-cid-2zbi74ef>
|
|
||||||
<li class="link-card" data-astro-cid-dohjnao5>
|
|
||||||
<a
|
|
||||||
href="https://ayco.io/n/web-component-base"
|
|
||||||
target="_blank"
|
|
||||||
data-astro-cid-dohjnao5
|
|
||||||
>
|
|
||||||
<h2 data-astro-cid-dohjnao5>
|
|
||||||
Web Component Base
|
|
||||||
<span data-astro-cid-dohjnao5> ↗</span>
|
|
||||||
</h2>
|
|
||||||
<p data-astro-cid-dohjnao5>
|
|
||||||
This provides a minimal vanilla JS base class that aims to reduce
|
|
||||||
the complexity of creating reactive custom elements.
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="link-card" data-astro-cid-dohjnao5>
|
|
||||||
<a
|
|
||||||
href="https://ayco.io/n/@ayco/astro-resume"
|
|
||||||
target="_blank"
|
|
||||||
data-astro-cid-dohjnao5
|
|
||||||
>
|
|
||||||
<h2 data-astro-cid-dohjnao5>
|
|
||||||
Astro Resume <span data-astro-cid-dohjnao5> ↗</span>
|
|
||||||
</h2>
|
|
||||||
<p data-astro-cid-dohjnao5>
|
|
||||||
Utilities for serializing data from server for use in the client
|
|
||||||
with types preserved across components.
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="link-card" data-astro-cid-dohjnao5>
|
|
||||||
<a
|
|
||||||
href="https://ayco.io/n/generate-timezone-json"
|
|
||||||
target="_blank"
|
|
||||||
data-astro-cid-dohjnao5
|
|
||||||
>
|
|
||||||
<h2 data-astro-cid-dohjnao5>
|
|
||||||
Time Zone JSON Generator
|
|
||||||
<span data-astro-cid-dohjnao5> ↗</span>
|
|
||||||
</h2>
|
|
||||||
<p data-astro-cid-dohjnao5>
|
|
||||||
Generate a JSON file containing time zones from the official IANA
|
|
||||||
Database or your own zone.tab file
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<footer data-astro-cid-sz7xmlte>
|
|
||||||
<ul style="list-style: none" data-astro-cid-sz7xmlte>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
© 2022-2024 <strong data-astro-cid-sz7xmlte>Ayo Ayco</strong>.
|
|
||||||
All Rights Reserved
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
This website
|
|
||||||
<a
|
|
||||||
href="https://ayos.blog/stopped-tracking-on-my-sites"
|
|
||||||
data-astro-cid-sz7xmlte
|
|
||||||
>does not track users</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li data-astro-cid-sz7xmlte>
|
|
||||||
See the
|
|
||||||
<a
|
|
||||||
href="https://ayco.io/sh/ayco.io-flask/tree"
|
|
||||||
data-astro-cid-sz7xmlte
|
|
||||||
>source code</a
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</footer>
|
|
||||||
</main>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
20
web.py
20
web.py
|
@ -1,23 +1,13 @@
|
||||||
from flask import Flask, render_template
|
from flask import Flask, send_from_directory
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
def home():
|
def home():
|
||||||
return render_template('index.html')
|
return send_from_directory('dist', 'index.html')
|
||||||
|
|
||||||
@app.route('/showcase')
|
|
||||||
def showcase():
|
|
||||||
return render_template('showcase.html')
|
|
||||||
|
|
||||||
@app.route('/stuff')
|
|
||||||
def stuff():
|
|
||||||
return render_template('stuff.html')
|
|
||||||
|
|
||||||
@app.route('/now')
|
|
||||||
def now():
|
|
||||||
return render_template('now.html')
|
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/<path:path>')
|
||||||
|
def dist(path):
|
||||||
|
return send_from_directory('dist', path)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(host='0.0.0.0')
|
app.run(host='0.0.0.0')
|
||||||
|
|
Loading…
Reference in a new issue