Skip to main content

Resource List

Ideas, links, tools, etc. for long-term access to research dashboards

Useful tools

This page contains a list of hopefully useful tools grouped together under the following headings:

  1. Build to last
    • Sustainable software development practices
    • Using the FAIR approach
    • Leveraging version control, environments, and containerisation
  2. Build together
    • Collaboration, documentation, and community
    • Software stewardship
  3. Building cheaply
    • Choosing affordable options from day one
    • Minimizing costs where possible
  4. Think outside the box
    • Creative solutions
    • DIY approaches

Use the contents to the right or search with Ctrl + f for different topics.

1. Build to last

Take approaches used generally in sustainable research software development to make projects more robust.

Version Control Systems, git

  • Records all changes to the project, time stamped, with a unique identifier
    • A record of who changed what, and when
  • Makes the build process open to allow for replication and reproduction of the work
  • Allows people to “reverse engineer” the work
  • More powerful when in a public repository, like on GitHub

Resources

GitHub

The resources listed below are free at time of writing, with usage limits.

  • Public repository with git version control, for long-term accessibility
  • Automated CI/CD workflows via GitHub Actions for testing, building, and deploying dashboards - can automatically update data, run tests, and deploy to hosting platforms
  • Free static website hosting directly from repositories - ideal for hosting documentation, simple dashboards, or project websites
  • Cloud-based development environments (via Codespaces) that allow contributors to work on projects without local setup, lowering barriers to collaboration
  • Release tagging: integrations with Zenodo for minting DOIs against releases

Resources

Dependency management

  • Lock specific versions of packages and dependencies to ensure dashboards work consistently across different machines and time periods
  • Create isolated environments to prevent conflicts between different projects
  • Modern tools support Windows, macOS, and Linux, making collaboration easier across diverse teams
  • Tools like pixi provide fast environment setup, reducing barriers for new contributors
  • Automatic resolution of complex dependency trees prevents version conflicts that could break dashboards over time
  • Share exact environment specifications through small configuration files rather than large binary packages
  • Tools like miniforge prioritize packages commonly used in research and data science workflows

Resources

Containerisation

  • Package entire dashboard applications with all dependencies into portable containers that run consistently across different systems
  • Isolate dashboards from host system changes, protecting against software updates that might break functionality
  • Enable easy deployment to cloud platforms, university servers, or personal computers without complex setup procedures
  • Preserve exact runtime environments for long-term reproducibility - containers can be archived and run years later
  • Support automated deployment pipelines that can rebuild and redeploy dashboards from source code

Resources

Dev Containers

  • Define complete development environments as code using Docker containers with pre-configured tools, extensions, and dependencies
  • Enable instant collaboration by allowing anyone to open your dashboard project in a fully configured environment via GitHub Codespaces
  • Ensure consistent development experience across different operating systems and machines, eliminating “works on my machine” problems
  • Automatically install required VS Code extensions, language servers, and debugging tools when contributors open the project
  • Support both local development (with Docker Desktop) and cloud-based development (with GitHub Codespaces) using the same configuration
  • Reduce onboarding time for new contributors from hours to minutes by providing ready-to-use development environments
  • Allow testing and development of dashboards without installing software locally, particularly useful for workshops and teaching

Resources

Example Dev Container app

See this example Dev Container with a Dash app

  • Very basic/minimal set up to show how you can let users build the app themselves/serve it in the cloud

Releases and DOI minting

  • Create tagged releases at key project milestones to capture stable snapshots of your dashboard code and documentation
  • Mint Digital Object Identifiers (DOIs) through Zenodo integration to create permanent, citable references to specific versions
  • Ensure long-term preservation through Zenodo’s commitment to maintain archived software beyond individual project lifecycles
  • Enable reproducible research by allowing others to cite and access exact versions of dashboards used in publications
  • Automatically trigger DOI creation when GitHub releases are published, reducing manual administrative overhead
  • Include release notes that document significant changes, bug fixes, and compatibility requirements for each version
  • Archive not just source code but also documentation, example data, and configuration files needed for reproduction

Resources

2. Build together

Documentation

  • Create comprehensive README files that explain what the dashboard does, how to install it, and how to use it
  • Document code with clear comments and docstrings so future maintainers can understand the logic
  • Provide step-by-step setup instructions that work for users with different technical backgrounds
  • Include examples and screenshots to help users understand expected outputs and functionality
  • Maintain changelogs and release notes to help users track updates and breaking changes over time
  • Document data sources, update frequencies, and any manual processes required to keep dashboards current
  • Create contributor guides to help new team members understand development workflows and standards

Resources

Licensing

  • Choose open source licenses that allow others to use, modify, and distribute your dashboard code freely
  • Ensure license compatibility when using third-party libraries and datasets in your project
  • Include clear license files in your repository to establish legal permissions for long-term use
  • Consider data licensing separately from code licensing, especially for research datasets with different restrictions
  • Use permissive licenses like MIT or Apache 2.0 to maximise accessibility and adoption by other researchers
  • Document any trademark or attribution requirements for logos, branding, or institutional acknowledgements
  • Understand institutional policies around intellectual property and open source software release

Resources

Community management

  • Use GitHub Issues to track bugs, feature requests, and general discussions about dashboard improvements
  • Create issue templates that guide users to provide helpful information when reporting problems or suggesting features
  • Set up GitHub Discussions for broader conversations about dashboard usage, best practices, and community questions
  • Establish clear communication channels (mailing lists, Slack, Discord) where community members can ask for help and share experiences
  • Recognise contributors through acknowledgements in documentation, contributor lists, and release notes
  • Create governance documents that outline decision-making processes and community standards
  • Host regular community calls or meetings to discuss roadmap priorities and gather feedback
  • Be aware of recorded gender-based hostility and uninclusive environment in OS

Resources

Code review and collaboration

  • Implement pull request workflows that require code review before changes are merged to maintain quality
  • Use branch protection rules to prevent direct commits to main branches and ensure all changes go through review
  • Set up automated checks (linting, testing, security scans) that run on every pull request
  • Create clear contribution guidelines that explain coding standards, testing requirements, and review processes
  • Use draft pull requests for early feedback on work-in-progress features and major changes
  • Encourage pair programming and collaborative development sessions to share knowledge across the team
  • Maintain a welcoming tone in code reviews that focuses on improving code rather than criticising contributors

Resources

Onboarding and mentorship

  • Create “good first issue” labels to help new contributors find approachable tasks to start with
  • Develop step-by-step onboarding guides that walk newcomers through setting up development environments
  • Pair experienced contributors with newcomers as mentors for their first few contributions
  • Host coding workshops, hackathons, or sprint events to bring community members together
  • Record video tutorials showing how to contribute to different parts of the dashboard project
  • Maintain up-to-date contributor documentation that explains project structure and development workflows
  • Celebrate first-time contributors publicly to encourage continued participation

Resources

Sustainability planning

  • Develop succession plans that identify key roles and knowledge areas that need continuity
  • Create detailed handover documentation for critical maintenance tasks and decision-making processes
  • Establish funding strategies for long-term hosting, domain names, and infrastructure costs
  • Build relationships with institutional partners who can provide ongoing support or hosting
  • Document dependencies on external services and create contingency plans if they become unavailable
  • Train multiple community members in essential skills like deployment, data updates, and troubleshooting
  • Consider transferring projects to established organisations or foundations for long-term stewardship

Resources

3. Build cheaply

Static Web Apps

  • Do you need a server to support your webapp or can you build it as a static site, leveraging JavaScript etc.?
  • Can go purely HTML, JS, etc.
  • Or can stick with R and Python via Quarto

Resources

Quarto

  • An incredible, Open-Source tool
  • Easy to use for Python and R users
  • Create static pages that can be served via GitHub pages
  • Can use various interactive plotting Python and R libraries

Resources

4. Think outside the box

Python/R in the Browser

  • Instead of setting up a server to run Python, can we make it run in the user’s browser?
  • Quarto live is one option
    • Integrated with Quarto, so again can be set up to run in GitHub pages
    • Allows the users to interact with and see the code directly
    • Great educational resource
  • Voici: turn Jupyter notebooks into static web applications

Other interesting links/resources

Publications

  • Hoffenson, Steven, Cory Philippe, Zuting Chen, Christian Barrientos, Zhongyuan Yu, Brian Chell, and Mark Blackburn. 2023. “Graphical Features of Interactive Dashboards Have Little Influence on Engineering Students Performing a Design Task.” International Journal of Human-Computer Studies 180 (103121): 103121.
  • Rossi, Fernanda S., Meredith C. B. Adams, Gregory Aarons, and Mark P. McGovern. 2025. “From Glitter to Gold: Recommendations for Effective Dashboards from Design through Sustainment.” Implementation Science: IS 20 (1): 16.
  • Wu, Elwin, Jennifer Villani, Alissa Davis, Naleef Fareed, Daniel R. Harris, Timothy R. Huerta, Marc R. LaRochelle, Cortney C. Miller, and Emmanuel A. Oga. 2020. “Community Dashboards to Support Data-Informed Decision-Making in the HEALing Communities Study.” Drug and Alcohol Dependence 217 (108331): 108331.