patx/veela

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Veela is a tiny Python/ASGI backend for HTML and JavaScript apps.">
  <title>Veela | Single-file Python/ASGI backend and web server</title>
  <meta property="og:title" content="Veela">
  <meta property="og:description" content="A magical, single-file Python backend for simple JavaScript web apps.">
  <meta property="og:type" content="website">
  <meta property="og:image" content="https://patx.gitman.io/veela/social-card.png">
  <meta property="og:image:alt" content="Veela: a magical, single-file Python backend, with its long-haired gremlin mascot.">
  <meta property="og:url" content="https://harrisonerd.com/veela">
  <meta name="twitter:card" content="summary_large_image">
  <style>
    :root { color-scheme: light; font-family: Arial, Helvetica, sans-serif; color: #133f48; background: #f4fbf9; }
    * { box-sizing: border-box; }
    body { margin: 0; }
    main { width: 100%; }
    .intro { text-align: center; padding: 12px 24px 16px; }
    h1 { margin: 0; }
    h1 img { display: block; width: min(160px, 100%, 21dvh); height: auto; margin: auto; }
    .intro p { margin: 8px auto 0; max-width: 760px; font-size: 18px; line-height: 1.4; }
    a { color: inherit; text-underline-offset: 4px; }
    a:hover { color: #146e73; }
    a:focus-visible { outline: 2px solid #146e73; outline-offset: 5px; }
    footer { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px 32px; padding: 16px 24px; font-size: 15px; }
    .examples { max-width: 800px; margin: 0 auto; padding: 0 24px; }
    .examples pre { margin-bottom: 12px; background: #e7f4f1; border: 1px solid #85b6b2; border-radius: 6px; }
    pre { margin: 0; padding: 12px 16px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; color: #133f48; font: 16px/1.4 ui-monospace, SFMono-Regular, Consolas, monospace; tab-size: 2; }
    .install-command { white-space: pre; overflow-wrap: normal; overflow-x: auto; }
    code { font: inherit; }
    @media (max-width: 700px) {
      .intro { padding-left: 12px; padding-right: 12px; }
      .intro p { font-size: 17px; }
    }
  </style>
</head>
<body>
  <main>
    <header class="intro">
      <h1><a href="https://harrisonerd.com/veela"><img src="https://patx.gitman.io/veela/veela-logo.png" alt="Veela" width="1254" height="1254"></a></h1>
      <p>Veela is a magical, single-file Python backend for simple JavaScript web apps. Just grab <a target="_blank" href="https://gitman.io/patx/veela/src/veela.py">veela.py</a> and go! View the documentation and source <a target="_blank" href="https://gitman.io/patx/veela">here</a>.</p>
    </header>
    <section class="examples" aria-label="Installation and example">
      <pre class="install-command" aria-label="Install"><code>wget https://gitman.io/patx/veela/raw/veela.py</code></pre>
      <pre aria-label="app.py"><code>from veela import App

app = App()

@app.route('/')
async def index(request):
    return {"hello": "world"}

app.run()
</code></pre>
    </section>
  </main>
  <footer>

    <a href="https://harrisonerd.com/wred">Forked from Wred</a>
  </footer>
</body>
</html>