Nick f6d3b23946 fix: 6 remaining doable deferred items
- 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)
2026-06-11 23:22:27 +01:00

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.0 app-base). Public installers arrive at 1.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 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, changelog
  • specs/governance/conductor-criticisms.md — All feedback logged, tracked, resolved
  • specs/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.md and 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.

Description
Conductor - Social media management desktop app
Readme 57 MiB
Languages
HTML 28.4%
Svelte 18.9%
TypeScript 16.5%
Rust 16%
Shell 9.6%
Other 10.6%