Implement Thinkloom desktop MVP

This commit is contained in:
2026-07-17 00:41:22 -07:00
parent 26e5808d66
commit b5e6eafa1c
30 changed files with 12805 additions and 274 deletions
+5526
View File
File diff suppressed because it is too large Load Diff
+33
View File
@@ -0,0 +1,33 @@
[package]
name = "thinkloom"
version = "0.1.0"
description = "Local-first writing studio with creative provenance"
authors = ["Thinkloom"]
edition = "2021"
rust-version = "1.77.2"
[lib]
name = "thinkloom_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[build-dependencies]
tauri-build = { version = "2", features = [] }
[dependencies]
tauri = { version = "2", features = [] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
rusqlite = { version = "0.32", features = ["bundled"] }
sha2 = "0.10"
hex = "0.4"
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1", features = ["v4", "serde"] }
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "rustls-tls"] }
zip = { version = "2", default-features = false, features = ["deflate"] }
keyring = "3"
rfd = "0.15"
walkdir = "2"
tempfile = "3"
[dev-dependencies]
pretty_assertions = "1"
+3
View File
@@ -0,0 +1,3 @@
fn main() {
tauri_build::build()
}
+7
View File
@@ -0,0 +1,7 @@
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "main-capability",
"description": "Core Thinkloom desktop capability",
"windows": ["main"],
"permissions": ["core:default"]
}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
{"main-capability":{"identifier":"main-capability","description":"Core Thinkloom desktop capability","local":true,"windows":["main"],"permissions":["core:default"]}}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

+1301
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -0,0 +1,3 @@
fn main() {
thinkloom_lib::run();
}
+35
View File
@@ -0,0 +1,35 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Thinkloom",
"version": "0.1.0",
"identifier": "com.thinkloom.desktop",
"build": {
"beforeDevCommand": "npm run desktop:dev",
"devUrl": "http://localhost:1420",
"beforeBuildCommand": "npm run desktop:build",
"frontendDist": "../desktop-dist"
},
"app": {
"windows": [{
"title": "Thinkloom",
"width": 1440,
"height": 920,
"minWidth": 960,
"minHeight": 680,
"resizable": true,
"fullscreen": false,
"center": true
}],
"security": {
"csp": "default-src 'self'; img-src 'self' data: blob:; style-src 'self' 'unsafe-inline'; script-src 'self'; connect-src 'self' ipc: http://ipc.localhost http://127.0.0.1:* https://api.openai.com; media-src 'self' blob:; object-src 'none'"
}
},
"bundle": {
"active": true,
"targets": ["msi", "nsis"],
"shortDescription": "Ideas into writing, without losing the thread.",
"longDescription": "A local-first writing studio for exploring ideas, shaping drafts, and preserving creative process history.",
"category": "Productivity",
"copyright": "Copyright © 2026 Thinkloom"
}
}