Skip to content

Add a first-launch welcome/onboarding screen #14

Description

@abhiksark

Part of the 0.3.0 adoption roadmap — First-run UX.

Why (adoption impact)

Even once a beginner is in the TUI, the core loop (edit the file in your editor → save → checks rerun → remove # I AM NOT DONE to advance) is not obvious. A first-launch welcome removes the "what do I do now?" drop-off.

Current state

  • The TUI starts on the first pending exercise (pylings/screens/track.py, pylings/app.py). There is no first-run explainer.
  • Keybindings exist (F1 hint, F3 list, etc.) but are only discoverable via the README/Interface table.

Scope / acceptance criteria

  • On first launch (no completed exercises / a .pylings "seen_welcome" flag), show a dismissible welcome screen/modal that explains: edit the file in your own editor, save, watch the check rerun, remove the # I AM NOT DONE marker to advance, and the key shortcuts.
  • Dismiss with a key; don't show again (persist the flag in .pylings/state.json or similar).
  • A way to reopen it (e.g. a ?/help key) is nice-to-have.
  • Works within the existing Textual screen structure; respects current theme/CSS (pylings/pylings.tcss).

Where to look

  • pylings/app.py, pylings/screens/ (track.py, topic_picker.py, docs.py for modal patterns), pylings/core/state.py (persisting the flag), pylings/pylings.tcss.

Out of scope

Verify

  • First launch in a fresh workspace shows the welcome; second launch does not; reopen key works.

Difficulty

enhancement · help wanted — Textual screen work; ~1 day. Good for someone comfortable with Textual.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions