oficina / home Public

The Mac apps are real downloads now

They were published at oficina/native-releases, not on the per-app repos'
releases, which is why I kept reporting there was nothing there. Five apps,
Apple silicon, Developer ID signed by Team Tito Limited and notarized.

Verified rather than assumed: downloaded all five over HTTPS, applied the
com.apple.quarantine attribute a browser would set, and ran spctl against
each. All five report accepted. That was the blocker — the earlier bundles
were ad-hoc signed and rejected, and the App Store .pkg exports in
testflight-worktrees are signed 3rd Party Mac Developer Installer, which is
for uploading, not for opening.

So the directory's Mac column is five real Download links, and Calls gets
one too — the page said it had no Mac app, which was wrong.

"Why you can't download them yet" is replaced by how to install: unzip,
move to Applications once, and Sparkle handles it after that. The macOS
floors differ and are stated (26 for Docs and Sheets, 14 for the rest).
Slides has no Mac app and still says so.

iPhone stays Soon. Those builds exist but have never been uploaded and
there are no App Store Connect records, so TestFlight is not a thing anyone
can join yet.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Paul Campbell pushed by paul@keymail.dev 8ceaf7d5111506e979fb41c63b5f521f864af15d parent 2beb423
1 file changed, +22 −21
  • internal/home/static/site/index.html +22 −21

CI failed — run details

diff --git a/internal/home/static/site/index.html b/internal/home/static/site/index.html
index 7672482..edd481f 100644
--- a/internal/home/static/site/index.html
+++ b/internal/home/static/site/index.html
@@ -39,7 +39,7 @@
<div class="plate" id="directory">
<table class="directory">
- <caption>Everything in Oficina, and where you can open it today. Every app runs in the browser now; the Mac and iPhone apps are close.</caption>
+ <caption>Everything in Oficina, and where you can open it today. Every app runs in the browser, five have a Mac app, and the iPhone apps are close.</caption>
<thead>
<tr>
<th scope="col"><span class="vh">App</span></th>
@@ -54,14 +54,14 @@
<th scope="row" class="c-app">Docs</th>
<td class="c-what">Write together, in the same paragraph.</td>
<td class="c-get" data-label="Web"><a href="https://docs.oficina.works">Open</a></td>
- <td class="c-get" data-label="Mac"><a class="soon" href="#native">Soon</a></td>
+ <td class="c-get" data-label="Mac"><a href="https://raw.amadan.net/oficina/native-releases/main/docs/releases/net.amadan.oficina.docs-2.zip">Download</a></td>
<td class="c-get" data-label="iPhone"><a class="soon" href="#testflight">Soon</a></td>
</tr>
<tr style="--row:2">
<th scope="row" class="c-app">Sheets</th>
<td class="c-what">Formulas, ranges and a grid that keeps up.</td>
<td class="c-get" data-label="Web"><a href="https://sheets.oficina.works">Open</a></td>
- <td class="c-get" data-label="Mac"><a class="soon" href="#native">Soon</a></td>
+ <td class="c-get" data-label="Mac"><a href="https://raw.amadan.net/oficina/native-releases/main/sheets/releases/net.amadan.oficina.sheets-2.zip">Download</a></td>
<td class="c-get" data-label="iPhone"><a class="soon" href="#testflight">Soon</a></td>
</tr>
<tr style="--row:3">
@@ -75,21 +75,21 @@
<th scope="row" class="c-app">Calendar</th>
<td class="c-what">Everyone&rsquo;s week, without the reply-all.</td>
<td class="c-get" data-label="Web"><a href="https://calendar.oficina.works">Open</a></td>
- <td class="c-get" data-label="Mac"><a class="soon" href="#native">Soon</a></td>
+ <td class="c-get" data-label="Mac"><a href="https://raw.amadan.net/oficina/native-releases/main/calendar/releases/net.amadan.oficina.calendar-2.zip">Download</a></td>
<td class="c-get" data-label="iPhone"><a class="soon" href="#testflight">Soon</a></td>
</tr>
<tr style="--row:5">
<th scope="row" class="c-app">Calls</th>
<td class="c-what">Meet without installing anything first.</td>
<td class="c-get" data-label="Web"><a href="https://meet.oficina.works">Open</a></td>
- <td class="c-get c-none" data-label="Mac"><span aria-hidden="true">—</span><span class="vh">No Mac app</span></td>
+ <td class="c-get" data-label="Mac"><a href="https://raw.amadan.net/oficina/native-releases/main/meet/releases/net.amadan.oficina.meet-2.zip">Download</a></td>
<td class="c-get c-none" data-label="iPhone"><span aria-hidden="true">—</span><span class="vh">No iPhone app</span></td>
</tr>
<tr class="r-new" style="--row:6">
<th scope="row" class="c-app">Memoria <em>New</em></th>
<td class="c-what">Ask your own documents a question.</td>
<td class="c-get" data-label="Web"><a href="https://memoria.oficina.works">Open</a></td>
- <td class="c-get" data-label="Mac"><a class="soon" href="#native">Soon</a></td>
+ <td class="c-get" data-label="Mac"><a href="https://raw.amadan.net/oficina/native-releases/main/memoria/releases/net.amadan.oficina.memoria-2.zip">Download</a></td>
<td class="c-get" data-label="iPhone"><a class="soon" href="#testflight">Soon</a></td>
</tr>
</tbody>
@@ -166,28 +166,29 @@
<section class="band band-ink" id="native">
<div class="shell">
<h2 class="wide">Native apps, not a browser in a costume.</h2>
- <p class="hero-lead">The Mac and iPhone apps edit the same documents as the web
- apps, with native editors rather than an embedded web view. They launch fast,
- they keep working when the connection drops, and they sync when it comes back.</p>
+ <p class="hero-lead">Five of the six edit the same documents as the web apps,
+ with native editors rather than an embedded web view. They launch fast, they
+ keep working when the connection drops, and they sync when it comes back.</p>
<div class="plate plate-flat">
<ul class="dl-list">
- <li><span class="dl-app">Docs</span><span class="dl-state">Mac and iPhone built</span></li>
- <li><span class="dl-app">Sheets</span><span class="dl-state">Mac and iPhone built</span></li>
- <li><span class="dl-app">Calendar</span><span class="dl-state">Mac and iPhone built</span></li>
- <li><span class="dl-app">Memoria</span><span class="dl-state">Mac and iPhone built</span></li>
+ <li><span class="dl-app">Docs</span><a class="btn btn-bone btn-sm" href="https://raw.amadan.net/oficina/native-releases/main/docs/releases/net.amadan.oficina.docs-2.zip">Download</a></li>
+ <li><span class="dl-app">Sheets</span><a class="btn btn-bone btn-sm" href="https://raw.amadan.net/oficina/native-releases/main/sheets/releases/net.amadan.oficina.sheets-2.zip">Download</a></li>
+ <li><span class="dl-app">Calendar</span><a class="btn btn-bone btn-sm" href="https://raw.amadan.net/oficina/native-releases/main/calendar/releases/net.amadan.oficina.calendar-2.zip">Download</a></li>
+ <li><span class="dl-app">Memoria</span><a class="btn btn-bone btn-sm" href="https://raw.amadan.net/oficina/native-releases/main/memoria/releases/net.amadan.oficina.memoria-2.zip">Download</a></li>
+ <li><span class="dl-app">Calls</span><a class="btn btn-bone btn-sm" href="https://raw.amadan.net/oficina/native-releases/main/meet/releases/net.amadan.oficina.meet-2.zip">Download</a></li>
</ul>
- <p class="dl-req">Slides and Calls run in the browser and have no native app planned yet.</p>
+ <p class="dl-req">Apple silicon, signed and notarized. Docs and Sheets need macOS&nbsp;26; Calendar, Memoria and Calls need macOS&nbsp;14. Slides runs in the browser and has no Mac app yet.</p>
</div>
<div class="tf" id="testflight">
- <h3>Why you can&rsquo;t download them yet.</h3>
- <p>The apps are built and they work. What&rsquo;s left is paperwork:
- until they carry an Apple Developer ID and have been through
- notarization, macOS refuses to open them, and we&rsquo;d rather send you
- nothing than send you something your Mac calls damaged. The iPhone
- builds are waiting on TestFlight.</p>
-<p class="dl-req" style="border:0;padding-bottom:0">Until then, every app runs in the browser with nothing to install.</p>
+ <h3>Unzip it and move it to Applications.</h3>
+ <p>That first install is a real one — drag it across yourself. After that
+ the app updates itself: use <em>Check for Updates</em> in the app menu,
+ or turn on automatic checks and forget about it. Every update is
+ signed, and the app asks before it relaunches.</p>
+ <p>iPhone and iPad come through TestFlight, and that part isn&rsquo;t ready
+ yet. The builds exist; the invitations don&rsquo;t.</p>
</div>
</div>
</section>