██▓     █    ██  ██ ▄█▀ ███▄ ▄███▓     ▓█████▄ ▓█████ ██▒   █▓
▓██▒     ██  ▓██▒ ██▄█▒ ▓██▒▀█▀ ██▒     ▒██▀ ██▌▓█   ▀▓██░   █▒
▒██░    ▓██  ▒██░▓███▄░ ▓██    ▓██░     ░██   █▌▒███   ▓██  █▒░
▒██░    ▓▓█  ░██░▓██ █▄ ▒██    ▒██      ░▓█▄   ▌▒▓█  ▄  ▒██ █░░
░██████▒▒▒█████▓ ▒██▒ █▄▒██▒   ░██▒ ██▓ ░▒████▓ ░▒████▒  ▒▀█░  
░ ▒░▓  ░░▒▓▒ ▒ ▒ ▒ ▒▒ ▓▒░ ▒░   ░  ░ ▒▓▒  ▒▒▓  ▒ ░░ ▒░ ░  ░ ▐░  
░ ░ ▒  ░░░▒░ ░ ░ ░ ░▒ ▒░░  ░      ░ ░▒   ░ ▒  ▒  ░ ░  ░  ░ ░░  
  ░ ░    ░░░ ░ ░ ░ ░░ ░ ░      ░    ░    ░ ░  ░    ░       ░░  
    ░  ░   ░     ░  ░          ░     ░     ░       ░  ░     ░  
                                     ░   ░                 ░   

Proseforge markdown editor

2024-08-22

Screenshot of Proseforge markdown editor running on Mac OS with some example markdown being rendered

A side hobby of mine is fiction writing, which as a practice greatly benefits from defining a structure before getting to the writing part. I've been using Scrivener as a tool to do this.

However, I wanted to create something similar on my own, or at least get started with it. After some research, I decided to create an app with Tauri.

Technologies

  • Rust
  • Tauri
  • Vite
  • Pnpm

Architecture

I wasn't planning on stopping where I did. I set the project up so that the Tauri implementation was a thin layer that called a headless React library.

The entire project was designed to be platform independent from the ground up. I learned a lot about structuring projects alone the way.

It features

  • Edit markdown and render its preview inline
  • Use the file system dialogue to create or open markdown files
The code is available on GitHub gh