DCD Labs Development Diary

If you want to know what Dgen has been up to behind the scenes on the DCD Discover project, you’re in the right place!

If you have any comments, thoughts or questions please contact: lorraine@dgen.net

Our technology stack

DCD Discover is built using a wide range of tools and services, a mixture of open-source and commercial software:


February 22nd, 2022

This week we’ve been doing more cleanup and bug fixing. You might have spotted a few broken image thumbnails in the item views. This was due to some configuration problems with handling PDF files and also a lack of support for TIFF format image files. TIFF images are not often used on the web (partly because only Safari will display them natively), but are popular in professional printing and archive contexts, and the DCD collection contains many of them. Some image processing libraries for PHP do not support TIFF images (in particular the most common, gd), but the libraries we are using do, built on the imagemagick PHP extension. However, it turned out there were bugs in several of these that prevented TIFF images from working, so I set about fixing them. This was quite an involved process, but was ultimately successful, and a testament to the kind of community spirit that can be found in open source development; I wrote it up on my blog. The upshot of it all is that TIFF images used to look like this in Discover during uploads:


and now they look like this:

…and after

That small difference hides a ton of work! One problematic aspect of TIFF files is that they are often very large, as they do not support the lossy, but very efficient compression that JPEG offers. Disk space is at a premium in Discover, because we know that we are going to need to handle many thousands of images, so we made two changes to help with that. To make images more easily viewable, even in non-native formats, we now generate a JPEG version that is always used as the primary view of an image, so you don’t actually see the original file. Also, we are generating several other images derived from the original that are needed to submit images for processing by Google and Azure machine learning services. I’d noticed that these files were unnecessarily large, but since they are JPEG files, I could reduce their size by reducing their quality slightly, giving a large saving in disk space. As an example, the TIFF example above is 32Mb; the JPEG version we use for viewing is only 500kb, 1/64 the size. This will generally make pages much quicker to view. The only problem with changing these settings is that it required recreating and recompressing all of these auxiliary images, all 32,468 of them. Fortunately this was handled by an automated process, which could be left to run overnight.

We also made some changes to make the admin area more robust, and more changes will be forthcoming for that too.

February 11th, 2022

We finally got to the bottom of the deployment problem! The admin panel is now live, and it looks like this:

The new admin panel

(Noddy Bigears is a great friend of mine who participates in many testing scenarios). Those with admin privileges can create and modify users (including blocking them if they have been naughty), and also bestow admin privileges on them.

Editing a user

Admins can also create institutions and manage the users that are attached to them:

Creating an institution

The settings section allows turning external services on and off – these might be paid-for services that we might want to do without. This may mean that some things lose functionality (e.g. machine learning for auto-description and tagging), but not in a way that actually breaks anything.

Admin settings

It’s likely that backups could be taken externally, for example by backing up the entire server via hosting provider services, but we have a built-in service that provides the basics, dumping the database to a file, and then backing it up, along with all the application and media files, into a compressed, optionally-encrypted zip archive, possibly on a remote storage system such as Amazon S3:

Backup info

A significant part of the admin panel is that now we have somewhere visible to put configuration controls that previously were hidden away in config files, requiring direct server access to change.

Aside from the admin panel, several other things have changed. New users are now asked to verify their accounts by responding to an email we send them. This is a useful security measure, and can help to keep a lid on automated sign-ups. We cleared out some bad data that was left over as a result of earlier crashiness, and cleaned up broken image thumbnails, though we’ve not fixed the PDF preview generation yet so there are still a few of those lurking.

February 1st, 2022

Last week we deployed all the changes that had been pending for quite a while, including the admin panel. However, there is still a problem with the deployment of the panel that means it’s not working quite right – annoyingly it works perfectly locally…

We have been firming up our to-do list for everything that needs to be done before our pending project end date, and hoping that additional funding comes along to help us continue.

While our existing collections provide a way of organising and grouping items that are related conceptually, there is a separate behind-the-scenes structure that represents the physical arrangement of these same items. For example, we may have lots of pictures of the same dancer that belong together in one collection, but they might be spread across multiple physical files, folders, and boxes, which we refer to generically as containers. We want to represent both structural views of the same items, and high on the list of major changes is making these containers more visible to archivists, who are generally more concerned with the practical aspects of processing physical assets than their conceptual organisation. Fortunately we can do this with few changes, because internally collections and containers are very similar – think of them like a table of contents and an index in a book; both are independent sets of pointers to positions within the pages of the book, but the pages are the same from either perspective.

There are plenty of other things we aim to get done too, and we’ll be updating our progress on here as we go.

January 12th, 2022

Happy new year! Discover had a quiet December, but we have been working behind the scenes to make Discover more portable and manageable. The main objective has been to build an admin panel to handle user management, backup triggering and monitoring, and turning external services on and off, and also giving us somewhere to put future expansion in this area. Previously you needed back-end access to twiddle config files on the server to do these things, but less of that will be required. The admin panel is built using the excellent Filament package, integrating nicely with our existing Laravel app. Backups are managed using the ever-productive Spatie’s Laravel Backup package.

November 9th, 2021

Last week saw the rollout of Discover “version 1.0”. There are a number of major things that have changed relative to earlier versions.

  • A recharacterisation of items as single things, so each item will typically contain only a single image or other media element.
  • Containers; these are to match DCD’s workflow, where a set of (at least partly) related items might be bundled into a bag, box, or folder. When an upload containing multiple images sharing a single description is submitted, it is split so that each media item is linked to a single item, and the set of items is linked under a “container”, which plays the role of the bag, box etc, and the description is copied across all of the items. For now these containers are only visible to DCD, but internally they are actually a new flavour of collection, just as Discoveries are.
  • Interface simplification. Quite a lot of things have been removed from the user interface in order to reduce confusion and ambiguity.
  • As part of the “packaging” and “hardening” steps that distinguish a prototype from a product, more of the Discover system is configurable from external config files, in particular it’s now possible to disable external services (such as the machine learning services we’re using) without making code changes.
  • We’ve added simple sharing buttons, so that you can easily share posts on Facebook and Twitter, and copy HTML snippets ready for inserting into WordPress. This makes it easier to embed Discover items into external resources.
  • Switchable searching allows searches to be directed at either Discover itself, or a remote WordPress instance.

These leave us with a solid and usable base on which we can build future versions. We already have some plans for the future, such as a proper user interface design, translations, and possibly bringing back some of the more sophisticated things that we removed from this release.

October 29th, 2021

It’s not all app and front-end coding! Discover is a web application, and as such requires a fair number of services to be configured before it can work. It’s common for this to be done manually, but if you want to be able to spin up multiple new instances of Discover (or any app) easily, it really helps to be able to automate that too. To this end I’ve built an automated configuration for Discover using a system called Ansible. The idea is that you can obtain a brand new server from a hosting provider, enter its details into the ansible configuration, run the build process, and it will configure everything on the server, giving you a running instance of Discover in just a few minutes. This approach is firmly in “devops” territory, where the traditionally manual processes used in operations are replaced with techniques borrowed from software development; it’s also referred to as “infrastructure as code”.

August 31st, 2021

This month has a been a bit slow with various holidays and absences, but we’ve still managed to get some things done. The documentation for Discover is coming along – we want others to be able to install and run Discover on their own systems to manage their own collections, so we need to make it clear what its requirements are and how to configure it. We have also been nailing down more precisely what we mean by “version 1.0”, which is what we are aiming for by the end of October.

This week Nicolai has been working on the media browser, making it behave more sensibly when there are lots of attached media files, and making search results act a bit less oddly!

July 29th, 2021

We managed to fix most of the things we hoped today, so now you will no longer get an error if you search when you’re not logged in, and the media browser is now available!

July 28th, 2021

After a quiet couple of weeks, we have the first version of a media browser coming together:

Media browser first draft

The arrows let you scroll horizontally across various thumbnails, and clicking them shows the full-size item (please excuse my placeholder images!). The box below the image holds the filename and an editable description field – more fields can be added later. I think we need to let this take up some more space to display more items in larger sizes, and we need to think about how to allow reordering (e.g. to respect page ordering from a scanned event programme). It’s not quite there yet, but we hope to get this first draft deployed tomorrow!

Separately we’ve been making small efforts to implement a translatable user interface. You won’t see any difference yet, but it will allow us to add translations later – important given that Canada is at least bilingual!

July 18th, 2021

After taking stock of what we’ve done so far, we have some targets for what we are going to call Discover version 1.0, over three phases of development.

In phase 1 we want to deliver:

  • Custom fields. Allow each item to have custom fields, avoiding “column creep” in the database while providing consistency and flexibility in what data we store.
  • Media types. So far we support images, PDF documents, audio, and video. We want to add support for plain text documents and external resources such as exhibition sites, blog articles, or other resources.
  • Media browser. Media files within a single item are currently a bit haphazard, and pages get hard to manage when large numbers of files are added, so we want to replace this with a carousel-style browser (a bit like the Smithsonian one we liked ages ago!), and also permit editing of per-item metadata (e.g. filenames).
  • Styling and layout. Apart from the use of “DCD purple”, we have put very little effort into styling and layout, instead concentrating on basic functionality using default styles provided by Laravel. A proper overhaul of the visual appearance and layout is sorely needed!

In phase 2 we want to focus on searching:

  • Searching enhancements. At the moment searching is a bit too simplistic (hey, at least it remembers your search terms now!), but once we have custom fields, things can get much more powerful. The Algolia search engine we are using has many features we are not yet taking advantage of, so there are many ways to improve search results. We proposed various ways of doing this in the past – and it’s time to make these happen.
  • Searchable collections. So far, collections are treated entirely separately from individual items, but they should be searchable in their right, and included with other search results. We really like the way that the Internet Archive does this, mixing collections and items in the search results.

Finally, in phase 3, it’s time wrap it all up into 1.0:

  • “Productisation”. Here we want to ensure that Discover is documented, and easy to deploy, configure and extend.
  • Make external services optional. The external services we are using, such as Algolia and Microsoft’s Azure cognitive services, can raise cost and privacy concerns, so we need to abstract them and allow them to be disabled or replaced easily, and that implies some kind of admin interface.

July 10th, 2021

We’ve added the second half of Discoveries, so it’s now functionally complete. You can now view your Discoveries, and if you like, turn them into public collections, or merge them into existing collections:

New Discoveries features

We think discoveries are a great way for researchers to collect themed items without adding clutter to the public collections view.

June 18th, 2021

Discoveries pop-up
The new Discoveries popup

Nicolai has added the first half of support for what we’re calling “discoveries”. These are a kind of “favourites”, but are actually a more immediate view of what are essentially personal collections, and you can add an item to one or more of your discoveries just by clicking the little “+” next to each item without having to leave the item view, so it’s much quicker than editing things. Next week we’ll be working on the second half – viewing what’s in your discoveries, and allowing them to be promoted to public collections.

Quite a few bug fixes this week too.

  • Item images are now clickable again.
  • Descriptions appear before media.
  • Line breaks are preserved when displaying descriptions.
  • Some (but not all) upload issues have been resolved, and larger or more numerous uploads are more reliable than they were.
  • Removed the tag cloud.
  • Resolved a Google billing problem that stopped text extraction from images from working.
  • The top navigation bar now looks much more like the one you see in Discover.

June 9th, 2021

Thanks to Nicolai’s efforts, we have rolled out changes to support a major new structural feature – Institutions. These are a kind of group/team that people using Discover can be members of. It’s based on the teams system provided by Laravel Jetstream. This allows multiple organisations to own collections and items, and to allow their members to manage, curate, and edit them with various levels of privilege. The aim here is to allow DCD (or any other organisation) more control over their own items that are present in discover.

Everyone gets their own “personal” team that they are a member of, but they can also be a member of one or more institutions that they can act on behalf of. The idea behind this is to cater better for the two main groups of people that Discover is aimed at: those searching/researching for content, and those creating and taking care of content. The latter group will need to have multiple people working on large collections (such as DCD’s), while the former is more interested in making “Discoveries” which they can use in their research, and possibly later promote into public collections. A person can be acting in either role at any time, so it’s possible to switch between acting for yourself, and acting for an institution that you are a member of.

We’ve also got some bug fixes and minor changes:

  • You can now add tags again
  • Tag and object fields are now displayed more consistently
  • Search results is now shown as a list, to be expanded later
  • The top navigation bar is now more logically laid out and includes links back into the DCD web site
  • The navigation bar is more responsive, and works better across a bigger range of screen sizes

May 18th, 2021

This week we’ve done some minor tweaks and laid ground work for some future features.

  • Text is now extracted from PDFs, which means PDF contents is now searchable. Whether this is a good idea for large documents (e.g. entire magazines) remains to be seen, but at least we are now in a position to try it out! To apply this to PDFs attached to existing items, just edit and save the item to trigger the text extraction.
  • Media thumbnails are now shown when editing
  • Fields are now in a slightly more logical order when editing
  • “Click to promote” on auto-tags and auto-objects is working again

Nicolai has been laying the groundwork for group/team ownership and control of items by incorporating Laravel Jetstream. This is slightly tricky to retrofit to an existing project as it’s designed to be a skeleton for new apps, but Discover is simple enough for it not to be too difficult. This isn’t yet visible, but will enable us to do things like represent organisations within Discover, and give them control over their own items.

May 12th, 2021

Nicolai has got off to a flying start and we have some nice changes to report:

  • Uploads should now be much more reliable, in particular typing during upload won’t break
  • When submission of an upload is in progress, you can’t trigger it a second time, and the submit button changes to “Saving”
  • Processing of uploads should be a little faster
  • Pagination of search results is back – infinite scroll really doesn’t work for this as you can’t reliably save a search position
  • Search results now displays each item in the same way as the items view
  • Just today Nicolai has completed an upgrade to Tailwind 2, allowing us access to better styling, layout tools, and interface plugins, and lay the foundations for some future changes.

This week we’ve had various discussions about how to improve collections, expanding supported fields (including allowing for custom fields per item), and managing collection ownership, so expect changes in these areas in the near future.

May 4th, 2021

This week I got the speech-to-text processing properly integrated into Discover, and it’s working well. We still have a problem that appears to be a bug in Media Library Pro which means that we can’t trigger analysis of images or audio on save – MLP tells us that there is no media even when we just uploaded some! I’ve reported this as a bug that they will hopefully fix, but in the mean time a workaround is to create an item, then edit and save it.

We also welcome Nicolai Baaring to the Dgen team to help get Discover into better shape with his advanced wizarding abilities!

April 13th, 2021

I have been trying out some new things. The first of these is audio transcription. DCD has a large collection of audio recording of interviews. These have great historical value, but the problem with audio is that it’s not very searchable, and you may have to listen to a lot that’s not of interest before you find the gems you’re after. Converting speech to text is reasonably reliable these days (think Siri, Alexa, OK Google, etc), especially if you don’t need to do it in real-time (as we don’t). There are several API services that we can use to do this. So far we’ve been using Microsoft Azure and Google services, but I’ve been finding Azure is easier to deal with so I’ve been trying out their speech recognition service.

There’s a lot you can do with speech beyond the obvious “sound in, words out”. If multiple people are talking, there are options to be able to separate them out, and the words they say can then be attributed to them – this is very popular for transcribing business meetings. Another critical aspect is timing. Often people don’t realise the usefulness of timing in speech to text until you say one word: subtitles. These things can also feed into searchability. Our primary target is to be able to answer “does this audio clip contain mentions of these words?” – that one step eliminates vast amounts of listening time, because we’ve had a computer do the boring bits for you. Even better is to be able to say “this keyword is spoken at this time within the clip”, taking you straight to the bit you’re interested in. This has been built into subtitle search engines like QuoDB before, but those have usually been built by scanning subtitle files from DVDs, which is more accurate than actually listening to the soundtrack, which in movies is often noisy, mixed with music, etc, and also often available in multiple languages. While we’re interested in the research benefits this searching ability brings, don’t underestimate the amazingly creative things people can do with searchable resources!

Azure has some options for how to process the resulting text. You can have it simply deliver a stream of unformatted words, but it’s much more readable if it applies some basic grammatical rules, capitalisation, number handling, and punctuation. You can also have it mask or skip profanity!

Here’s some example output generated from a short interview preamble clip from the DCD collection that I processed manually with the Azure service:

I’m going to eat 1, excuse me. Anyway, I don’t know. You probably have some thoughts. What you’d like to talk about? Well, are you a mention them? That you’re interested in people who are choreographing the 50s working in dancing with the same right, and so I assume that I can’t think of thing you told me how to preparatory work, so I didn’t, and I assume that you’d like to sort of start back there and then and work up and all the things will just come. Sure. Sure, that’s fine. Do you want me to go back to that point? Yeah, perfect

There are occasional missed words, but generally speaking it’s a fairly faithful and readable transcript of what was said. The automatic punctuation works pretty well, and it’s nice to see the “50s” interpreted that way. It feeds straight into our Algolia search index, so it was immediately searchable too. None of this is automated yet, but I’m working on that!

March 11th, 2021

This week brings some visual changes to the main item index layout, partly inspired by DuckDuckGo’s image search:

In our new layout, things are generally a bit tighter, so you can see more items at once. The various buttons which previously took up lots of space have been moved into small icons overlaying item images.

In top left we have an edit button, which will appear for items that are yours, or that others have allowed editing on. In top right, there’s a delete button (only for your own items). Bottom left shows a “group” icon that indicates if an item is shared, and bottom right shows how many media files are held within this item.

Item titles will now be truncated if they are too big for the box. Tags take up less space, and only the first 6 are shown.

The menu colour scheme is now easier to read, and we’ve added a link to the DCD labs site. The logo will look a bit sharper on higher-resolution screens.

We’ve still not solved the issues we were having with multiple collections, so these new features are not live yet.

March 4th, 2021

We nave built in initial support for adding items to multiple collections at once, though it’s not quite working yet.

The new search sidebar appears when you’ve done a search, and shows how additional search criteria will be able to be added and removed in future – this will really come into its own once we have support for dynamic fields.

The new search sidebar

February 25th, 2021

Some small things this week.

You can now add items to collections! To do that, first make sure that you have your own collection, so create one first. Then edit an item, and select the collection you want to add it to, and click save.

When viewing an item, it will show you all the collections that the item appears in including other people’s collections. Clicking on a collection name (which looks jut like a tag, but pink), will take you to that collection, where you can see its contents. Next steps for collections will be to allow you to mark collections as private (so others can’t see their contents), and to allow selection of multiple collections at a time when editing an item.

A screen shot of the Smithsonian's search sidebar
The Smithsonian’s search sidebar

We’ve been looking at how to improve searchability. The single search bar is a great starting point, but after getting an initial set of search results, it’s likely you might want to add more criteria, and the single input box makes that difficult, unless you’re going to impose a search language (“find this and that”). A popular solution is a sidebar/menu bar that allows adding refinements to a search – the Smithsonian site does that, but it’s a little clunky and gets out of hand where there are large numbers of options. There are plenty of options to explore here.

Field selection is a common problem for archives – as we saw in CIDD. An explosion of fixed fields (common to all items) results in enormous forms that are very off-putting to those entering data. In this week’s DCD Labs event we asked the audience to pick their 5 “critical” fields from a shortlist, and that will be used to expand the core fixed fields. Because of the diversity in the collection, and in what researchers want, I’m very keen on an approach that allows more flexibility, such as by allowing dynamic selection of fields per item. Rather than fighting over what should go in a “date” field, we could allow for different kinds of fields for specific purposes without imposing them on every item. This is probably worth a follow-up blog post!

February 18th, 2021

Just a few minor changes today:

  • A denser item view – less space around each item, more items per row
  • When an item has one or more media elements attached, it shows the count and a small icon to the right of the item’s name
  • When you view an item that has media elements, it shows some metadata (for now, just the original filename). This is particularly helpful for things that may not have a thumbnail image or are otherwise unlabelled.
  • Consistency of button text and colours, though there are still a few layout glitches.

February 11th, 2021

Today we have rolled out three new changes. Firstly, you’ll see there is a new menu bar:

New menu bar

This buys us a bit more screen space for the expanding range of things we need to provide access to.

Secondly we have cleaned up the ownership problem I wrote about last time. All items now have a “shared” property, which is on by default. Items marked as shared can be edited by anyone (that is logged in). This is the default setting, which means that all the pre-authentication items that were previously inaccessible are now editable. you can see when an item is shared or not by the little icon to the left of its title. A single person icon is not shared, a green group icon is shared:

An unshared item title
A shared item title

Lastly, we have the beginnings of Collections. A collection is like a folder – related items can be added to them. Collections are “owned” by individual users, just as individual items are, and only their owners can edit them. An item can appear in any number of collections (including none), so you might have a “Ballet” collection, and also a “1990s” collection that have items in common. Collections are initially shown as a list and have a simple title and description:

A list of collections

Clicking a “view” button shows the contents of the collection, which looks just like the top-level items view, and provides its owner an opportunity to edit or delete it. Note that deleting a collection only deletes the folder itself; the items within it are not deleted.

This is currently incomplete though – as yet there is no way of actually adding items to or removing them from collections! We’re not quite sure of the best way to do this yet.

We’re also discussing other possible features of collections such as:

  • Toggle the shared status of all the items in a collection so as to enable easier management of events like “identathons”
  • Private collections that are only visible to their owners (“my favourites”) so they don’t clutter the global collection list
  • Collections that can only contain items owned by the collection owner (useful for licensing restrictions or specific events)
  • Saving search results as a collection for future reference
  • “Smart” collections that update automatically (“Recently added”), much in the same style as smart playlists in iTunes

February 3rd 2021

That was quick! Today we have pushed out a new version that enables authentication. This means that you have to log in before you can do anything constructive/destructive! You don’t have an account yet, so you’ll need to create one first via the register link.

PDF previews, new buttons

At the moment, you can only edit (and delete!) items that you have uploaded yourself – which presents a problem. We previously didn’t have any authentication, so we didn’t know who you were when the previous uploads were done, so nothing is currently owned by anyone! We will figure out what to do with those things later.

PDF documents now generate previews, but they do not get passed through the machine learning systems.

There are a few styling tweaks – more DCD purple, and button colours are more consistent.

February 2nd 2021

We’re back after a new-year break. We have been very interested to see some major public projects with broadly similar aims to DCD – The Smithsonian put their collection online, and the system they built (no doubt with resources vastly greater than ours – they have 3 million items!) looks remarkably similar to what we have come up with:

Similarly, the Museum of Modern Art has put 90,000 of their images online, again using an approach very similar to ours:

We’re really happy to see collections of this magnitude making the same choices we have, it’s really nice to see validation of our thinking!

Our next steps are some important features to help with management of items. Firstly, to re-enable registration and logins. We have avoided this to date, as it represents a barrier to entry, however, not having it means we have little control over what gets posted, data corruption/vandalism, and any sense of ownership over uploaded content. Secondly, we want to introduce the concept of collections. This doesn’t need to be any more complex than a single level of “folder” style groupings, but will allow use to divide the overall collection into more manageable chunks, and also make it easier to allow items from other sources to coexist within the same system – we want to be able to accept input not only from other dance organisations, but also related areas, such as theatre and circus collections.

Lastly, we want to expand support for multiple media elements per item. We can do this already (thanks to our use of Media Library Pro), but it’s a bit limited. Say we want to store not only an image of a photograph, but also a scan of the reverse of the image. These are straightforwardly associated with a single item, but we also want per-element metadata, for example to describe the image, and anything related to that single view, rather than the item as a whole, for example the text of something written on the back of a photo. This could expand to larger numbers of items, for example scans of all the pages of an event programme, or photographs of a costume in isolation and during a performance.

December 16th 2020

Today we cleaned up some styling to match DCD’s colours! Woohoo! No, really, the big news is that audio and video formats now play. Discover will accept uploads in all a wide variety of different video and audio formats, however we rely on browser support for playing them. Unfortunately browsers don’t support that many formats, so stick to mp3, m4a, and ogg for audio (sorry, no AIFF), and webm, mpeg-4, and quicktime mov for video (even with these support is a little patchy across browsers). We also enabled adult content image recognition, which may add “‼️Adult”, “️❗️Provocative” and “❗️Gory” tags to images. The tag cloud should work a little more predictably across different screen sizes now. That’s pretty much it from us for this year, we’ll be resuming development in the new year. Happy holidays!

December 13th 2020

After some babysitting of the batch processes, we have now completed analysis of all 3,500 images from the Flickr collection.

December 9th 2020

Several big things this week. We pulled in 3,500 images from DCD’s Flickr collection, and this turned out to be too big, causing the server to run out of disk space! More space was promptly added. We also have new processing options to enable us to submit images to machine learning systems in large batches while avoiding rate limits.

On the front end, adding images during item creation now works properly. The presentation of the item list is now more compact, and correspondingly shows more information when you view things in the sidebar. New buttons on each item make it clear where clicking things will take you, and in particular you can go directly to an edit page.

We are one step closer to supporting more media types – audio thumbnails now render correctly – but we still don’t have display/play options for PDF, audio or video.

December 3rd 2020

This week we made a switch from the original implementation of Discover to a new version. This new version is still based on Laravel, but we’re now using LiveWire for interface components, which makes things much more dynamic and immediate.

The item view now has an “infinite scroll” loading technique: as you scroll to the bottom of the page, it loads a chunk of new items, so you can just keep going!

Click in some white space on an item and you’ll see further details on that item in a sidebar, and it will stay open while you’re looking at other things.

Search results are now split into text and tag result tabs. If you click a tag in any of the views, it will also automatically search for the tag as text.

Thanks to Media Library Pro, you can now have multiple media files per item, and add them by drag & drop. While it supports uploading more media types (PDF, audio, video), we have not built the parts for viewing/playing those types yet. We’re also not quite sure how best to present multiple media items for a single item (ideas welcome!), so at the moment you’ll just see one in most places, and only the first image will be submitted for machine learning analysis.

One thing we have seen people wondering – if you click the logo in the top left, you will be taken back to the default view of all items, most recent first.