Files
Artstr-Studio/TODO.md
T
thePR0M3TH3ANandClaude Opus 4.7 9bf99f1abb Add Slide Decks & Presenter Mode (v1: Phases A–D)
Build a Nostr-native presentation system on top of the existing canvas
editor:

- Slide (templateMode 'slide') — a 16:9 Custom Art canvas with speaker
  notes; publishes/forks/loads as casewrap-slide.
- Deck Builder (templateMode 'deck') — a Template-tab container with an
  inline ordered slide list. Slide-sorter view: add blank, import from
  Nostr or file (non-16:9 imports letterboxed), duplicate, delete,
  drag-reorder, inline-rename; edit a slide in the canvas editor with
  write-back. Self-contained save/load/publish/fork as casewrap-deck;
  deck feed-card and publish previews show the first slide + count badge.
- Deck theme — deck-level font + background, render-time composition,
  per-slide ignoreDeckTheme opt-out.
- Presenter Mode — full-screen runtime: themed slide, notes, next
  thumbnail, counter; keyboard/click/on-screen nav; Presenter ⇄ Audience
  view toggle (slide-only full-screen with auto-hiding chrome). Launches
  from the deck tool palette and a deck's community-browser preview.

Supporting changes:
- New categories: slide ("Slide design") and slide-deck ("Slide deck");
  both use the free-form Custom tag field, not media identifiers.
- Swap the Template/Designer tab icons; 50% larger.
- Remove the IMDb/OMDb metadata import (button, handler, omdbApiKey);
  the imdbId field stays.
- Update README, SLIDE_DECK_FEATURE.md status, and TODO.md.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
2026-05-21 22:10:06 -04:00

2.6 KiB

Artstr Studio — TODO

Running list of deferred work. Detailed specs for the larger items live in docs/. Each entry notes scope and where the spec is (if any).

QR code layer — remaining phases

Phase A shipped (the qr layer type: data, error-correction level, quiet zone, module / background colors, transparent background, renders on every surface + canvas export, JSON round-trip).

  • Phase B — convenience inserts. "Insert npub" and "Insert share link" buttons next to the QR data field. Insert npub fills the signed-in user's npub; Insert share link fills the design's naddr/nevent once it's been published. ~80 LoC.
  • Phase C — visual polish. Optional center logo overlay and rounded modules. Riskier: a logo eats into the error-correction budget, so it should nudge the ECC level up. Skippable.

Cleanup

  • Delete docs/TMDB_AUTOFILL_FEATURE.md. TMDB auto-fill was declined — the metadata fields work fine filled by hand, and the IMDb-style import has been removed.

Profile pages — deferred polish

(Core profile pages at /u/<npub> already shipped.)

  • Make author chips clickable in the community thread view (comments and reposts) — currently only feed-card and preview-meta author chips route to openProfilePage.
  • About-text clamp — long bios overflow the profile header; clamp to ~4 lines with a "Show more" toggle.
  • Profile-grid pagination — an author with 100+ designs renders them all at once; cap the initial render and add a "Show more" pager.

Edit-published-designs — deferred polish

(Core edit-in-place via NIP-33 replaceable semantics already shipped.)

  • Replace the remaining confirm() calls in the edit / publish flow with the styled in-app modal pattern, for consistency with the close-project and publish-confirm modals.
  • "Editing a previously-deleted design" warning — if the user opens Edit on a design they had tombstoned with a kind-5, warn that publishing will republish it.

Drafted-but-unbuilt features

Each has a full spec in docs/.

  • Badges (NIP-58) — docs/BADGES_FEATURE.md. Award / display Nostr badges on profile pages.
  • Collections (NIP-51 sets) — docs/COLLECTIONS_FEATURE.md. Let users organize favorite community templates into named sets.
  • Zap-gated premium templates — docs/ZAP_GATED_TEMPLATES_FEATURE.md. Creators mark a template premium with a minimum-zap threshold.
  • Zaps via Nostr Wallet Connect — docs/ZAPS_NWC_FEATURE.md. In-app zapping without the wallet handoff. (Tracked LNURL-pay tips already ship; this would be the NWC path.)