Skip to content

JinJieBeWater/dono

Repository files navigation

Dono

A local-first novel writing application built with modern web technologies

Features

  • 🖥️ Local-First - Powered by LiveStore, all data is stored locally in the browser first
  • 📝 Real-time Editing - Instant response without waiting for network
  • 🔄 Auto Sync - Automatically syncs to Cloudflare Durable Objects
  • 🌐 Cross-Device - Continue writing on any device after logging in
  • 💾 Offline Support - Works perfectly without internet connection

Tech Stack

  • LiveStore
  • TanStack Router
  • shadcn/ui
  • Hono
  • Better-Auth
  • Yjs
  • Cloudflare Workers
  • Durable Objects

Getting Started

# Clone the repository
git clone https://github.com/JinJieBeWater/dono.git

cd dono

# Install dependencies
pnpm install

# configure alchemy
pnpm alchemy configure

# cd into server app directory
cd apps/server
# create a .env file
cp .env.example .env
# generate a secret for better-auth, you can go to https://www.better-auth.com/docs/installation to generate one
# paste the secret to BETTER_AUTH_SECRET in .env
# generate a secret for alchemy, you can go to https://www.better-auth.com/docs/installation to generate one
# paste the secret to ALCHEMY_SECRET in .env

# cd into web app directory
cd apps/web
# create a .env file
cp .env.example .env

# Start development server
pnpm run dev

Todos

  • Implement user login with better-auth, each user gets a UserStore after logging in
  • Use better-auth for authentication on sync backend and implement store access control
  • Add rich text editing functionality, introduce Yjs to implement CRDT data synchronization
  • Current data is soft-deleted, accumulating infinitely in DO, need to implement real data deletion to free storage space
  • Design and implement outline UI and functionality

About

A local-first novel writing application built with modern web technologies

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors