krz/hutch

an ios client for sourcehut

clone: git clone https://gitbay.org/krz/hutch.git

v2.5.1: website/index.html · raw

  1<!doctype html>
  2<html lang="en">
  3
  4<head>
  5  <meta charset="utf-8" />
  6  <meta name="viewport" content="width=device-width, initial-scale=1" />
  7  <title>Hutch — native SourceHut client for iOS</title>
  8  <meta name="description"
  9    content="Hutch is a native iOS client for SourceHut with support for repositories, builds, tickets, mailing lists, projects, and more." />
 10  <link rel="stylesheet" href="styles.css" />
 11</head>
 12
 13<body>
 14  <div class="page">
 15    <header class="site-header">
 16      <div class="brand-row">
 17        <a class="brand" href="index.html">
 18          <img class="app-icon" src="https://img.cleberg.net/apps/hutch/logo/hutch_light.png" alt="Hutch icon" />
 19          <div>
 20            <h1>Hutch</h1>
 21            <p class="subtitle">A native SourceHut client for iOS</p>
 22          </div>
 23        </a>
 24
 25        <div class="hero-actions">
 26          <a href="#" class="store-link" aria-label="Download Hutch on the App Store">
 27            <img src="storebutton.svg" class="store-img" alt="Download on the App Store" />
 28          </a>
 29
 30          <nav class="header-links" aria-label="Hutch links">
 31            <a href="https://sr.ht/~ccleberg/Hutch/">Source Code</a>
 32            <span>·</span>
 33            <a href="mailto:hello@cleberg.net">Email</a>
 34          </nav>
 35        </div>
 36      </div>
 37
 38      <div class="intro-copy">
 39        <p class="lede">SourceHut workflows, built for mobile.</p>
 40        <p>Hutch is a fast, native iOS app for working with SourceHut when you are away from your desk. It focuses on
 41          the things that matter on mobile: triaging work, reviewing patches, monitoring builds, following discussions,
 42          and managing repositories and tickets without a browser.</p>
 43      </div>
 44    </header>
 45
 46    <main>
 47      <div class="info-banner">
 48        Hutch is currently under review by Apple and not yet available for download.
 49        This page will be updated with the App Store link once approved.
 50      </div>
 51      <section class="content-grid">
 52        <div>
 53          <h2>Why it exists</h2>
 54          <p>SourceHut is intentionally simple, efficient, and workflow-focused. Hutch brings that same philosophy to
 55            iOS with an interface designed for quick decisions and real work on the go.</p>
 56          <p>Instead of treating mobile as a stripped-down viewer, Hutch is meant to be a practical client for reading,
 57            responding, creating, and managing work across the SourceHut ecosystem.</p>
 58        </div>
 59
 60        <div>
 61          <h2>What it does</h2>
 62          <ul class="feature-list">
 63            <li>Review patch threads and browse mailing lists</li>
 64            <li>Manage trackers, tickets, assignees, labels, and comments</li>
 65            <li>Browse Git and Mercurial repositories, files, refs, commits, and diffs</li>
 66            <li>Submit, monitor, retry, and inspect builds and logs</li>
 67            <li>Follow projects linking repositories, trackers, and lists</li>
 68            <li>Manage profile settings, SSH keys, PGP keys, and access tokens</li>
 69          </ul>
 70        </div>
 71      </section>
 72
 73      <section class="screenshots">
 74        <h2>Interface</h2>
 75        <p class="section-intro">From patch review to trackers, builds, repositories, and project organization, Hutch is
 76          built to make SourceHut feel at home on iOS.</p>
 77        <div class="shot-scroll" aria-label="Hutch screenshots">
 78          <figure class="shot-card">
 79            <img src="https://img.cleberg.net/apps/hutch/screenshots/iphone/01_patch.jpg" alt="Patch review screenshot"
 80              loading="lazy" />
 81            <figcaption>Review patches anywhere</figcaption>
 82          </figure>
 83          <figure class="shot-card">
 84            <img src="https://img.cleberg.net/apps/hutch/screenshots/iphone/02_thread.jpg" alt="Threaded inbox screenshot"
 85              loading="lazy" />
 86            <figcaption>Stay on top of discussions</figcaption>
 87          </figure>
 88          <figure class="shot-card">
 89            <img src="https://img.cleberg.net/apps/hutch/screenshots/iphone/03_builds.jpg" alt="Builds screenshot"
 90              loading="lazy" />
 91            <figcaption>Monitor builds in real time</figcaption>
 92          </figure>
 93          <figure class="shot-card">
 94            <img src="https://img.cleberg.net/apps/hutch/screenshots/iphone/04_tickets.jpg" alt="Tickets screenshot"
 95              loading="lazy" />
 96            <figcaption>Manage issues on the go</figcaption>
 97          </figure>
 98          <figure class="shot-card">
 99            <img src="https://img.cleberg.net/apps/hutch/screenshots/iphone/05_repo.jpg" alt="Repository diff screenshot"
100              loading="lazy" />
101            <figcaption>Explore your code</figcaption>
102          </figure>
103          <figure class="shot-card">
104            <img src="https://img.cleberg.net/apps/hutch/screenshots/iphone/06_projects.jpg" alt="Projects screenshot"
105              loading="lazy" />
106            <figcaption>Everything in one place</figcaption>
107          </figure>
108          <figure class="shot-card">
109            <img src="https://img.cleberg.net/apps/hutch/screenshots/iphone/07_actions.jpg"
110              alt="Build submission screenshot" loading="lazy" />
111            <figcaption>Take action instantly</figcaption>
112          </figure>
113        </div>
114      </section>
115
116      <section class="feature-sections">
117        <div class="feature-panel">
118          <h2>Major features</h2>
119          <ul class="feature-list">
120            <li>Home dashboard with projects, assigned tickets, recent builds, and inbox shortcuts</li>
121            <li>Unread-first inbox with thread detail, patch rendering, and reply via Apple Mail</li>
122            <li>Git and Mercurial repository browsing, settings, ACLs, and creation flows</li>
123            <li>Tracker and ticket workflows including comments, assignees, resolutions, and labels</li>
124            <li>Build submission, build history, log viewing, cancellation, and rebuild flows</li>
125            <li>Project views linking repositories, trackers, and mailing lists into one hub</li>
126          </ul>
127        </div>
128
129        <div class="feature-panel">
130          <h2>Built for SourceHut users</h2>
131          <ul class="feature-list">
132            <li>Native Swift interface with no analytics, ads, or tracking SDKs</li>
133            <li>Deep links for repositories, tickets, and builds via <code>hutch://</code></li>
134            <li>Share actions across repositories, files, commits, tickets, builds, and profiles</li>
135            <li>Pull-to-refresh, loading states, empty states, and error overlays across major screens</li>
136            <li>Keychain-backed authentication with secure SourceHut personal access tokens</li>
137            <li>Profile management including avatars, SSH keys, PGP keys, and token/grant viewing</li>
138          </ul>
139        </div>
140      </section>
141
142      <section class="resources">
143        <h2>Resources</h2>
144        <ul class="resource-list">
145          <li><a href="https://sr.ht/~ccleberg/Hutch/">Project homepage</a></li>
146          <li><a href="https://todo.sr.ht/~ccleberg/Hutch/">Issue tracker</a></li>
147          <li>Mailing Lists:
148            <ul>
149              <li><a href="https://lists.sr.ht/~ccleberg/hutch-devel">hutch-devel</a></li>
150              <li><a href="https://lists.sr.ht/~ccleberg/hutch-announce">hutch-announce</a></li>
151            </ul>
152          </li>
153          <li><a href="privacy.html">Privacy policy</a></li>
154        </ul>
155      </section>
156    </main>
157
158    <footer class="site-footer">
159      © 2026 <a href="https://cleberg.net">Christian Cleberg</a>
160    </footer>
161  </div>
162</body>
163
164</html>