duly / web/index.html · raw
<!doctype html><html lang="en" data-type="software"><head>  <meta charset="utf-8">  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">  <title>Duly</title>  <meta name="description" content="Send an invoice, get paid from any chain, keep your books straight.">  <meta name="theme-color" content="#f2f4f0" media="(prefers-color-scheme: light)">  <meta name="theme-color" content="#0c1322" media="(prefers-color-scheme: dark)">  <meta name="color-scheme" content="light dark">  <meta name="page-type" content="software">  <meta name="site-kind" content="software">  <link rel="icon" href="/icon.svg" type="image/svg+xml">  <link rel="preload" href="/fonts/archivo-var.woff2" as="font" type="font/woff2" crossorigin>  <link rel="preload" href="/fonts/jbmono-400.woff2" as="font" type="font/woff2" crossorigin>  <link rel="stylesheet" href="/style.css">  <script src="/boot.js"></script>  <script src="/vendor/qrcode.js" defer></script>  <script type="module" src="/app.js"></script></head><body>  <div id="app"></div>  <div id="toast" class="toast" role="status" aria-live="polite"></div>  <noscript>    <main class="wrap narrow stack">      <section class="card stack">        <h1>Duly</h1>        <p>Pay-by-link invoicing for freelancers and small businesses. A client pays with any major token on any major chain, and the business receives USDC on NEAR. The payment itself closes the invoice on-chain and moves the tax and subcontractor shares into their own balances in the same step.</p>        <p>This part of Duly is the app, which runs in your browser and needs JavaScript. The <a href="/">home page</a> explains Duly and lists the mainnet transactions without it, and <a href="/i/1-3">a paid invoice</a> shows what the chain records.</p>        <p>Source, tests and reproduction steps: <a href="https://code.swiftbotlab.workers.dev/duly">code.swiftbotlab.workers.dev/duly</a>.</p>      </section>    </main>  </noscript></body></html>