lilith-platform.live/codebase/@features/cocotte-tech/oss/index.html

226 lines
8.1 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="noindex,nofollow" />
<title>Cocotte — open source</title>
<link rel="canonical" href="https://cocotte.dev/" />
<meta property="og:title" content="Cocotte — open source" />
<meta property="og:description" content="Open-source packages from Cocotte. MIT unless noted." />
<meta property="og:url" content="https://cocotte.dev/" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="Cocotte — open source" />
<meta name="twitter:description" content="Open-source packages from Cocotte. MIT unless noted." />
<style>
@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Archivo:wght@400;500;600&display=swap');
:root {
--bg: #0f0d0c;
--card: #1a1815;
--card-2: #221f1c;
--ink: #f4f0ea;
--ink-2: #a8a39d;
--muted: #6e6862;
--rule: #2a2724;
--accent: #ff3d8a;
--accent-2: #66e0ff;
--display: "Archivo Black", "Archivo", system-ui, sans-serif;
--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--bg); color: var(--ink); }
body {
font-family: "Archivo", system-ui, sans-serif;
font-size: 15px;
line-height: 1.65;
-webkit-font-smoothing: antialiased;
}
a { color: var(--accent-2); text-decoration: none; }
a:hover { text-decoration: underline; }
.draft-banner {
background: rgba(245, 179, 66, .15);
border: 1px solid rgba(245, 179, 66, .5);
color: #f5b342;
padding: 12px 18px;
font-size: 13px;
text-align: center;
border-radius: 4px;
max-width: 720px;
margin: 24px auto 0;
font-family: -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
letter-spacing: .02em;
}
.draft-banner strong { color: #f5b342; font-weight: 600; }
.wrap { max-width: 760px; margin: 0 auto; padding: 0 28px; }
header.hero { padding: 72px 0 36px; }
.brandmark {
font-family: var(--display);
font-size: clamp(40px, 6vw, 56px);
line-height: 1;
letter-spacing: -.02em;
margin: 0 0 8px;
}
.brandmark .slash { color: var(--muted); font-weight: 400; }
.brandmark .oss { color: var(--accent-2); font-family: var(--mono); font-size: .55em; vertical-align: middle; letter-spacing: 0; }
.mission { color: var(--ink-2); max-width: 580px; margin: 24px 0 0; }
section { padding: 36px 0; border-top: 1px solid var(--rule); }
h2 {
font-family: var(--mono);
font-size: 13px;
text-transform: uppercase;
letter-spacing: .12em;
color: var(--ink-2);
margin: 0 0 20px;
font-weight: 600;
}
.pkg-list { list-style: none; padding: 0; margin: 0; }
.pkg {
padding: 16px 0;
border-bottom: 1px solid var(--rule);
}
.pkg:last-child { border-bottom: 0; }
.pkg-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.pkg-name {
font-family: var(--mono);
font-size: 14px;
color: var(--ink);
font-weight: 500;
}
.pkg-status {
font-size: 11px;
padding: 2px 8px;
border-radius: 3px;
background: rgba(245, 179, 66, .12);
color: #f5b342;
border: 1px solid rgba(245, 179, 66, .3);
letter-spacing: .04em;
}
.pkg-license {
font-family: var(--mono);
font-size: 11px;
color: var(--muted);
margin-left: auto;
}
.pkg-desc {
margin: 6px 0 0;
color: var(--ink-2);
font-size: 14px;
max-width: 560px;
}
.links-list { list-style: none; padding: 0; margin: 0; font-family: var(--mono); font-size: 14px; }
.links-list li { padding: 6px 0; color: var(--muted); }
.links-list li b { color: var(--ink-2); font-weight: 500; margin-right: 8px; }
footer {
padding: 48px 0;
border-top: 1px solid var(--rule);
color: var(--muted);
font-size: 13px;
font-family: var(--mono);
}
footer a { color: var(--ink-2); }
footer .row { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
</style>
</head>
<body>
<aside class="draft-banner" role="status" aria-label="Draft notice">
<strong>⚠ DRAFT — domain not yet purchased.</strong>
Preview-only. Do not deploy to production until the domain is in Quinn's Joker account and a formal deploy task is opened.
</aside>
<div class="wrap">
<header class="hero">
<h1 class="brandmark">Cocotte <span class="slash">/</span> <span class="oss">open-source</span></h1>
<p class="mission">
Tools that aren't talent-private. MIT-licensed unless noted. Built for our own platforms first,
published when the API stops embarrassing us.
</p>
</header>
<section>
<h2>Intended packages</h2>
<ul class="pkg-list">
<li class="pkg">
<div class="pkg-head">
<span class="pkg-name">@cocotte/booking-core</span>
<span class="pkg-status">🏗️ in development</span>
<span class="pkg-license">MIT</span>
</div>
<p class="pkg-desc">Inbound-request model, lifecycle states, and platform-agnostic booking primitives. The shape every adapter normalizes into.</p>
</li>
<li class="pkg">
<div class="pkg-head">
<span class="pkg-name">@cocotte/image-protection</span>
<span class="pkg-status">🏗️ in development</span>
<span class="pkg-license">MIT</span>
</div>
<p class="pkg-desc">Reverse-image search orchestration, takedown templates, evidence-bundle generation. Safe parts only — heuristics and policy stay private.</p>
</li>
<li class="pkg">
<div class="pkg-head">
<span class="pkg-name">@cocotte/multi-tenant-routing</span>
<span class="pkg-status">🏗️ in development</span>
<span class="pkg-license">MIT</span>
</div>
<p class="pkg-desc">Brand-aware request routing for one operator running several public-facing tour brands. Hostname → brand → handler, with a clean isolation contract.</p>
</li>
<li class="pkg">
<div class="pkg-head">
<span class="pkg-name">@cocotte/screening</span>
<span class="pkg-status">🏗️ in development</span>
<span class="pkg-license">MIT</span>
</div>
<p class="pkg-desc">Screening-form schemas, redaction helpers, retention policy hooks. Does not ship any provider's actual screening rules — those are talent-private.</p>
</li>
<li class="pkg">
<div class="pkg-head">
<span class="pkg-name">@cocotte/platform-adapters</span>
<span class="pkg-status">🏗️ in development</span>
<span class="pkg-license">MIT</span>
</div>
<p class="pkg-desc">Thin clients for the booking platforms we read from. Read-only. No credentials shipped, no scraping in core.</p>
</li>
</ul>
</section>
<section>
<h2>Links</h2>
<ul class="links-list">
<li><b>github:</b> <span>github.com/cocotte-tech (placeholder — org not created)</span></li>
<li><b>registry:</b> <span>npm.cocotte.dev (placeholder — Verdaccio mirror pending)</span></li>
<li><b>contact:</b> <a href="mailto:oss@cocotte.dev">oss@cocotte.dev</a></li>
</ul>
</section>
<section>
<h2>Contributing</h2>
<p style="color: var(--ink-2); font-size: 14px; max-width: 580px;">
We will accept PRs once the packages are real. Until then, file issues against the intended scope —
we'd rather know what you wish existed than guess.
</p>
</section>
<footer>
<div class="row">
<span><a href="https://cocotte.io/">← cocotte.io</a></span>
<span>MIT unless noted</span>
<span>still bootstrapping</span>
</div>
</footer>
</div>
</body>
</html>