Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 55 additions & 1 deletion journal/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@

<section class="subpage-hero">
<span class="eyebrow">The journal</span>
<h1>What's shipping across the studio, in the open.</h1>
<h1>What&rsquo;s shipping across the studio, in the open.</h1>
<p>Dated entries from the live ventures, newest first. Each entry links to the <a href="../ventures/">venture brief</a> for the full current snapshot &mdash; roadmap, stack and stage.</p>
</section>

Expand All @@ -49,6 +49,60 @@ <h2 id="entries">Studio log.</h2>
</div>
<div class="venture-grid-2">

<article class="venture-card">
<div style="display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 4px;">
<span class="chip signal">AdoptDontShop</span>
<span style="font-size: 12px; color: var(--fg-muted);">1 Jul 2026</span>
</div>
<h4>API reliability; session tokens hardened; cold-start fix.</h4>
<p>A full review of the API gateway contract closed edge cases where some list endpoints mis-serialised array data, some DELETE and POST routes rejected valid requests, and the top picks endpoint returned malformed responses &mdash; all 939 gateway tests now pass and the interactive API docs at /docs accurately reflect every endpoint. Refresh tokens are now stored as one-way hashes; a database exposure can no longer replay an active session. The adopter portal, rescue dashboard and admin panel no longer return errors for around 40 seconds after a cold boot &mdash; all three now wait for the gateway to be healthy before serving.</p>
</article>

<article class="venture-card">
<div style="display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 4px;">
<span class="chip signal">AdoptDontShop</span>
<span style="font-size: 12px; color: var(--fg-muted);">30 Jun 2026</span>
</div>
<h4>Rescue events; live analytics data; profile update fix.</h4>
<p>Rescues can now create, publish and manage their own events &mdash; adoption days, fundraisers, volunteer sessions and community meetups &mdash; with attendee registration, check-in and capacity tracking built in. The rescue dashboard analytics page now shows real-time figures for adoption trends, application status, pet performance and top breeds; the previous placeholder data has been removed. A bug that silently dropped profile updates has been fixed &mdash; account changes now save correctly.</p>
</article>

<article class="venture-card">
<div style="display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 4px;">
<span class="chip signal">AdoptDontShop</span>
<span style="font-size: 12px; color: var(--fg-muted);">30 Jun 2026</span>
</div>
<h4>Security: password-reset and verification links hardened.</h4>
<p>The one-time tokens inside password-reset and email-verification emails are now stored as SHA-256 hashes on the server. A database read alone can no longer produce a valid link to take over an account.</p>
</article>

<article class="venture-card">
<div style="display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 4px;">
<span class="chip signal">AdoptDontShop</span>
<span style="font-size: 12px; color: var(--fg-muted);">29 Jun 2026</span>
</div>
<h4>Analytics reports: save, schedule and share. Policy and application security fixes.</h4>
<p>Rescue analytics reports can now be saved with a name, re-run to pull live figures, scheduled for recurring delivery and shared with team members. A bug preventing changes to a rescue&rsquo;s adoption policy from saving has been fixed. Adoption applications now derive the applicant&rsquo;s identity strictly from their authenticated session &mdash; a crafted request can no longer submit an application as a different user.</p>
</article>

<article class="venture-card">
<div style="display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 4px;">
<span class="chip signal">AdoptDontShop</span>
<span style="font-size: 12px; color: var(--fg-muted);">22&ndash;23 Jun 2026</span>
</div>
<h4>Admin panel: triage inbox, bulk pet management, privacy tools and staff visibility.</h4>
<p>A wave of admin improvements: moderation reports and support tickets now land in a single filterable, sortable triage inbox, making platform health easier to manage in one view. Admins can bulk-update pet listings and manage pets across every rescue from one place. A new privacy tools panel lets administrators export a user&rsquo;s personal data and schedule account deletion. The Rescue detail Staff tab surfaces current staff and pending invitations at a glance. Several previously broken actions &mdash; rescue dashboard analytics, rescue detail controls, support ticket assignment and staff management &mdash; have been restored.</p>
</article>

<article class="venture-card">
<div style="display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 4px;">
<span class="chip">Pairflix</span>
<span style="font-size: 12px; color: var(--fg-muted);">Jun 2026</span>
</div>
<h4>Watch on Netflix, Prime or Disney+ &mdash; one tap away. Picks now tracked.</h4>
<p>The TonightPicker recommendation card now shows deep-link buttons for every streaming platform a title is available on &mdash; tap to open it directly in the app, no searching required. Every recommendation now records whether the household accepted it, swapped it out, or dismissed it. Per-household 30-day stats surface your first-pick acceptance rate and a breakdown by platform.</p>
</article>

<article class="venture-card">
<div style="display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 4px;">
<span class="chip signal">AdoptDontShop</span>
Expand Down
10 changes: 5 additions & 5 deletions ventures/adopt-dont-shop/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ <h2 id="competition">Modern UX, adoption-only, multi-rescue in one app.</h2>
<div class="head">
<span class="eyebrow">Go-to-market</span>
<h2 id="gtm">Cluster, then influence, then national.</h2>
<p>Two-sided marketplaces don't survive a national cold start. We onboard density first.</p>
<p>Two-sided marketplaces don&rsquo;t survive a national cold start. We onboard density first.</p>
</div>
<div class="venture-grid-3">
<article class="venture-card">
Expand All @@ -177,14 +177,14 @@ <h4>Phase 3 &middot; National</h4>

<section class="venture-section" aria-labelledby="status">
<div class="head">
<span class="eyebrow">Where we are &middot; June 2026</span>
<span class="eyebrow">Where we are &middot; July 2026</span>
<h2 id="status">Alpha build is feature-complete. Compliance is the gate.</h2>
<p>The core adoption flow ships end-to-end in the alpha. The path to closed beta now runs through legal foundation, the data protection package and platform hardening &mdash; not more product code.</p>
</div>
<div class="venture-grid-3">
<article class="venture-card">
<h4>Shipped in the alpha</h4>
<p>Auth, rescue verification, pet listings with staff permissions, adopter browse/filter/like flow, rescue search &amp; discovery, real-time chat with unread counts and full-text search, email and in-app notifications with per-account channel preferences, admin broadcasts, document and image upload with signed delivery, automated content moderation, matching recommendations, saved analytics reports, a CMS for rescue-owned content pages, field-level role permissions, two-factor authentication (TOTP), per-user pet favourites, rescue custom application questions, staff invitation accept, GDPR right-to-erasure, personalised pet recommendations (Top Picks), autosaving application drafts, and account sanction notices. Microservices migration <strong>complete</strong> &mdash; all ten domain services (auth, pets, rescue, applications, notifications, chat, moderation, matching, audit, storage) run as independent gRPC containers behind the API gateway and the legacy monolith is deleted, with Redis-backed rate limiting, per-service circuit breakers, OpenTelemetry distributed tracing, Sigstore container signing, and full Docker dev + prod environments. Security hardening pass done: signed inter-service identity tokens, a full audit trail with payload redaction, an auditable deploy safety gate, interactive OpenAPI docs gated behind admin auth, all high-severity static-analysis findings resolved, and CI gating every merge on service tests and E2E.</p>
<p>Auth, rescue verification, pet listings with staff permissions, adopter browse/filter/like flow, rescue search &amp; discovery, real-time chat with unread counts and full-text search, email and in-app notifications with per-account channel preferences, admin broadcasts, document and image upload with signed delivery, automated content moderation, matching recommendations, saved analytics reports, a CMS for rescue-owned content pages, field-level role permissions, two-factor authentication (TOTP), per-user pet favourites, rescue custom application questions, staff invitation accept, GDPR right-to-erasure, personalised pet recommendations (Top Picks), autosaving application drafts, account sanction notices, rescue events (adoption days, fundraisers, volunteer sessions and community meetups with attendee registration, check-in and capacity tracking), live rescue analytics (real-time figures for adoption trends, application status, pet performance and top breeds), saved and scheduled analytics reports, an admin triage inbox combining moderation reports and support tickets in one filterable view, bulk pet management across all rescues, and admin privacy tools for GDPR data export and scheduled account deletion. Microservices migration <strong>complete</strong> &mdash; all ten domain services (auth, pets, rescue, applications, notifications, chat, moderation, matching, audit, storage) run as independent gRPC containers behind the API gateway and the legacy monolith is deleted, with Redis-backed rate limiting, per-service circuit breakers, OpenTelemetry distributed tracing, Sigstore container signing, and full Docker dev + prod environments. Security hardening pass done: signed inter-service identity tokens, a full audit trail with payload redaction, an auditable deploy safety gate, interactive OpenAPI docs gated behind admin auth, all high-severity static-analysis findings resolved, and CI gating every merge on service tests and E2E. API contract complete: all 939 gateway tests passing, interactive docs accurate at /docs.</p>
</article>
<article class="venture-card">
<h4>Three frontends, one platform</h4>
Expand Down Expand Up @@ -278,14 +278,14 @@ <h4>Reduced euthanasia rates</h4>
</article>
<article class="venture-card">
<h4>&ldquo;Adopt first&rdquo; before &ldquo;buy&rdquo;</h4>
<p>The cultural shift we're after &mdash; making adoption the default expectation, not the more difficult option.</p>
<p>The cultural shift we&rsquo;re after &mdash; making adoption the default expectation, not the more difficult option.</p>
</article>
</div>
</section>

<section class="quote" aria-label="Founder note">
<svg width="56" height="56" viewBox="0 0 24 24" fill="none" stroke="var(--i2-signal-400)" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 21V11a4 4 0 0 1 4-4h2v3H7a1 1 0 0 0-1 1v2h3v8z"/><path d="M14 21V11a4 4 0 0 1 4-4h2v3h-2a1 1 0 0 0-1 1v2h3v8z"/></svg>
<blockquote>&ldquo;The path to adoption should be simpler than the path to a breeder. Today it's the opposite.&rdquo;</blockquote>
<blockquote>&ldquo;The path to adoption should be simpler than the path to a breeder. Today it&rsquo;s the opposite.&rdquo;</blockquote>
<div class="quote-attrib">
<div class="quote-avatar" aria-hidden="true"></div>
<div>
Expand Down