github journiv/journiv-app v0.1.0-beta.25

6 hours ago

Journiv v0.1.0-beta.25: The new frontend

Important

This release contains patch for a security vulnerablity. Please update your Journiv instance to this beta.25 (latest) release. See notes below for details.

This is one of the largest user-facing updates to Journiv so far.

The main highlight of v0.1.0-beta.25 is the introduction of Journiv's completely new React-based web frontend. The new interface is now the default Journiv web experience, replacing the previous Flutter frontend while keeping the legacy interface available at /legacy/ during the transition.

The release contains more than a frontend rewrite: it establishes a new design system and frontend architecture, brings many Journiv features into the new interface, introduces PWA and offline-reading support, strengthens browser authentication, and includes a number of backend improvements required by the new experience.

Highlights

A completely new Journiv web experience

Journiv's web interface has been rebuilt using React and TypeScript with a new responsive design system based on shadcn components.

The new frontend has been designed for both desktop and mobile use, with responsive navigation, adaptive dialogs and mobile sheets, improved loading and error states, and a more consistent interface throughout the application.

React is now served as the primary interface at /. If you need the previous Flutter interface while the new frontend continues to mature, it remains available at:

/legacy/

There is also a Use legacy interface option under Help & feedback.

πŸ“ A redesigned writing and reading experience

The new editor and reader are now integrated throughout the React application.

Highlights include:

  • Rich-text editing powered by Quill
  • Markdown-style typing shortcuts for headings, lists, quotes, emphasis, links, and more
  • Draft autosave and local draft recovery
  • Conflict handling to help prevent accidental overwrites
  • Improved media attachment handling
  • Entry deletion from the new interface
  • PDF export directly from the reader
  • Prompt support while writing
  • A new full-screen media viewer with image zoom, video playback, keyboard navigation, deep links, and media recovery

πŸ—‚οΈ Timeline, Calendar and Library

The new frontend includes the main Journiv browsing and organization experiences, including:

  • Timeline browsing and search
  • Calendar navigation
  • Journals and journal management
  • Media browsing
  • People
  • Tags
  • Moods
  • Activities
  • Goals
  • Filtering Moments by related entities
  • Improved preservation of search and filter state while navigating

The supporting backend media and Moment APIs were also expanded as part of this release.

πŸ“± Install Journiv as a PWA

Journiv can now be installed as a Progressive Web App on supported desktop and mobile browsers.

PWA support includes:

  • Installable application manifest and icons
  • Service-worker based application caching
  • Optional bounded offline reading
  • Offline status and connection-aware navigation
  • Offline storage management
  • Application update notifications
  • Safer update handling when unsaved drafts exist

⚠️ About the legacy frontend

The React frontend is now the default Journiv interface, but this is still a beta release and the transition is intentionally gradual.

The previous Flutter web frontend remains available at:

/legacy/

This provides a fallback while the React interface continues to receive improvements and remaining gaps are addressed.

πŸ”’ Security

Fixed an SSRF vulnerability in the Immich integration that could allow an authenticated non-admin user to make Journiv request internal network resources.

The fix restricts custom Immich URLs to administrators and adds destination validation, redirect protection, DNS-rebinding mitigation, and safer credential forwarding.

Users running v0.1.0-beta.24 and below should upgrade to beta.25, especially on untrusted multi-user instances.

Thanks to Ahmed Ibrahim @skeletonsec and Onur Alp Akin @otuva for responsibly reporting the issue.

See #655.

What's Changed

Full Changelog: v0.1.0-beta.24...v0.1.0-beta.25

Don't miss a new journiv-app release

NewReleases is sending notifications on new releases.