Photo storage app using GitHub as backend. Part of Vortex Interface.
- Tauri 2 (Rust backend)
- Vue 3 + TypeScript
- Tailwind CSS 4
- GitHub API (Device Flow OAuth)
- Upload photos to any GitHub repo
- Drag & drop support
- LFS support for files >50MB
- AMOLED dark theme with accent colors
- Offline token persistence
- Node.js 20+
- pnpm
- Rust
- Go to https://github.com/settings/developers
- Create new OAuth App
- Enable "Device Flow"
- Copy Client ID to
src-tauri/src/github.rs:
const CLIENT_ID: &str = "your_client_id";pnpm install
pnpm tauri devpnpm tauri buildsrc/
├── components/
│ ├── AccentPicker.vue # Theme color selector
│ ├── AuthButton.vue # GitHub login/logout
│ ├── PhotoGallery.vue # Image grid display
│ ├── PhotoUploader.vue # Upload queue UI
│ └── SpaceLoader.vue # Loading animation
├── composables/
│ ├── useAccentColor.ts # Theme state
│ ├── useGitHubAuth.ts # OAuth device flow
│ └── usePhotoUpload.ts # Upload queue logic
├── App.vue
├── main.ts
└── style.css
src-tauri/
├── src/
│ ├── github.rs # GitHub API + OAuth
│ ├── lib.rs # Tauri commands
│ └── main.rs
└── tauri.conf.json
- User authenticates via GitHub Device Flow (no client secret needed)
- Token stored locally via
@tauri-apps/plugin-store - Photos uploaded to
photos/folder in specified repo - Files >50MB use Git LFS
Settings stored in settings.json:
token- GitHub access tokenrepo- Target repository (owner/repo)accent- Theme color
MIT