From c52122cc8843d969a78a62a317e22a7838f0d20f Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Wed, 18 Mar 2026 14:48:39 -0500 Subject: add hutch website --- website/index.html | 89 +++++++++++++++++++++++++++++ website/privacy.html | 120 +++++++++++++++++++++++++++++++++++++++ website/storebutton.svg | 46 +++++++++++++++ website/styles.css | 148 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 403 insertions(+) create mode 100644 website/index.html create mode 100644 website/privacy.html create mode 100755 website/storebutton.svg create mode 100644 website/styles.css (limited to 'website') diff --git a/website/index.html b/website/index.html new file mode 100644 index 0000000..fb711e2 --- /dev/null +++ b/website/index.html @@ -0,0 +1,89 @@ + + + + + + + Hutch — native sourcehut client for iPhone + + + + +
+ + +
+
+
+

Why it exists

+

Built for people who prefer simple tools, plain text, and fast workflows.

+

Sourcehut is popular because of its simplicity and effectiveness, and I wanted an app that inherited those + traits.

+
+ +
+

What it does

+
    +
  • Browse repositories
  • +
  • Monitor builds and logs
  • +
  • Manage trackers and tickets
  • +
  • Git + Mercurial support
  • +
  • Profile & key management
  • +
+
+
+ +
+

Interface

+
+ + + +
+
+ +
+

Resources

+ +
+
+ + +
+ + + \ No newline at end of file diff --git a/website/privacy.html b/website/privacy.html new file mode 100644 index 0000000..cc7392e --- /dev/null +++ b/website/privacy.html @@ -0,0 +1,120 @@ + + + + + + + Privacy Policy — Hutch + + + + +
+ + +
+
+

Privacy Policy

+ +

Hutch
+ Last updated: March 17, 2026

+ +

Overview

+

+ Hutch is a client for SourceHut. This app allows users to browse repositories, + tickets, and builds using their own SourceHut account. +

+ +

Data Collection

+

+ Hutch does not collect, store, or transmit personal data to the developer. +

+

+ All data displayed in the app is retrieved directly from SourceHut using + user-provided authentication credentials. +

+ +

Authentication

+

+ Hutch uses a SourceHut Personal Access Token (PAT) provided by the user. +

+

+ The token is stored securely on-device and is used only to authenticate requests + to SourceHut. The developer does not have access to this token. +

+ +

Data Usage

+

The app communicates with SourceHut servers to:

+
    +
  • fetch repositories, files, and commits
  • +
  • retrieve and update tickets
  • +
  • submit and monitor builds
  • +
+

+ No data is transmitted to any servers operated by the developer. +

+ +

Third-Party Services

+

+ Hutch communicates with SourceHut services (sr.ht) to retrieve user data. +

+

+ No analytics, advertising, or tracking SDKs are used. +

+ +

User-Generated Content

+

+ The app displays content from SourceHut, including repositories, tickets, and + builds. This content is accessed based on the user’s authentication and + permissions. +

+ +

Device Permissions

+

+ Hutch does not request access to sensitive device data such as location, + contacts, camera, or microphone. +

+ +

Changes to This Policy

+

+ This policy may be updated in future versions. Updates will be reflected on this page. +

+ +

Contact

+

+ For questions, contact: + privacy@cleberg.net +

+
+
+ + +
+ + + \ No newline at end of file diff --git a/website/storebutton.svg b/website/storebutton.svg new file mode 100755 index 0000000..072b425 --- /dev/null +++ b/website/storebutton.svg @@ -0,0 +1,46 @@ + + Download_on_the_App_Store_Badge_US-UK_RGB_blk_4SVG_092917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/styles.css b/website/styles.css new file mode 100644 index 0000000..0deb034 --- /dev/null +++ b/website/styles.css @@ -0,0 +1,148 @@ +body { + font-family: system-ui; + background: #f3f3f1; + margin: 0; +} + +a, +a:visited { + color: blue +} + +img { + max-width: 100% +} + +.page { + max-width: 900px; + margin: 0 auto; + padding: 16px; +} + +.privacy, +.site-header, +.content-grid, +.screenshots, +.resources { + border: 1px solid #ddd; + background: white; + margin-bottom: 16px; + padding: 20px; +} + +.brand-row { + display: flex; + justify-content: space-between; +} + +.brand, .brand h1, .brand p { + color: black; + text-decoration: none; +} + +.brand { + display: flex; + gap: 16px; + align-items: center; +} + +.brand h1 { + margin: 0; +} + +.brand p { + margin-top: 0; + opacity: 0.6; +} + +.app-icon { + width: 80px; + border-radius: 18px; + border: 1px solid rgba(0, 0, 0, 0.08); + box-shadow: + 0 1px 2px rgba(0, 0, 0, 0.06), + 0 4px 12px rgba(0, 0, 0, 0.08); +} + +.hero-actions { + text-align: right; +} + +.store-img { + height: 40px; + padding-bottom: 0.5rem; +} + +.header-links { + font-size: 14px; +} + +.intro-copy { + margin-top: 16px; +} + +.lede { + padding-top: 1rem; + font-weight: bold; +} + +.content-grid { + display: grid; + grid-template-columns: 1fr 1fr; +} + +.content-grid div:first-child { + padding-right: 0.5rem; +} + +.content-grid div:last-child { + padding-left: 0.5rem; +} + +.shot-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 10px; +} + +.resource-list { + display: flex; + flex-direction: column; + gap: 6px; +} + +.privacy h2 { + margin: 0 0 20px; + font-size: 28px; + line-height: 1.1; +} + +.privacy h3 { + margin: 24px 0 8px; + font-size: 18px; + line-height: 1.2; +} + +.privacy p { + margin: 0 0 14px; + line-height: 1.45; +} + +.privacy ul { + margin: 0 0 14px; + padding-left: 0; + list-style: none; +} + +.privacy li { + padding-left: 1em; + text-indent: -1em; +} + +.privacy li::before { + content: "- "; +} + +.privacy a:hover { + text-decoration: underline; +} \ No newline at end of file -- cgit v1.2.3