- B4: Strip verification in CI binary size gate - C5: Dependabot config (cargo + npm + GitHub Actions, weekly) - D1: git-cliff config for automated changelog from conventional commits - D2: cargo doc verification in CI (RUSTDOCFLAGS="-D warnings") - L2: just recipes — setup, clean, coverage, coverage-frontend, changelog - M2: panic hook + crash log already done (M1) All gates: fmt ✓, clippy ✓, ESLint 0 ✓, vitest 24/24 ✓, build ✓, cargo deny ✓ Remaining 8 items: need code to test against (coverage, fuzz, property, benchmark, Flatpak, telemetry)
Conductor
Self-contained social media manager. Desktop app, LAN, or Raspberry Pi. No cloud.
What it does
Conductor connects all your social media accounts into one app. Create posts, schedule content, track analytics, and generate thumbnails — all from your desktop. Your credentials stay on your machine.
Three ways to run it:
- Desktop — Open the app, use it, done. Primary mode.
- LAN — Serve the app on your local network so other devices can reach it. Toggle it in settings.
- Pi — The app helps you set up a Raspberry Pi to run Conductor 24/7. The desktop app stays in control.
Installation
Not yet available for public users. Conductor is in active development (
0.3.0app-base). Public installers arrive at1.0.0; internal development builds can be installed locally after GitHub CI verifies the exact commit.
When ready, installation will be:
Linux
Search "Conductor" in your software center (GNOME Software, KDE Discover). Click Install. Done.
Or from Flathub directly:
flatpak install flathub com.guitarguynick.conductor
Also available as .deb and .rpm for people who prefer their native package manager.
macOS
# Open the DMG, drag to Applications. Done.
open Conductor-x.x.x.dmg
Windows
# Run the installer. Done.
msiexec /i Conductor-x.x.x.msi
Zero prerequisites. The app bundles everything it needs — the web runtime, the database, the TLS library, all of it. You don't install Rust, cargo, system libraries, or anything else. The app is the complete package.
Zero prerequisites. The app bundles everything — web runtime, database, TLS, all of it. Download, run, done.
Build from source
Developers only. The app bundles everything for users; this is for people who want to compile it themselves.
git clone https://github.com/ThingsCouldGetDicey/conductor.git
cd conductor
./setup.sh # Installs build tools (Rust, cargo tools, system libs)
just build # Build the desktop app base without installer bundling
The setup script is for BUILDING only. None of these tools are needed to run the finished app.
Self-contained release build
just release
# Output: target/release/bundle/
# ├── conductor-x.x.x.flatpak ← primary, self-contained, native feel
# ├── conductor_x.x.x_amd64.deb
# ├── conductor-x.x.x.x86_64.rpm
# └── ...
Flatpak via Flathub is the primary Linux format. Self-contained, native feel, installs from your software center like any other app. Permissive sandbox — full filesystem access, no restrictions that get in the way.
Architecture
Conductor is a Rust workspace with 13 isolated component crates. Each has its own version. If something breaks, only that crate is affected.
| Crate | What it does |
|---|---|
| core | Shared types, traits, error handling |
| config | Configuration loading and validation |
| platform | Platform API traits and shared logic |
| tiktok | TikTok API client |
| Instagram API client | |
| youtube | YouTube API client |
| content | Content engine, scheduling, pipeline |
| storage | SQLite persistence and migrations |
| thumbnail | Image processing and generation |
| ui | Tauri desktop UI (primary interface) |
| cli | Command-line for headless operation |
| lan | LAN serving mode (optional) |
| pi | Raspberry Pi setup assistant (optional) |
Development Workflow
All Conductor development follows Constitutional Spec-Driven Development (C-SDD) — see specs/governance/conductor-workflow.md for the full methodology.
5 phases: Specify → Plan → Tasks → Implement → Validate. Each phase has a gate. No gate = no proceed.
Key tracking files:
specs/governance/conductor-subsystems.md— Per-subsystem PRD, version, behaviour, changelogspecs/governance/conductor-criticisms.md— All feedback logged, tracked, resolvedspecs/governance/conductor-workflow.md— Full methodology, security constitution, evidence
Security constitution (non-negotiable): No secrets in code, all input untrusted, least privilege, dependencies pinned/audited, no auto-merge without human review, pre-commit secrets scanning, SAST as blocking gate, row-level data security, agent context reviewed by humans, runtime scanning.
Versioning
This project follows Semantic Versioning 2.0.0.
- All versions are 0.y.z until the product is live and serving real users
- 1.0.0 marks the first stable release
- Each component has its own version; a root version aggregates them
- Each UI subsystem has its own version tracked in
specs/governance/conductor-subsystems.md - Minor bumps (0.x.0) include PRD and README updates
Status
Current root/app version: 0.3.4
Current phase: app-base Phase 4, T04D complete — Compose drawer naming, placement, and animation polish.
What exists now:
- Tauri 2 + Svelte 5 desktop shell scaffold.
- Product-aligned app-base route registry: Today, Posts, Social Media Replies, Analytics, Settings.
- Purposeful placeholder route views explaining what belongs in each tab and what comes later.
- Sidebar shortcuts moved out of visible nav text and into tooltip/accessibility metadata.
- Compose opens from a small top-right contextual button on each page and reveals a compact right-to-left drawer.
- Conductor C mark is used for the app/window icon and shell identity.
- GitHub CI as full technical source of truth: Rust format/lint/tests, frontend tests/build, Tauri no-bundle build, dependency/security review, review-surface, brand-surface, structural quality, architecture placement, and non-coder review pack.
- Specs reorganised for retrieval efficiency with
specs/README.mdand targeted MemPalace mining. - Master-coder architecture placement discipline: source-code changes require ownership, boundaries, contracts, anti-pattern risks, and fitness checks.
What does not exist yet:
- Public installer packages.
- Real platform posting/auth/analytics.
- Settings/About version surface.
- Signed updater flow.
- Previous-version → candidate-version update smoke test.
Next app-base task: Nick runtime review of T04D, then T05 Settings/About version and update surface.
Distance to v1.0.0
Conductor is still pre-release. 0.3.1 means the app-base foundation exists, not that the product is 30% feature-complete. Compared with 1.0.0, the project is roughly at the foundation / interactive shell stage:
| Area | Current state | Needed for v1 |
|---|---|---|
| Desktop shell | Scaffold + route registry | Fully clickable, accessible, low-clutter app shell |
| Posting | Not implemented | Post/schedule to supported platforms |
| Accounts/auth | Not implemented | Secure account connection and token storage |
| Analytics | Not implemented | Useful per-platform analytics views |
| Daily brief | Not implemented | Brief generation and prioritised actions |
| Storage | Scaffold only | SQLite schema, migrations, data integrity checks |
| Release/update | Planned/scaffolded | Signed updater, installer packages, version surface, smoke update test |
| Governance/CI | Strong foundation | Continue enforcing as features land |
Practical estimate: Conductor is well before v1; the main win so far is that the foundation, gates, and architecture discipline are now strong enough to build features without accumulating avoidable structural debt.
License
MIT
Local install/update after green GitHub CI
When a pushed build changes application code or user-facing app behaviour and should update Nick's installed local app, first wait for GitHub CI to pass for the current HEAD, then run:
just install-local-after-green-ci
The command refuses to install if the latest GitHub CI run for the current commit is missing, pending, failed, or from a different HEAD. It then builds the release binary and updates ~/.local/bin/conductor plus the desktop entry. Docs/spec/process-only commits do not require a local reinstall.
MemPalace retrieval
Use specs/README.md first, then search MemPalace before opening large specs. After changing specs/research docs, run:
just mempalace-mine-changed
This mines only changed files into the conductor wing, avoiding expensive full-tree mining.