# Enesis

A warm, literary journal app. Built with Tauri, Nuxt UI, and the `@enesis/editor` block markdown engine.

Daily notes are flat markdown files (`journals/YYYY-MM-DD.md`) — readable anywhere, no lock-in. A SQLite index provides full-text search and backlinks.

The visual identity (Hearthside theme) leans into warmth: Lora serif, clay primary, stone neutrals, earthy semantics.

## Quick start

```bash
pnpm install
pnpm generate  # static build
pnpm tauri dev  # or: pnpm tauri build
```

## Stack

| Layer | Technology |
|---|---|
| Desktop shell | Tauri v2 (Rust) |
| Frontend | Nuxt 3 + Vue 3 + TypeScript |
| UI framework | Nuxt UI v4 |
| Editor engine | `@enesis/editor` (Lezer-based block markdown) |
| Index | SQLite via `tauri-plugin-sql`, FTS5 |
| File watching | `notify` crate |

## Theme — Hearthside

Warm, earthy, literary. Lora serif throughout, clay primary, orange secondary, stone neutral base, rose/emerald/amber/sky for semantics. Configured in `app.config.ts` and `assets/main.css`.

## Development

```bash
pnpm dev              # Vite dev server
pnpm tauri dev        # Tauri desktop dev
pnpm generate         # Static pre-render (for Tauri)
pnpm test:e2e         # Playwright E2E (in packages/editor)
```

## Project structure

```
src/
  assets/main.css              # Tailwind + theme tokens + font
  app.config.ts                # Nuxt UI color mappings
  components/
    JournalDay.vue             # One Editor per day
    JournalView.vue            # Reverse-chronological feed
    TimelineRail.vue           # Density dot timeline
    AppRightSidebar.vue        # References + search
  layouts/default.vue          # Sidebars + editor shell
  composables/                 # useFileSystem, useDates, etc.
  stores/                      # Pinia: workspace, ui
  lib/                         # Indexer, schema, parse helpers
src-tauri/
  src/lib.rs                   # Rust commands + plugins
  icons/                       # App icons (clay block logo)
public/
  favicon.svg                  # Clay block stacking logo
```
