Okay, so this talk is not going to be as technical as some of the others because realistically it's a showcase and also this is about art and this is about how Drupal is enabling our digital art. So it's really more about how Drupal has been used as a tool. So I'll just put, if you do want to see a highly technical talk, even cut all the code bits out, the door is still kind of not locked at the minute. So first up, acknowledgement of country from the gallery that I acknowledge the traditional owners of the land where we meet here in Brisbane. I pay respect to the Aboriginal and Torres Strait Islander elders past and present and extend that acknowledgement to all First Nations people here today. In the spirit of reconciliation, I acknowledge the immense creative contribution first Australians make to art and culture of this country. So this talk, I'm going to give a bit of a backstory about the gallery. I'm going to talk a little bit about why these digital projects are important for us. A little bit of a showcase so that you kind of know what I'm going to talk about during the build, the challenges because when you're doing a project with about 100,000 pages and lots of data sources, there are some challenges, then a bigger showcase and what we're doing with this platform to try and enable a little bit more. So let's start with the backstory. That building there that's beautifully lit up is the gallery of Modna. If you're from out of town and you've got a little bit of time, highly recommend getting down there. We're in between major paid exhibitions, so all the shows there are free. Level three of that building, we have two shows, Transitions and Courage and Beauty, absolutely gorgeous collection shows. Or if you're there at night, we have a work that outlines the outside of the gallery. It's Nightlife by Terrell. It goes for about 80 minutes and it's this beautiful light scape and you can kind of see it in red there. At the gallery, we have a vision, we have a vision to be Australia's most inspiring and welcoming gallery, a global leader in contemporary art of Australia, Asia in the Pacific and we want to connect people with art. So really, when I start talking about this, I'm talking about that's our vision, that's our purpose, that's what's actually driving this project which is a Drupal project at the end of the day. When it comes to the art though, a lot of it's physical, vast majority of it's physical. There's some TBA, time-based art that we have that we're also showcasing, but most of it is like this. This is a gorgeous work called the Fibre Soles. It was on display earlier this year as part of our Asia-Pacific triennial. And you can kind of see that there's a lot of components. So trying to make one digital representation of this art is a challenge. So I bring this up, this is a real content challenge in how we present the art. I'm not just walking around with my iPhone taking photos of the art and putting it up. But for that, the photographers have refused it every single time. But if take beautiful art requires beautiful reflection and a beautiful amount of time that goes into preparing these artifacts and for when they go online. Now because of those challenges, until November 2021, this was how we presented our art online. It was very much a kind of bespoke layer on top of our internal collection management system. Confusingly in the glam sector, CMS means collection management system. So I'm going to try not to use that acronym because 99% of the world uses it otherwise. But this was the front of that system. So to find the art, you filled out a form and you hit search and it would find it and you'd get a little thumbnail and some metadata, which still to a lot of staff would, they prefer this because if you know exactly what you're looking for, you can find it very easily and you get more comprehensive information because it's on top of our collection system. It's not necessarily what the public can really reflect on or be serendipitously discovering art because really, you have to know exactly what you're looking for and you're there to get that one thing. So how did we start transitioning from what you saw to what I'm about to show? I started at the gallery just before the first COVID lockdown, which meant I gave 27 sessions about how to use teams in one week. But it did actually change a lot and I'll talk about this in the challenges a bit too, that it enabled a bit of a spirit to maybe try stuff out because the physical gallery was closed due to lockdown. So how do we actually share our art? Well, we have to use digital and we had to do it very quickly. So it meant that we could actually iterate and test a bit. So we had these beta releases between April 2020 and June 2021, five beta releases, and that was kind of enabled by this kind of lowering of risk, I mean, a hiring of risk appetite that we could put things out there. We released a new version in November 2021. And really, it's a Drupal base. And we use views to push out APIs for other consumers, digital signage apps and so on to take that content. And this Drupal site is highly integrated with our other SaaS apps. So I'm going to do a real quick preview because I tried this talk out and it's a little bit funny spending a lot of time talking about this product, but then you don't know what I mean by Algoleo. You don't really know what I mean by metadata components. I'm just going to do this really, really lightning fast talk on it. So we have our collection online. It really importantly is this search. And it's this idea that you don't need to know exactly what you're looking for and it's type ahead. So for example, Picasso is an artist most people know about. So if I start typing in by the time I'm halfway through the word, I've got the results of all of his works. When I start looking at artwork objects themselves, unfortunately, I just released a whole bunch of plates. So it's not two weeks ago. It was like all this modern art now, but the plates are beautiful. Don't get me wrong. But so we as I spoke about, we feature one object because there's one object that tells the story. And a lot of thought goes into staging and selecting that photo. If there's additional, they appear underneath here with basic metadata. It's all clickable. I'll talk later about the challenges of transforming flat text into taxonomies. Then we randomly select three objects made from that same media. Other works from that department. And it just kind of allows us to kind of flick between the objects pretty easily. If you see a creative name, you can kind of tap on that, see all the other works they're doing. It's very fast to get across all of the objects themselves. Sometimes there's a high res image or a slider or some sort of another. I'm going to cheat by going to all of them, which I put in this one spot here. Perhaps you want to see there's a story that could be connected to it. You could link to another resource that exists in the gallery. We might want to actually go in and have a little bit of a closer look at this crystal skull here. So that is pretty much that little very brief preview just so you know what I'm about to talk about. So now I'm going to talk about the build. How do we make that kind of content happen? So I should put out that I'm digital transformation manager. So making a website is only really one of a pretty large number of things I'm doing. And what I'm trying to do is modernize our architecture so that all of our components are connected. So these are all my projects. Today I'm only talking about these ones. So to get a high level, we have a dams, a digital asset management system. That's right at the bottom of the curved elliptical. And that's where we put all of our images. Next to it, we have a collection management system. That's where all of our data goes. So apart from one part, people aren't editing in Drupal. They're editing here, the content. We have a library system that has profiles about the artist. That all pushes into Drupal. And Drupal pushes out to an API. Drupal also pushes out to Algolia. Algolia was that type ahead search app, which is a little react app that's embedded inside the application itself. And then some of the other resources like Shopify and our blog, which is WordPress and Shopify, obviously, they also push to Algolia. So it means that all of this content is searchable from our main website. So I'm now going to talk about how we make data. Each of these components, we're going to dive into a little bit harder, but art is digitized, take photos of it, and then we make a version of it and put it in our dams. Webhook fires goes to the website. We update collection information. Every night, that gets refreshed. And the one thing that you do directly edit inside Drupal is called a digital story. A digital story takes entity references from throughout the Drupal site, and you can kind of create this kind of cohesive story by pulling together all of these mini narratives, these artist profiles, these images, galleries, and so on, so that you've got kind of like this kind of cohesive narrative about it. That's the diagram that I just explained. Now, in terms of Contrib, there's not much Contrib, and that's really important to this build. It's really close to just core. We use Migrate a lot, and a good example is just this morning, we updated 12,760 nodes in six minutes without really trying very hard, because Migrate works well, unless it doesn't. We use Search API to push to our goal, yeah. We use paragraphs for making those digital stories, and that will come in the main part of the showcase. We just have the standard modules, like Path Auto, C Tools, Minitag, Tweet, Tweet, and so on. And I guess the one thing that's a little bit different is we use views unpublished and seminal authentication so that if you can log in with your Azure AD and see all of the unpublished content. And when I come to challenges, which is the main part of this talk, you'll see how being a modern art gallery, releasing digital content, has challenges. And this is a really important part to making sure that the staff can preview everything they do. So the image publishing process, which for an art museum is super important, is we photograph the object. We then crop that object. So the photographed object that we select is a 500 megabyte TIFF. It has color balancing records. It's got all these reference materials next to it, and we call that the archive master. And that can be reused for hopefully generations because it's been digitized with open standards and all that. It's not very useful online though. So we make a derivative and crop that so that you don't see the color bars and we push that into the dams. In the dams, our digital asset management system, you push a little button that says send to website. And for all the people publishing imagery, they never go into Drupal, they just use dams. So we have a make.com webhook responder. So make is like Zapier. It used to be called Integromat, and it listens for this webhook. When that's fired, it then goes to the dams and downloads a 1600 pixel wide image. That's a derivative from that cropped image. Uploads it to the media library. Drupal's media library generates the large, the medium, and the thumbnails. The node updates and attaches to that new media that's been pushed up there. And either if it's public or private, it becomes available. If it's not copyright released, it's still on the site, but you have to log in with the SAML authentication to see it. So another thing that we just kind of added to and only literally got used for the first time on Monday was secondary images. So now instead of just pushing one, you can push a second one. And now these little tiles that appear underneath it. And again, instead of pushing primary image in the dams, you push secondary image. Again, our image team doesn't use Drupal. And in terms of those webhooks and changing what fields are getting pushed over, we can use make. Brie, who I worked with when making this, hi Brie. She had to make all the custom endpoints, but I can manage it via a low code automation tool, which is nice. Now the migrate for the content. Info has changed in our collection management system, our CMS, but not the one you know. Now I've got a cron script that runs every 24 hours and picks up anything that's changed in the last 24 hours. That rsyncs to a Drupal directory. Then cronrass. So what happens is we run the export at 2 a.m. The rsync at 3 a.m. And then the import at 4 a.m. So even if it's a massive change, because there's a lot of objects, there'll still be enough time for everything to process. Then the migrate runs at 4 a.m. The node itself updates that puts it into the queue for cron to then execute the incremental updates to Algolia and all the relevant content is updated by the time anyone gets into work. So the collection system though, it just makes flat files. It makes an object file, an artist file and it makes a story file. And effectively in that process, it flattens all of the taxonomies. And I'll get to this in this long abated challenges area, but they're not hierarchical taxonomies. They're text. So we had to do a lot of things to try and make that work. And still there's a lot more to do. And importantly too, there's a manual image and a manual process that needs to be run. So if I really need to just, okay, I really need to change this. And a good example might be First Nations artist dice. Their name can't be used. So I have to, I mean, I could go into Drupal and change it, but that's not really good practice because Drupal is really a secondary source of information. So I should go to the source of truth, which is CMS. I'm not allowed to change it there, but I can then manually trigger that and rebuild any of the references to that creator. Algolia, we have four indices. Artworks, Artworks, Store and Blog. Two of them are relevant to us. So Cron just queues up any of the changes that occur either through Migrate or Manually and pushes it into the index. And then we have a React app that is saturates at the top. That's the type of head search that you saw. And it queries Algolia's edge locations around the world. The typical type of head is as fast here as it is overseas and so on. And it means that we have, even though it's, we're pushing from this one spot, we have very, very fast around the world. Don't think I really need to mention a whole lot more about that because I'll run out of time. Now the front end, although in the title of this talk, I talk about decoupled, we do use decoupled in terms of pushing content to other consumers. But the front end of this app currently is a Bootstrap because I made it and I'm a manager. You saw me projects of God, I don't have time to make custom frameworks. So it's a Bootstrap project and during the build it went from four to five and I happened to use just about everything that wasn't supported in the move. And we had to redo that in about three days before going live. That was fun. And also like React, there's React app which does their search and the newsletter sign up at the bottom is an embedded HubSpot form. So the way is that it's Drupal pretty vanilla and then we kind of push out some of the stuff that's more complex to third party SaaS providers and embed it inside it. But collection online as you see it today is still very much a twig based, tightly coupled front end. But we use views and there's an endpoint for every object and artist that returns information that other consumers need in the gallery. So if you go to our main website, which has got sanity as a headless CMS and it's a static page, it queries that those APIs to bring back the latest information about all of our objects. We're also building a progressive web app so that you can access this content in the gallery itself. I'll talk about that in future directions. It directly hits this API to get all of its artwork information back. And we are kind of transitioning to make Drupal a decoupled content source because it's doing a good job of that already. We've only really got one tightly coupled component at the minute. Let's talk about this for a while, hey. There's one slide but I could, I'm gonna have to keep myself down so that I don't use too much time. What have I got, about 10 minutes? Oh, look at that, I've got more. Data standards. Our publication style guide was written in the 1990s before digital was a thing. So that means that the way that we've captured data is for that print focus. So I have an artwork from Roma. Is it in Queensland or Italy?  That's from Roma Queensland. But when I export the data out, I don't know the difference because it's doing text matching. So this was all over the place. We're cleaning that up. And this is not something you can do overnight. You have to work with the curators to develop the right taxonomy so that we're actually describing this information for the future. Isn't something you just turn on. And that's a challenge because we're always dealing with that. Australia versus Australia, New Zealand. Australia versus Australia, New South Wales and so on, all that stuff. If you break it up into hierarchical taxonomies we can do a lot more. Migrations and the second one, changing source systems. So our collection management system was supposed to go live before this product went live. It didn't. So as a result, we had to change the migration stream halfway through the process. And the migration source was not Jason like it is now. It was this weird antiquated XML format that didn't actually wrap attributes. It included the attribute inside the XML tag and every tag was empty. But the attribute was declared no matter what. So every time you migrated content it was null or not null, didn't matter. It was really hard to process and the more rows it was kind of like a logarithmic processing curve. It was something else. But we parallel on another stream developed the migration for the new system. So it meant that when we changed systems there was zero downtime, zero change of the update process because we had the other stream going. We were getting ready. But that was a challenge to actually think of, well how do we actually migrate these two systems? COVID and priority. So I talked about earlier that, and this was I guess a positive challenge but a gallery is quite used to the opposite of software in terms of its presentation that when you visit an exhibition on its first day it's generally the best it's gonna look because there hasn't been people going through it. There haven't been people playing with the interactives. It's at its best. When is a software the very best on the first day it goes live? Different. Flipping that mindset of like, no, no, you iterate. You get stuff out there. You test it. You do small scale releases. That was a really big challenge to get people to agree because our executive are used to exhibitions and digital is different. Parallel, so also while we were doing this our website was being redeveloped. And we have a beautiful new website. It went live in August. You got delayed several times. So I had to keep iterating every feature release for both the old skin and the new skin as we're going along. And I think we had the eight months where they were going parallel when it could have happened at any day. Copyright. So as a modern art gallery stuff becomes public domain 70 years after the creator dies. Or if it's a photo in Australia after the year 1952 when it was taken. But we're a modern art gallery. So most of it's not there. So when we made copyright agreements from even 10 years ago they didn't consider digital reuse. So it can be implied that we need to re-contact the estates. So we have 82% of the collection digitized which is very high for a gallery go us but only 55% of it's available online. The difference being that we have this massive backlog to modernize our copyright agreements. So it means that if you log in you see a lot more than when you're not logged in. And it is a bit of a challenge trying to communicate that okay and even if we have a digital agreement if we signed 10 years ago it might say only in low resolution use in this one application. So trying to modernize our process so that we can deliver better digital outcomes is a thing. And I've got a couple more but mindful of time COVID. Key staff get COVID during this build in the small team. It's a bit tricky. I will add to hit this slide that's not there that one way that we've kept this site going which I think is really good is I've got a tiny art gallery budget but I work with Bri one day a month and effectively we've had 10 sprints, a monthly sprint. So during the month I kind of write up bits and pieces that I can and then we go together and do a genuine actual not government agile but a real agile build where I'll have a backlog and we get through as many as those tickets as we can and we just deploy that day what we've got and it means that we're constantly each month releasing new features. And we're doing it on this shoestring of a budget. So I think there's ways to get past that tiny budget and all of that and keep this site fresh and moving. Okay, so I'm gonna go a little bit of a showcase because oh my God, I've got about eight minutes so I'll go a bit rougher but we'll have a look. So, because I wanna get to future directions I did show a whole bunch of this off and I think what I wanna do next though I'll show a little bit of this transition. So these are the digital stories I was talking about. This is what you do go into Drupal to edit. So these are just paragraphs and we kind of reference existing content that comes from the collection system and then augment it with a bit of a cohesive narrative and it allows us to talk about the kind of whole movement of art rather than just having to have isolated islands of information and this one's mostly just images but you can embed YouTube videos, you can embed galleries, sliders, all this kind of stuff. I should actually illustrate what a slider is if I will in a second. But this is what now that we've made this for transitions which is one of the shows on right now. Highly recommend that and then if you wanna know more about how it all comes together, come here and read it. We're getting a lot more interest of like, okay, well with digital we can go to that extra layer. We can really explain the art in the context of the other objects that we collected and make less of the individual listings in islands. Now, I spoke earlier about, I'm gonna cut the showcase short. Why not? Cause it's the showcase track. We, they're there the numbers too. There's 21,000 object pages, about 8,000 creator pages, about one in 20 have a good story, that's 60,000 taxonomy pages odd. One of the things that we're really moving towards is that we're trying to use Drupal a little bit more in terms of just returning information. So we've got this project running which hopefully we can pile it shortly which allows you to kind of point your phone at an artwork and it does some machine learning analysis and returns the likely image that you are looking at. So rather than going for a QR code, we're trying to ingest the whole collection and the tours. So that, and that's an example there that you go to the side of the work. So it's, should go back to the slideshow, sorry. It says, okay, well you took that photo so it's almost certainly this one and these are the works next to it. So in terms of being able to curate the, a journey of things you're interested in, this is where we're looking at. I'm about to go to something really cool. And then the second one is a way is that analyzing that information that we kind of on ingest, compress that artwork into a GIF. So there's 256 colors and then look at the dominant five colors and then look at the color balances of those and then compare across the whole collection to find, okay, I find this work aesthetically pleasing. I don't know what words to search for. Maybe I can search by color balance or I could tweak the color balances. So, but when you get the works, we need to then get a data source to be able to produce the extra things. The extra things you ask. Well, no one did I did. But one of the things that we've been looking at is photogrammetry and kind of techniques for digitizing things to a potential lighting. Just a total lighting, there we go. So this allows us to maybe, if I'm looking at this object online or physically, there's a lot of work, I can't do this for everything. We can start making these kind of 3D views and you can sometimes include x-ray to look inside these 3D objects and so on. So if you're looking at augmenting the physical experience, if we've got a little ecosystem of all of our data and we can query the endpoint that our Drupal has, we can create a better physical experience and whether or not I'm using that 3D player or I'm using kind of anything, doesn't really matter, no one knows. It's all tied together. In terms of what's emerging from you, it's hard with our budget. We use Pantheon right now and if you put up an merge request, it builds up a multi-dev environment where we can do some testing. But I've only got one day a month with Bree who I work with through my resources. So if there's an urgent security release in between that month, it's sometimes a bit hectic because I'm gonna put that up there. Accessibility, right now, there's tens of thousands of objects in there, images in there. A lot of them are legacy, a lot of them aren't well described. So we're trying to use piece together. It's a metadata to make a compelling kind of alternative text, for example, and encourage curated text as well. Also looking at trying to leverage AI to do some descriptors of it. And as we kind of make higher resolution things and more 3D objects and more bigger things, performance and page size becomes increasingly important and really it's just kind of factoring in, lazy loading and everything that we need to do for these assets that are non-standard. So what are we doing? Now, digital stories is becoming that thing I showed you where we intersperse our kind of back knowledge. When a show goes on, you look at it and it's kind of pretty, you look at the labels. The digital gives us this chance that if you're really interested in it, you can kind of see the kind of thought process that went behind curing the show. So digital stories is a good way of doing this. Decoupling the front end, I spoke about this more that we're looking more and more about how we incorporate these objects across our products suite, including our corporate website and whether or not we can do this with a fully decoupled front end. Deeper API integration, spoke about that, trying to standardize our vocabularies, really long-term projects and really look at how do we modernize the way we've been keeping data so that we can be really ready for the future and there aren't really standard kind of metadata. There are lots of standard metadata standards, but which is the right one? It's different. And also we're doing this pilot right now where we've chosen our 20 most popular artists online and we're trying to build these kind of comprehensive little pilot kind of mini sites within Collection Online. That's like, okay, well, this is what we can do if the artists were really popular. Okay, I'm at the end. Now don't forget about the Drupal Sprint on Friday. I won't be there. And if you've got any questions, you can ask them right now because there's like a few minutes and you can get my Twitter handle, which I check sometimes. Oh, battery change. Did you do already one goal? Was it manual or how did you make all the metadata? So we turned each of those terms and we just do text matching. So as a result, we don't make certain things clickable if we can't, but if it's medium, painting of a case, lower case, that generally compiles pretty nicely. So things like medium, things like our department, secondary kind of category. We just kind of use text matching to build the taxonomies on the fly. Thank you. Well then, do you have to have someone use a used hyra or hyora? I don't know. Is someone manually doing, use that way or is it part of Australia or was it? So we haven't yet. So this is one thing. So there's a taxonomy called TGN, which is taxonomic geographical names, which is by the Getty Art Museum in Getty in LA. And they do have like the closest things when art museum standard to locations and it is hierarchical down there. It's an absolute beast and very inefficient, but it's the one that's the closest thing to a standard. So what we want to do is map our existing flat taxonomies to that hierarchical taxonomy and then put that into our collection system. Then we can output from the collection system into a hierarchical Drupal taxonomy. You're not quite there yet. Oh well, if I present next year, we probably still won't be quite there yet. Because there's no consensus, you know? And also place created is a debate. That's like a, these aren't just hard-dotted questions because this is cultural heritage. Place created, okay, there were three collaborating artists. Do we put them in as three or do we take the chief location? Not sure. Okay, it's an indigenous work that represents these whole areas. These places don't exist in our Western taxonomies. How do we do that? Do we put a bespoke library in? Okay, or do we just do a shapefile that's centered on another one that's obfuscated? So there's so many questions that come with just that one taxonomy. And I have like a hundred. Is that it? I was that good, I only got two questions. That's how it works. You mentioned that you had a mixture of some private and some public assets. Yeah. I was wondering if you have any difficulties in mixing those in terms of decoupling and APIs? Yeah, yeah, so what I do is there's like the permissions on the object itself. And we literally, unless you've got the right privilege, it on error loads a placeholder image instead. So ideally we could pre-process it, but as Bre knows, I put all my logic into it just to annoy her. But yeah, effectively we use the permissions module of Drupal to decide whether or not you can actually see the assets. And it works via the APIs as well. Good times. All right, one more. I think we're almost out of time, so this could be the last one. Last question. Look at that. Yeah. You mentioned you're thinking about going with a decoupled front end. Yes. Have you had any thought to what you would use or what framework, or has there been any planning around that yet? Oh look, it'll be very progressive, would be the short of it. So say, I could go back to it actually. So say for example that is this latest acquisition, that's on our website right now. That's using Alpine.js, which is on static assets to kind of render out a kind of cropped, and that's just using object fit cover on the CSS from the image return. So effectively we'd probably be looking at certain components being decoupled out, like say the card asset, and then maybe keep the full object listings in twig. I've started to play with Next, but I think because we're so lightly resourced in a technical sense, it would be too early to say where we're heading with it, but definitely be progressive. Yeah, most kind of a loaded question. We have a session tomorrow at 1 PM. Come along. Good stuff. Well, thank you very much for listening. Thank you.