dmslanes/lanes
Lanes - team task boards with roles, history and an MCP endpoint for Claude and ChatGPT
A remix template · 0 remixes · Remix dmslanes/lanes
app/web/static/index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Lanes</title>
<link rel="icon" href="/static/lanes.svg" type="image/svg+xml">
<link rel="stylesheet" href="/static/lanes.css">
</head>
<body>
<header class="top">
<a class="brand" href="/" aria-label="Lanes home"><img src="/static/lanes.svg" alt="" width="26" height="26"><span>Lanes</span></a>
<select id="ws" aria-label="Workspace"></select>
<nav class="views">
<button data-view="boards" class="on">Boards</button>
<button data-view="plate">My plate</button>
<button data-view="overdue">Overdue</button>
<button data-view="people">People</button>
</nav>
<span id="who" class="who"></span>
</header>
<main id="main"></main>
<dialog id="cardDlg">
<form method="dialog" id="cardForm">
<header><span id="cardNo" class="num"></span><button class="x" value="cancel" aria-label="Close">×</button></header>
<label>Title<input name="title" maxlength="200" required></label>
<label>Description<textarea name="description" rows="4" maxlength="5000"></textarea></label>
<div class="row">
<label>Assignee<select name="assignee"></select></label>
<label>Due<input name="due_date" type="date"></label>
</div>
<label>Labels <small>comma separated</small><input name="labels"></label>
<div class="deps"><span class="lab">Blocked by</span><span id="blockers"></span>
<input id="blockIn" placeholder="card #" inputmode="numeric" aria-label="Blocked by card number"><button type="button" id="blockAdd" class="link">Add</button></div>
<div class="ai"><button type="button" id="aiChecklist" class="link">✦ Turn into a checklist</button><button type="button" id="aiSimilar" class="link">✦ Find similar cards</button></div>
<ul id="similar" class="history"></ul>
<div class="actions">
<button type="button" id="delCard" class="danger link">Delete card</button>
<button value="save" class="primary">Save</button>
</div>
<h4>History</h4>
<ol id="history" class="history"></ol>
</form>
</dialog>
<template id="tplEmpty"><section class="empty">
<h1>Start a workspace</h1>
<p>A workspace is your team. You own it, invite people as members (can edit) or viewers (read only), and keep your boards in it.</p>
<form id="newWs" class="inline"><input name="name" placeholder="Workspace name, e.g. Acme" required maxlength="200"><button class="primary">Create</button></form>
</section></template>
<script src="/static/lanes.js" defer></script>
</body>
</html>