aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorXe Iaso <me@christine.website>2022-07-10 20:29:07 +0000
committerXe Iaso <me@christine.website>2022-07-10 20:29:07 +0000
commit55bf7e4cb403566d7172ef69b8f2f7393ac8627d (patch)
tree7b3682e19c97672245cbb97e6c1d1069e812fd8b /docs
parentb32f5a25afb7b9901476164663c1b7099dcec7a8 (diff)
downloadxesite-55bf7e4cb403566d7172ef69b8f2f7393ac8627d.tar.xz
xesite-55bf7e4cb403566d7172ef69b8f2f7393ac8627d.zip
basic notes support
Signed-off-by: Xe Iaso <me@christine.website>
Diffstat (limited to 'docs')
-rw-r--r--docs/notes.markdown38
1 files changed, 38 insertions, 0 deletions
diff --git a/docs/notes.markdown b/docs/notes.markdown
new file mode 100644
index 0000000..8ab83f5
--- /dev/null
+++ b/docs/notes.markdown
@@ -0,0 +1,38 @@
+# Notes
+
+## Goals
+
+- Have somewhere other than Twitter or Mastodon to host short-form content or
+ list articles I "like".
+- Authenticate over Tailscale
+- Simple API to automate posting with iOS Shortcuts
+- Have a JSONFeed for people to subscribe
+- Send WebMentions when I reply to things
+- Store things in SQLite
+
+## Schema
+
+```sql
+CREATE TABLE IF NOT EXISTS notes
+ ( id INTEGER PRIMARY KEY
+ , content TEXT NOT NULL
+ , content_html TEXT NOT NULL
+ , created_at INTEGER NOT NULL -- Unix epoch timestamp
+ , updated_at INTEGER -- Unix epoch timestamp
+ , deleted_at INTEGER -- Unix epoch timestamp
+ , reply_to TEXT
+ );
+```
+
+```rust
+#[derive(Clone, Debug, Serialize, Deserialize)]
+pub struct Note {
+ pub id: u64,
+ pub content: String,
+ pub content_html: String,
+ pub created_at: DateTime<Utc>,
+ pub updated_at: Option<DateTime<Utc>>,
+ pub deleted_at: Option<DateTime<Utc>>,
+ pub reply_to: Option<String>,
+}
+```