README.md

bidux

CRAN
status R-CMD-check Codecov test
coverage Downloads Code
Size

📖 Overview

{bidux} brings the Behavior Insight Design (BID) framework into your Shiny development workflow. Follow five staged functions (Interpret, Notice, Anticipate, Structure, Validate) to systematically apply behavioral science to UI/UX design and build more intuitive dashboards.

🚀 Key Features

📥 Installation

Install from CRAN:

install.packages("bidux")

Or the development version:

# install.packages("pak")
pak::pak("jrwinget/bidux")

✅ Quick Start

library(shiny)
library(bidux)

# Document a simple BID pipeline
process <- bid_interpret(
    central_question = "Which metrics drive decisions?",
    data_story = list(
      hook = "Key metrics hidden",
      resolution = "Surface top metrics up front"
    )
  ) |>
  bid_notice(
    problem = "Users struggle to find key metrics",
    evidence = "70% of users spent >30s searching"
  ) |>
  bid_anticipate(
    bias_mitigations = list(anchoring = "Contextual defaults")
  ) |>
  bid_structure() |>
  bid_validate(
    include_exp_design = FALSE,
    include_telemetry = TRUE,
    include_empower_tools = TRUE
  )

# View suggestions
bid_suggest_components(process, package = "bslib")

# Generate an HTML report
bid_report(process, format = "html")

📊 Telemetry Integration

Leverage real user behavior to pinpoint UX friction with {shiny.telemetry} data:

# Ingest telemetry from SQLite or JSON
issues <- bid_ingest_telemetry(
  "telemetry.sqlite",
  format = "sqlite"
)

# Inspect detected issues
str(issues)

bid_ingest_telemetry() automatically flags five friction indicators:

  1. Unused Inputs: controls rarely interacted with
  2. Delayed Interactions: long time-to-first-action
  3. Frequent Errors: recurring error patterns
  4. Navigation Drop-offs: seldom-visited tabs/pages
  5. Confusion Patterns: rapid repeated changes

Use these insights to fuel the Notice stage and drive data-informed UI improvements. See the full example and thresholds customization in the See the package vignette 'Telemetry Integration' for a full example (accessible via vignette("telemetry-integration", package="bidux")).

📚 Vignettes

Explore detailed guides:

🤝 Contributing

We welcome all contributions! Please see Contributing Guide for guidelines, issue templates, and code style.

📜 License & Code of Conduct

This project is MIT licensed. By contributing, you agree to our Code of Conduct.



Try the bidux package in your browser

Any scripts or data that you put into this service are public.

bidux documentation built on Aug. 30, 2025, 1:12 a.m.