feat: refresh projects from GitHub
This commit is contained in:
parent
e3970d3480
commit
98beb0cbf4
2 changed files with 288 additions and 20 deletions
|
|
@ -885,6 +885,210 @@ code {
|
|||
font-size: 0.86rem;
|
||||
}
|
||||
|
||||
/* Scorium is code-native, so its project visual is a small editorial
|
||||
language specimen rather than a fake product screenshot. */
|
||||
.project-visual-scorium {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
background:
|
||||
linear-gradient(rgba(17, 23, 26, 0.08) 1px, transparent 1px),
|
||||
linear-gradient(90deg, rgba(17, 23, 26, 0.08) 1px, transparent 1px),
|
||||
var(--paper-deep);
|
||||
background-size: 2.25rem 2.25rem;
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.project-visual-scorium::before {
|
||||
position: absolute;
|
||||
z-index: 0;
|
||||
top: -16%;
|
||||
right: -5%;
|
||||
width: 55%;
|
||||
height: 72%;
|
||||
transform: rotate(12deg);
|
||||
background: var(--coral);
|
||||
content: "";
|
||||
clip-path: polygon(26% 0, 100% 0, 100% 78%, 0 100%);
|
||||
}
|
||||
|
||||
.scorium-window {
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
top: 8%;
|
||||
right: 8%;
|
||||
bottom: 21%;
|
||||
left: 7%;
|
||||
display: grid;
|
||||
overflow: hidden;
|
||||
border: 3px solid var(--ink);
|
||||
background: #111b20;
|
||||
box-shadow: 0.9rem 0.9rem 0 rgba(17, 23, 26, 0.2);
|
||||
grid-template-rows: auto 1fr auto;
|
||||
}
|
||||
|
||||
.scorium-titlebar {
|
||||
display: grid;
|
||||
min-height: 3.5rem;
|
||||
padding: 0 1rem;
|
||||
border-bottom: 2px solid rgba(237, 241, 233, 0.22);
|
||||
color: var(--muted);
|
||||
font-family: var(--mono);
|
||||
font-size: 0.62rem;
|
||||
letter-spacing: 0.04em;
|
||||
grid-template-columns: auto 1fr auto;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.scorium-titlebar b {
|
||||
color: var(--coral-bright);
|
||||
letter-spacing: 0.13em;
|
||||
}
|
||||
|
||||
.scorium-titlebar span {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.scorium-titlebar i {
|
||||
color: var(--lime);
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.scorium-code {
|
||||
align-self: center;
|
||||
min-width: 0;
|
||||
margin: 0;
|
||||
padding: clamp(1.2rem, 3vw, 2.2rem);
|
||||
overflow: hidden;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
color: var(--text);
|
||||
font: 500 clamp(0.67rem, 1.05vw, 0.93rem)/1.65 var(--mono);
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.scorium-code .scorium-dim {
|
||||
display: inline-block;
|
||||
width: 2.25em;
|
||||
color: #60737b;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.scorium-line {
|
||||
display: block;
|
||||
min-height: 1.65em;
|
||||
}
|
||||
|
||||
.scorium-indent {
|
||||
display: inline-block;
|
||||
width: 2.2em;
|
||||
}
|
||||
|
||||
.scorium-indent-double {
|
||||
width: 4.4em;
|
||||
}
|
||||
|
||||
.scorium-code b {
|
||||
color: var(--cyan);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.scorium-code em {
|
||||
color: var(--coral-bright);
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.scorium-code strong {
|
||||
color: var(--lime);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.scorium-code i {
|
||||
color: var(--yellow);
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.scorium-diagnostic {
|
||||
display: flex;
|
||||
min-height: 2.9rem;
|
||||
padding: 0 1rem;
|
||||
border-top: 2px solid rgba(237, 241, 233, 0.16);
|
||||
color: var(--muted);
|
||||
font-family: var(--mono);
|
||||
font-size: 0.61rem;
|
||||
letter-spacing: 0.03em;
|
||||
align-items: center;
|
||||
gap: 0.65rem;
|
||||
}
|
||||
|
||||
.scorium-diagnostic i {
|
||||
width: 0.55rem;
|
||||
height: 0.55rem;
|
||||
flex: 0 0 auto;
|
||||
background: var(--lime);
|
||||
}
|
||||
|
||||
.scorium-pipeline {
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
right: 2rem;
|
||||
bottom: 2rem;
|
||||
left: 2rem;
|
||||
display: flex;
|
||||
padding-top: 0.8rem;
|
||||
border-top: 3px solid var(--ink);
|
||||
color: var(--ink);
|
||||
font-family: var(--mono);
|
||||
font-size: clamp(0.54rem, 0.8vw, 0.68rem);
|
||||
letter-spacing: 0.05em;
|
||||
text-transform: uppercase;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 0.6rem;
|
||||
}
|
||||
|
||||
.scorium-pipeline b {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.scorium-pipeline i {
|
||||
color: #765b4d;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.scorium-watermark {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
right: -0.04em;
|
||||
bottom: -0.2em;
|
||||
color: rgba(17, 23, 26, 0.1);
|
||||
font-family: var(--display);
|
||||
font-size: clamp(7rem, 15vw, 14rem);
|
||||
letter-spacing: -0.08em;
|
||||
line-height: 0.8;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.project-visual-scorium .image-label {
|
||||
z-index: 3;
|
||||
right: auto;
|
||||
bottom: auto;
|
||||
left: 0;
|
||||
top: 0;
|
||||
transform: translate(-2px, -100%);
|
||||
}
|
||||
|
||||
.project-feature-scorium .project-feature-copy {
|
||||
border-top-color: var(--coral);
|
||||
}
|
||||
|
||||
.scorium-tags {
|
||||
margin: -0.2rem 0 1.4rem;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
.project-facts {
|
||||
border-top-width: 3px;
|
||||
border-bottom-width: 2px;
|
||||
|
|
@ -1764,6 +1968,45 @@ code {
|
|||
min-height: 20rem;
|
||||
}
|
||||
|
||||
.project-visual-scorium {
|
||||
min-height: 28rem;
|
||||
}
|
||||
|
||||
.scorium-window {
|
||||
top: 6%;
|
||||
right: 1.1rem;
|
||||
bottom: 19%;
|
||||
left: 1.1rem;
|
||||
box-shadow: 0.55rem 0.55rem 0 rgba(17, 23, 26, 0.2);
|
||||
}
|
||||
|
||||
.scorium-titlebar {
|
||||
min-height: 3rem;
|
||||
}
|
||||
|
||||
.scorium-titlebar span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.scorium-titlebar {
|
||||
grid-template-columns: 1fr auto;
|
||||
}
|
||||
|
||||
.scorium-code {
|
||||
padding: 1rem;
|
||||
font-size: clamp(0.56rem, 2.35vw, 0.72rem);
|
||||
}
|
||||
|
||||
.scorium-pipeline {
|
||||
right: 1rem;
|
||||
bottom: 1.35rem;
|
||||
left: 1rem;
|
||||
}
|
||||
|
||||
.scorium-pipeline i {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.project-card-cool {
|
||||
width: 94%;
|
||||
}
|
||||
|
|
|
|||
65
index.html
65
index.html
|
|
@ -5,10 +5,10 @@
|
|||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Fi3w0 / Alex - Systems Builder</title>
|
||||
<meta name="description" content="Alex, also known as Fi3w0, builds Linux and macOS desktop tools, homelab infrastructure, server tooling, and configurable Minecraft frameworks.">
|
||||
<meta name="description" content="Alex, also known as Fi3w0, builds TideWM, Scorium, Linux and macOS desktop tools, homelab infrastructure, and configurable server tooling.">
|
||||
|
||||
<meta property="og:title" content="Fi3w0 / Alex - Systems Builder">
|
||||
<meta property="og:description" content="Linux, homelabs, server tooling, and the systems holding everything up.">
|
||||
<meta property="og:description" content="TideWM, Scorium, Linux desktops, homelabs, and the systems holding everything up.">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://fiwlabs.dev/">
|
||||
<meta property="og:image" content="https://fiwlabs.dev/img/moonlit-shell.jpg">
|
||||
|
|
@ -19,8 +19,8 @@
|
|||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Archivo+Black&family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;1,400&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="css/style.css?v=5">
|
||||
<link rel="stylesheet" href="css/editorial.css?v=5">
|
||||
<link rel="stylesheet" href="css/style.css?v=6">
|
||||
<link rel="stylesheet" href="css/editorial.css?v=6">
|
||||
|
||||
<link rel="icon" href="/favicon.ico" sizes="any">
|
||||
<link rel="icon" href="/icon.svg" type="image/svg+xml">
|
||||
|
|
@ -68,7 +68,7 @@
|
|||
<p class="eyebrow"><span class="status-dot" aria-hidden="true"></span> alex@fiw:~ $ cat about.txt</p>
|
||||
<h1 id="hero-title">Alex <span id="glitch-name" data-text="/ Fi3w0">/ Fi3w0</span></h1>
|
||||
<p class="hero-intro">
|
||||
I make Linux and macOS desktop tools, run a homelab, and publish Minecraft server mods.
|
||||
I build a Wayland desktop, a programmable configuration language, macOS tools, and Minecraft server mods.
|
||||
Most of my projects start as something I wanted for my own machine or server,
|
||||
then grow until they are useful to somebody else too.
|
||||
</p>
|
||||
|
|
@ -92,15 +92,15 @@
|
|||
</div>
|
||||
<div class="terminal-body">
|
||||
<p><span class="prompt">$</span> git status --short</p>
|
||||
<p class="terminal-output"><span>M</span> homelab/<br><span>M</span> minecraft-mods/<br><span>??</span> desktop-experiments/</p>
|
||||
<p class="terminal-output"><span>M</span> TideWM/<br><span>M</span> Scorium/<br><span>??</span> next-system/</p>
|
||||
<p><span class="prompt">$</span> cat NOTES</p>
|
||||
<p class="terminal-output">linux + macos / servers / modding<br>automation / config / self-hosting</p>
|
||||
<p class="terminal-output">wayland + rust / config languages<br>automation / servers / self-hosting</p>
|
||||
<p class="terminal-note"># there is always something unfinished</p>
|
||||
</div>
|
||||
|
||||
<div class="profile-chip">
|
||||
<img src="img/avatar.png" alt="Fi3w0's GitHub avatar" width="460" height="460">
|
||||
<div><strong>Alex / Fi3w0</strong><span>Linux, servers, mods</span></div>
|
||||
<div><strong>Alex / Fi3w0</strong><span>Systems over categories</span></div>
|
||||
</div>
|
||||
</aside>
|
||||
</section>
|
||||
|
|
@ -173,8 +173,8 @@
|
|||
hot reload, readable config files, updates that can fail safely, and logs that say what went wrong.
|
||||
</p>
|
||||
<p>
|
||||
I write Bash, Go, Lua, and modify Java directly. For Rust, Swift, and larger Kotlin, TypeScript, Python,
|
||||
and QML builds, I use AI agents heavily, then review, test, and integrate the result myself.
|
||||
I write Bash, Go, Lua, and Python directly, and modify Java. For heavier Rust, Swift, Kotlin,
|
||||
TypeScript, and QML builds, I direct AI agents, then own the design, review, testing, and integration.
|
||||
</p>
|
||||
<div class="language-line">
|
||||
<span>Ukrainian + Russian</span><span>Spanish</span><span>English C1</span>
|
||||
|
|
@ -203,29 +203,54 @@
|
|||
|
||||
<article class="current-project reveal" aria-labelledby="tidewm-title">
|
||||
<div class="current-project-main">
|
||||
<div class="current-meta"><span><i aria-hidden="true"></i> Daily-driver compositor</span><span>AI-assisted / evolving</span></div>
|
||||
<div class="current-meta"><span><i aria-hidden="true"></i> Functional pre-release</span><span>v0.90 / daily-driver path</span></div>
|
||||
<p class="current-kicker">Wayland compositor / Rust</p>
|
||||
<div class="tide-heading">
|
||||
<img class="tide-mark" src="img/tidewm-logo.png" alt="" width="48" height="48" loading="lazy">
|
||||
<h3 id="tidewm-title">TideWM</h3>
|
||||
</div>
|
||||
<p>A water-themed Wayland compositor built on Smithay, made because I wanted to see how far I could take it. Tiling (BSP and master/stack), multi-monitor, XWayland, workspaces, and IPC already run as my daily driver; the signature aqua render effects are next.</p>
|
||||
<div class="tag-row current-tags"><span>AI-assisted</span><span>Smithay</span><span>Rust</span><span>Wayland</span></div>
|
||||
<p>A Wayland desktop that feels like water, built in Rust on Smithay. Under the ripples, wave transitions, glass, shadows, and window sway is a real tiling compositor with multi-monitor, XWayland, IPC, screencasting, and two spatial engines you can switch live.</p>
|
||||
<div class="tag-row current-tags"><span>Smithay</span><span>Rust</span><span>Wayland</span><span>GPL-3.0</span></div>
|
||||
<a class="text-link current-repo-link" href="https://github.com/Fi3w0/TideWM" target="_blank" rel="noreferrer">View repository <span aria-hidden="true">↗</span></a>
|
||||
</div>
|
||||
<div class="current-roadmap">
|
||||
<p>Project shape</p>
|
||||
<ol>
|
||||
<li><span>01</span><div><strong>Foundation</strong><small>Rust compositor built directly on Smithay</small></div><b>base</b></li>
|
||||
<li><span>02</span><div><strong>Tiling & compat</strong><small>BSP/master-stack layouts, multi-monitor, XWayland</small></div><b>done</b></li>
|
||||
<li><span>03</span><div><strong>Visual direction</strong><small>Water/aqua render effects, still pending</small></div><b>next</b></li>
|
||||
<li><span>04</span><div><strong>Development method</strong><small>AI-assisted implementation, tested and reviewed by me</small></div><b>method</b></li>
|
||||
<li><span>01</span><div><strong>Classic</strong><small>BSP, master/stack, cascade, workspaces, Depth Deck</small></div><b>done</b></li>
|
||||
<li><span>02</span><div><strong>Ocean</strong><small>One continuous 2D world with reefs, cameras, and bookmarks</small></div><b>done</b></li>
|
||||
<li><span>03</span><div><strong>Water stack</strong><small>Ripples, waves, glass, caustics, sway, depth, and buoyancy</small></div><b>done</b></li>
|
||||
<li><span>04</span><div><strong>Next pass</strong><small>More hardware coverage, feel tuning, Nvidia native, AUR</small></div><b>testing</b></li>
|
||||
</ol>
|
||||
</div>
|
||||
<span class="current-watermark" aria-hidden="true">TIDE</span>
|
||||
<div class="tide-ascii" id="tide-ascii" aria-hidden="true"></div>
|
||||
</article>
|
||||
|
||||
<article class="project-feature project-feature-scorium reveal" data-repo="Scorium">
|
||||
<a class="project-visual project-visual-scorium" href="https://github.com/Fi3w0/Scorium" target="_blank" rel="noreferrer" aria-label="View Scorium on GitHub">
|
||||
<span class="scorium-window" aria-hidden="true">
|
||||
<span class="scorium-titlebar"><b>SCORIUM</b><span>examples/services.scor</span><i>v0.1.0</i></span>
|
||||
<code class="scorium-code"><span class="scorium-line"><span class="scorium-dim">01</span> <em>@base_port</em> = <strong>8000</strong></span><span class="scorium-line"><span class="scorium-dim">02</span></span><span class="scorium-line"><span class="scorium-dim">03</span> <b>server</b> {</span><span class="scorium-line"><span class="scorium-dim">04</span><span class="scorium-indent"></span>host = <i>localhost</i></span><span class="scorium-line"><span class="scorium-dim">05</span><span class="scorium-indent"></span>port = <em>base_port</em> + <strong>80</strong></span><span class="scorium-line"><span class="scorium-dim">06</span><span class="scorium-indent"></span>timeout = <strong>5s</strong></span><span class="scorium-line"><span class="scorium-dim">07</span> }</span><span class="scorium-line"><span class="scorium-dim">08</span></span><span class="scorium-line"><span class="scorium-dim">09</span> <b>for</b> i = <strong>1</strong>, <strong>3</strong> <b>do</b></span><span class="scorium-line"><span class="scorium-dim">10</span><span class="scorium-indent"></span>worker {</span><span class="scorium-line"><span class="scorium-dim">11</span><span class="scorium-indent scorium-indent-double"></span>name = worker-$i</span><span class="scorium-line"><span class="scorium-dim">12</span><span class="scorium-indent"></span>}</span><span class="scorium-line"><span class="scorium-dim">13</span> <b>end</b></span></code>
|
||||
<span class="scorium-diagnostic"><i></i> parsed · sandboxed · schema valid</span>
|
||||
</span>
|
||||
<span class="scorium-pipeline" aria-hidden="true"><b>source</b><i>→</i><b>parse</b><i>→</i><b>evaluate</b><i>→</i><b>validate</b><i>→</i><b>apply</b></span>
|
||||
<span class="scorium-watermark" aria-hidden="true">.SCOR</span>
|
||||
<span class="image-label">Readable config / programmable core</span>
|
||||
</a>
|
||||
<div class="project-feature-copy">
|
||||
<div class="project-meta"><span>Newest release</span><span>Rust / Lua 5.4 / pre-1.0</span></div>
|
||||
<h3>Scorium</h3>
|
||||
<p>A readable, embeddable configuration framework: declarative for simple files, programmable when repetition or conditions appear. It combines typed values, precise diagnostics, built-in schema validation, a canonical formatter, and sandboxed Lua—with no filesystem, network, or process access by default.</p>
|
||||
<ul class="project-facts">
|
||||
<li><strong>5</strong><span>focused Rust crates</span></li>
|
||||
<li><strong>5</strong><span>CLI workflows</span></li>
|
||||
<li><strong>0</strong><span>ambient system access</span></li>
|
||||
</ul>
|
||||
<div class="tag-row scorium-tags"><span>Source-available</span><span>PolyForm Strict</span><span>Sandboxed</span></div>
|
||||
<a class="text-link" href="https://github.com/Fi3w0/Scorium" target="_blank" rel="noreferrer">Read the repository <span aria-hidden="true">↗</span></a>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="project-feature reveal" data-repo="Flux">
|
||||
<a class="project-visual project-visual-flux" href="https://github.com/Fi3w0/Flux" target="_blank" rel="noreferrer" aria-label="View Flux on GitHub">
|
||||
<span class="flux-chrome" aria-hidden="true"><i></i><i></i><i></i></span>
|
||||
|
|
@ -244,7 +269,7 @@
|
|||
<span class="image-label">macOS Tahoe / Apple silicon</span>
|
||||
</a>
|
||||
<div class="project-feature-copy">
|
||||
<div class="project-meta"><span>Latest project</span><span>SwiftUI / AppKit / macOS</span></div>
|
||||
<div class="project-meta"><span>Native media workbench</span><span>SwiftUI / AppKit / macOS</span></div>
|
||||
<h3>Flux</h3>
|
||||
<p>A native macOS media workbench: convert, download, edit, and compose media in one focused app. FFmpeg, yt-dlp, and Apple Vision underneath, pre-flight checks that explain failures before a job ever starts, and everything processed locally.</p>
|
||||
<ul class="project-facts">
|
||||
|
|
@ -370,7 +395,7 @@
|
|||
<header class="section-heading reveal">
|
||||
<p class="section-index">04 / Tools</p>
|
||||
<h2 id="stack-title">What is usually open in my terminal.</h2>
|
||||
<p class="stack-intro">Kitty as the daily emulator, running on a MacBook (macOS) — my main device — SSH'd out to the Arch desktop and the Ubuntu server for everything else.</p>
|
||||
<p class="stack-intro">Kitty on a MacBook Air M4 is the main console, SSH'd out to the Arch desktop, ThinkPad T14, and Ubuntu server for everything else.</p>
|
||||
</header>
|
||||
|
||||
<div class="stack-layout">
|
||||
|
|
@ -418,7 +443,7 @@
|
|||
<p>© <span id="year">2026</span> Alex / Fi3w0</p>
|
||||
</footer>
|
||||
|
||||
<script src="js/app.js?v=5" defer></script>
|
||||
<script src="js/app.js?v=6" defer></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue