Skip to content
scadoshiPublic

About

a swipeable magic the gathering deck building application in Rust

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

12 stars

Watchers

1 watching

Forks

Repository files navigation

Zwipe

Mobile-first Magic: The Gathering deck builder with swipe-based navigation.

Status: live on the iOS App Store and Google Play. Deck building is in the app; zwipe.net is the site.

Swiping through cards to add them to a deck

Tech stack

Full-stack Rust:

  • zwipe-core: shared domain types, validation, business rules, HTTP contracts; the single source of truth
  • zwipe-components: shared Dioxus UI components and CSS (themes, changelog, card details) consumed by the app, the site, and the owner's portfolio
  • zwipe-client: typed API client over the shared contracts, one call function for every endpoint; used by both the app and the site
  • zerver: Axum REST API, PostgreSQL, SQLx, JWT auth, Scryfall sync
  • zwiper: Dioxus iOS and Android app, swipe gestures, 31 themes, dark mode
  • zite: Dioxus site at zwipe.net (guides, changelog, shared deck pages, email verification and password reset)
  • zervice: background jobs (Scryfall sync, session cleanup)
zwiper, zite ──→ zwipe-client ─────→ zwipe-core ←── zerver
zwiper, zite ──→ zwipe-components ──→ zwipe-core     (zervice binary)

Quick start

# prerequisites: rust (https://rustup.rs), macos: xcode-select --install

./zcripts/dev-env/macos/setup.sh    # macos setup (postgres, dx, sqlx-cli, database)
./zcripts/dev-env/omarchy/setup.sh  # linux setup (arch)

cargo run --bin zerver              # backend api
cd zwiper && dx serve               # mobile app (web preview)
cargo run --bin zervice             # scryfall card sync (run once to seed)

Architecture

Hexagonal architecture with domain-driven design. zwipe-core owns all shared domain types; zerver re-exports them and adds server-specific layers (database adapters, HTTP handlers, service orchestration). See context/architecture/decisions.md for the decisions and why they went that way, and context/README.md for the full documentation tree.

License

CC BY-NC 4.0. See LICENSE.

About

a swipeable magic the gathering deck building application in Rust

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

12 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages