Add Primora, Dash card, live links for Containr/Invico/Dash

- Primora card: self-hosted backend platform (primora-landing)
- Dash promoted to card (dash-amber-two)
- Containr card links live site instead of repo
- Invico moved to public list, links invico.org
- Cloudreve fork row

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Tomas DvorakandDevin committed 2026-09-25 14:56:59 +02:00
1 parent 16f9c26a00
commit f1573dd190
6 files changed
+29 -8

No files matched your search

+3
View File
@@ -0,0 +1,3 @@
node_modules/
dist/
.astro/
Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

+24 -8
View File
@@ -95,7 +95,7 @@
</div> </div>
</a> </a>
<a class="card" href="https://github.com/Dvorinka/Containr" target="_blank" rel="noopener"> <a class="card" href="https://containr-lyart.vercel.app" target="_blank" rel="noopener">
<figure><img src="images/containr.png" alt="Containr projects dashboard" loading="lazy"></figure> <figure><img src="images/containr.png" alt="Containr projects dashboard" loading="lazy"></figure>
<div class="card-body"> <div class="card-body">
<div class="card-head"><h3>Containr</h3><span class="tag tag-lime">Go · Docker</span></div> <div class="card-head"><h3>Containr</h3><span class="tag tag-lime">Go · Docker</span></div>
@@ -103,6 +103,14 @@
</div> </div>
</a> </a>
<a class="card" href="https://primora-landing.vercel.app" target="_blank" rel="noopener">
<figure><img src="images/projects/primora.png" alt="Primora landing page" loading="lazy"></figure>
<div class="card-body">
<div class="card-head"><h3>Primora</h3><span class="tag tag-primora">Platform</span></div>
<p>Self-hosted backend platform — auth, Postgres-backed APIs, S3-style object storage, JSON collections and audit log behind one dashboard.</p>
</div>
</a>
<a class="card" href="https://timespent.tdvorak.dev" target="_blank" rel="noopener"> <a class="card" href="https://timespent.tdvorak.dev" target="_blank" rel="noopener">
<figure><img src="images/projects/timespent.png" alt="TimeSpent" loading="lazy"></figure> <figure><img src="images/projects/timespent.png" alt="TimeSpent" loading="lazy"></figure>
<div class="card-body"> <div class="card-body">
@@ -134,9 +142,21 @@
<p>AI-driven product &amp; growth studio — from idea to production. My own studio's public site.</p> <p>AI-driven product &amp; growth studio — from idea to production. My own studio's public site.</p>
</div> </div>
</a> </a>
<a class="card" href="https://dash-amber-two.vercel.app" target="_blank" rel="noopener">
<figure><img src="images/projects/dash.png" alt="Dash homelab dashboard" loading="lazy"></figure>
<div class="card-body">
<div class="card-head"><h3>Dash</h3><span class="tag tag-dash">Go · React</span></div>
<p>Self-hosted homelab dashboard — service boards, uptime monitors and host metrics. Single Go binary, embedded UI.</p>
</div>
</a>
</div> </div>
<div class="row-list"> <div class="row-list">
<a class="row" href="https://invico.org" target="_blank" rel="noopener">
<div class="row-main"><h4>Invico</h4><p>Invoicing platform for the Czech market — issued invoices, zálohová, dobropis, ISDOC, SPD QR, PDF. The product behind Výdoz.</p></div>
<span class="row-tag mono">Go · React</span><svg class="arrow" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7 17 17 7M7 7h10v10"/></svg>
</a>
<a class="row" href="https://github.com/Dvorinka/DevinTrack" target="_blank" rel="noopener"> <a class="row" href="https://github.com/Dvorinka/DevinTrack" target="_blank" rel="noopener">
<div class="row-main"><h4>DevinTrack</h4><p>Token usage &amp; cost tracking for Devin CLI sessions — transparent wrapper, SQLite, web dashboard.</p></div> <div class="row-main"><h4>DevinTrack</h4><p>Token usage &amp; cost tracking for Devin CLI sessions — transparent wrapper, SQLite, web dashboard.</p></div>
<span class="row-tag mono">Python</span><svg class="arrow" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7 17 17 7M7 7h10v10"/></svg> <span class="row-tag mono">Python</span><svg class="arrow" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7 17 17 7M7 7h10v10"/></svg>
@@ -145,9 +165,9 @@
<div class="row-main"><h4>Domovník</h4><p>AI-powered real estate back-office agent for the Czech market.</p></div> <div class="row-main"><h4>Domovník</h4><p>AI-powered real estate back-office agent for the Czech market.</p></div>
<span class="row-tag mono">TypeScript · AI</span><svg class="arrow" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7 17 17 7M7 7h10v10"/></svg> <span class="row-tag mono">TypeScript · AI</span><svg class="arrow" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7 17 17 7M7 7h10v10"/></svg>
</a> </a>
<a class="row" href="https://github.com/Dvorinka/Dash" target="_blank" rel="noopener"> <a class="row" href="https://github.com/Dvorinka/cloudreve" target="_blank" rel="noopener">
<div class="row-main"><h4>Dash</h4><p>Self-hosted homelab dashboard — single Go binary serving an embedded React UI.</p></div> <div class="row-main"><h4>Cloudreve</h4><p>Personal fork of Cloudreve — self-hosted file storage and sharing, upstream cloudreve/cloudreve.</p></div>
<span class="row-tag mono">Go · React</span><svg class="arrow" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7 17 17 7M7 7h10v10"/></svg> <span class="row-tag mono">Go · Fork</span><svg class="arrow" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7 17 17 7M7 7h10v10"/></svg>
</a> </a>
<a class="row" href="https://github.com/Dvorinka/PlexSync" target="_blank" rel="noopener"> <a class="row" href="https://github.com/Dvorinka/PlexSync" target="_blank" rel="noopener">
<div class="row-main"><h4>PlexSync</h4><p>Plex synchronization tool.</p></div> <div class="row-main"><h4>PlexSync</h4><p>Plex synchronization tool.</p></div>
@@ -165,10 +185,6 @@
<p class="label mono sub-label">// Private &amp; internal</p> <p class="label mono sub-label">// Private &amp; internal</p>
<div class="row-list row-list-tight"> <div class="row-list row-list-tight">
<div class="row row-static">
<div class="row-main"><h4>Invico</h4><p>Invoicing platform for the Czech market — issued invoices, zálohová, dobropis, ISDOC, SPD QR, PDF. The product behind Výdoz.</p></div>
<span class="row-tag mono">Go · React · Private</span>
</div>
<div class="row row-static"> <div class="row row-static">
<div class="row-main"><h4>Soika</h4><p>Internal e-commerce audit, compliance-risk and outreach platform — operator-only consulting tool.</p></div> <div class="row-main"><h4>Soika</h4><p>Internal e-commerce audit, compliance-risk and outreach platform — operator-only consulting tool.</p></div>
<span class="row-tag mono">Go · React · Private</span> <span class="row-tag mono">Go · React · Private</span>
+2
View File
@@ -220,6 +220,8 @@ a { color: inherit; text-decoration: none; }
.tag-zeus { --acc: #e05a52; } /* red */ .tag-zeus { --acc: #e05a52; } /* red */
.tag-reklik { --acc: #58aed8; } /* blue */ .tag-reklik { --acc: #58aed8; } /* blue */
.tag-bizoni { --acc: #c05b50; } /* maroon */ .tag-bizoni { --acc: #c05b50; } /* maroon */
.tag-primora { --acc: #e8853d; } /* primora orange */
.tag-dash { --acc: #4ade80; } /* dash green */
.tag[class*="tag-"] { color: var(--acc); border-color: color-mix(in srgb, var(--acc) 35%, transparent); } .tag[class*="tag-"] { color: var(--acc); border-color: color-mix(in srgb, var(--acc) 35%, transparent); }
[data-theme="light"] .tag[class*="tag-"] { color: color-mix(in srgb, var(--acc) 45%, #000); border-color: color-mix(in srgb, var(--acc) 50%, transparent); } [data-theme="light"] .tag[class*="tag-"] { color: color-mix(in srgb, var(--acc) 45%, #000); border-color: color-mix(in srgb, var(--acc) 50%, transparent); }
.card-body > p { margin-top: 8px; font-size: 14px; color: var(--fg-dim); line-height: 1.55; } .card-body > p { margin-top: 8px; font-size: 14px; color: var(--fg-dim); line-height: 1.55; }