eduard/cobra-boards
Cobra Boards, team task boards you can run from Claude or ChatGPT. FastAPI + DataK3 + appid + Dodil Models + MCP.
A remix template · 1 remixes · Remix eduard/cobra-boards
app/boards/doors/static/index.html
<!doctype html>
<html lang="en" data-theme="jungle">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Cobra Boards</title>
<link rel="icon" href="/static/cobra-64.png" type="image/png" sizes="64x64">
<link rel="icon" href="/static/cobra-32.png" type="image/png" sizes="32x32">
<link rel="apple-touch-icon" href="/static/cobra-192.png">
<link rel="stylesheet" href="/static/app.css">
<script>try { const t = new URLSearchParams(location.search).get("theme") || localStorage.getItem("cobra-theme");
if (t) document.documentElement.dataset.theme = t; } catch (e) {}</script>
</head>
<body>
<div class="app">
<header class="top">
<button class="btn icon ghost burger" id="burger" aria-label="Open the board list">☰</button>
<a class="brand" href="#/" aria-label="Cobra Boards home">
<img src="/static/cobra-64.png" alt="" width="30" height="30">
<span>Cobra <b>Boards</b></span>
</a>
<div class="search">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg>
<input id="q" type="search" placeholder="Search cards, or #12" aria-label="Search cards">
</div>
<div class="spacer"></div>
<button class="btn icon ghost bell" id="bell" aria-label="Notifications" title="Notifications">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/></svg>
<span class="badge" id="nb" hidden></span></button>
<div class="themes" aria-label="Theme">
<button data-t="jungle" title="Jungle night" style="background:#13241f"></button>
<button data-t="daylight" title="Daylight" style="background:#f4f6f5"></button>
<button data-t="venom" title="Venom" style="background:#b6f23a"></button>
</div>
<div class="me"><span class="who" id="who"></span><span id="meav"></span>
<a class="btn ghost" href="/.dodil/auth/logout">Sign out</a></div>
</header>
<nav class="side" id="side" aria-label="Boards">
<button class="nav" data-go="#/week"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg>My week<span class="count" id="c-week"></span></button>
<button class="nav" data-go="#/overdue"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 9v4M12 17h.01"/><path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/></svg>Overdue<span class="count" id="c-late"></span></button>
<h4>Boards</h4>
<div id="boards"></div>
<form class="newboard" id="newboard"><input id="nbt" placeholder="+ New board" aria-label="New board title" maxlength="80"></form>
</nav>
<main class="main" id="main" tabindex="-1"></main>
</div>
<div id="layer"></div>
<script src="/static/app.js"></script>
</body>
</html>