Rin v0.3.0-rc.1 Prerelease

Release Date: March 6, 2026

v0.3.0-rc.1 is the first consolidated prerelease cut after v0.2.0. The goal of this release candidate is to turn a long span of architecture, packaging, auth, and deployment work into a version that can be reviewed and upgraded against with a clear migration path.

What this prerelease focuses on

Backend runtime overhaul

The server has moved away from the old Elysia-based path and into a lighter Worker-oriented runtime, then into the current Hono-based app assembly.

  • Routes and dependencies are loaded on demand
  • Middleware, error handling, and context typing are more explicit
  • The server no longer carries the same framework and dependency overhead as before

API and shared package cleanup

This version line also clarifies the shared boundary between apps:

  • @rin/api, @rin/config, and @rin/ui are now part of the workspace story
  • The frontend no longer depends on Eden Treaty-style calls and instead uses a custom type-safe API client
  • Development, deployment, database, and release tasks are grouped under the Rin CLI

Auth and configuration updates

Authentication and configuration assumptions changed substantially:

  • Auth moved from authorization headers to cookies
  • The previous OAuth dependency was replaced with an in-repo implementation
  • Username/password login, /login, and /profile were added
  • Older deployment assumptions around FRONTEND_URL and API_URL were removed

Data and performance work

Alongside the runtime changes, this prerelease includes several foundational upgrades:

  • PV/UV aggregation now uses HyperLogLog
  • CacheImpl can persist through either D1 or S3
  • Config, cache, queue, and Wrangler-related workflows were tightened across several follow-up changes

Content and editing improvements

Major user-facing features added after v0.2.0 are also part of this release candidate:

  • Moments, search, pinned feeds, and adjacent feed navigation
  • Friend sorting, apply flow, and notifications
  • AI summaries and custom model support
  • Monaco editor improvements
  • Mermaid, KaTeX, callouts, alerts, code copy, image lightbox, and improved markdown image rendering

Breaking changes

API client usage changed

The older Eden Treaty-style interface is no longer the supported path.

Old:

const feeds = await client.feed.index.get({ query: { page: 1 } });

New:

const feeds = await client.feed.list({ page: 1 });

Auth flow changed

If you customized auth around the previous header-based or modal-based flow, re-test that integration:

  • Session transport is now cookie-based
  • Login moved to a dedicated page
  • Profile editing now has its own page

Deployment assumptions changed

The older deployment model around FRONTEND_URL and API_URL has been removed. Upgrades should be validated against the current workflows, generated Wrangler config, and repository-level variables.

Upgrade guidance

When upgrading from v0.2.0, review at least the following:

  1. Update any custom frontend API calls to the new client surface.
  2. Re-test auth behavior with cookies, the dedicated login page, and your callback flow.
  3. Decide whether CACHE_STORAGE_MODE should use database or s3.
  4. Confirm GitHub OAuth variables use RIN_GITHUB_CLIENT_ID and RIN_GITHUB_CLIENT_SECRET.
  5. Re-run the current build and deployment flow instead of relying on older release habits.

Fixes folded into this release candidate

This prerelease also includes a set of fixes that affect pre-existing behavior, including:

  • RSS route and scheduled task issues
  • CORS / OPTIONS handling and some query parsing bugs
  • S3 path-style handling and image placeholder metadata
  • Wrangler version drift, queue naming, and environment propagation issues in deploy workflows
  • Timeline rendering, index scrolling, mobile behavior, and cache initialization issues

Fixes that only clean up features introduced after v0.2.0 are intentionally not expanded here one by one.

Current status

v0.3.0-rc.1 is still a prerelease.

If your fork has custom auth, deployment, API wrapper, or cache-layer changes, validate them in your own environment before treating this line as a production baseline.

Feedback

If you find issues while validating v0.3.0-rc.1, report them through: