/solitude

Primary LanguageTypeScript

Solitude

A minimalist web-app for focused writing and note-taking. Currently in early stages of development.

Screenshot of software

Features

Currently implemented

  • Rich (but constrained) text editing
    • Headings, bold, italics, lists, links, blockquotes etc.
    • Markdown shortcuts e.g. #Heading, **emphasis** are supported
    • @mention other pages to create dynamic links
  • Autosaving with save status and 'last updated' indicators
  • Tree structure for page organisation, similar to Notion
  • Search for pages from the sidebar
  • Word count
  • Attractive UI including light and dark mode
  • Export a page as Markdown

On the roadmap

  • Embedded images
  • Offline support, including syncing and conflict-handling
  • Backups and revision control
  • Basic insights on the Home page such as number of pages or total word count
  • Workspaces or projects, letting you have multiple collections of pages

Uses

Currently, uses a SQLite database via Prisma, but this can be swapped out for any database that Prisma supports with minimal changes.

Development

Install dependencies:

npm install

Set up the database:

npx prisma generate
npx prisma db push

Then, run the API server and frontend:

npm run server
npm run dev

Open http://localhost:5173 with your browser to see the app.