Compare commits

..
2 Commits
Author SHA1 Message Date
miles d330ce3cdf working 2026-08-24 19:40:31 -05:00
miles 9fc1a02e38 fixed 404 2026-08-24 17:20:39 -05:00
2 changed files with 52 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Miles Wolf Allen | Remake</title>
<meta name="description" content="Miles makes games, tools, websites, and things that probably should have been built into the operating system already.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Fraunces:opsz,[email protected],500;9..144,700;9..144,900&display=swap" rel="stylesheet">
<style>
:root{--paper:#f3efe6;--ink:#171614;--muted:#777168;--line:#d6d0c4;--coral:#ed553d;--blue:#315dca;--yellow:#f4c542;--display:'Fraunces',Georgia,serif;--mono:'DM Mono',monospace}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--mono);line-height:1.6}a{color:inherit;text-decoration:none}::selection{background:var(--coral);color:#fff}
body:before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
header{border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(243,239,230,.92);backdrop-filter:blur(12px);z-index:5}.nav{max-width:1300px;margin:auto;padding:18px 5vw;display:flex;justify-content:space-between;align-items:center}.logo{font:700 1.35rem var(--display)}.nav-links{display:flex;gap:24px;font-size:12px;color:var(--muted);text-transform:uppercase}.nav-links a:hover{color:var(--coral)}
main{max-width:1300px;margin:auto;padding:0 5vw}.hero{min-height:88vh;display:grid;grid-template-columns:1fr 260px;align-items:center;gap:8vw;border-bottom:1px solid var(--line)}.kicker{font-size:12px;text-transform:uppercase;color:var(--coral);margin-bottom:25px}.hero h1{font:900 clamp(4.5rem,13vw,11rem)/.82 var(--display);letter-spacing:-.08em;max-width:900px}.hero h1 em{color:var(--coral);font-weight:500}.intro{max-width:560px;color:var(--muted);font-size:15px;margin:30px 0}.actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-block;border:1px solid var(--ink);padding:12px 18px;font-size:12px;text-transform:uppercase;transition:.2s}.button:hover{background:var(--ink);color:var(--paper);transform:translateY(-3px)}.hero-note{border:1px solid var(--ink);padding:20px;transform:rotate(3deg);font-size:12px;background:var(--yellow);box-shadow:8px 8px 0 var(--blue)}.hero-note strong{font:700 2rem var(--display);display:block;margin-bottom:10px}
.section{padding:100px 0;border-bottom:1px solid var(--line);display:block}.section-number{display:none}.section h2{font:700 clamp(2.8rem,6vw,6rem)/.9 var(--display);letter-spacing:-.06em;margin-bottom:30px}.section-copy{max-width:700px;color:var(--muted)}
.project-list{border-top:1px solid var(--ink);margin-top:35px}.project{display:grid;grid-template-columns:1fr 30px;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);align-items:start;transition:.2s}.project:hover{padding-left:15px;background:rgba(237,85,61,.06)}.project-num{display:none}.project h3{font:700 1.6rem var(--display);margin-bottom:5px}.project p{color:var(--muted);font-size:13px;max-width:650px}.arrow{font-size:22px;color:var(--coral)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.chip{border:1px solid var(--line);padding:8px 12px;font-size:12px;background:rgba(255,255,255,.25)}.chip:nth-child(3n){border-color:var(--blue);color:var(--blue)}.chip:nth-child(3n+1){border-color:var(--coral);color:var(--coral)}
.quote{font:500 clamp(2rem,5vw,5rem)/1 var(--display);max-width:850px}.quote em{color:var(--coral)}
.contact{background:var(--ink);color:var(--paper);padding:90px 7vw;margin:90px 0 0}.contact h2{font:900 clamp(3rem,8vw,8rem)/.85 var(--display);letter-spacing:-.07em;max-width:850px}.contact p{color:#aaa59b;max-width:500px;margin:25px 0}.contact .button{border-color:var(--paper)}.contact .button:hover{background:var(--paper);color:var(--ink)}footer{padding:35px 5vw;color:var(--muted);font-size:11px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
@media(max-width:760px){.nav{align-items:flex-start}.nav-links{gap:12px;flex-wrap:wrap;justify-content:flex-end}.hero{grid-template-columns:1fr;min-height:auto;padding:100px 0 80px}.hero-note{max-width:230px;margin:20px 0 0 20px}.section{padding:75px 0}.project{grid-template-columns:1fr 20px;gap:10px}.project h3{font-size:1.35rem}.contact{margin-left:-5vw;margin-right:-5vw}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
</style>
</head>
<body>
<header><nav class="nav"><a class="logo" href="index.html">MILES / REMAKE</a><div class="nav-links"><a href="#about">About</a><a href="#work">Work</a><a href="#skills">Tools</a><a href="#contact">Say hi</a></div></nav></header>
<main>
<section class="hero"><div><div class="kicker">Developer / 3D artist / professional tinkerer</div><h1>I make things that are <em>fun</em> to use.</h1><p class="intro">I'm Miles. I make games, tools, and websites. Lately I have been replacing Electron, fixing Finder, and making a very serious list of hard Geometry Dash levels.</p><div class="actions"><a class="button" href="#work">See the work</a><a class="button" href="mailto:[email protected]">Email me</a></div></div><aside class="hero-note"><strong>Currently</strong>Trying to finish Gelectron before I start another project. It is not going well.</aside></section>
<section class="section" id="about"><h2>A little about me.</h2><div class="section-copy"><p>I started making things because I wanted them to exist. Sometimes that means a useful tool. Sometimes it means spending three days figuring out why a button is two pixels too far to the left.</p><p>I'm also part of <a href="https://diskettelabs.com/" style="color:var(--coral)">Diskette Labs</a>. We make products, argue about details, and occasionally remember to eat lunch.</p></div><div class="chips"><span class="chip">160 repos</span><span class="chip">Usually online</span><span class="chip">Pull Shark x2</span><span class="chip">Still learning</span></div></section>
<section class="section" id="work"><h2>The things I keep building.</h2><div class="project-list"><a class="project" href="projects/omniemu.html"><span class="project-num">01</span><div><h3>OmniEmu 2.0</h3><p>All your emulators in one place, because opening fifteen apps to play one game felt excessive.</p></div><span class="arrow">-></span></a><a class="project" href="projects/gelectron.html"><span class="project-num">02</span><div><h3>Gelectron</h3><p>A lighter Electron alternative. Chromium is great, but I do not need a second browser hiding inside every app.</p></div><span class="arrow">-></span></a><a class="project" href="projects/fedl.html"><span class="project-num">03</span><div><h3>FEDL</h3><p>The Geometry Dash demon list: rankings, submissions, and a community that apparently does not sleep.</p></div><span class="arrow">-></span></a><a class="project" href="projects/nova.html"><span class="project-num">04</span><div><h3>Nova AI</h3><p>A local AI assistant for people who would rather keep their files on their own computer.</p></div><span class="arrow">-></span></a><a class="project" href="projects/command-move.html"><span class="project-num">05</span><div><h3>CommandMove</h3><p>True cut-and-paste for Finder on macOS. Cmd+X should have worked from the beginning.</p></div><span class="arrow">-></span></a></div></section>
<section class="section" id="skills"><h2>My toolbox.</h2><p class="section-copy">JavaScript, Node.js, Python, Swift, Rust, HTML, CSS, Flutter, Electron, Blender, Unity, Unreal, Git, Linux, and a suspicious amount of Bash. I know enough to be dangerous and not enough to stop.</p><div class="chips"><span class="chip">JavaScript</span><span class="chip">TypeScript</span><span class="chip">Python</span><span class="chip">Rust</span><span class="chip">Swift</span><span class="chip">Blender</span><span class="chip">Unity</span><span class="chip">Electron</span><span class="chip">Cloudflare</span></div></section>
<section class="section"><p class="quote">I am probably overthinking this. <em>That is usually how the good stuff starts.</em></p></section>
<section class="contact" id="contact"><h2>Got a weird idea?</h2><p>Send me the half-finished version. The version with three bullet points and a typo is fine. I am at my best when there is a real problem to poke at.</p><a class="button" href="mailto:[email protected]">[email protected]</a></section>
</main>
<footer><span>Made by Miles. Still messing with it.</span><span><a href="index.html">Original portfolio</a> / <a href="about-me.html">About</a> / <a href="uses.html">Uses</a></span></footer>
</body>
</html>
+15
View File
@@ -0,0 +1,15 @@
{
// Cloudflare Workers Static Assets configuration.
// Deploys this static portfolio and serves a custom 404 page.
"$schema": "https://raw.githubusercontent.com/cloudflare/workers-sdk/main/packages/wrangler/config-schema.json",
"name": "miles-web",
// Purely static site: no Worker script is needed.
"compatibility_date": "2026-08-24",
"assets": {
// The directory holding the static site. 404.html lives here,
// so the built-in 404-page handling below will pick it up.
"directory": ".",
"not_found_handling": "404-page",
"html_handling": "auto-trailing-slash"
}
}