Skip to content

UX Audit: First-Time User Experience โ€” Make Dashview Truly Zero-Configย #140

@mholzi

Description

@mholzi

๐ŸŽฏ Perspective

I'm a user who just installed Dashview via HACS. I haven't read the README. I don't know how Dashview works. I just want a nice dashboard.


๐Ÿšจ Critical: The "Zero Config" Promise vs Reality

The README promises: "Install it. Open it. Done." and "Zero configuration."

Reality: A new user hits a 7-step wizard that immediately tells them to leave Dashview and go configure Home Assistant first.

The Label Problem (Biggest Barrier)

Dashview requires 15 label categories to be manually mapped:
Lights, Covers, Roof Windows, Windows, Garages, Motion Sensors, Smoke Detectors, Water Leak Sensors, Vibration Sensors, Temperature, Humidity, Climate, Media Players, TVs, Locks.

The irony: Home Assistant already knows what these entities are. A light.living_room is a light. A climate.thermostat is a climate device. A cover.blinds is a cover. The entity domain tells you everything.

Recommendation: Auto-detect entity types from HA domains as the default. Labels should be an optional override, not a requirement. This alone would eliminate 80% of the setup friction.

Proposed auto-detection mapping:

HA Domain Dashview Category
light.* Lights
cover.* Covers (+ check device_class for window/garage/blind)
climate.* Climate
media_player.* Media Players (+ check attributes for TV vs speaker)
lock.* Locks
sensor.* Check device_class: temperature, humidity, etc.
binary_sensor.* Check device_class: motion, window, door, smoke, moisture, vibration

Labels would still be useful for edge cases and overrides, but the dashboard should work out of the box without them.


๐Ÿงญ Onboarding Flow Issues

1. "Go Away and Come Back" Anti-Pattern

The welcome step's yellow notice box says:

"Please ensure you have configured: Areas, Floors, Labels"
"Set these up in Home Assistant under Settings โ†’ Areas & Zones"

This tells the user to leave the app they just installed to go do homework in another part of HA. Many users will:

  • Not come back
  • Not understand what Labels are
  • Set up Areas but skip Floors/Labels
  • Get frustrated

Fix: If Areas exist but Labels don't, auto-detect (see above). If no Areas exist at all, show a friendlier message: "Dashview works best when your devices are assigned to rooms. Want me to show you how?" with an inline guide or even an in-app area assignment tool.

2. Wizard Steps Are Overwhelming

7 steps for a "zero config" dashboard:

  1. Welcome โ†’ 2. Floors โ†’ 3. Rooms โ†’ 4. Labels โ†’ 5. Room Config โ†’ 6. Floor Cards โ†’ 7. Review

A new user doesn't understand what "Floor Cards" means or why they need to configure them. They just want to see their house.

Fix: Reduce to 3 steps max:

  1. Welcome โ€” "Here's what we found in your home" (show auto-discovered floors/rooms)
  2. Quick Customize โ€” Drag to reorder floors/rooms, toggle visibility (optional, can skip)
  3. Done โ€” Show the dashboard with a "You can customize more in Settings" hint

3. No "Just Show Me Something" Option

There's no way to skip the wizard and just see a dashboard with sensible defaults. The wizard has no skip button (SKIPPABLE_STEPS = [] is empty).

Fix: Add a prominent "Skip Setup โ€” Use Defaults" button on the welcome screen. Auto-detect everything and show the dashboard immediately. Let users fine-tune later via admin.


๐Ÿ–ฅ๏ธ Main Dashboard UX Issues

4. Floor Tabs Use Icons Only

Floor navigation shows only icons (from getFloorIcon()). A new user sees cryptic icons and doesn't know which floor is which.

Fix: Show floor names (or at least short labels) alongside icons. On mobile, abbreviate if needed. Consider: ๐Ÿ  Ground โฌ†๏ธ Upper instead of just icons.

5. No Visual Onboarding After Setup

After completing the wizard, the user lands on the dashboard with zero guidance. They don't know:

  • What the weather widget does (tap to expand)
  • That room cards are tappable (opens room popup)
  • What the info text badges mean
  • That the hamburger menu leads to admin
  • That activity chips show real-time motion/smoke
  • That scene buttons exist

Fix: Add a one-time coach marks overlay (3-4 tooltips pointing at key UI elements):

  • "Tap a room for full controls"
  • "Your home status at a glance" (info text)
  • "Customize in settings" (menu button)
  • "Weather details" (weather widget)

Note: There's a components/onboarding/ folder but it's empty (// No exports - coach mark removed). This was apparently planned and then removed.

6. Info Text Row is Cryptic

The status bar shows badges like "3 Lichter an" or "Fenster offen" โ€” but a new user doesn't know:

  • These are clickable (opens relevant popup)
  • The โœ• button dismisses alerts
  • The eye-off icon shows hidden alerts
  • What "critical" vs "warning" means

Fix: Add subtle interactivity hints. A first-time tooltip: "Tap any status badge for quick controls." Use consistent, obvious iconography for dismiss/expand.

7. Empty State When Nothing Is Configured

If a floor has no cards configured and floor overview is disabled, the user sees:

"No cards configured for this floor"

This is a dead end. There's no link to admin, no suggestion of what to do next.

Fix: Show a friendly empty state with a CTA: "This floor is empty. [Add cards in Settings] or [Run Setup Wizard]"


โš™๏ธ Admin Panel Issues

8. Admin Panel is Hidden and Complex

The admin is behind a hamburger menu (โ˜ฐ). Once opened, there are 7 tabs: Entities, Layout, Weather, Status, Setup, Scenes, Users.

For a user who just wants to tweak room order or hide an entity, this is overwhelming.

Fix:

  • Rename tabs to be more intuitive: "Rooms & Devices" instead of "Entities", "Appearance" instead of "Layout"
  • Add a "Quick Settings" surface accessible without the full admin (long-press on a room card โ†’ edit room, long-press on a floor tab โ†’ reorder floors)
  • Consider grouping: Basic (Rooms, Appearance) vs Advanced (Weather, Status, Scenes, Users)

9. Entities Tab: 15 Label Dropdowns

Opening the Entities tab shows 15 dropdown selectors, each with a red or green border indicating configuration status. This looks like a failing checklist.

Fix: If auto-detection is implemented, this becomes an "Override" section that most users never need to touch. Show it collapsed by default with a note: "Dashview auto-detected your devices. Only change these if something was misidentified."


๐ŸŒ i18n Issues (Hardcoded Strings)

10. German Strings Hardcoded in Main Panel

Found in dashview-panel.js:

  • "Sicherheit" (Security popup title โ€” line ~4657)
  • "Erneut versuchen" (Retry button โ€” line ~4486)

These should use t() translations.


๐Ÿ“ฑ Mobile UX

11. No Touch Gesture Discovery

Dashview has rich touch interactions:

  • Swipe on floor overview cards
  • Long-press on lights (opens more-info)
  • Drag on light sliders
  • Tap vs long-press on floor card lights

None of these are discoverable. A new user will only ever tap.

Fix: Either add a gesture tutorial on first use, or reduce reliance on hidden gestures. Every action should also be achievable with a simple tap (e.g., a visible "โ‹ฎ" menu instead of relying on long-press).


๐Ÿ“Š Summary: Priority Ranking

# Issue Impact Effort
1 Auto-detect entities from HA domains ๐Ÿ”ด Critical Medium
2 Skip wizard / show defaults immediately ๐Ÿ”ด Critical Low
3 Remove "go configure HA first" blocker ๐Ÿ”ด Critical Low
4 Reduce wizard to 3 steps ๐ŸŸก High Medium
5 Coach marks / first-use tooltips ๐ŸŸก High Medium
6 Floor tabs show names ๐ŸŸข Medium Low
7 Fix hardcoded German strings ๐ŸŸข Medium Low
8 Better empty states with CTAs ๐ŸŸข Medium Low
9 Admin tab renaming / grouping ๐ŸŸข Medium Low
10 Gesture discoverability ๐ŸŸก High Medium
11 Info text row onboarding ๐ŸŸข Medium Low

๐Ÿ’ก The North Star

A user installs Dashview, opens it, and immediately sees their home organized by floor and room โ€” with lights, sensors, and controls working โ€” without touching a single setting.

Everything else is optional customization.

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogNot scheduled for any releaseenhancementNew feature or requestresearch-readyResearch complete, ready for implementation

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions