You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Elijah Voigt 2993149da1 chore(quotesdb): set up Cargo.toml with api and ui dependencies
- Add axum 0.8 + tokio 1 (native-only) for the HTTP API server
- Add rusqlite 0.32 + tokio-rusqlite 0.6 (native-only) for local SQLite
- Add async-trait 0.1 (native-only) for QuoteRepository abstraction
- Add worker 0.5 with d1 feature (wasm32-only) for Cloudflare Workers
- Add rand 0.9 + serde + serde_json (shared) for passphrase/serialisation
- Add build-dependencies: serde_json 1 + serde_yaml 0.9 for build.rs
- Pin rusqlite to 0.32 to match tokio-rusqlite 0.6 transitive dependency

Closes ticket 1f5bb5

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 months ago
..
.claude quotesdb scaffolding 3 months ago
.nbd chore(quotesdb): resolve all triage tickets and create implementation tickets 3 months ago
api refactor(quotesdb): collapse to single crate with api and ui binaries 3 months ago
docs plan to implement the current batch of tickets 3 months ago
infra chore(quotesdb): bootstrap project skeleton and design doc 3 months ago
src feat(quotesdb): add generate_id() using UUID v4 — WASM-compatible ID generation 3 months ago
CLAUDE.md chore(quotesdb): resolve all triage tickets and create implementation tickets 3 months ago
Cargo.lock refactor(quotesdb): collapse to single crate with api and ui binaries 3 months ago
Cargo.toml chore(quotesdb): set up Cargo.toml with api and ui dependencies 3 months ago
README.md refactor(quotesdb): collapse to single crate with api and ui binaries 3 months ago
TODO.md flake and quotesdb misc change 3 months ago
Trunk.toml refactor(quotesdb): collapse to single crate with api and ui binaries 3 months ago
index.html refactor(quotesdb): collapse to single crate with api and ui binaries 3 months ago

README.md

quotesdb

A quotes web application — browse, submit, and manage memorable quotes.

What

quotesdb is a full-stack web application with:

  • A JSON REST API (api binary) backed by Cloudflare Workers + D1 (SQLite)
  • A Yew/Wasm frontend (ui binary) hosted on Cloudflare Pages
  • NanoID-identified quotes protected by a 4-word passphrase auth code

How

Single Cargo crate with two binaries sharing common types via src/lib.rs:

  • api: Axum on Tokio, targeting Cloudflare Workers via workers-rs, SQLx + D1
  • ui: Yew compiled to wasm32-unknown-unknown via Trunk

Run

# Start API server (local dev)
cargo run

# Start UI dev server (requires wasm32 toolchain + trunk)
trunk serve

Test

cargo fmt && cargo check && cargo clippy && cargo test

License

Licensed under either of Apache License, Version 2.0 or MIT License at your option.

Disclaimer

This software was written with Claude Code (claude-sonnet-4-6).