Soliloquy

Personal project ยท 2026

A private, local-first writing application built around a messenger-like interface where the user is the only contact.

Soliloquy writing interface screenshot.
Soliloquy writing interface screenshot.

Overview

Soliloquy is a private, local-first notes application built around a messenger-like interface where the user is the only contact.

Instead of organizing thoughts around documents, folders, or workspaces, the application treats writing as a conversation: open a chat, write something, and return to it later.

Why I built it

I like the way messaging applications reduce the friction of writing. Sending a short message to yourself feels lighter than creating and organizing another document.

Soliloquy started from that idea: build a dedicated notes application that keeps the familiarity of a messenger while removing the social, cloud, and account layers around it.

Project goals

  • create a note-taking experience with a distinct messenger-like UI;
  • keep user data local to the browser;
  • require no account or backend for the normal writing workflow;
  • keep interaction fast and deliberately minimal;
  • support rich writing without turning the editor into a document processor;
  • make chats and the entire workspace portable through import/export.

Technical approach

Soliloquy uses Astro for the application shell and React for interactive client-side functionality.

Data is persisted locally through IndexedDB with Dexie.js. This keeps the core application independent from a remote database and allows the writing experience to remain available without an account or server-side persistence.

Markdown rendering provides lightweight rich-text output while keeping stored content portable and easy to process.

Selected decisions

Local-first persistence

Core application data lives in IndexedDB rather than a remote database. The product can perform its primary function without authentication, a network connection, or a backend dependency.

Messenger as the primary model

Chats and messages are not a visual skin applied to a traditional notes hierarchy. They are the primary organizational model of the application.

Astro + React boundaries

Astro handles the surrounding application while React is used where persistent client state and interactive UI are actually required.

Portable data

Individual chats can be exported and imported as JSON or Markdown. Full workspace backups support validated restore flows with merge or replace behavior.

Progressive scope

New functionality is added around the existing writing model rather than changing the product into a general-purpose workspace.

Current state

Soliloquy is currently in active development.

The application already includes local chat persistence, Markdown rendering, editing and context actions, chat export, workspace backup and restore, bulk actions, drag-and-drop chat ordering, zoom controls, personalization, and single-chat transfer.

The current development phase focuses on improving the editor experience, search, media support, and theming.

Completed

  • local IndexedDB persistence
  • Markdown rendering
  • editing, context actions, and bulk actions
  • chat JSON / Markdown export and workspace backup / restore
  • chat personalization, ordering, zoom controls, and single-chat transfer

Current

  • visual formatting menu
  • in-chat search
  • media support
  • light / dark theme

Next

The next major addition is media support: image input from the clipboard or file picker, preview and caption workflows, and combined text-and-image message bubbles.

Search and theme support are also part of the current roadmap.