{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,28]],"date-time":"2026-02-28T01:31:43Z","timestamp":1772242303632,"version":"3.50.1"},"reference-count":12,"publisher":"SciPy","license":[{"start":{"date-parts":[[2024,7,10]],"date-time":"2024-07-10T00:00:00Z","timestamp":1720569600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"abstract":"<jats:p>\n                    The open-source Jupyter project has fostered a robust ecosystem around\nnotebook-based computing, resulting in diverse Jupyter-compatible platforms\n(e.g., JupyterLab, Google Colab, VS Code). Jupyter Widgets extend these\nenvironments with custom visualizations and interactive elements that\ncommunicate directly with user code and data. While this bidirectional\ncommunication makes the widget system powerful, its architecture is currently\ntightly coupled to platforms. As a result, widgets are complex and error-prone\nto author and distribute, limiting the potential of the wider widget ecosystem.\nHere we describe the motivation and approach behind the\n                    <jats:italic>anywidget<\/jats:italic>\n                    project,\na specification and toolset for portable and reusable web-based widgets in\ninteractive computing environments. It ensures cross-platform compatibility\nby using the web browser\u2019s built-in module system to load these modules from\nthe notebook kernel. This design simplifies widget authorship and distribution,\nenables rapid prototyping, and lowers the barrier to entry for newcomers.\nAnywidget is compatible with not just Jupyter-compatible platforms but any web-based notebook\nplatform or authoring environment and is already adopted by other projects.\nIts adoption has sparked a widget renaissance, improving reusability,\ninteroperability, and making interactive computing more accessible.\n                  <\/jats:p>","DOI":"10.25080\/nrpv2311","type":"proceedings-article","created":{"date-parts":[[2024,10,4]],"date-time":"2024-10-04T16:42:26Z","timestamp":1728060146000},"page":"247-255","source":"Crossref","is-referenced-by-count":0,"title":["Any notebook served: authoring and sharing reusable interactive widgets"],"prefix":"10.25080","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-7694-5164","authenticated-orcid":false,"given":"Trevor","family":"Manz","sequence":"first","affiliation":[{"name":"Department of Biomedical Informatics, Harvard Medical School, Boston, MA, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0327-8297","authenticated-orcid":false,"given":"Nils","family":"Gehlenborg","sequence":"additional","affiliation":[{"name":"Department of Biomedical Informatics, Harvard Medical School, Boston, MA, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5814-0864","authenticated-orcid":false,"given":"Nezar","family":"Abdennur","sequence":"additional","affiliation":[{"name":"Department of Genomics and Computational Biology, UMass Chan Medical School, Worcester, MA, USA"},{"name":"Department of Systems Biology, UMass Chan Medical School, Worcester, MA, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"32550","published-online":{"date-parts":[[2024,7,10]]},"reference":[{"key":"Kluyver2016","doi-asserted-by":"publisher","DOI":"10.3233\/978-1-61499-649-1-87"},{"key":"Granger2021","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2021.3059263"},{"key":"manzt2023","doi-asserted-by":"publisher","DOI":"10.1093\/bioinformatics\/btad050"},{"key":"viv","doi-asserted-by":"publisher","DOI":"10.1038\/s41592-022-01482-7"},{"key":"vitessce","doi-asserted-by":"publisher","DOI":"10.31219\/osf.io\/y8thv"},{"key":"joss","doi-asserted-by":"publisher","DOI":"10.31219\/osf.io\/tw9sg"},{"key":"jscatter","doi-asserted-by":"publisher","DOI":"10.21105\/joss.07059"},{"key":"Heer2024","doi-asserted-by":"publisher","DOI":"10.1109\/TVCG.2023.3327189"},{"key":"Gadhave2023","doi-asserted-by":"publisher","DOI":"10.31219\/osf.io\/9x8eq"},{"key":"manz2024cev","doi-asserted-by":"publisher","DOI":"10.31219\/osf.io\/puxnf"},{"key":"VanderPlas2018","doi-asserted-by":"publisher","DOI":"10.21105\/joss.01057"},{"key":"Wang2024","doi-asserted-by":"publisher","DOI":"10.1145\/3613905.3650848"}],"event":{"name":"Python in Science Conference","location":"Tacoma, Washington","acronym":"SciPy","number":"23rd"},"container-title":["Proceedings of the Python in Science Conference","Proceedings of the 23rd Python in Science Conference"],"original-title":[],"deposited":{"date-parts":[[2024,11,5]],"date-time":"2024-11-05T16:10:14Z","timestamp":1730823014000},"score":1,"resource":{"primary":{"URL":"https:\/\/doi.curvenote.com\/10.25080\/NRPV2311"}},"subtitle":[],"proceedings-subject":"Scientific Computing with Python","short-title":[],"issued":{"date-parts":[[2024,7,10]]},"references-count":12,"URL":"https:\/\/doi.org\/10.25080\/nrpv2311","relation":{"has-preprint":[{"id-type":"doi","id":"10.31219\/osf.io\/pyn7u_v1","asserted-by":"object"}]},"ISSN":["2575-9752"],"issn-type":[{"value":"2575-9752","type":"print"}],"subject":[],"published":{"date-parts":[[2024,7,10]]}}}