 Thank you all for coming to my TED talk. TED stands for Technology, Entertainment and Drupal. This is actually my first time ever presenting publicly. And depending on how this goes, might be as well my last to stick around. I was actually reluctant to do this because I'm not particularly comfortable being such a center of attention. But then I thought, wait, I can share memes on a big screen? Sign me up. Let me get back to my notes because I completely forgot what I was talking about. Yeah. See, I'm nervous. Yeah, I am nervous. And there's this advice out there for public speaking that says like, you might want to imagine your audience naked to supposedly reduce nervousness. So, just if we, hey Alan, you look great. Did I just make you all uncomfortable? Great, now you know how I feel. So hopefully now the expectations are set extremely low. Should we cut to the chase? Yeah, this is a big deal for me again. And this takes a high. Look, I feel like I need to warn you there's not going to be much PC in my talk. I'm more of a mad guy. But all of this is to say, don't be too harsh on me. Don't throw stuff at me if I say something stupid, because I will. There will be plenty of very questionable humor throughout my presentation. And many jokes are quite likely not to land at all. And cause me to die inside a little. But I think it's, you know, if we're going to stuff this up anyway, might as well have fun with it while I did. Yeah, you know, don't worry. I'm not going to make any controversial jokes like, you know, or bring up any controversial topics like pineapple and pizza. You don't know them. But sorry, I'm up in my own jokes, they're excellent. Wait, was the Mac vs PC a bit controversial? Because, you know, it is somewhat of a religion, right? See, I'm failing already. So now the expectations are set extremely low. Let's start. What I'm presenting today is this thing called Site 316. And it has nothing to do with Drupal. Oh wow, I was expecting a riot to start. At least half of you standing up and walking out. But okay, there's still time. To gain some street cred with you, my background is actually, well, it's a Drupal conference, I feel like I need to. My background is actually in hardcore Drupal development. So, you know, I've been dealing with Drupal for, I started back in 2008-ish, I think. Yeah, I'm old. But if you get a nervous eye twitch whenever you hear the word CCK, we have the same kind of damage. Does anyone remember what CCK is doing for? Yeah, I actually couldn't remember myself. I thought it was... Content construction kit. I actually couldn't remember myself. I thought it was chaos construction kit. And because chaos, we did construct with it. But I've been in Drupal development remission for a while now. You know, it's amazing what years of therapy can do. And yeah, I still have to resist the urge to clear cache every time I do the smallest change in my code. And then again, just in case it didn't work. I just realized it might be unrelatable to some of you because, you know, not everyone here, I imagine, is a Drupal developer. So I've got a more inclusive example for you. And it pretty much encompasses my entire experience with Drupal. So it's a block within a block, within a block. Within a block. Sorry, paragraph within a paragraph within a paragraph within a block. You didn't expect that, right? I really digressed here, but I had to. Now I can claim that I talked about Drupal at a Drupal conference. All right, back to Site360. Let's look at what we're going to cover today, or try to cover today. So introduction, kind of been doing that already. We'll try to decipher what Site360 actually is. We'll go into the why, as in I'll try to explain what motivated us to create this service. We'll talk about the how, where we'll unveil how it all works, what technologies, not how we assemble this thing together and what architectural decisions we'll make. We'll talk about the what, where we'll discuss main features, core features of Site360 and which technologies we used to deliver those. And the when to cover the roadmap and what our aspirations are for Site360. If we still have time, the WGF, which stands for wasn't that funny where you can ask your questions and give me all the compliments. No pressure. And somewhere along the way we'll also do a demo. So hold on onto your hats. So first thing first, what is Site360? Well, in short, it's a one-stop shop, set and forget service that non-intrusively audits your site for core web health metrics and provides a simple and easy report. So you know where your site stands. That's a bit of a mouthful, isn't it? Let's break it down. So one-stop shop means that our service aggregates the data across multiple metrics under one umbrella and in a standardized way, meaning that you get a comprehensive review of your site's health in one place. Next, set and forget. Am I blocking the view? I'm sorry. Set and forget means that one of the core features of Site360 is pretty cool that it acts akin to a subscription where instead of you having to come back and re-scan your site, it will proactively do that for you and just send you updates via email on a weekly or fortnightly basis. Non-intrusively means that Site360 only uses publicly available information above your site, so it's not going to hack into your server and issue any malicious or harmful request to your sites. Health metrics, they are the key web performance areas that determine your site's health and overall quality and user experience. So we've identified five of them. So those are mostly the usual suspects, SEO, accessibility, speed and security. There's a fifth one called patching levels that we are trialling at the moment. That we'll touch on in a second. And finally, simple and easy report. Well, it's kind of self-explanatory. On its surface, it just offers you an executive summary view, if you will, of your site's health based on a simple to understand scores and grades. So scores from 0 to 100 and grades from F minus to A plus. Back to school. Okay, moving on. So how come did Site360 come into existence? Let me give you a bit of a backstory. Once upon a time, no, we don't have time for that. Do you know how you get asked to whip up some quick and dirty proof of concept? So you use some sticker tape and glue and some libraries that have not been maintained for years? And you give birth to this ugly thing that only works every third time and only while you're not looking at it. And then you get asked to do an internal demo for the team, then marketing posts a blog about it, then, you know, some customers get it sold to the next thing, you know, you're on stage at Drupal South presenting it. So I imagine this is exactly how they rolled out in Vienna, Australia. But yeah, why did we create Site360? That's a good question. And again, I need to look at my notes because I forgot what I was talking about. All right, let's get to the bottom of this together. Has anyone heard of the concept of five-wise? So it's basically how many times on average you have to ask the question why before you get yourself kicked out of the room, right? But if you're too important and that can't happen, then it's a problem-solving technique of repeatedly asking the question why until you get to the root cause of the problem. So to give you an example, I'm grumpy today. Why? Because I didn't sleep at night. Why? Because I was preparing this presentation for you. Why? Because I left it to the very last moment. Why? Because I'm an idiot. So, you know, coincidentally, it happens to be the answer to many other questions, but that's beside the point. So I thought, hey, it would be really cool to apply this technique to Site360 and then see how it stands up to the scrutiny. So any objections? No, thank you. So again, why? Why do we create Site360? I know what you think. There's existing tools out there that can scan your site for accessibility, security, performance, and all that jazz. And I'm sure you know some of them, like Lighthouse, PageSpeed, Wyslo. And in fact, Site360 uses some of them under the hood. But the issue is that it's all fragmented. They're all separate tools that you have to procure separately. They have different SLAs. They have different data structures. They have different integration points, different runtime environments. It's a mess. And if you are really truly serious about your site's performance, you don't just pick one metric, right? You want accessibility, security, performance, all of those things and deliver the best user experience. Turns out there's no product on the market at the moment. Well, there was no product on the market. That would deliver all of those things under one service that would allow you just to keep a pulse on your overall site's health. But why would I want to keep a pulse on my site's health? Because akin to your physical health, it's neither constant nor given. The reality is often such that many sites get checked against this metric at the point of their initial release, but then on the time they sort of drift away from the baseline without anyone knowing until things get terribly bad. Or some people do know about some of the issues, but they don't have the authority to fix them or do anything about it. Or people who have the authority to do anything about it don't know about the issues. Or have anecdotal data. So this isn't one dashboard that everyone can just point their finger at and be like, hey, let's do something about that. Well, why should we do something about that? Okay, I forgot what I was talking about again. Yeah, in a modern competitive environment, it's no longer enough just to have a website. If the experience that you deliver to your customers is suboptimal, it will inevitably affect your business. I'm sure you can all recall a situation from your life where you just gave up and closed the browser tab because it was either too slow or the content was jumping all around or it wasn't usable on mobile, especially if there was a table where you had to scroll sideways forever until you forgot what you were even looking for. Furthermore, it's your reputation, right? You can't win over your customers if your site is bad. And would you trust a shoemaker that has their own shoes broken? Probably not. Even more, even worse, if your site gets compromised, there's almost no way back from there. Unless your company name starts with F and ends with hook. www.FishingHook.com Don't go there, it's a fishing website. But my site is okay, it's cool, it works. I don't have time to perfect it. Why should I care? Look, that's a fair challenge. Where do you want to draw that line? And, you know, even though your site might look okay, the search engines these days, in fact, punish the sites quite hard for not maintaining the health levels at certain levels, expected levels. So, you know, it can and will affect your search rankings and overall marketing advertising costs. You might be throwing heaps of cash at your Google ad campaigns and still not getting conversions that you're hoping for. Simply because there's some basic flaws on your site that are so easy to fix but you just don't know about them. But why would I use Site360 to know about them? Because it's cool, okay? So, just like that, I think we got to the real reason why we created Site360, because it's cool. So, now that I've talked it up so much, should we do a demo and watch it crash and burn live? Great, I'll, this is what it is. I will switch over to my browser quickly and we'll see how that works. Cool, where's my... So, we're looking at the results here. You're not supposed to see that? Forget about that? All right, cool. So, we've got this site here. Drupal360.io, that uses Site360. It's confusing, I know. But marketing team at Salsa decided they wanted to do Drupal and target Drupal now. No issue with that. There's a lot of really cool information here that you can read later. But what we're really interested in is this guy at the top where you can enter your site URL and your email address where you can send you all the Nigerian print emails. So, let's pick a site. Let's say one that I definitely haven't scanned before. And okay, one caveat here is that in order to pass validation, you need to own the email address from the same domain as the site that you're trying to audit. We did this to protect our service from abuse and it also seemed like a sensible idea for people just to scan the sites they're not affiliated with. So, but I'm well connected. So, you know, I can use my Salsa email. And the next step, if it works, yay, the button works. In order to... Well, you need to confirm that you indeed own that email. So, by entering a one-time code that gets sent to your inbox. So, let's go to my inbox. Yep. Sorry, hasn't arrived yet. Where is it? Ah, there we go. On this kind of gory background almost foreshadowing the things I'm about to... All the gates of hell are about to break loose. Cool. Let's enter that. And it's not correct. Well, you know, the validation works. I did it. I did it. Ah, right, yeah. I pasted the wrong thing. Must be some meme link. Must have been, yeah. All right. All right. All right. Let's try that. Yay. So, now we are on the waiting screen. Waiting for the audit to complete. It takes about one to two minutes. So, in order to not waste any time, let's look at another meme. Sorry. Let's retain. Okay. This is a bit awkward. I like getting people... Gathering people in the room and just make them watch a clock. Should have put some elevated music behind it, too. It would be funny if it doesn't work. No, I actually got a backup there with, you know, ready-made results. And I also have a video. So, you know, you can trust me that it works. But every third time. So, I hope this is a third time. And it will work. Come on. Do your thing. All right. Should we do the countdown together? Like, five, four, three. This is why my presentation is so long. It's basically waiting for 20 minutes. Oh, wow. Grouse, look at that. It worked. I'm confused. It wasn't supposed to. So, what you're looking at is this audit results page. That executive summary view that I mentioned before. Along... That has some basic information about your site. Along with this overall score thingy that's calculated as the main value across all your metrics. But if you scroll down a little, you can actually see how your site performs across each of the metrics. So, security, speed, accessibility, patches, NCO. And, yeah, along with their scores. So, for speed, it seems to be not that good. So, only 29,500. And if you feel adventurous, there's actually PDF reports available for each of them that explain why your site scored that particular score. So, let's look at one of them. So, for instance, for speed, we're using behind the scenes, we're using GT metrics. It's a non-tool that provides, conveniently provides quite a comprehensive report on your performance, so you can track down where exactly the issues are. Might be technical for some, but I find it really, really helpful. We also have this patches thingy, which is our own homegrown thing that we will try to assess your Drupal core, how up-to-date your Drupal core is. So, if you're out of dates, we'll tell you you should step up your game. All right, one important note about Site 260. This is not a tool that certifies you. So, it only serves merely to point out possible issues. So, if it says the accessibility, even if it was A+, and 100, and 100, it does not mean that your site is indeed accessible. The automated tools are limited in that regard, that they are not aware of some of the context of your particular user journeys or your specific functionality. So, all your accessibility pundits put your wooden doors away. We're trying to replace you, not until we plug in the AI into this thing. Okay, and also, you get a nice email with the results, with a link that you can access anytime, and share with all your family and friends. All right, back to the presentation. So, basically, we created a website for your website. How cool is that? I suggest that you go to Drupal 360.io and try it out yourself, see how it crashes for you. Every third person will obviously make it work. Next. So, how do we make it all work? What's happening behind the scenes? Let me talk a little bit about the architecture. My favorite is the Victorian era. What about you? That's just such a silly joke. I love it. All right. Build it and they will come. That's a bit of a dangerous frame of mind for building something that's new or not yet proven on the market, which is what's such for 60 years. You know, there's many unknowns there. Do people even want it? Are they going to use it? Are we missing some critical features? Will we be able to make it financially viable? Will I be able to buy a Lambo? You know, those questions are keeping us up at night. And it became apparent from the start that we needed Site360 to be as adaptable and flexible as possible to adjust to changing demand, changing requirements and to be able to pivot quickly whenever we see that, all right, some features gain traction, we can focus on those and some might actually not be important, we can throw them out. So, we narrowed down to five qualities for Site360 as a system that we thought were the most important. Integrability. That's to allow people to integrate Site360 into their own systems. So, for example, think you are an organization that manages many sites for your customers. You could easily plug in Site360 into your beautiful dashboard and have it show as a value out, show your site health. Scalability. Obviously, no one uses it today, but after this presentation, it's going to blow up and go viral, right? So, we need to make sure that we can adapt to the events like that and on lose our face. Security. Do we even need to talk about this? No. Resilience. So, we are indeed using a lot of third-party APIs to run the audits for Site360 and how do we make sure that when one of them goes down, it doesn't render the entire service useless? Or how do we have some fallbacks in place? So, we had to think about that and maintainability, which is, yeah, as the system grows more complex, we need to make sure that we can easily develop new features and not get stuck into bug fixing and all that, especially this early in the product's life. So, with all of this context in mind, which solution comes to mind? Anyone? That's right. When you've got a hammer, everything looks like a nail. No. Microservices. So, they seem to tick all of the boxes. You know, there's many benefits of going down that route, but perhaps one of the biggest ones is microservices are client-agnostic. So, you can easily wrap an API around them and start receiving and issuing HTTP requests and communicate with everyone on the web in a standardized way that everyone understands, right? I prepared this technical diagram for you to explain what happens when you call Site360. And yes, there is a washing machine there. I had an excellent joke about that, but we don't have time. But come on. Who wants to look at that? That's boring, right? So, I made an executive decision to convert it to something a bit more fun. All right. So, at the top, we've got clients here, and Pacman represents the request. So, first, the Pacman travels to the API gateway that handles authentication and security and monitoring. Once that's all good, we proceed to serverless cloud functions that we're using to run Node.js and where the core logic of Site360 resides. Cloud functions then dispatches multiple tasks in parallel. So, here, each ghost represents a task. There's only four in this example, but there's actually seven or eight, I think. And each of them just takes a payload from the main request, goes to the nominated service or tool, collects the response, and travels back to this data transformation function that applies some additional calculations into some salsa source and also massages the data to adhere to the same data structure. Oops, I wasn't supposed to click that. I had done it for me. Hold on. Stop. Stop. You bastard. Sorry. And on the right, we've got here a separate... Hey! Sorry. All right. On the right here, we've got a separate application we deployed to store the results so you can access them later, right? And that comprises of larval for the business logic and content management. Database and cloud storage so we can store the PDF reports and screenshots and any other files. Will it now? Ah, now I have to... Ah, all right. How do I skip to the next slide? I don't know. It's nice to watch, yeah, but we don't have time. All right. So, let's talk about what features we have in Site-to-60 and which technologies we're using to deliver those features. That's a Japanese symbol for wisdom, by the way. Ah, now it doesn't work. All right. Okay. Great. So, first features. I'm going to be really brief about those because I think we are short on time. So, we do offer automated scans. So, you might want to make it part of your weekly routine to review a site's health. We offer email notifications. So, every time there's new results available, you get an email notification. We offer shareable results. So, URL that you can access anytime, anywhere. And before you go to sleep, you can just, you know, review them. We offer PDF reports to help you narrow down where the issues are exactly. And it's free. Now, I know that's not a feature, but, you know, I had four bullet points. I was like, that's not enough. I need to add a fifth one. So, I added three. It, you know, makes me... I'd like to think that we will keep Site360 free forever and we'll find out the ways to monetize via some maybe additional paid features. Now, let's talk about the... which technologies we used to kind of make this thing work. There's a list you can read, but at heart of Site360 is serverless cloud functions running on Google Cloud Functions as a service wrapped by Firebase so we can quickly integrate other Google services. Now, functions as a service is a perfect fit for microservices. You can just so easily deploy your API, your first API without having to care about configuration, server management, anything. All you have to do is just manage your code. The rest is taking care for you. It's not an advertisement for Google. There's other services, functions as a service providers. So, AWS Lambda and Azure Functions, I think. The APIs that we use, screenshot one for taking a screenshot of your website. Security headers for analyzing your security headers. Funny how that works. And GT metrics form all things performance and speed. Sam Rush for all things SEO. Quite a powerhouse at what it can do. What CMS, we're using that for detecting the underlying technology that your site uses. So that's how we know that your site uses Drupal. And Craft My PDF. This is to dynamically create PDF reports. We're using also Lighthouse and Pali. They're not APIs. They are open-source projects, as you probably know. So, yeah, we just have our own instances of those running in Cloud Functions. I would really love to talk more about the why we chose this particular stack. There's probably something missing in this too, but we don't have enough time, so let's maybe ask me after the session. All right. So what's next for Site 260 and what are our plans for it? Sorry, that wasn't meant to be there. So, first thing first, product market field. We need to answer those questions. Do people even want it? Because no one wants it. What's the point of fixing it, trying to push it? Or maybe we'll need to pivot and do something like a TikTok. I've had that say, hot topic. And then we would like to add more metrics. So, at the moment, we've got five, like I said, but we're looking at adding caissonscores.com. So, shout out to Sean Hamlin. He's not here. Well done, mate. He promised me he would be here. And we're also looking at a few others. But if I tell you I'll have to kill you, I don't want to kill you, so I'm not going to tell you. We would like to add better notifications. So, at the moment, it's all just email notifications. But the proper way to do it is multi-channel notifications using webhooks of some sorts. More flexible control for the users. So, think like a dashboard that you can log into and control, perhaps, like which bundles of metrics do you want to run on what schedule and what level of notifications do you want to receive? So, for example, I don't know, maybe you want to receive a notification only when your site dips below a certain level and then we'll just zap you so you do something about it. Trends and charts. So, data is king. And there's all sorts of interesting things that you can do with the data. So, for example, we could offer a historical overview of how your site has been performing, where it was, where it is now, and things like that. But even more interesting, how do you stack up to your competition, right? The identity fight, obviously, unless you're on your paid plan. I'm kidding, we would never expose that. And maybe, just maybe, we'll fix the bugs. We'll see. All right, what's next? These are some of the reviews, so you know I'm legit. And yeah, you can read it later. All right, and we arrived to the end of the session where you are supposed to ask your questions, but I've planned it this way that we don't have any more time, so thank you all.