<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>User interface | museum-digital: blog</title>
	<atom:link href="https://blog.museum-digital.org/tag/user-interface-en/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.museum-digital.org</link>
	<description>A blog on museum-digital and the broader digitization of museum work.</description>
	<lastBuildDate>Wed, 30 Sep 2026 16:12:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://blog.museum-digital.org/wp-content/uploads/2020/01/cropped-mdlogo-code-512px-32x32.png</url>
	<title>User interface | museum-digital: blog</title>
	<link>https://blog.museum-digital.org</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="search" type="application/opensearchdescription+xml" title="Search museum-digital: blog" href="https://blog.museum-digital.org/wp-json/opensearch/1.1/document" />
	<item>
		<title>Pre-Release of musdb&#8217;s New UI</title>
		<link>https://blog.museum-digital.org/2026/09/30/pre-release-of-musdbs-new-ui/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Wed, 30 Sep 2026 14:53:43 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4730</guid>

					<description><![CDATA[For the last months, a new, fully reworked user interface for musdb has been in the works. Two previous blog posts discussed the reasons and the scope of the overhaul (1, 2). The latter of these also came with our target timeline for the release. Which is to say: It is time for the first <a href="https://blog.museum-digital.org/2026/09/30/pre-release-of-musdbs-new-ui/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">For the last months, a new, fully reworked user interface for musdb has been in the works. Two previous blog posts discussed the reasons and the scope of the overhaul (<a href="https://blog.museum-digital.org/2026/05/05/musdb-reimagined-a-preview/">1</a>, <a href="https://blog.museum-digital.org/2026/09/14/musdb-reimagined-update-release-schedule/">2</a>). The latter of these also came with our target timeline for the release. Which is to say: It is time for the first pre-release.</p>



<p class="wp-block-paragraph">Starting tonight, an overlay will appear, guiding users of musdb to try out the new UI. Which begs the question: Is the new UI ready for general use. Realistically there can be no general answer to that question. We have tried to prioritize the development of commonly used functionalities, while many less commonly used sections of musdb are still entirely missing in the new UI. Before a (nearly) comprehensive list and categorization of the features that are thus far missing in the new UI is presented, let&#8217;s look at a few key new features and benefits of the new UI.</p>



<h2 class="wp-block-heading">New Architecture, New Possibilities</h2>



<p class="wp-block-paragraph">As has been outlined in the previous blog posts multiple times, the most challenging and yet basic aspect of musdb&#8217;s UI rewrite is the move to a different architectural approach. In the old UI, each page is its own script, with all these scripts using the same functions in the background. Opening a page &#8211; or e.g. saving a form &#8211; thus requires a full page reload, including a reload of all the data that remains unchanged. On the face of it, this sounds inefficient in terms of performance and bandwidth use. It is. It is also noticable in immediately perceivable characteristics like the view jumping back to the top of the page when a form is submitted.</p>



<p class="wp-block-paragraph">Refactoring musdb&#8217;s backend code to a more reusable, testable and logical structure is an endeavour that has been ongoing for over half a decade now. The occassional references to musdb&#8217;s growing API in the blog were the immediate benefits of it &#8211; functions that were used to provide the regular, human-readable user interface were also made available for machine-to-machine communications.</p>



<p class="wp-block-paragraph">The new UI is then the result of the final completion of that refactoring: It is a Typescript application built entirely on top of musdb&#8217;s API. On the one hand, this means that potentially any action that users can perform using musdb&#8217;s graphical UI will also be available for automated use using the API. On the other hand, it simplifies things in development: As we are ourselves using the API everywhere, good maintenance is simplfied a lot (see <a href="https://en.wikipedia.org/wiki/Eating_your_own_dog_food">also</a>).</p>



<p class="wp-block-paragraph">Given this new architecture, the user interface is entirely processed in the browser. If forms are submitted, only the changed values are transmitted to the server. The required bandwidth is thus reduced greatly, once the application has loaded. Similarly, navigating only reloads those sections of a page that actually change, reducing computing load for server and client alike (and thus increasing performance).</p>



<h3 class="wp-block-heading">Automation via Webhooks</h3>



<p class="wp-block-paragraph">Only possible due to the new architecture has been the addition of a webhook system in musdb, which offers a simple way to react to updates in musdb in an automatic way. Webhooks can be configured in the institution-level settings pages of the new UI. Note that, as the webhook system requires the use of the new architecture, webhooks configured in the new UI will not take effect when one continues to work in the old one (while both are available). See also: <a href="https://en.wikipedia.org/wiki/Webhook">Wikipedia on webhooks</a>.</p>



<h2 class="wp-block-heading">Design Overhaul</h2>



<p class="wp-block-paragraph">Doing a re-design from the ground up naturally allows for the creation of a much more streamlined user interface. Going by the (albeit limited) feedback we have thus far received on the new UI, we have indeed succeeded in creating one. Similar functionalities that were spread over different sections of a page or different pages altogether have been moved into the same section of a page; redundant or confusing options have been removed. Where things could remain as before &#8211; as even the old design received its fair share of praise despite its shortcomings &#8211; they remain roughly the same.</p>



<p class="wp-block-paragraph">The previous blog posts have already provided some in-depth glances into the new UI. Importantly for this post, the design overhaul will include the removal of some redundant, badly thought-out or effectively counter-productive funtcionalities.</p>



<h2 class="wp-block-heading">List of Features Not Yet Implemented</h2>



<p class="wp-block-paragraph">In the following, a simple list &#8211; in some cases with further remarks &#8211; of the features the old UI offered, that are not or not yet implemented in the new UI will follow. If some feature is not to be found in the list, it is most likely already implemented.</p>



<h3 class="wp-block-heading">Features That Will Certainly Be Implemented, But Are Not Yet</h3>



<h4 class="wp-block-heading">Whole Pages</h4>



<ul class="wp-block-list">
<li>The general search page for object images has not been implemented yet</li>



<li>Visitor counting</li>
</ul>



<h4 class="wp-block-heading">Navigation</h4>



<ul class="wp-block-list">
<li>Notification system</li>
</ul>



<h4 class="wp-block-heading">Misc Tools</h4>



<p class="wp-block-paragraph">There can be accessed in the old UI using the &#8220;Tools&#8221; subsection of the dashboard or the similarly named &#8220;Tools&#8221; submenu of the navigation.</p>



<ul class="wp-block-list">
<li>QR-code generator</li>



<li>Calendar</li>



<li>Process list</li>



<li>To-Do list</li>



<li>Knowledge management / mini-wiki</li>



<li>Hyperlink checker</li>



<li>URL Shortening</li>



<li>Consistency checks for migrating data from free text fields to controlled ones</li>
</ul>



<h4 class="wp-block-heading">Features Available in Multiple Sections of musdb</h4>



<ul class="wp-block-list">
<li>Notes (for any page)</li>



<li>Nextcloud integration</li>



<li>UI for users with less permissions<br><em>The UI should hide submission buttons etc. where a user has no permissions to perform the relevant action. This is by far only implemented in very few cases (while permissions are enforced in the backend).</em></li>
</ul>



<h4 class="wp-block-heading">Object Pages</h4>



<ul class="wp-block-list">
<li>Overview pages
<ul class="wp-block-list">
<li>Sorting menu</li>



<li>Watch list</li>



<li>List view / editing most fields in a tabular view</li>
</ul>
</li>



<li>Sidebar
<ul class="wp-block-list">
<li>Warning if an object is currently reserved</li>



<li>Object record editing status (e.g. open, locked, archived)</li>



<li>Export settings for XML exports; quick exports work</li>



<li>Improvement suggestions</li>
</ul>
</li>



<li>Basic data tab
<ul class="wp-block-list">
<li>Editing translations</li>



<li>Tag suggestions based on the object image</li>



<li>Tag suggestions based on the object description</li>



<li>Ability to add sources / citations for events</li>
</ul>
</li>



<li>Addendum tab
<ul class="wp-block-list">
<li>Data field-specific setting for publication status</li>
</ul>
</li>



<li>Administration tab
<ul class="wp-block-list">
<li>Deaccession (administration tab)</li>
</ul>
</li>



<li>Location tab
<ul class="wp-block-list">
<li>Links to loan management</li>
</ul>
</li>



<li>Most of the restoration / conservation tab</li>



<li>Data history tab
<ul class="wp-block-list">
<li>Versioning UI</li>
</ul>
</li>



<li>Custom / user-defined object editing interace</li>



<li>Comparing objects</li>
</ul>



<h4 class="wp-block-heading">Institution pages</h4>



<ul class="wp-block-list">
<li>Institution editing page
<ul class="wp-block-list">
<li>Tab for self-categorization of institutions / survey</li>
</ul>
</li>



<li>Institution-level settings
<ul class="wp-block-list">
<li>Configuration of scheduled, automatic generation of exports</li>
</ul>
</li>
</ul>



<h4 class="wp-block-heading">Collection pages</h4>



<ul class="wp-block-list">
<li>Hierarchy &amp; sorting</li>



<li>Editing page</li>



<li>Tagging for collections</li>
</ul>



<h4 class="wp-block-heading">Series</h4>



<ul class="wp-block-list">
<li>Series editing pages
<ul class="wp-block-list">
<li>Hierarchy</li>



<li>Sorting objects of the series</li>



<li>Sidebar
<ul class="wp-block-list">
<li>Setting for visibility of the series on the public institution page</li>



<li>Option to group related vocabulary entries for revision in nodac</li>
</ul>
</li>
</ul>
</li>
</ul>



<h4 class="wp-block-heading">User Settings</h4>



<ul class="wp-block-list">
<li>Editing pages for other users
<ul class="wp-block-list">
<li>Configuration of user permissions</li>
</ul>
</li>



<li>Own account settings
<ul class="wp-block-list">
<li>Export of own account data</li>



<li>WebDAV settings (for preparing independently run data imports)</li>



<li>Notification settings</li>
</ul>
</li>
</ul>



<h4 class="wp-block-heading">Contacts / Address Book</h4>



<ul class="wp-block-list">
<li>Contact editing pages
<ul class="wp-block-list">
<li>vCard export</li>



<li>List of linked literature entries (to be implemented on the literature search page)</li>
</ul>
</li>
</ul>



<h4 class="wp-block-heading">Spaces</h4>



<ul class="wp-block-list">
<li>Hierarchy</li>



<li>Editing pages
<ul class="wp-block-list">
<li>Sensor data display</li>
</ul>
</li>
</ul>



<h4 class="wp-block-heading">Exhibitions</h4>



<ul class="wp-block-list">
<li>Editing pages
<ul class="wp-block-list">
<li>Tab for publications linked to the exhibition</li>
</ul>
</li>
</ul>



<h4 class="wp-block-heading">Vocabularies / Backgrounds</h4>



<ul class="wp-block-list">
<li>Unreleased catalogue raisonne feature</li>



<li>Statements</li>
</ul>



<h3 class="wp-block-heading">Features That Are Implemented But Certainly Need to Get Better</h3>



<ul class="wp-block-list">
<li>Object editing page
<ul class="wp-block-list">
<li>Linking recently linked entities on base tab</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">Features That Will Be Removed</h3>



<ul class="wp-block-list">
<li>General page features
<ul class="wp-block-list">
<li>Bookmarks<br><em>Browsers are much better at bookmarking than musdb. And musdb runs in a browser anyway.</em></li>
</ul>
</li>



<li>Object page
<ul class="wp-block-list">
<li>Tab: Provenance research<br><em>Feedback from provenance researchers (and common sense and experience) informed us that the current implementation is altogether ill-conceived. A whole separate, general section of musdb for managing research projects might eventually be added to actually do what we aimed to do here.</em></li>



<li>Entering free text data from an appropriate prepared QR-code</li>



<li>&#8220;Ask an expert&#8221; tool</li>
</ul>
</li>



<li>Article section (never really used)</li>



<li>Podcasting features (never published)</li>



<li>Series page
<ul class="wp-block-list">
<li>Offline HTML catalogue<br><em>This solution has not been properly maintained in a decade. With a generally wider availability of internet connections, API-based solutions are also much more flexible.</em></li>



<li>Configuration for display modes of published series pages</li>
</ul>
</li>



<li>Chat</li>



<li>Setting for the start page of a user upon logging in<br><em>The primary and most reliable means by which we can communicate updates to musdb (and other museum-digital tools) is the blog, whose feed is embedded into the dashboard. Making sure that everybody occassionally visits the dashboard thus also means that the likelihood that users know about updates is increased. On the other hand understanding users&#8217; bug reports regarding login and startup is simplified if there is a more unified workflow around logging in.</em></li>
</ul>



<h4 class="wp-block-heading">Features to be Discussed</h4>



<ul class="wp-block-list">
<li>Object page
<ul class="wp-block-list">
<li>Social media buttons setting. With the selection of available social media buttons and current usage trends, it might be wiser to simply scrap the option.</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">What Does That Mean For the Roadmap?</h2>



<p class="wp-block-paragraph">As one can quite easily see, a lot is left to be done. But the bulk of the work has been done and we are perfectly on schedule. For anybody who relies on the features that are still missing, the old version will remain available until around November 22. For the majority of users, the current state of musdb should actually already support most or all of their requirements better than the old UI.</p>



<p class="wp-block-paragraph">Until November 22 both versions are available for users to slowly transition over to the new version. We are curious for feedback and continuously push new updates to the new version.</p>



<p class="wp-block-paragraph"><em>(Post image generated using Anima Base v1)</em></p>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>musdb Reimagined &#8211; Update &#038; Release Schedule</title>
		<link>https://blog.museum-digital.org/2026/09/14/musdb-reimagined-update-release-schedule/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Mon, 14 Sep 2026 15:56:53 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Batch editing]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4682</guid>

					<description><![CDATA[In May 2026 we announced an upcoming large-scale rewrite of musdb&#8217;s user interface. Now, it is taking shape and we can announce an actual timeline. Recap: Scope and Reasons of the Rewrite musdb as a tool has been around since sometime around 2009 or 2010 &#8211; soon after the wider inception of museum-digital. Back then, <a href="https://blog.museum-digital.org/2026/09/14/musdb-reimagined-update-release-schedule/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In <a href="https://blog.museum-digital.org/2026/05/05/musdb-reimagined-a-preview/">May 2026 we announced</a> an upcoming large-scale rewrite of musdb&#8217;s user interface. Now, it is taking shape and we can announce an actual timeline.</p>



<h2 class="wp-block-heading">Recap: Scope and Reasons of the Rewrite</h2>



<p class="wp-block-paragraph">musdb as a tool has been around since sometime around 2009 or 2010 &#8211; soon after the wider inception of museum-digital. Back then, its scope was to provide an input interface for the recording of publishable museum object data. Since then, the basic architecture to the user interface has remained largely unchanged. While the scope grew to musdb aiming to be a full-featured collection and museum management system, many features that were added were only added &#8220;on top&#8221; &#8211; far enough out of the way to not disturb legacy users or to break existing workflows. In a nutshell: musdb in its current form is quite good, but it&#8217;s an application whose user interface has grown without a clear roadmap and a systematic reconsideration and streamlining of the user interface for over a decade.</p>



<p class="wp-block-paragraph">Since 2009, web development has changed. We do not need to worry about the Internet Explorer anymore, browser compatibility is much better, and web applications can be much more interactive with modern browsers and hardware. To fully make use of these larger advances in the development of musdb, a general change to its architecture is necessary however.</p>



<p class="wp-block-paragraph">As the architecture changes from a traditional web site with many independent pages to a single page application, the rewrite is indeed that: Instead of generating pages on the server and only displaying them in the browser, musdb&#8217;s user interface will be fully generated in the browser, with only the relevant data being queried from the server using dedicated, documented APIs. Even to keep the same functionality, we would need to re-implement its presentation. This means that the rewrite is also a perfect opportunity to streamline the user interface and to reconsider previously unused or overseen functionalities.</p>



<p class="wp-block-paragraph">On the other hand: With the new user interface changing everything display-related on a technical level, that does not mean that much has to change on a conceptual level. The rewritten musdb will feature the same basic division of pages &#8211; lists, editing pages, and pages for adding new entries -, it features the same idea of a tabbed editing pages and &#8211; with few exceptions &#8211; the same data fields and order thereof.</p>



<h2 class="wp-block-heading">A Sneak Preview</h2>



<p class="wp-block-paragraph">Where much stays the same, taking a small glimpse into things that will change might be in order. In the following there are a few such previews with small screen casts. Most of these focus on overview / list pages, which are already in a release-ready form. </p>



<h3 class="wp-block-heading">Navigation</h3>



<figure class="wp-block-video"><video height="1080" style="aspect-ratio: 1920 / 1080;" width="1920" controls src="https://blog.museum-digital.org/wp-content/uploads/2026/09/musdb-navigation-customization-eng.mp4"></video><figcaption class="wp-element-caption">The screencast shows how menu entries can now be toggled into and out of the quick access navigation. The quick access navigation and the list of other sections of musdb have now been moved closer together.</figcaption></figure>



<h3 class="wp-block-heading">New Filter Options</h3>



<figure class="wp-block-video"><video height="1080" style="aspect-ratio: 1920 / 1080;" width="1920" controls src="https://blog.museum-digital.org/wp-content/uploads/2026/09/musdb-search-filter-eng.mp4.crf28.mp4"></video><figcaption class="wp-element-caption">As had already begun in the old UI of musdb, more and more types of overviews now feature additional fine-grained filter settings.</figcaption></figure>



<h3 class="wp-block-heading">Display Modes of Overview Pages</h3>



<figure class="wp-block-video"><video height="1080" style="aspect-ratio: 1920 / 1080;" width="1920" controls src="https://blog.museum-digital.org/wp-content/uploads/2026/09/musdb-search-toggle-display-eng.mp4.crf28.mp4"></video><figcaption class="wp-element-caption">All overview pages in the new UI of musdb feature the same three display modes: grid, list, and table.</figcaption></figure>



<h3 class="wp-block-heading">Batch Editing On All Overview Pages</h3>



<figure class="wp-block-video"><video height="1080" style="aspect-ratio: 1920 / 1080;" width="1920" controls src="https://blog.museum-digital.org/wp-content/uploads/2026/09/musdb-search-batch-edit-eng.mp4.crf28.mp4"></video><figcaption class="wp-element-caption">All overview pages now feature the basic functionality of selecting entries for batch editing. The actual batch editing capabilities will vary depending on the respective type of entities listed. For now, all publishable entities can be published or unpublished in batch this way. Further batch editing functionalities will be simple to implement upon request.</figcaption></figure>



<h3 class="wp-block-heading">Interactive Overviews</h3>



<figure class="wp-block-video"><video height="1080" style="aspect-ratio: 1920 / 1080;" width="1920" controls src="https://blog.museum-digital.org/wp-content/uploads/2026/09/musdb-publish-from-list-eng.mp4"></video><figcaption class="wp-element-caption">List views of publishable entries in the database now show whether the respective entries are published directly within the overview in a uniform way. Clicking on the publication status toggles it and publishes hidden entries or hides published ones.</figcaption></figure>



<h2 class="wp-block-heading">Timeline</h2>



<p class="wp-block-paragraph">Now, when will the new UI be done? And when will it be released?</p>



<p class="wp-block-paragraph">As of now, the development is progressing smoothly and the required building blocks for almost all functionalities are there. Depending on what features one uses, the new UI can already replace the old for most common use cases. To fully do so for common use cases means that at least object editing pages need to be implemented fully. This should be the case as of late September. In the following, seminars and a time period where both versions can be used side-by-side will be had to ensure a somewhat smooth transition from the old to the new UI.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td>Sept. 14, 2026</td><td>Blog post</td></tr><tr><td>Sept. 28 &#8211; Oct. 4</td><td>A dialogue will appear on the dashboard of musdb giving notice about the upcoming re-design. It will include a link to the new version.</td></tr><tr><td>Oct. 30</td><td>The new version will be presented at the German user meetup (online). The update will be finished at this point.</td></tr><tr><td>Nov. 1</td><td>The login flow will be updated to link users to the new version first. Here they will see a dialogue similar to the old one, giving notice about the re-design and allowing users to use the old version for the time being.</td></tr><tr><td>Nov. 2 (1 PM)</td><td>Seminar on the update (German)<br><em>Hosted by the museum-digital Deutschland e.V.</em></td></tr><tr><td>Nov. 6 (1 PM)</td><td>Seminar on the update (English)<br><em>Hosted by the museum-digital Deutschland e.V.</em></td></tr><tr><td>Nov. 16 (10 AM)</td><td>Seminar on the update (German)<br><em>Hosted by the museum-digital Deutschland e.V.</em></td></tr><tr><td>Nov. 22</td><td>The dialogue on the dashboard disappears, the old<br>version is removed.</td></tr></tbody></table></figure>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">(Post image generated using Anima Base v1)</p>
]]></content:encoded>
					
		
		<enclosure url="https://blog.museum-digital.org/wp-content/uploads/2026/09/musdb-navigation-customization-eng.mp4" length="242294" type="video/mp4" />
<enclosure url="https://blog.museum-digital.org/wp-content/uploads/2026/09/musdb-search-filter-eng.mp4.crf28.mp4" length="266321" type="video/mp4" />
<enclosure url="https://blog.museum-digital.org/wp-content/uploads/2026/09/musdb-search-toggle-display-eng.mp4.crf28.mp4" length="307178" type="video/mp4" />
<enclosure url="https://blog.museum-digital.org/wp-content/uploads/2026/09/musdb-search-batch-edit-eng.mp4.crf28.mp4" length="310874" type="video/mp4" />
<enclosure url="https://blog.museum-digital.org/wp-content/uploads/2026/09/musdb-publish-from-list-eng.mp4" length="133430" type="video/mp4" />

			</item>
		<item>
		<title>musdb Reimagined &#8211; A Preview</title>
		<link>https://blog.museum-digital.org/2026/05/05/musdb-reimagined-a-preview/</link>
					<comments>https://blog.museum-digital.org/2026/05/05/musdb-reimagined-a-preview/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Tue, 05 May 2026 16:32:34 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4667</guid>

					<description><![CDATA[musdb is almost as old as museum-digital itself. From its beginning sometime around 2009 or 2010, it has significantly grown in size and scope. Originally, it was created as an input interface for the publication of museum objects. Today, it aims to be a full fledged collection and museum management solution, capable of covering publishable <a href="https://blog.museum-digital.org/2026/05/05/musdb-reimagined-a-preview/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">musdb is almost as old as museum-digital itself. From its beginning sometime around 2009 or 2010, it has significantly grown in size and scope. Originally, it was created as an input interface for the publication of museum objects. Today, it aims to be a full fledged collection and museum management solution, capable of covering publishable object and exhibition data, internal aspects of collection management such as climate sensor readings and loan management as well as providing general knowledge and project management capabilities.</p>



<p class="wp-block-paragraph">Over all that time however, the basic architecture of musdb remained basically unchanged, with new functionality fit in or added on top where it seemed suitable. Additionally we have been struggling with the duplicate implementation of several functionalities at different times, where one implementation offers a very simple access to the respective data (e.g. a free text field), while the other offers a representation of the same data in a much more fine-grained, precise, and more interlinked way, whose requirements are however harder to fulfill during imports and that requires a more thorough documentation generally.</p>



<p class="wp-block-paragraph">We routinely get very positive feedback from colleagues working in museums, that musdb is comparatively easy to use and logical. The age of the architecture as well as the many small inconsistencies in terms of the user interface that have crept in over time however suggest that it is time for a more radical reimagining of what musdb looks and works like.</p>



<p class="wp-block-paragraph">This post is a first small preview to what musdb should look like starting in the third quarter of 2026. After a more thorough discussion of the reasons for rewriting significant parts of the publications, some first glimpses into the new version are provided at the end of this post.</p>



<h2 class="wp-block-heading">Reasons</h2>



<h3 class="wp-block-heading">Technical</h3>



<p class="wp-block-paragraph">musdb is primarily a PHP application. As such, the internal logic as well as most of the user interface rest on the server. Almost all of the user interface is rendered into HTML on the server and then sent to the browser to generate what a user can view. Some functionalities that require additional interactivity, are presented in overlays, etc. are implemented in JavaScript and processed directly in the browser, with the JavaScript drawing its data both from the HTML as well as APIs (some internal, some documented for internal and external use).</p>



<p class="wp-block-paragraph">Speaking in modern web development terms, PHP covers model, view, and controller on the server, with JavaScript extending the view somewhere half-way. Logically, this is problematic. In brutal practicality, it means that musdb&#8217;s JavaScript components are a collection of small scripts always dependent of some external (PHP/server-side) preparation and not logically interacting with each other. This prevents lots of the benefits of a more structured programming from being used altogether.</p>



<p class="wp-block-paragraph">Our aim with the technical architecture of a reimagined musdb is to design musdb as a modern single page application with all data being provided by clearly documented APIs. This will come with several benefits:</p>



<ul class="wp-block-list">
<li>The view layer is entirely processed entirely in the client, providing a clear logical division between the different tasks</li>



<li>With a modern build infrastructure, code can be reused much more than thus far, providing a better maintainability in the long run</li>



<li>musdb will come with barely any browser-level page reloads. If an API is queried, the application can clearly communicate what is being loaded and for what purpose.</li>



<li>As musdb&#8217;s UI will be entirely built based on the same API as can be used by external developers, that API will be fully feature-complete by the end of the process.</li>
</ul>



<h3 class="wp-block-heading">User interface</h3>



<p class="wp-block-paragraph">The general structure of musdb&#8217;s user interface has proven itself to be quite good. However, as musdb has grown over the years, a lot of small inconsistencies and opportunities for improvement have crept in.</p>



<p class="wp-block-paragraph">Take the navigation alone:</p>



<ul class="wp-block-list">
<li>To access object groups, one can always hover over the three dots sub-menu of the navigation section on the very top right. If one enables the menu option &#8220;object group&#8221; in the personal settings (accessible by clicking on one&#8217;s name), one can also quickly access it via the quick access navigation (the second line of the navigation). As such, simply accessing a central part of musdb is spread over three different sections of the navigation.</li>



<li>There are two question mark icons in the navigation. One, in a speech bubble, links to communication channels and contact persons that one can use to seek help. The other provides links to the handbook. On the one hand, there is a clear logical differentiation between the two. On the other, both look similar and follow rather similar aims. That the two sub-menus are divided rather than being merged into a single sub-menu is not intuitively apparent.</li>



<li>Clicking on the page title or the colored circle at the right of the navigation opens the context-independent search function. Both bear no resemblance to an icon associated with searching and actually follow entirely different primary aims by themselves.</li>
</ul>



<p class="wp-block-paragraph">Many similar issues exist around musdb. In most cases, these somehow make sense and are logical in themselves &#8211; but they still contradict a seamless, intuitive use of the application.</p>



<p class="wp-block-paragraph">Additionally, there are some functionalities that in themselves contradict a more streamlined use of musdb. One such example also accessible via the navigation is the option for users to set their preferred page to be referred to right after they log in. musdb has been built more and more on the premise, that users will start their use of the application on the dashboard, and thus some features &#8211; like requiring users to enable two-factor authentication for regional administrators &#8211; can be bypassed by selecting any non-dashboard start page. The option to select a non-standard start page will hence almost certainly be scrapped in the new version of musdb.</p>



<h2 class="wp-block-heading">Preview</h2>



<p class="wp-block-paragraph">For now, only the basic scaffolding, most of the navigation and some of the overview pages have been implemented in the new version. Screenshots of these can be seen below. Importantly and yet missing, each different section of musdb is planned to come with an icon representing it in the navigation (top left).</p>



<p class="wp-block-paragraph">Note also, that nothing about the new UI is set in stone. These are first drafts. More will follow soon.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="539" src="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_Dashboard_20260504_10h14m08s-1024x539.webp" alt="" class="wp-image-4676" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_Dashboard_20260504_10h14m08s-1024x539.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_Dashboard_20260504_10h14m08s-300x158.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_Dashboard_20260504_10h14m08s.webp 1515w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The dashboard in the new UI of musdb will offer a reduced, more streamlined and &#8211; importantly &#8211; subdivided selection of tabs. At the top, the new navigation with the yet missing icons is missing (all icons thus far being a location pin).</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="993" height="376" src="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-quick-access1_20260505_18h02m50s.webp" alt="" class="wp-image-4671" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-quick-access1_20260505_18h02m50s.webp 993w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-quick-access1_20260505_18h02m50s-300x114.webp 300w" sizes="auto, (max-width: 993px) 100vw, 993px" /><figcaption class="wp-element-caption">The navigation has been reduced into two basic sections: On the left, there is the access to the different main modules of musdb. This section on the one hand comes with links directly visible and accessible from any page. In the same section of the navigation, a hamburger menu offers access to those modules not enabled for quick access. Toggling entries into or out of the quick access navigation is directly accessible in the same place.</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="346" height="517" src="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-quick-access2_20260505_18h02m55s.webp" alt="" class="wp-image-4670" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-quick-access2_20260505_18h02m55s.webp 346w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-quick-access2_20260505_18h02m55s-201x300.webp 201w" sizes="auto, (max-width: 346px) 100vw, 346px" /><figcaption class="wp-element-caption">The screenshot depicts those menu options not enabled for quick access.</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="366" height="532" src="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-ask_20260504_10h14m38s.webp" alt="" class="wp-image-4672" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-ask_20260504_10h14m38s.webp 366w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-ask_20260504_10h14m38s-206x300.webp 206w" sizes="auto, (max-width: 366px) 100vw, 366px" /><figcaption class="wp-element-caption">The two help menus in the navigation have been merged into one. As we saw when we first introduced the option to create user profiles in musdb, providing additional information on contact people makes users more likely to actually ask for help if they need it. Hence, some data from the user profiles is directly integrated into the navigation.</figcaption></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="399" height="258" src="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-settings_20260504_10h14m34s.webp" alt="musdb's new UI, first draft, screenshot: account settings in navigation" class="wp-image-4669" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-settings_20260504_10h14m34s.webp 399w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_navigation-settings_20260504_10h14m34s-300x194.webp 300w" sizes="auto, (max-width: 399px) 100vw, 399px" /><figcaption class="wp-element-caption">The navigation features one&#8217;s profile picture, if one has uploaded any. Hovering over it gives access to the account settings. In this, the new UI tracks many popular websites and services.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="636" src="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-grid_20260505_18h02m13s-1024x636.webp" alt="" class="wp-image-4675" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-grid_20260505_18h02m13s-1024x636.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-grid_20260505_18h02m13s-300x186.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-grid_20260505_18h02m13s.webp 1527w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Overview and search pages roughly follow the current logic. Some exceptions aside, search results can be displayed as a grid, a list, or in a table. This screenshot shows them in grid mode.<br>It is also the first in this list of screenshots to display the new musdb UI in dark mode.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="609" src="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-list_20260505_18h02m00s-1024x609.webp" alt="" class="wp-image-4674" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-list_20260505_18h02m00s-1024x609.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-list_20260505_18h02m00s-300x179.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-list_20260505_18h02m00s.webp 1529w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Overview and search pages roughly follow the current logic. Some exceptions aside, search results can be displayed as a grid, a list, or in a table. This screenshot shows them in list mode.</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="607" src="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-table_20260505_18h02m06s-1024x607.webp" alt="" class="wp-image-4673" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-table_20260505_18h02m06s-1024x607.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-table_20260505_18h02m06s-300x178.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-table_20260505_18h02m06s-1536x911.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/05/Screenshot-musdb_exhibition-overview-table_20260505_18h02m06s.webp 1543w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Overview and search pages roughly follow the current logic. Some exceptions aside, search results can be displayed as a grid, a list, or in a table. This screenshot shows them in table mode.</figcaption></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.museum-digital.org/2026/05/05/musdb-reimagined-a-preview/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>State of Development, December 2025</title>
		<link>https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/</link>
					<comments>https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Mon, 12 Jan 2026 17:15:11 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[nodac]]></category>
		<category><![CDATA[IIIF]]></category>
		<category><![CDATA[Imports]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object editing (musdb)]]></category>
		<category><![CDATA[Object images]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<category><![CDATA[Single image view]]></category>
		<category><![CDATA[System administration]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4616</guid>

					<description><![CDATA[December 2025 was an interesting month for museum-digital. An update to the PHP version used as well as a flood of requests by what is most likely AI scrapers forced us to make changes for improved stability, reducing and reformulating features rather than adding new ones and working on matters of systems administration over purely <a href="https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">December 2025 was an interesting month for museum-digital. An update to the PHP version used as well as a flood of requests by what is most likely AI scrapers forced us to make changes for improved stability, reducing and reformulating features rather than adding new ones and working on matters of systems administration over purely matters of code quite often. Add to that the long-promised update of the terms of use for German museums to more structured and lawyer-approved ones, and you get yet more small changes that do not directly concern the work of museums with museum-digital but rather improve the necessary context.</p>



<h2 class="wp-block-heading">musdb</h2>



<h3 class="wp-block-heading">Object overview</h3>



<p class="wp-block-paragraph">In the default tile view of the object overview page, hovering over an object image thus far revealed the object&#8217;s name. As object names are often too long to display fully and inventory numbers are the primary means of identifying an object in most museums, this preview text has now been extended to include the inventory numer.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="570" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-1024x570.webp" alt="Screenshot in the object overview." class="wp-image-4613" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-1024x570.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-300x167.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-1536x855.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-object-list-2048x1140.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Hovering over an object image in the tile view now also displays the inventory number.</figcaption></figure>



<h3 class="wp-block-heading">User management</h3>



<h4 class="wp-block-heading">New Options for Managing User Accounts: Disabling Accounts &amp; Setting Account Expiry Dates</h4>



<p class="wp-block-paragraph">Two new options on user editing pages allow disabling logins on an account and setting an expiry date for the account. Both can be useful for administration: If a new worker joins the museum for a project with a clear-cut limitation on funding and time, one can now set the account expiry at the beginning of the project to the end of it. The accounts will then automatically be deleted when the project ends. Similarly, colleagues that leave service temporarily but for a prolonged time (e.g. for a sabbatical) and will not need to use their accounts for that time can have their accounts disabled.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="398" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-1024x398.webp" alt="Screenshot of the user editing page in musdb." class="wp-image-4611" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-1024x398.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-300x116.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-1536x596.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-options-2048x795.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Two new options allow disabling user accounts and setting expiry dates for user accounts.</figcaption></figure>



<h4 class="wp-block-heading">List of Terms of Use</h4>



<p class="wp-block-paragraph">A new tab on a user&#8217;s (own) account settings page provides the option to list all usage agreements / terms of use a user has agreed to in the context of their use of museum-digital / musdb and when they agreed to them.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-1024x576.webp" alt="Screenshot of the user editing page." class="wp-image-4612" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-1024x576.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-300x169.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list-1536x864.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_musdb-user-agreement-list.webp 1949w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">A new tab on the user page lists all user agreements for musdb that the user has agreed to and when they did so.
<br></figcaption></figure>



<h3 class="wp-block-heading">Imports</h3>



<h4 class="wp-block-heading">Limiting Report Mail Size</h4>



<p class="wp-block-paragraph">When a user runs imports themselves using the <a href="https://de.handbook.museum-digital.info/import/importe-selbst-durchfuehren.html">WebDAV upload</a>, the end of the import process &#8211; no matter if it is successful or fails &#8211; is marked by the sending of a report via mail. This report usually contains a list of noteworthy operations that happened during the import, e.g. which objects of which inventory number were imported to which object in musdb, identified by its ID. As imports grow, this list of operation grows. To not encounter issues sending the report, it is henceforth limited to a maximum of 2 MB or 10000 lines.</p>



<h4 class="wp-block-heading">Dry-run Mode</h4>



<p class="wp-block-paragraph">Sometimes it is useful to try running an import to see if it will actually work but not actually process any data. This option has been available in the importer command line interface for a while, among others powering <a href="https://quality.museum-digital.org/">museum-digital:qa</a>. It is now available in the import configuration for self-run imports as well using the setting <code>dry-run</code>. Enabling the setting accordingly stops the importer from actually writing the data into the database and changes the behavior if values that need to be mapped to values in controlled lists at museum-digital are encountered. Usually an import stops the moment such data is to be imported and not yet mapped. During a dry run, the error is collected and the import proceeds. All unmapped entries are listed together at the end of the import, allowing for a simpler mapping (possibly aided by <a href="https://concordance.museum-digital.org/">concordance.museum-digital.org</a>).</p>



<h3 class="wp-block-heading">Dashboard</h3>



<p class="wp-block-paragraph">The first page of the dashboard, which for almost all users also means the start page of musdb right after the login process, was significantly reworked during the last month. The almost entirely unused notetaking features and discourse integration were removed in favor of a feed of recent blog posts. See also the section <a href="https://blog.museum-digital.org/2025/12/29/trimming/">&#8220;Communications&#8221;</a> in the respective blog post.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-1024x576.webp" alt="Screenshot of the dashboard in musdb, as of 2025-12-29." class="wp-image-4594" srcset="https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-1024x576.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-300x169.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb-1536x864.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2025/12/20251229_screenshot-musdb.webp 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The dashboard in musdb now features a feed of recent news relevant to the development of museum-digital and whatever is going on regionally. The posts are sorted chronologically.</figcaption></figure>



<h3 class="wp-block-heading">Annotations for the Vocabulary Editing Team</h3>



<p class="wp-block-paragraph">Each event, displayed as a tile on object editing pages, featured speech bubble icons behind each time / actor / place to provide additional comments and hints for the central vocabulary editing team. This positioning of the annotation feature led to confusion over the years, with some users using the feature to comment on the relationship between the entity and the object (for which the event notes should be used). We hence repositioned the links and moved them to the respective entity&#8217;s page (e.g. a place page for giving hints and comments on a place entry). The hinting / commenting feature for times has been altogether removed, as providing comments to clarify the meaning of e.g. a year never made much sense.</p>



<h3 class="wp-block-heading">Smaller Updates and Bugfixes</h3>



<ul class="wp-block-list">
<li>Fixed a bug in the HTML generated for listing other objects linked to an object. Links to the other object were broken and are not anymore.</li>



<li>Image editing pages now embed the image directly instead of using the IIIF API. This reduces resource usage and increases stability at no cost.</li>



<li>Removed option to manually trigger the rewriting of EXIF and IPTC metadata of object images. Rewriting takes place in the background whenever an image or a linked object is updated, making user-triggered updates obsolete.</li>



<li>Re-introduce option to repeat linking to the last used linked object</li>



<li>Updated <a href="https://swagger.io/">Swagger UI</a> to version 5.30.3</li>
</ul>



<h2 class="wp-block-heading">Frontend</h2>



<p class="wp-block-paragraph">As stated above and lengthily described in the previous blog posts (<a href="https://blog.museum-digital.org/2025/12/09/updates-ai-scrapers-and-resilience/">here</a>, <a href="https://blog.museum-digital.org/2025/12/22/cleaning-out-our-closet/">here</a>, and <a href="https://blog.museum-digital.org/2025/12/29/trimming/">here</a>) we struggled with stability over the last month. This means that most changes in the frontend are aimed at improving stability.</p>



<h3 class="wp-block-heading">Reworked Default Image Page</h3>



<p class="wp-block-paragraph">Thoroughly described in <a href="https://blog.museum-digital.org/2025/12/09/updates-ai-scrapers-and-resilience/">Updates, AI scrapers, and Resilience</a>, we replaced the default view for single object image pages. While the default view was previously built around the IIIF viewer Mirador, the new default view uses OpenLayers and the unmediated image file for capabilities such as zooming. The new view also brings with it some new features, such as an option to reference specific sections of an image.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="672" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-1024x672.webp" alt="" class="wp-image-4615" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-1024x672.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-300x197.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-1536x1007.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-page-2048x1343.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The reworked default image page.</figcaption></figure>



<h3 class="wp-block-heading">Serving Resource-Intensive Pages / Functionalities Only When Resources Are Available</h3>



<p class="wp-block-paragraph">PDF generation, the IIIF Image API, and the suggestions for alternative search queries on failed search pages are now limited to reduce their impact on the overall system stability. This follows two strategies:</p>



<ul class="wp-block-list">
<li>Suggestions on failed search pages and PDF generation will only appear if the overall load on the system is low. The threshold for when or when they are not provided is influenced by the user&#8217;s browser language: If a user uses a browser set to the primary language of a given instance of museum-digital (e.g. German in Hesse, Hungarian in Budapest), the threshold is much higher, meaning users will be able to access the pages at a medium server load. In the case of PDFs, high server load will forward users to the print dialogue for object pages instead of receiving a PDF generated on the server side.</li>



<li>PDF generation and the IIIF Image API are served with a different PHP configuration and set of processes than the rest of the frontend. This configuration significantly reduces available resources for these two functionalities.</li>



<li>The option to generate PDFs featuring all images of an object with between 10 and 40 images has been entirely removed. Given its constraints, the feature was hard to explain and rarely accessible anyway. The primary &#8220;users&#8221; were noticeably AI scrapers.</li>
</ul>



<h3 class="wp-block-heading">Image Search</h3>



<p class="wp-block-paragraph">The image search feature was refactored and reduced to further separate it from the primary object search. The number of available search options has been reduced to be more easily explainable and reduce possibilities for very resource-intensive queries.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="602" src="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-1024x602.webp" alt="" class="wp-image-4614" srcset="https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-1024x602.webp 1024w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-300x176.webp 300w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-1536x903.webp 1536w, https://blog.museum-digital.org/wp-content/uploads/2026/01/20260112_frontend-image-search-2048x1204.webp 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">The reworked image search settings overlay.</figcaption></figure>



<h3 class="wp-block-heading">Batch Export of Object Metadata / OAI</h3>



<p class="wp-block-paragraph">Updated the LIDO API to almost entirely match the LIDO as generated during exports from musdb</p>



<h3 class="wp-block-heading">Smaller Updates and Bugfixes</h3>



<ul class="wp-block-list">
<li>Improved performance of object search by tags and places by filtering searched entities to those who are actually linked in the given instance of museum-digital.</li>



<li>Object groups with only one object are henceforth not displayed and linked on object pages anymore</li>



<li>Fixed link in footer: Clicking on &#8220;museum-digital&#8221; should lead to the home / start page of the given instance of musdb.</li>



<li>Updated <a href="https://swagger.io/">Swagger UI</a> to version 5.30.3</li>
</ul>



<h2 class="wp-block-heading">nodac</h2>



<ul class="wp-block-list">
<li>User-provided comments / hints have been removed for times (see above)</li>



<li>Tooltips for linked objects now display which institution an object belongs to
<ul class="wp-block-list">
<li>This is particularly important for vocabulary editors who do not have access to the museums&#8217; data. This way they get a limited preview with the required information for unpublished objects despite their otherwise lacking permissions.</li>
</ul>
</li>
</ul>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.museum-digital.org/2026/01/12/state-of-development-december-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>State of Development, October 2025</title>
		<link>https://blog.museum-digital.org/2025/11/25/state-of-development-october-2025/</link>
					<comments>https://blog.museum-digital.org/2025/11/25/state-of-development-october-2025/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Tue, 25 Nov 2025 16:55:09 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Dissemination]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object search (frontend)]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=4564</guid>

					<description><![CDATA[A summary of recent updates and development around museum-digital in October 2025.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Development</h2>



<h3 class="wp-block-heading"><a href="https://en.about.museum-digital.org/software/frontend/">Frontend</a></h3>



<ul class="wp-block-list">
<li>Significantly reworked the display of transcriptions on object pages
<ul class="wp-block-list">
<li>Titles of transcriptions are now displayed
<ul class="wp-block-list">
<li>If none is set, the type of the transcription (original or translation) is used as a replacement</li>
</ul>
</li>



<li>Transcriptions are sorted by their titles</li>



<li>Improved the display of transcriptions in tiles
<ul class="wp-block-list">
<li>Problems with vertical scrolling are now solved</li>



<li>If only one transcription has been recorded, it will be displayed on the full width of the page</li>



<li>If there are more than two transcriptions for an object, they are folded in by default and can be unfolded later on</li>
</ul>
</li>
</ul>
</li>



<li>Batch export of object metadata via the API
<ul class="wp-block-list">
<li>Thus far available in JSON &amp; LIDO</li>



<li><a href="https://nat.museum-digital.de/swagger/#/object/jsonExportObjects">API documentation</a></li>



<li><a href="https://blog.museum-digital.org/2025/11/24/making-interoperability-easy/">See also</a></li>
</ul>
</li>



<li>Dots as a separator in floating point numbers for object measurements are replaced with a comma in languages that require that</li>



<li>Collection-specific ISIL IDs are used in the LIDO API</li>
</ul>



<h3 class="wp-block-heading"><a href="https://en.about.museum-digital.org/software/musdb/">musdb</a></h3>



<ul class="wp-block-list">
<li>Added a field for recording titles / names of transcriptions</li>



<li>Added the option to set collection-specific ISIL IDs</li>



<li>Setting object type tags via the improvement suggestions now correctly classifies the thus created link between object and tag</li>



<li>Additional shapes are now available
<ul class="wp-block-list">
<li>E.g.: round, square</li>
</ul>
</li>



<li>Object groups can now be filtered by whether they have a superordinate one or not</li>
</ul>



<h3 class="wp-block-heading">Dissemination</h3>



<ul class="wp-block-list">
<li>2025-10-08: <a href="https://www.jrenslin.de/talks/interoperabilitaet-schaffen-geschichten-aus-1001-importen-herbsttagung/">Presentation</a> at the Autumn Conference of the Working Group Documentation of the German Museum Association: &#8220;Interoperabilität schaffen &#8211; Geschichten aus 1001 Importen&#8221;
<ul class="wp-block-list">
<li><a href="https://files.museum-digital.org/de/Praesentationen/2025-10-08_1001-Importe_Herbsttagung-FG-Doku_JRE.pdf">PDF</a></li>



<li><a href="https://files.museum-digital.org/de/Praesentationen/2025-10-08_1001-Importe_Herbsttagung-FG-Doku_JRE.odp">ODP</a></li>
</ul>
</li>



<li>2025-10-14: <a href="https://www.jrenslin.de/talks/civers-2025/">Talk</a> on a workshop of the project <a href="https://www.dainst.org/forschung/projekte/citation-of-versioned-web-pages-by-pid-civers/5926">CiVers (Citation of Versioned Web Pages by PID)</a>
<ul class="wp-block-list">
<li><a href="https://files.museum-digital.org/de/Praesentationen/2025-10-14_museum-digital_Civers_JRE.pdf">PDF</a></li>



<li><a href="https://files.museum-digital.org/de/Praesentationen/2025-10-14_museum-digital_Civers_JRE.odp">ODP</a></li>
</ul>
</li>



<li>2025-10-17: <a href="https://verein.museum-digital.de/museum-digital-usertagung-2025/">museum-digital Usertagung 2025</a></li>
</ul>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.museum-digital.org/2025/11/25/state-of-development-october-2025/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Summary of the monthly user meetup (April 2023) / New features and improvements</title>
		<link>https://blog.museum-digital.org/2023/05/07/summary-of-the-monthly-user-meetup-april-2023-new-features-and-improvements/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Sun, 07 May 2023 16:44:42 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA["List results"]]></category>
		<category><![CDATA[Imports]]></category>
		<category><![CDATA[Location tracking]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3731</guid>

					<description><![CDATA[We continued the series of monthly user meetups and again discussed the new features and improvements. A summary can be found below. New Developments The last month has been an exceptionally slow month in terms of technical development around museum-digital. There are however some newsworthy tidbits. musdb Recording external IDs for museums Museums, like all <a href="https://blog.museum-digital.org/2023/05/07/summary-of-the-monthly-user-meetup-april-2023-new-features-and-improvements/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">We continued the series of monthly user meetups and again discussed the new features and improvements. A summary can be found below.</p>



<h2 class="wp-block-heading" id="h-new-developments">New Developments</h2>



<p class="wp-block-paragraph">The last month has been an exceptionally slow month in terms of technical development around museum-digital. There are however some newsworthy tidbits.</p>



<h3 class="wp-block-heading" id="h-musdb">musdb</h3>



<h4 class="wp-block-heading" id="h-recording-external-ids-for-museums">Recording external IDs for museums</h4>



<p class="wp-block-paragraph">Museums, like all of us, are present in more and more databases. For linking different databases, it is useful &#8211; sometimes necessary &#8211; to know the ID of the same entity in both databases. Hungarian law thus mandates collection management systems, which are to be accredited for fully paperless use in museums, to allow storing a museum&#8217;s ID with the Hungarian Statistical Office. musdb can now do exactly that: Store external IDs of museums in a given list of external source repositories / databases.</p>



<p class="wp-block-paragraph">The list of available external databases and the regular expressions to validate IDs in them are available <a href="http://The list of available external databases and the regular expressions to validate IDs in them are available here. For now, the list only contains the Hungarian Statistical Office, but the more options there will be in the future, the better.">here</a>. For now, the list only contains the Hungarian Statistical Office, but the more options there will be in the future, the better.</p>



<h4 class="wp-block-heading" id="h-more-fields-covered-by-list-results-and-excel-export">More fields covered by &#8220;list results&#8221; and Excel export</h4>



<p class="wp-block-paragraph">The &#8220;list results&#8221; page (a.k.a. table view) for object search results offers the option to view the selected objects&#8217; data in a customizable tabular format. Mainly because of that exact tabular format, it is not possible to display everything a full database view of the object offers using the &#8220;list results&#8221; page. Over the last month, we have nevertheless extended the list of displayable fields in the &#8220;list results&#8221; table.</p>



<p class="wp-block-paragraph">Thus, it is now possible to display all translations for the object type, object name, descriptions, etc. of an object. Similarly, it is now possible to list all Weblinks linked to the object as a compiled (comma-separated) field. As the automated report generation and the Excel export tools build upon the same basic code as the &#8220;list results&#8221; page, these new fields are now also available in those cases.</p>



<h4 class="wp-block-heading" id="h-new-field-for-objects-last-change-of-permanent-location">New field for objects: &#8220;Last change of permanent location&#8221;</h4>



<p class="wp-block-paragraph">It is now possible to manually record the last date, the permanent location of a given object has been updated. This obviously makes sense for tracking relocations and re-organizations within the museum. Importantly, the field needs to be manually filled out, as the date of the last change of the permanent location may be far in the past or frankly unrelated to the database, even if there is one (say, the museum moves the depot to a different place, but the date is only later updated in the database via a batch editing process).</p>



<h4 class="wp-block-heading" id="h-user-interface">User interface</h4>



<p class="wp-block-paragraph">After there were some reports of people not seeing the difference between a valid form in musdb and an invalid / incomplete one, we updated the design of submit buttons. Submit buttons in incomplete forms are now blurred out, to add another hint at the incompleteness of the form.</p>



<h3 class="wp-block-heading" id="h-frontend">Frontend</h3>



<h4 class="wp-block-heading" id="h-improved-performance-and-decreased-bandwidth-usage-serving-images-in-webp">Improved performance and decreased bandwidth usage: serving images in webp</h4>



<p class="wp-block-paragraph">Over the last years, there have been a number of new image formats seeking to combine all the features of older and well-established formats like JPG and PNG with an improved compression. The most established format of that newer generation of image formats is <a href="https://en.wikipedia.org/wiki/WebP">webp</a>, which is by now well-supported by all modern browsers and most local image viewers.</p>



<p class="wp-block-paragraph">To save bandwidth and improve loading speed, we now store and serve full-sized webp versions of newly uploaded object images along with the regular jpg versions. If possible, the webp version is served on object pages. An additional benefit is the aforementioned support for features jpg files do not support, such as transparent image backgrounds.</p>



<h4 class="wp-block-heading" id="h-iframe-embedding-now-only-possible-from-whitelisted-sources">iFrame embedding now only possible from whitelisted sources</h4>



<p class="wp-block-paragraph">If a museum wants to embed their data from museum-digital into their own website, there are traditionally two ways to do so. The better, but much more complicated option is to use the API to fetch the relevant data and present them in any way one wants. Much easier (and cheaper obviously) is embedding the museum&#8217;s data using iframes.</p>



<p class="wp-block-paragraph">Unfortunately, iframes can also be used for attacks on users&#8217; login data. We have thus now restricted this option to only allow embedding from whitelisted sources. If a museum wants to embed their data this way, this means that they now need to notify their regional administrators beforehand.</p>



<h3 class="wp-block-heading" id="h-importer">Importer</h3>



<p class="wp-block-paragraph">The importer now supports imports for exports from Startext&#8217;s <a href="https://www.startext.de/produkte/hida">HiDa</a> in the configuration of the Saxon State Agency for Museums.</p>



<h2 class="wp-block-heading">Other News</h2>



<p class="wp-block-paragraph">In other news, the <a href="https://www.youtube.com/@museum-digital/">Youtube</a> channel has picked up steam, with some new tutorials both in German and Ukrainian.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Summary of the monthly user meetup (March 2023)</title>
		<link>https://blog.museum-digital.org/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/</link>
					<comments>https://blog.museum-digital.org/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/#respond</comments>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Tue, 04 Apr 2023 23:58:21 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Importer]]></category>
		<category><![CDATA[musdb]]></category>
		<category><![CDATA[Project page www.museum-digital.org]]></category>
		<category><![CDATA[Themator]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[Object images]]></category>
		<category><![CDATA[Object search (musdb)]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3718</guid>

					<description><![CDATA[Yesterday, we held our regular user meetup as scheduled. As promised, below you can find an overview of the new features and updates below some more general points. General YouTube channel There now is a museum-digital YouTube channel. For now, one can find some German-language screencasts on different features in musdb and nodac there. New <a href="https://blog.museum-digital.org/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Yesterday, we held our regular user meetup as scheduled. As promised, below you can find an overview of the new features and updates below some more general points.</p>



<h2 class="wp-block-heading">General</h2>



<h3 class="wp-block-heading">YouTube channel</h3>



<p class="wp-block-paragraph">There now is a <a href="http://youtube.com/@museum-digital/">museum-digital YouTube channel</a>. For now, one can find some German-language screencasts on different features in musdb and nodac there.</p>



<h3 class="wp-block-heading">New sections on project page (www.museum-digital.org)</h3>



<p class="wp-block-paragraph">As already described in the previous post, the project page <a href="https://www.museum-digital.org/">www.museum-digital.org</a> now features a <a href="https://blog.museum-digital.org/2023/03/14/a-calendar-is-a-commitment/">calendar</a>. Since then, we have also added a <a href="https://en.about.museum-digital.org/about/people/">small page listing</a> people working on museum-digital &#8211; e.g. some of the coordinators and developers &#8211; as well as power users. The list will obviously always be more than incomplete, but if you want to be listed, just send a mail.</p>



<h2 class="wp-block-heading">Development</h2>



<h3 class="wp-block-heading" id="musdb">musdb</h3>



<h4 class="wp-block-heading" id="allow-batch-editing-of-photographers-on-image-list">Allow batch editing of photographers on image list</h4>



<p class="wp-block-paragraph">Running batch updates on the ownership, license status and photographer of a set of objects can be done either via the institution-wide settings page or via a selection on the image list page. The batch updating functionality of the institution-wide settings page works by replacing the given entries in one of the fields for all objects of the museum &#8211; it is thus not suitable if one is to only update the photographer field for a list of objects from a single collection (rather than the whole museum).</p>



<p class="wp-block-paragraph">Batch updating images&#8217; legal information from the image list (click on an image in the list and drag it to activate selection mode, then update by selection) was only possible in the case of image licenses and rights holders. With a small update, it is now possible to also batch-update the images&#8217; photographers field that way.</p>



<h4 class="wp-block-heading" id="the-api-can-now-update-object-event">The API can now update object event</h4>



<p class="wp-block-paragraph">Thus far, the API could only be used for adding wholly new object events (who did what, when, and where, with the object) or deleting them. With the updates of this month, now possible to directly update events.</p>



<p class="wp-block-paragraph">This is already actively used in customizing musdb using a <a href="https://en.wikipedia.org/wiki/Tampermonkey">Tampermonkey</a> script by some of the norm data editors. They can thus add a custom button to transfer incomplete actor or place information to the object&#8217;s description. This button, on the other hand, would not be useful for regular users at all.</p>



<h4 class="wp-block-heading" id="ui-improvements-for-the-object-search-interface">UI improvements for the object search interface and new sort option</h4>



<p class="wp-block-paragraph">After a very fruitful discussion and feedback from Hungarian colleagues, we got around to some user interface improvements in the object overview and search interface. A lengthy discussion can be found in a dedicated <a href="https://blog.museum-digital.org/de/2023/03/21/detailverbesserungen-bei-der-objektsuche-in-musdb/">blog post in German</a>. To sum up: there are now headlines for each subsection of the sidebar and tooltips explain the different buttons and search and sort options upon hovering one&#8217;s mouse over them. Additionally, a new sort option was added to sort objects by the number characters within the inventory numbers of the searched objects.</p>



<h4 class="wp-block-heading" id="two-bugfixes-navigating-to-the-previous-or-next-object-in-a-selection">Two bugfixes: Navigating to the previous or next object in a selection</h4>



<p class="wp-block-paragraph">It is a very simple but similarly useful feature: One runs an object search and thus creates a result list of objects. After viewing or editing one of the objects, one can then proceed to the next one in the results list by clicking at the arrows at the top of the sidebar.</p>



<p class="wp-block-paragraph">Unfortunately, musdb had two bugs preventing this navigation for some of the available sort options. On the one hand, newer sort options required manually adding the search fields to a list specific to the previous/next navigation thus far &#8211; and had not been covered yet. Navigating to the next object after sorting by e.g. the length of the searched objects was thus impossible so far. The specific list of sort fields has now been removed in the previous/next navigation. Instead, the main list of sort options from the main object search class is directly used &#8211; in effect preventing such issues of &#8220;forgotten&#8221; values from ever appearing again.</p>



<p class="wp-block-paragraph">A second issue concerned string-based sort options. For an improved performance, the previous / next navigation works by querying the underlying search index for the next object where e.g. the object ID is lower than the current one (`WHERE id &gt; 20000`). The same search logic is straight-out not possible with string-based sort options, as search queries for values greater than or smaller than a given one cannot be executed with string-based fields.</p>



<p class="wp-block-paragraph">Fortunately, the issue came up just after we had implemented an option to search and <a href="https://blog.museum-digital.org/de/2023/03/21/detailverbesserungen-bei-der-objektsuche-in-musdb/">sort objects by the numeric components of their inventory numbers</a>. Thus, the previous / next navigation can fall back to that sort option if a user wants to navigate to the next object after sorting by inventory number. As stated back when we introduced the new search and sort option: It should work for most museums. Unfortunately, there is no such option to mitigate the issues of string-based sorting when sorting objects by their names. The best we could do in this case is displaying a clear error message, stating that the previous / next navigation is <em>not</em> available when sorting by the object&#8217;s names.</p>



<h4 class="wp-block-heading" id="home-location-can-now-be-selected-as-a-required-field-when-adding-new-objects">&#8220;Home location&#8221; can now be selected as a required field when adding new objects</h4>



<p class="wp-block-paragraph">On the institution-wide settings page, museum directors (or those holding the same user role within musdb) can determine which fields are required when adding new objects. The list of selectable fields automatically covers all free text fields linked to the object. Repeat fields and references to other sections of musdb need to be manually implemented however. As the home or permanent location of an object is a most logical and common field to be required for all object, it was only consequential to prioritize making it available as a required field. We have done so now.</p>



<h4 class="wp-block-heading" id="major-performance-improvements-in-list-results-page">Major performance improvements in &#8220;list results&#8221; page</h4>



<p class="wp-block-paragraph">The &#8220;list results&#8221; page provides for a table view of object search results, allows the export of search results to Excel, and is &#8211; under the hood &#8211; also used for generating custom reports. We managed to achieve a considerable improvement in the page&#8217;s performance by bulk loading data and simplifying the code of the HTML page. Both adjustments should not really be noticable when one tries to list or export only some objects. Exporting some thousand objects should work considerably faster now however.</p>



<h3 class="wp-block-heading" id="frontend">frontend</h3>



<h4 class="wp-block-heading" id="pdf-metadata-for-main-object-pdf-export">PDF metadata for main object PDF export</h4>



<p class="wp-block-paragraph">XMP metadata are now written into exported PDF files. Thus, users can more easily identify authorship, titles etc., especially when using specialized software like e-book readers.</p>



<h4 class="wp-block-heading" id="linking-from-collection-descriptions">Linking from collection descriptions</h4>



<p class="wp-block-paragraph">Collection descriptions are now being parsed for the existence of URLs. If one, starting with https:// (http:// is ignored) exists, the URL is automatically transformed into a clickable link.</p>



<h3 class="wp-block-heading" id="nodac">nodac</h3>



<p class="wp-block-paragraph">We added some translation variables on the start page.</p>



<h3 class="wp-block-heading" id="themator">themator</h3>



<p class="wp-block-paragraph">The &#8220;themator&#8221; has received a small user interface improvement for mobile devices. The topic-specific navigation or table of contents is now moved below rather than above the main content of a page in the regular &#8220;topic&#8221; viewing mode on mobile devices.</p>



<h3 class="wp-block-heading" id="importer">Importer</h3>



<h4 class="wp-block-heading" id="importing-gifs">Importing GIFs</h4>



<p class="wp-block-paragraph">To simplify the handling of images, museum-digital internally only uses JPG image files (webp versions are generated for a faster loading, but are optional). While they lack some support for features like transparency, JPGs provide for a much better compression with images of three-dimensional things and subjects not featuring solid colors. Newer formats like AVIF and Webp unfortunately still lack the support among locally installed image viewers for us to fully switch over to them.</p>



<p class="wp-block-paragraph">The importer handles input PNGs by converting them to JPG files. Starting this month, the same can be done with input GIF files.</p>



<h4 class="wp-block-heading" id="improved-handling-of-blacklisted-actors-places-and-times">Improved handling of blacklisted actors, places and times</h4>



<p class="wp-block-paragraph">One of the key issues with imports is what happens after imports. Specifically, museum-digital uses controlled vocabularies for actors, places, times and tags that can be linked to an object directly or via events. When people enter new such entries using musdb, there are a number of safeguards and nudges to ensure productive inputs. Adding a new actor, for example, requires one to enter at least 10 characters of a description for the actor. Input fields for the date of birth and death are also provided. If possible, one can enter a Wikipedia or Wikidata URL (or ID) and directly fetch the relevant information from there.</p>



<p class="wp-block-paragraph">During imports, there is no space for asking questions to the importing institution. Incomplete or false actor, place, time and tag names (for example, if two actors are linked as one; &#8220;John Doe and Jane Doe&#8221; is not one single actor!) are given, these are necessarily imported into our controlled vocabularies by default. Depending on the import, this puts a significant burden on our volunteer group of vocabulary editors.</p>



<p class="wp-block-paragraph">To eventually get to a solution, we have added options for automatically rewriting terms (e.g. &#8220;Berlin, Germany&#8221; will be autocorrected to &#8220;Berlin&#8221;) and blacklisting them completely (&#8220;Good morning &#8230;&#8221; is no actor&#8221;). Thus far, blacklisted terms were simply ignored by the importer.</p>



<p class="wp-block-paragraph">&#8220;Unknown painter&#8221; is not an actor, but the information that it is a painter may still be useful. To allow us to blacklist more and keep the controlled vocabularies &#8220;clean&#8221; without losing such data, the importer now imports blacklisted terms in event components (&#8220;who painted it?&#8221;) into the event annotation. If the only known information on the whole event is blacklisted, the event cannot be created &#8211; an event always requires at least one linked actor, place or time. The event annotation of &#8220;empty events&#8221; is hence moved to the object description automatically.</p>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.museum-digital.org/2023/04/05/summary-of-the-monthly-user-meetup-march-2023/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Use Pixels, not em in media queries</title>
		<link>https://blog.museum-digital.org/2023/03/08/use-pixels-not-em-in-media-queries/</link>
		
		<dc:creator><![CDATA[Joshua Ramon Enslin]]></dc:creator>
		<pubDate>Wed, 08 Mar 2023 11:41:24 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Minor Improvements]]></category>
		<category><![CDATA[Responsive Design]]></category>
		<category><![CDATA[User interface]]></category>
		<guid isPermaLink="false">https://blog.museum-digital.org/?p=3641</guid>

					<description><![CDATA[In CSS, one can use different units to determine sizes. The most relevant are: Being relative to the font size and nest-able, em values are a great fit for setting sizes of page elements and we thus use almost exclusively use em and rem values for borders, font size, etc. To make a website responsive, <a href="https://blog.museum-digital.org/2023/03/08/use-pixels-not-em-in-media-queries/" class="more-link">...</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In CSS, one can use different units to determine sizes. The most relevant are:</p>



<ul class="wp-block-list">
<li>A pixel (px) is &#8211; in theory &#8211; fixed to the single dot of a screen. It thus depends on the resolution of the screen primarily, at least in grey theory.</li>



<li>A point (pt) is a single point on a printed sheet of paper. Its roots lie in the DPI setting of the print job.</li>



<li><code>em</code> are relative to the font size. If nested elements come with font sizes determined in em, the scaling is appropriate nested (a headline in a generally enlarged section will be further enlarged than a headline in a regular section).</li>



<li><code>rem</code> is relative to the primary font size of the document.</li>



<li><code>vh</code> and <code>vw</code> are relative to the total screen height and width respectively. 10vw are, e.g., 10 percent of the total width of the screen.  </li>



<li>Some others, like cm or mm exist, but are less used &#8211; especially when working outside of print contexts.</li>
</ul>



<p class="wp-block-paragraph">Being relative to the font size and nest-able, <code>em</code> values are a great fit for setting sizes of page elements and we thus use almost exclusively use <code>em</code> and <code>rem</code> values for borders, font size, etc.</p>



<p class="wp-block-paragraph">To make a website responsive, CSS offers a functionality called <em>media queries</em>, with which one can check for characteristics of the browser window. This, obviously, concerns primarily the size of the window, but can also extend to issues such as the activation of a dark mode (if you see this page with white text on a black background, that is the consequence of a media query).</p>



<p class="wp-block-paragraph">Now, we had also been using em values for probing screen properties using media queries, and the results were far from ideal. Especially phones from different manufacturers provide very different em values even at roughly similarly sized screens. Thus, it becomes hard to determine, if a user really is using a phone, a tablet, or a full sized PC.</p>



<p class="wp-block-paragraph">Ironically, it is exactly pixel values, that work much more reliably. In theory, a media query asking if a screen is less than 768 pixel wide should definitely be answered negatively in the case of a current flagship phone with roughly 1400 pixel width. In reality, browsers scale down the page and will answer positively, accepting that phones should be presented to CSS as less than 768px wide.</p>



<p class="wp-block-paragraph">We have now switched to using pixel values for running the media queries to determine the target page layout. And the results are much better, than when we used <code>em</code> values.</p>



<h2 class="wp-block-heading">See also</h2>



<p class="wp-block-paragraph">W3C: <a href="https://www.w3.org/Style/Examples/007/units.de.html">Web Style Sheets &#8211; CSS Tips &amp; Tricks: em, px, pt, cm, in…</a></p>



<div class="wp-block-cgb-cc-by message-body" style="background-color:white;color:black"><img loading="lazy" decoding="async" src="https://blog.museum-digital.org/wp-content/plugins/creative-commons/includes/images/by.png" alt="CC" width="88" height="31"/><p><span class="cc-cgb-name">This content</span> is licensed under a <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International license.</a> <span class="cc-cgb-text"></span></p></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
