# auraluvsu/sachiel architecture

> Architecture diagram of the GitHub repository auraluvsu/sachiel, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/auraluvsu/sachiel
- Repository: https://github.com/auraluvsu/sachiel

## Overview

Sachiel’s README describes a distraction-free writing app. The sampled Wails frontend implements an editor with delayed autosave and Ctrl+S file saving; a separate React site handles beta email signup through an Express service. The excerpts do not establish how these two frontend projects are connected, so they are shown as separate workflows. The desktop editor’s interface markup and the full marketing site are not sampled.

Main entry points: [`app-frontend/sachiel/src/App.tsx`](https://github.com/auraluvsu/sachiel/blob/master/app-frontend/sachiel/src/App.tsx) (Marketing page), [`sachiel/frontend/src/main.js`](https://github.com/auraluvsu/sachiel/blob/master/sachiel/frontend/src/main.js) (Save triggers), [`app-backend/src/index.ts`](https://github.com/auraluvsu/sachiel/blob/master/app-backend/src/index.ts) (Email API), [`sachiel/frontend/wailsjs/go/main/App.js`](https://github.com/auraluvsu/sachiel/blob/master/sachiel/frontend/wailsjs/go/main/App.js) (Save binding)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_writing["Desktop writing"]
  node_editor["Text editor<br/>[main.js]"]
  node_autosave["Save triggers<br/>[main.js]"]
end

subgraph group_beta["Beta signup"]
  node_site["Marketing page<br/>[App.tsx]"]
  node_site_ui["Page components"]
  node_signup["Email API<br/>[index.ts]"]
end

subgraph group_runtime["App services"]
  node_binding["Save binding<br/>[App.js]"]
  node_host["Wails host<br/>[main.go]"]
  node_file["note.txt"]
end

node_writer(("Writer"))
node_visitor(("Site visitor"))
node_mailer["MailerLite"]

node_writer -->|"writes in"| node_editor
node_editor -->|"input events"| node_autosave
node_writer -->|"presses Ctrl+S"| node_autosave
node_autosave -->|"calls SaveFile"| node_binding
node_binding -->|"invokes"| node_host
node_host -->|"writes content"| node_file
node_visitor -->|"visits"| node_site
node_site -->|"renders"| node_site_ui
node_site -->|"POSTs email"| node_signup
node_signup -->|"creates subscriber"| node_mailer

click node_editor "https://github.com/auraluvsu/sachiel/blob/master/sachiel/frontend/src/main.js"
click node_autosave "https://github.com/auraluvsu/sachiel/blob/master/sachiel/frontend/src/main.js"
click node_binding "https://github.com/auraluvsu/sachiel/blob/master/sachiel/frontend/wailsjs/go/main/App.js"
click node_host "https://github.com/auraluvsu/sachiel/blob/master/sachiel/main.go"
click node_site "https://github.com/auraluvsu/sachiel/blob/master/app-frontend/sachiel/src/App.tsx"
click node_site_ui "https://github.com/auraluvsu/sachiel/tree/master/app-frontend/sachiel/src/components"
click node_signup "https://github.com/auraluvsu/sachiel/blob/master/app-backend/src/index.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_editor,node_autosave toneBlue
class node_site,node_site_ui,node_signup toneAmber
class node_binding,node_host,node_file toneMint
class node_writer,node_visitor,node_mailer toneIndigo
```

## Components

### Desktop writing

- [Text editor](https://github.com/auraluvsu/sachiel/blob/master/sachiel/frontend/src/main.js): `sachiel/frontend/src/main.js`
- [Save triggers](https://github.com/auraluvsu/sachiel/blob/master/sachiel/frontend/src/main.js): `sachiel/frontend/src/main.js`

### Beta signup

- [Marketing page](https://github.com/auraluvsu/sachiel/blob/master/app-frontend/sachiel/src/App.tsx): `app-frontend/sachiel/src/App.tsx`
- [Page components](https://github.com/auraluvsu/sachiel/tree/master/app-frontend/sachiel/src/components): `app-frontend/sachiel/src/components`
- [Email API](https://github.com/auraluvsu/sachiel/blob/master/app-backend/src/index.ts): `app-backend/src/index.ts`

### App services

- [Save binding](https://github.com/auraluvsu/sachiel/blob/master/sachiel/frontend/wailsjs/go/main/App.js): `sachiel/frontend/wailsjs/go/main/App.js`
- [Wails host](https://github.com/auraluvsu/sachiel/blob/master/sachiel/main.go): `sachiel/main.go`
- **note.txt**

### Other components

- **Writer**
- **Site visitor**
- **MailerLite**

## Connections

- Writer → Text editor: writes in
- Text editor → Save triggers: input events
- Writer → Save triggers: presses Ctrl+S
- Save triggers → Save binding: calls SaveFile
- Save binding → Wails host: invokes
- Wails host → note.txt: writes content
- Site visitor → Marketing page: visits
- Marketing page → Page components: renders
- Marketing page → Email API: POSTs email
- Email API → MailerLite: creates subscriber
