So Kyle and I are here today to talk to you about some of the experiences that we've had at Northwestern Mutual about running GitLab in Kubernetes, AppScale for the enterprise, and running GitLab CI through there. This is the thing we all click and just accept without reading, so we'll move on from that. So like I said, we'll kind of go through some of this stuff. At Northwestern Mutual, about five, six years ago, we started going through this digital transformation where a lot of our leadership realized we need to modernize our applications and our architecture, and we wanted to shift to being more of a software company that also sold insurance and financial planning and services like that. So in order to kind of facilitate that, the company took a step back and we took a group that really started piloting more of these, started using Kubernetes and piloting more of the Dockerized containers and stuff, and at the time, we needed a new source control, something that would actually work with how we were going. So GitLab was the one that won out, the big part of that was being part of the open source community. It was a huge draw for us, allowing us to contribute back to help get things that we needed in and go faster. So while we were doing that and everything else was getting modernized, we figured, well, why not do it for our SEM as well?  So off the bat, obviously, we all know Kubernetes, know it, love it, gives us such a great ability to run applications in a highly available architecture with outhapping to think a lot about different auto-scaling groups and yada yada and all the nitty gritty of actually running all that, just easily deploy and you're kind of set to go. However, back then, nobody was doing that for SEM. Multiple people, even from other companies, were looking at me like, you're doing what? Why? Generally, my answer was, well, why not? But back then, obviously, there was no documentation on how to run GitLab in Coob. You have all the little quirks of having to figure out the resource usage. There was only the Omnibus container back then. JSON Plum hadn't broken apart all the different parts of GitLab and created the Helm chart to make it even easier. So we had to deal with this container that had everything packaged in and we had to try to pare it down to do the certain parts that we needed. Otherwise, it just took forever to start up and it just was a resource hog. We also had to figure out how are we going to do this with some of our planned volume of having nearly 3,000 users and until this is an old slide, it only says 21K repos. I think it's pushing 40,000 now. And then we want to make sure how do we best leverage the AWS services to make sure that we can ensure that if we have to do something to change back and that we run into an issue, we can easily flip back and forth. So up next, this is what we came up with 2016. Don't take a picture because you don't want to do exactly this. This was four years ago when people were like, why not? So obviously it's super high level but we have our Kubernetes cluster there and we're running all the Omnibus containers in there. We kind of had to break them apart into ones more dedicated to the API and web traffic. The ones that were more dedicated to get functionality of our SSH, ones for sidekick and so on in the container registry. But because we were just kind of figuring it out as we went, we also needed this, we also had an Omnibus installation on an EC2 as kind of a fallback. So in order to help facilitate that, we stood up our Redis clusters using Elastic Cache. We leveraged S3 as much as we could as new things came into GitLab for like LFS, the artifacts, uploads. We would leverage that as well so that it would help facilitate flipping back and forth if we came into a problem. We broke out Gitaly as soon as we could. Initially that was just the NFS and then we started running Gitaly on there as well in order to kind of again flip back and forth, leveraging AWS Elastic Search and yada yada and so forth. Some of the things that we ran across that I want to make sure you can avoid, we've had this experience, we know it didn't work quite right, so don't make these issues as well. So EFS, obviously it would make life so much easier. You've got a highly available NFS managed service. If you've ever tried to manage an NFS cluster yourself, you'll know the pain of never wanting to do that again. Unfortunately, EFS does have a hard IOPS limit of, I believe, 8,900 IOPS. And that's spread across the cluster. So if you've got something that's provisioned across for AZs, it's all shared there. And Gitaly functions so fast that it can try to re-access a file while it's locked, while it's trying to copy across the AZs, which, if you've ever experienced that, it kind of causes everything to go tumbling over. So unfortunately, that's not an option. Cayam, which you've ever used as just Kubernetes IAM, this isn't so much an issue with Cayam itself. It was more kind of a learn on our part, because since it was long ago, we kind of forgot to put the resource requests and limits on there. And because of the omnibus container was so resource hungry, it would starve out Cayam on a node, and then Cayam would go into a crash loop, which would then cause GitLab to get these sporadic 404 errors really sitting there crawling through our Kibana, searching logs, going, what in the world is going on before we finally got out there and realized, OK, we kind of shot ourselves in the foot a little bit on that one, went back, reset that, added the limits to make sure that the omnibus containers were properly being scheduled by Kubernetes to stop the constant pain of the little quirks there. This next one is a little bit of a ped scratcher, probably for most, because you're wondering why would NFS be an issue. Really, who here has actually managed a large-scale NFS? OK, exactly. There's almost nobody. We've got one guy in the crowd. So if you've never done it, NFS is actually a pretty memory-intensive app when you've got a lot of activity going on. I didn't know that. So I tried to be a little overly clever and run Gitaly in a container on NFS. And if you've ever had NFS go into swap, you know it doesn't really like that. So what would happen is the NFS server would fall over, it would GitLab would lose the connection to it, and you'd have to restart both. So GitLab would crash. It took us a while to realize it was going into swap. And again, it was really just us trying to be a little overly clever, save some money, run these both on the same instance so that we could have the Gitaly container just directly mounting the EBS volume attached to the EC2 and then try to save that with the NFS. So really, this NFS isn't a problem. I would recommend, obviously, just using Gitaly and just completely ignore NFS, but the only thing you need it for anymore is Pages anyways. And there's other clever ways that you can get around that now, too. So just kind of recapping EFS. Just say no. NFS, if you are going to use it, just make sure not to run Gitaly in a container on it and then overuse your memory resources. And obviously, Kubernetes is the best practice always to set your resource limits on everything. Going forward, some of the stuff that we're going to be using, the Helm charts. If you haven't kept up with what Jason Plum has been doing with the Helm charts, it makes it. If I was starting all over again, this is exactly what I do. It's so much easier. They just added Geo to it now as well. So if you're like us that you deploy GitLab with GitLab, which kind of creates that wonderful chicken and egg issue, you can now leverage Geo. And you can have everything in the same cluster. You just throw them in two different namespaces. You can redeploy the primary and then the Geo part can be the read to keep it up. So while the other containers are re-spinning up, your users never lose access because GitLab's still up and then it can cycle through. Really, at this point, it's just you change a value to bump up to the new Helm chart and you're set to go. It's not a mess of trying to make sure your configuration is great against all these different repos in order to redeploy. Super simple. That is the recommendation. If you want to do a GitLab in Kubernetes deployment, this is the way to go. For us, EKS is another thing that we're going to look at because honestly, managing a Kubernetes cluster gets a little tiring after a while, especially when you've got 30 other things that you're trying to manage to. If you can cross one off, I mean, AWS does a great job of it, why not let them handle it. All the other cloud providers obviously have their own flavor of this as well with Azure and Google and so forth, DigitalOcean2. Just make life a little easier for yourself. Now, the one thing that's always kind of the trick and still is, Gitaly's still kind of a single point of failure. It's not highly available yet. There is some stuff coming up. I believe the 12, 7, 12, 8, they're going to start introducing some more. But being able to scale your data across multiple availability zones has always been kind of the trick, like how do you do that? How do you make your data highly available? So we've been watching this CNCF project, Rook. I believe it's now a graduated project. And it kind of does that. It's leveraging CFFS to span across your entire cluster. Makes life kind of a little easier now that knowing that you could lose, technically, if you've got a deployment across three AZs, you could lose two AZs and still be up. Personally, for me, that's exactly what I've been trying to do. It's one of your personal goal. I want to hit the 5.9s club without spending the money to actually do the 5.9s club on an app. So that's one we've been looking at. The only other thing that would be really cool, and I don't have a slide for it yet because I was just talking with the guy not too long ago, it's a product called VITES. They don't support Postgres just yet, but they do. It's another CNCF project. And it's actually the type of database that YouTube uses. It originally came out of them. After they were Google purchased YouTube, they were immediately put onto the board. And the way they wrote it to work on the board, as Kubernetes was coming up, they're like, oh, well, this already works. So they were actually labeled as ready for Kube before Kube hit a 1.0. But with that, those are some of the things that we would definitely take a look at. Rook, like I said, we're still POC-ing it. I'm not endorsing it. Take a look, play around with it, see if it works for you. Otherwise, go ahead with the helm charts. And with that, I'd like to hand it off to my co-presenter here, Kyle. Hey, thank you, Sean. All right, so I'm going to pivot just a little bit. Sean gave us a great background on how to deploy the GitLab application in Kubernetes. And I'm going to talk to you a little bit about how to deploy GitLab CI in Kubernetes, and compare it and contrast it a little bit to some of the other offerings we have in GitLab CI. So I guess just to set the context a little bit, why much do you want to run your own runners? If you're on gitlab.com, you get some free minutes. That's cool and all. But maybe you want runners that are a little bit more performant. That might be one use case. Maybe you want runners that have some extra privileges. I'm going to get into that a little bit more later. Or obviously, if you're self-hosted, you're going to need to provide that workhorse to actually run your CI job. So you're getting that command and control plane out of the box with GitLab. But then you're going to need to bring your own farm to actually run your CI.  So there's a bunch out there. There's actually even another one yet, the custom one. But immediately off the bat, we can rule out some of the ones that are designed for local use if we're talking enterprise scale. So we're going to want something that autoscales. And that's going to bring us in to focus on really the Kubernetes executor and the Docker machine executor. The others are more there for experimentation or local dev. So here's what those two look like from an architectural perspective. On the left, we have the Docker machine executor. And the key here is that every build is going to run in its own instance. So when you spin up your runner, it's not actually doing any work. It's really just delegating that out to other machines, whether they're EC2s or droplets or whatever your cloud provider is. There's a whole bunch of ones different supported. But that also has a cost to it, too. So those machines take a little bit to spin up. They're kind of laggy. But you get a great isolation. So you don't have to worry about noise in neighbors, things like that. Let's flip over and talk about Kube for a second. So in the Kube land, every build or every job runs as a pod. So now we can get a little bit better density. We can get multiple jobs running on a single node. And that's going to get us a little bit better performance, I guess, per cost, if you can tolerate the fact that you might have some noisy neighbor problems. So I covered some of these trade-offs just to recap. So immutability, immediately out of the box. We're definitely not going to want to use the shell executor and enterprise scale, because you're going to have different teams stepping on each other as the underlying OS is mutated. So immediately you're going to want to go to that Docker executor. I think that's like step two in the CNCF roadmap. So get on Docker right away and then make your decision as to whether you can do some capacity trade-off with running in Kubernetes. And it's OK to get that density. Or if you really need isolated workloads, then you can stick with Docker Machine. If you're on Kubernetes, one thing you might want to do is just kind of a pro tip. Consider separating out your workloads so that all of your CI runs in its own node pool. You can do this to try and isolate things so that if your CI kind of goes off the rails or is over provisioned, the rest of your apps are impacted. We can do this through some classic Kubernetes primitives, mainly node labels, taints, tolerations, and selectors. So the first thing we do in the config here is we're going to label our nodes as dedicated to GitLab CI. And this is something we can do to say, when a pod spins up, it'll be attracted to that node selector. So this is one way to gravitate all the GitLab CI pods towards the nodes we allocated for GitLab CI. That's only half the problem, right? So we also want to repel the regular jobs. Let's say you have your web app running on your cluster. So we're going to tank those same nodes and say, we want to repel. Don't let the jobs that are running our web app actually go on to the CI nodes. And then finally, we follow that up with a toleration to say, yes, the CI, we're going to allow those workloads to flow onto those nodes. So between those four, Kubernetes concept, working in concert, we can actually shift the CI workload onto its own dedicated nodes. And that opens up all kind of cool possibilities, like, for example, if you want to change your autoscaling policy and apply some fine tuning to your autoscaler, that opens the door for that. OK, so let's say you've got your Kubernetes executor set up. How can we use this to boost our security posture? That's the kind of story I want to tell today in the last part of this talk. So here's my straw man use case, if you will. It's a pretty classic one. But we've got a pipeline. And at the end of it, we want to talk to a managed service. That could be S3. Let's say we're deploying a static website. Let's say we're publishing a customer download on one of the keynotes this morning. We looked at, we saw Kubeflow and how they want to interact with the bucket. So fairly common use case. But the point is, we're going to need to get some credentials in that pipeline. So the first thing we can do, probably the easiest, is to set up some protective variables. Everyone's probably done this before.  And then you just start those in protective variables. You use them right in the pipeline. It's really easy for developers. And this is great because it's very portable. You can run this on any shared runner and you're good to go. The downsides are not really that secure. So they are protected, so you get some masking. But let's be honest, they don't change over. They're not going to be time-bound. So this is kind of risky. Let's say someone saves the creds off in your last pass. How many people here have generated an IM user before and use those in your pipeline? How many people have, let's say, rotated that credential ever? Lost a few hands. How about in the last year? Month, hour? So you get the idea, right? But as credentials are out there, if they're not rotated by some sort of automation, it's probably just not going to happen. So the next thing you could do to boost your security posture is move towards roles. So with role-based access, now we can take that same policy and apply it to an instance. In this case, it's a runner. And now through the metadata service, we can get time-bound credentials. So that's a step up now if someone happens to walk off with them or cat them out in the pipeline or echo them. We can still, so there's still the potential for a leak, but it's now constrained. So we've reduced that risk profile by making sure that someone can't walk off with them and have them be valid for a long time. And the cool part about this is it's still the same interface, so same command line call. We didn't have to change up what the developer does. But the disadvantage here is that now the runner has become a privileged entity. So we can no longer have this be a shared runner or you'd lose your security. So instead of having a shared runner, we now have a runner kind of tied to a particular use case, let's say. And this kind of gets out of control quickly. So let's say you need to spin up a runner for every single environment, every single project, every single security domain, every single policy has its own credentials. That's kind of crazy. So this works well for maybe select specific use cases. But like Sean was saying, we have thousands of projects. We have hundreds of groups. It's not going to work at the enterprise scale. So how do we find the happy medium? The baby bears warm porridge in this scenario. We want to get to a happy medium. And this is where Kayam comes in and has some advantages for us. Sean talked about a little bit Kayam. Basically, you can think of it like IM rolls for pods. So remember, in GitLab CI, with the Kubernetes executor, a pod is the unit that a build operates at. The other key thing to take away from Kayam is that you can control the roles through annotations. So if we put these concepts together, we can go into our GitLab CI configuration for the runner and say, you know what, if we establish a convention around the name of these roles and bring in CI variables to define them, for example, you could pick the project ID. You could pick group ID. You could pick the DNS namespace path. But just establish some convention and lock the user out from being able to override this. So if we set that up once as an admin, then from then on, every time someone runs a pipeline, they can define their policy against the GitLab project. Instead of associating a policy with, say, a role or an IM user, we're really just indirectly associating the IM permissions with the actual GitLab project itself. So we're treating that project like a first-class citizen in IM. So now they can run their pipeline and make the same API call, the same command line call. And it's going to get through the metadata service. Kayam intercepts that for us. And so there's really no change on the developer's part of how they're interacting with the service, which is great. So what happened here is we cut out that bottom layer in the chaotic matrix. So now rather than having a runner per security domain, we can still use the shared runners. But because of the rigid context that Kayam's providing, we're still constraining that security profile to a specific project. So this is good because we get that balance. We can use shared resources but still have tight security. So downside to this approach, if you go the project number route, or project ID route, I should say, they're kind of magic numbers. If you go the DNS route for defining your convention, you can run into some character limitations. But at the end of the day, this is just an ID I'm throwing out there. And hopefully we can get some feedback on it to see where we can improve. So just to recap, the idea is to take and federate a GitLab project and give that an identity in IM. And that way we can boost our security posture and not disrupt the developer by using the same API. So usually security can kind of be a zero sum game. In this case, we were actually able to boost the security posture without disrupting how the developer interacts. And with that, I think we got some time for questions. If anyone wants to ask about the CI aspect, or I'll open it up to Sean too for the app in Kubernetes, feel free to set them up. Not really a question, but just a couple of things. Because we did something pretty similar to this. Regarding the NFS, it's a bit more pricey. But actually, we got much better results from using an i3 instance and using the local NVMe for storing the data. So we will have two EBS in rate one. And we will mount them inside the i3 instance. Of course, you need more storage, and it's more expensive. But actually, it's still offering right now better results than using anything else. And that's actually how Rook works itself. If you look at some of their benchmarking, the way they recommend doing it was using an i3 instance with the NVMe and using that as a dedicated node in your cluster, or your three of them to spread across. And then it would use just those. And in one-to-one testing against a provision IOPS EBS, I believe the i3 pretty much blew away like a 5,000 IOPS EBS volume. And an i5 blew away 10,000 IOPS EBS. Right now, we are running GitLab. We are using the home charts right now to the GitLab. And we are using as well the locally attached disk to it. And it's like 10 times slower than anything that we got in Amazon. And one question for the CI thing. Have you considered using Vault for temporary provision credentials, because that's, for example, what we do for some of the deployments? Yeah, we've been looking at that as well. It's on our roadmap. We're fingers crossed. We're hoping for that first class Vault support. I know there's an issue out there. And we just haven't been able to get that traction and graded in the app yet. Yeah? Yeah, sure. Actually, we got really good results with the Docker machine executor in GCE. I saw in the slides that you were taking five to 10 minutes to spin up an instance. Actually, we got instances in GCE in like 10 to 15 seconds. It's pretty good. It's really encouraging. Nice job. Other questions for a wrap up? All right, thanks, everyone. Feel free to hit us up at the happy hour or offline if you have questions. Thank you. Thanks, everyone.


و أقولوا في القرآن ما جاءت به آياته فهو الكريم المنزل و أقولوا قال الله جل جلاله والمصطف الهدي و لا أتأوله و إذا كنت تقوم بإمكانك أن تكون مصطفاً لماذا نجد أن نجد أن نجد أن نفعل هذا؟ أريد أن أتكلم بأنه ليست مصطفاً لقراءة الكتب أن ي Klein أدل مجدداً لدى حق و البطل الأقل و إفضل أنه ليست مصطفاً للتوأكد الأدل أرد أن يتكلم في الكتاب والسنة يجب أن تؤكد بقية الله و الصنامة لقد يجب أن نكون أستطيع اللقاء و الصنامة لقد يتمنى طرق اللقاء و الصنامة و لذا أنه سيوان فلوسلماً أنه يفضل عمر رضي الله عنه when he saw him يقوم برأيه one of the books of the people of the scripture where the Prophet became excessively angry and the Prophet ﷺ he said أموتهو يكون فيها يبن الخطاب are you in a state of confusion إبن الخطاب يعني عمر are you in a state of confusion the Prophet ﷺ said والذي نفسي بيده I swear by the Lord in which my soul is in his hand لقادي جئ تقوم بها بيضاء نقية I have come to you guys with a religion that is pure and it's clean and then the messenger swore by Allah again he said I swear by the Lord my soul is in his hand لو أن موسى كان حيا ما وسيعه إلا أن يتبعني the Prophet ﷺ said if Musa was alive and he was in the world today there would be no other path written for him there would be no other path sanctioned for him except to follow me يعني نبي الله محمد أحمد أحمد نريت ذلك in his Musnad so this hadith clearly shows us that it's not permissible for a person to read the books of the people of the scripture and the person can read it if he's gained knowledge of the Quran and the Sunnah and he's grounded with the Quran and the Sunnah the person can read it Shaykh ﷺ Taymiyyah he read the books of the philosophers because he was grounded in his own knowledge and his own religion Shaykh ﷺ Ibn Taymiyyah read the books of the Rafi'a أهل الشيعة and he grounded himself in it and so he wrote works in refuting it like his Kitab من هاجز سنة النبوية في نقض كراب الشيعة القدرية where he refuted the shi'a the Qadariya Shaykh ﷺ Taymiyyah he knew what was for him and then he studied what was out there سربا إسلام he defended the religion so first of all learn your religion learn the Quran learn the Sunnah of the Prophet ﷺ Shaykh ﷺ Taymiyyah he read the scriptures of the people of the books and he refuted them he wrote a Kitab called الجواب الصحيح لمن بد لدي للمسيح where he responded to the Christians but then the badak came about for Shaykh ﷺ Ibn Taymiyyah after he studied the Quran and the Sunnah and he studied the statements of the early scholars of Islam he was able to go and study their works if you are like him or you have knowledge of your religion and you are grounded that there is no problem but if not don't waste your time reading their works busy yourself in studying the Quran and the Sunnah of the Messenger ﷺ anything which I have said that was wrong or incorrect is from me a Shaytan and Allah and his Messenger are both free from it سبحانك اللهم وبحمده أشد ولا إله إلا الله أستغفروا كواتوب إليه if you have any questions you'd like to see answered as part of this series and you can email us at questions at amau.org


Hi there everyone. Thank you for joining us today for the Getting Started webinar for this year's Give 828. We're just going to give it a minute to allow everyone to get settled. In the meantime, if you are here and you're joining us, we're excited to have you. We would love to know who you are, what organization you're representing today. So if you could just click that little chat bubble on your screen and just let us know who you're representing today, and we'll get started in a minute. Okay. Well, don't be shy. Let us know in the chat that you can hear us. Awesome. Thank you, Nema. Happy to have you here. Alrighty, so thank you again for joining us. Just a quick housekeeping item to note before we jump in. I want to let you know the webinar is going to be recorded. It'll be posted in the nonprofit toolkit on the Give 828 site under the resources tab. If you do have any questions that come up during the presentation, you can use the little zoom Q&A button to send us those. Nema will be helping us kind of answer those as we go along. But again, welcome everyone. So I am Sarah and I'm a project manager with Mighty Cause. We are the platform provider for Give 828. We also have Ebony and Nema joining us today from the Young Black and Giving Back Institute. Excited to have you all here.  Hello, everybody. Hello. I am Ebony Johnson-Pouper. I'm the founder of the Young Black and Giving Back Institute. We are so excited to have all of you joining us this year. And for those who are joining us who are still considering joining, hopefully by the end you will be convinced. So we are glad to have you. So over to Nema. Hello, everybody. I'm also from the Young Black and Giving Back Institute. I work as a program assistant and I help Ebony with managing Give 828. And I've been here for a few years and it's every year it gets more and more exciting. So really glad to be here and looking forward to this year's campaign. Awesome. Thank you. Well, Mighty Cause, we are really excited to be here with you all again from Give 828 again this year. Just a brief overview of Mighty Cause so you're aware of who we are. If you're new this year, we are a fully functional organization fundraising suite. Organizations use our platform every day of the year to help raise money for their causes and organizations. We've been around since 2006 and we're one of the first platforms to host Giving Days. So we're just super excited to be involved with you all again this year and looking forward to helping out. So we're going to take a look at the agenda for today. We're going to be going over some of the basics for the event this year. We'll walk through how to customize your organization page on the platform. I'm going to screen share with you all and provide a walkthrough showing you how you can edit your pages if you're new. If you need a little refresher since the last year, kind of show you where you can find different reports, how to edit your profiles, and then we'll finish with a Q&A session at the end. If you have any kind of remaining questions that weren't asked during the webinar, so you can just click the Q&A button and send us those as we go through these. So to start with, I'm going to pass it back over to Ebony so that she can cover kind of the big overall accompanying basics for Give828. Thank you, Sarah. So, and you also hear my very lively 11 month old in the background. So Give828, we started back in 2018 as a day for black led, black benefiting nonprofits to be able to participate in a day of giving just for them. And so you can find all the background details for the day on Give828.org. On the website, you'll find out why this date is so important and the details of the day and the significance of the date itself. We are the Young Black Giving Back Institute, as we said. And this year, because it is our fifth year, we're actually going to do five days of giving. The official kickoff day is going to be on the 28th of August, but secretly and excitingly, we are going to have an early giving day on the 27th. So there will be five exciting days of giving. So we look forward to sharing more about that. And then we want everyone to know if you are part of it, that registration is required and it's $25 per organization to be part of the day. And so each organization, once they once they register, they'll receive the registration confirmation eligibility. As you mentioned, any Black-led, Black- benefiting nonprofit with the tax exempt status is invited to participate in the day. One of our team members is going through and helping with that verification. So if you've already been part of the day, then you don't have to worry about it. But if you are new to the day, then we do have a very simple short process just to verify that at least 50% of your staff and 50% of your board are Black. And Black includes all of the diaspora. So that's a really important piece that we want to make sure that everybody knows.  So again, we thank you all for being here. This is a really important day. I also mentioned that it is on the heels of Black philanthropy month. And so we are truly excited to have been doing this work for, for five years. Awesome. Thank you. Alrighty, so for those of you who are new, who may have not participated in a giving day before, just to let you know a giving day is an online fundraising marathon and is aiming to bring people together to support a specific community in their space. So our Giving Day hosts are organizing the event. They're helping rally organizations to raise funds. Organizations participating in a giving day are able to utilize the resources, the tools, you know, the nonprofit tool kits, stuff like that, which has all been provided by the host so that you can reach out to your supporters to solicit donations, secure some peer-to-peer fundraising, and just really work on growing your network. As we noted, a giving day is a unique campaign. It's presented by our host organization. It provides participants the opportunity to really capitalize on the urgency of a limited timeframe. So in this case, you know, you have your early giving and then you have your part of the event to raise the most money for your cause.  So if you're considering participating, wondering kind of what you can get out of it. So really time to engage your sponsors, look for sponsors, work with community partners, really kind of rally the supporters of your organizations to help you with peer-to-peer fundraising, to help spread the word even further about your organization's mission, and really raise funds for your cause. The limited timeframe of the event really is going to feed that sense of urgency that donors are typically going to respond to. And then as you set goals for yourself during the event, whether that's a donor count goal or peer-to-peer fundraising goal, monetarily and non-monetary goals, all of these goals are going to help provide you fresh messaging opportunities for your donors. So what you need to do to get started, so to participate, you're going to need to customize your profile. After you're registered and approved to participate, you can customize your profile page on the Give 828 site and start planning your campaign. Once your page is set up, you can start to invite people involved with your organization to participate as peer-to-peer fundraisers. Once Early Giving has started, you can really start promoting your campaign, encouraging those early donations. And of course, you'll definitely really want to push the biggest donation ask for the actual giving dates, August 28th, 8am through August 31st, 8pm, so that you can be eligible for prizes and all that good fun stuff. So first things first, you're going to need to register. So a short form on the Give 828 site is going to allow you to register. If you are a previous participant, you can go ahead and register, so long as you still meet the terms of participation that are listed on that page. If you are a new participant, you're going to need to fill out a short eligibility questionnaire first. So the Give 828 team can kind of screen you and make sure that you fall into participating. And then you can go ahead and register once they send you that approval. If you are registered, you can log into your organization page. You can add additional administrators if you're going to have multiple people helping on your account for the campaign. Or you can remove old administrators if they're no longer with your organization. So just make sure you're registered and approved to participate by August 14th. Alrighty, so bear with me, I'm going to stop screen sharing and then pull up the Give 828 site so I can kind of show you a walkthrough tutorial. Hopefully you can see my screen. If you can't, just let me know in the chat. You should be seeing the Give 828 2022 site. So once you register and you're approved to participate, this is going to be where you go first. To log into your account, so you head to this page first, you'll click log in on the top right corner. From here, you can log in using Google, Facebook or your email address. So I'll pretend I'm logged in and I've been brought to this kind of demo site, so to speak. This is our Humanities Society, it's our demo page. And I'll show you, it's pretty much what your page is going to look like as well. So once here, I'm going to show you kind of, this is your dashboard on the left.  You can find just a variety of metrics here that are going to come in handy once you start raising funds. Under your organization page in the left hand side, you'll find the page your donors see when they visit your profile. I'll click it. You're going to see that it'll offer you kind of a tutorial walkthrough. If you have never done that before, you can opt to do it or you can exit out of it. This is the page that your donors and supporters are going to see. So I'll kind of go more in depth on how you can edit this page in a second. As we kind of move through, you'll see fundraising tools is going to be a big one. From here, you'll be able to review any peer-to-peer fundraisers that have been created for your organization. You'll also find matching grants, which will kind of go into a bit more later. Below this, here's matching grants, all your peer-to-peer fundraisers. Widgets, which we'll cover in a little bit too. Fundraiser templates are going to be super key for peer-to-peer fundraising. As we kind of work through, you'll see the reports section. From this section, you'll be able to preview and export different donation reports. You don't have retention reports. Your disbursement reports. All of the reporting that you would love and need is mine to be here. As we continue down within checkout, you're going to see a couple different places where you can kind of customize your donation form. The thank you page, your donation receipt. And like I said, we'll go into kind of a little more depth on each of these.  So anything like customizing the URL ending that's on your page, to updating kind of social share settings, organization info, things like that. Alrighty, so this tutorial site is going to always offer a tutorial. Okay, so we're going to get into the organization page customization. So as you know, this is the face of your organization for the giving day. So you're going to want to make sure it looks good and it represents you well. If you were to ignore this dashboard, ignore this. I'll show you at the very end kind of what it looks like if some of the visits, if you aren't logged in. But the wonderful thing about Mighty Cause as a platform is everything is on page editing. So you have your edit toggle mode here so you can see what's editable on your end. You'll see these little icons all pop up. So it's super easy all on page editing. You can see everything, all the adjustments and changes you make in real time. Just so you know, this org page URL at the top of your page is the link that you're going to share with your supporters to direct them to your organization profile. So to share your page, you're just going to copy and paste your URL into an email, a Facebook post, wherever you're advertising your campaign. You will know that your URL is correct because you're going to see instead of your giving day, it's going to say give828.org. So you'll know that that is your page which is tied to the Give828 event. So starting at the top, the first thing you'll want to do when editing your profile is upload your organization's logo and a banner image. You can use the pencil icon. You can just open up that section for editing. Logos are going to have a one-to-one aspect ratio to fit. The logos that we use are pretty much the same ratio for any social media sites. So if you already have a logo you use, you can just use that here. One big thing is just to make sure your banner image is not clashing with your logo. So a strong image, probably no text in your banner unless it's above the logo. So just keeping those kind of design aesthetics in mind. So as you upload, you can select your logo. You can do the one-to-one ratio. You can direct link Facebook, Google Drive.  Same thing, change your banner image. You can add a color overlay. If you wanted to have a subtle blue color over this to match the theme of your page. So to change your banner image, you'll just upload. This is a three-to-one ratio, so a horizontal picture. We also have a pre-filled gallery. So if you're short on time, if you would like to use kind of a pre-filled image, you can always select one of those as well. All right, so next thing, let's see. You're going to want to kind of just move through. Upload, not upload, change the color for your brand. So if you have a certain color for your organization, you can match that. The theme color picker kind of allows you to pick a consistent color. It's going to show throughout your page experience. So buttons are going to have that color type of thing. Super easy to set. You just click the palette icon. You can open up this. If you have kind of a hex color code, if you have a designer who works on your team, you can get this sorted out pretty quickly. Of course, your organization name, and then as you move down, you'll see there's a donate button where people will make donations. Fundraise is where people will click to make peer-to-peer fundraising pages for you. If you do not want peer-to-peer fundraising, you can always opt to hide fundraise. So hide this fundraise button. It has never not worked for me. I'm not sure what that is about. I'll look into that for you all. If someone is sharing this organization to their socials, to Facebook, LinkedIn, email, wherever, they'll click this and they can share your page. Your metrics, you can set a goal for the event. So you can edit your goal amount. If you meet your goal, since this event is going to be a couple of days long, if you meet your goal by the second day in, feel free to go in and re-edit your goal, up it by 5, 10, whatever $1,000 you feel is appropriate. So you want to just keep resetting your goal if you need to. Don't feel like you have to stop fundraising because your goal is not. Just keep the momentum up. You can also reset your metrics. Mighty Cause is going to reset all participating organization metrics so that they reflect the start of early giving. So just be aware of that. But you are also welcome to go in and adjust. So if you wanted to go in, if you're registered and you're ready to start working, you can adjust your date and time for metrics display. You can opt to include offline donations. You can show just the amount raised or donor number or both. Totally up to you. A lot of customization is available at your fingertips here. It's super easy. As you scroll down your page, you'll see the story or about section. So this is really the centerpiece of your page. In your story, you can put your mission statement. You can add photos. You can add video. We really want to highlight this section because this is your chance to explain what your organization is all about. It's your opportunity to really review your page. Think about the message you want to share with donors for the event. If you participated last year, is all this messaging still consistent? Do you have updated goals? Do you have an updated video? If you're brand new, what are your goals? You'll want to share them here. The text editor is right in the section. So all you have to do is just click and you can just type directly on here. This is our kind of wizarding editor. So you can add a bunch of new buttons, emojis, tables, embed URLs. If you're inserting video, it just has to be uploaded to YouTube or Vimeo first. And then you can add the link. It'll play directly on your page. People can play it here. Or they can, of course, click the title and be brought to your YouTube. But there's just a ton of different kind of customization and formatting that you can choose from, which is really nice. And then of course, don't forget to save. Alrighty, so as we kind of continue down, I wish to mention another super cool kind of ability here is to add one additional custom tab. So you can add anything you'd like information about upcoming events if you have them. If you have an FAQ for your organization, if you want to include pictures acknowledging your staff or donors, really anything you'd like can go on your custom tab. So definitely use that. Let's see. We're going to continue down. Below all this section is your media galleries. The media gallery is where you're going to basically add any of your additional media, any kind of socials you can connect to Facebook or Instagram. You also can feature campaigns. So if you have a peer-to-peer fundraising campaign that you would like to highlight, you can add one here. If you have old featured campaigns, you can delete them so they're not showing. You can see all of your peer-to-peer fundraisers on your page. This is the media gallery I was talking about as well. And so that is kind of the gist of it. Your organization data has sections for you to add, you know, your official website, any social media links you want to add, and your email if you want. Donors, visitors to be able to access email or phone number. You can fill all this out for yourself. So if you have any questions on that, you can send them through. But I am going to move over into the checkout flow next. Take a sip of my tea first. All right. So the next item you'll want to customize is your organization's checkout flow and donation form. So this is of course located within the checkout section of your dashboard. This is probably one of the most important features to focus on when you're setting up your organization's page outside of your page itself that we just covered. This donation form is going to give you just a ton of control over the donation process that your donors are going to see when they come to your Mighty Cause Give 828 page. So like I said, all of this is on-screen editing. You can kind of see what's editable, edit mode here. If you wanted to direct copy the donate form, you could always direct copy the donate link right here and include it in any newsletters or email correspondences that you have going out for the event. All right. So you can set custom donation levels. You can add descriptions to tie those amounts to different items or services your organization provides. So for example, you can save $48 funds, 10 pounds of dog food or $100 donation helps funds to transport. So all of these descriptions and taking the time to kind of think about what you can do with each amount of money can really strengthen your appeal to the donors and give donors an idea of what their dollars are able to cover. If donors have a specific fund in mind, like say they can only give you $10, they can always enter their own amount here. From here, they can also choose to add a dedication. They can choose to hide their amount to be anonymous. So there's just a bunch of different kind of information that you can collect. You also have the ability to add one additional question. So if you wanted to ask them, if they wanted to sign up for your email newsletter, you could always ask that and have them say yes or no type of thing. You've got access to one additional question, which I think of what else. So once you're kind of all done, this is your checkout full checkout flow. The donate button will be at the bottom. You can always toggle off edit mode and anything that isn't filled out of course is hidden. So you can kind of really see exactly what the donor will see when they come to your donation board. Back to toast checkout. We're going to look at the thank you page. So the thing you page is within your checkout as well. It's where you're going to set up the thank you that is going to use the same text editor as your organization profile so that WYSIWYG editor is at the top. You can customize it, highlight bold, whatever you would like. You can add text, you can add links, you can add videos, images. You can also add a custom call to action button. So you can really get very unique with how you want to show your thank you in this section. The call to action button, you can link wherever it can go back to your page. You can link it to an email newsletter or wherever you would like link it to your social media. This is yours to direct your donors where you would like them to go. Your checkout donation receipt. You can also customize your organization's donation receipt within this section. This kind of customization that you do here is going to appear within the tax-adductible donation receipt from Give828 that is going to be sent out after the donor completes their donation on the Mighty Cause date. And so receipts are going to be automatically sent via Mighty Cause. You do not need to issue anybody a receipt if you had someone coming to you saying that they didn't get a receipt. You can email the Mighty Cause support team support at mightycause.com and send them receipts. They also, every donor, even if they do not have an account, like if they don't set up an account to donate, that's totally no problem. But if they do use the email that they gave with, they can always create an account and we have a log on their side of things where they can have access to all of their kind of giving statements, everything like that. But if there's any confusion, just send them over to support at mightycause.com. Alrighty, so this is all kind of customizable. The little mini Lizzie, the editor here, kind of gives you an idea of what your receipt will look like. If you have any questions, you can send them over. I know it's a lot of content. Alrighty, so I'm going to kind of take you over to the report section. So like I was saying, this is your report section. It's divided into five areas. We have donations, offline donations, offering donations, retention and disbursements. So your donation report is going to be available to you in real time and include information like your donor name, their email, donation amount. It'll also let you know what page they specifically donated to. So if it was a peer to peer fundraising page, if it was your actual organization page, it'll be listed. So on your donation report, you can click to download the report. A full downloaded report is going to include much more detail like designations, dedications, gross and the amount of donation, phone numbers, that type of thing. It's going to show more than you see here. So if you need more data, just click download. If you are looking at this and wondering where all your donations are, make sure you are selecting the proper time period. So it is going to default to the last 30 days. So if you're looking for different data, you can add your custom date range. You can also filter specifically by campaign type. So if you participated in giving a 28 last year, you can view by giving event and it will have your previous giving events listed here. In the report section as well, you're going to see disbursements. So this is of course a demo site. We don't have any disbursements to show, but this will be a full kind of history of your disbursements. You can click any listing to kind of open up more information. So just a ton of full details here. Back to reports retention. This section is going to allow you to export your list of retained or unretained donors. You can send individual emails to retained or unretained donors and much more. So at the top of your retention part, you can filter and create the type of retention part you need. So through status, you can filter a report to show retained or not retained. You can of course download this report. So if you participated in giving 28 last year, this is going to be a go-to tool for you just so you can see who gave to your campaign last year and you can kind of incorporate that into your reach out strategy. So you can search by not retained. You can search by the giving event specifically. You can search by custom date range. So this will be pretty cool. Clicking the email button is going to open up an external email system for you. Or you can just always download that data if you use an external kind of mail chimp. That's the word system for yourself. Let's see, I think the last thing in reports I wanted to touch on was offline donations. So with offline donations, you can track and manage all of your donation information outside of the platform if you get checks, hashtags and things like that. So to add an offline donation, it's super easy. You'll just go to add offline donation in the upper right and select this. And then when you're adding it, you just need to enter any key information, donor name, email address, the source, cash check, corporate match, anything like that. At the top of your offline donations report, you can also search for a particular offline donation by a specific date or a campaign type or source like I was showing you. The only thing to note is that once you have entered an offline donation, you cannot go back and re-edit the donation. So if you see that you've made an error, all you'll need to do is just delete that previous offline donation. Make the changes you need to a new and just add a new offline donation. Okay, I'm going to head into matching grants. I'll close the grants. Okay, so for matching grants, we're going to go much more detailed on the next webinar where we talk kind of about how to secure matching grants. But for today, I really wanted to touch on just this tool itself and some of the capability here because matching gifts are just really great kind of tools, incentives to inspire donors to participate and give to your organization. If you kind of are new to matching grants, basically it's a large donation that you're going to secure from somebody that's going to entice other donors to give because if it's set like a one-to-one match, it's basically a buy one, get one. So if you give $10 today during this time period, your donation will be matched by $10. So you're actually able to help us out and get us more money. So you can kind of explore this tool. We have a bunch of just different options for how you choose to structure your match while a lot of matches are one-to-one matching. Like I was saying, if someone gives a certain amount, this exact amount is matched. We can also do two-to-one matches, three-to-one matches. You can match just a percentage of each donation. So the matching grant tool is going to do all the math for you. You can also choose to apply a match when a certain number of donations have been received. So for instance, if you have a campaign goal to get X number of donations, you can say if you get 60 donations within the hour, you'll unlock an additional $1,000 for your organization. So take some time. Kind of think about how you can use matches to reach out to sponsors. Maybe they can't do a dollar-for-dollar match, but they could do a one-to-two or a three-to-one type of deal. So kind of add this into your campaign strategy. Start thinking about how you can use this tool. If you are overwhelmed by this, you can reach out to Mighty Call Support, and we can walk through it with you. We can answer any of your questions. And of course, you could always just defer to kind of a standard one-to-one match if that's something that you're interested in. Let's see. I'm going to head into the settings section. So the last section in your dashboard is the settings. If you click here, it's going to open your submenu where you can update your organization settings under General Settings, where we're going to update your kind of URL I was showing you. So if you are new and you haven't updated your custom URL, you can go in there. That's what's going to be reflected right here within your URL address itself. You can set up different search names, different tags for yourself. You can customize your social sharing. So when someone is on your page, and they click Share this organization, you can fill out what it's going to look like when somebody shares to Facebook or to an email. So you can add a title for the social share, a little bit of text, anything like that. So there's a couple of different kind of customizations within here. Let's see. I wanted to also touch on the donation widget. So I'm going to go back to fundraising tools. So the widget is super cool. It's a very cool feature. Your account, everyone's organization accounts, it comes with a few different donation widgets. These are going to allow you to collect donations right through your organization's kind of regular website. So if you have a website that you use your round and you know a lot of donors are going to be visiting that, you can always use a widget to collect donations for Give828 so they don't get missed. So you'll just need to ask your tech person because these need to be embedded on your website. Or if you know how to do that, you can totally do it yourself as well. But there's three different styles. So you have your mini donation form, which is my personal fave. I just think it's the cutest. So it's going to reflect all of the custom donation amounts, the descriptions that you've listed. They can opt to do a monthly donation, and then they can donate right through this widget. You can also just have a donate button on your website. So you can just have this. And this kind of shows you exactly how the code will be generated. And then of course there's also the thumbnail, which is the thumbnail of your organization icon logo on the Give828 platform. So different kind of options available to you so you can keep your fundraising going outside of the actual platform itself, if that's a need on your app. All right, so I always talk way too fast when I go through this. If anyone has any questions, you can send those through. I'm going to stop, share, and pull back up the slide deck. All right, so while you're thinking on any questions, I want to make sure to mention the super wonderful great resources and tools available to you as you're getting ready for Give828. And this is of course the non-profit toolkit and the training webinars page on the site. The toolkit and the recorded, many cause trainings as well as this one today, which is being recorded. And the slide deck, the full slide deck will be available under the resources tab on the non-profit toolkit. On the training pages, I'm sorry, I missed this book. But the toolkit itself is going to be filled with tips, tricks, support articles, FAQs, walkthroughs, just a ton of different information to help you get inspired, help you start thinking about all the steps that you need to start building into your timeline as you prefer for your campaign. There is a bunch of in-depth information as well as kind of starter info if you're just getting started out, just depending on what you're looking for. So make sure you download the full toolkit. It's really great. It's also filled with, you know, templated emails. So the Give 828 team has really tried to make this as easy for you all as possible, kind of laying the foundation, the groundwork for you all to be able to kind of copy and paste a bunch of what they've provided so you can tailor it specifically to your organization. So be sure to check that out. And then, of course, the support information as we wrap up, just so you have all the contact info here. The Mighty Cause team is a really great resource before and during, even after the event for anything campaign related. If you need help getting your direct deposit, your EFT setup, if you need help figuring out how to strategize around the timeframe. If your donor, like I said, needs an email, a receipt recent, you can reach out to us to get that to them. We also have a very extensive support library at the support.mightycause.com website. It's also linked in the toolkit. So if you have specific fundraising questions, if you're curious how to set up matches, we have just very extensive information for you to pull from. So definitely check that out as well. But yeah, so if anyone has any questions, you can let me know or how many, if you have anything you want to comment on. Yeah, we just wanted to reiterate the excitement for year five and to let you all know that looks like we have our repeat participants. So excited to have you all back. Whereas this year where Sarah mentioned that we usually have the hourly gifts, we're still going to do that for cash prizes, but we're also going to have daily prizes. So we are excited that you all have rejoined us and we'll be able to share more of that. But we want to make sure that we, that everyone knows that it is taking place over five days. So you'll have more time to get your folks on board to give. And so we will be sharing more of that, but we want to make sure that you know that you have more time to give or to receive gifts rather. And that our toolkits have been updated so that they are not stagnant. So if you grab the toolkit and download, you'll have new posts, some new tweets and Instagram posts and things like that as well as the social media graphics. Those are also new this year to fit our theme. We want everyone to have their own reason why black giving, for us it's magic, but for you, it could be something else. So I think Sarah had it in one of the slides, black giving for you might be community, black giving might be happiness. And so we want you to be able to use the templates that we've provided and let us know what black giving means to you. That's all I got Sarah. That was good. Well, I don't see any questions coming through. So I either talked particularly quickly, or y'all are just taking it in, which is really good. This is going to be, like I said, recorded and we posted. So you can definitely do a deeper dive into everything you saw, or you can refer to the slide deck as well. So thank you for everyone for joining us. Thank you, Ebony and Emma for joining today. I'm going to upload and then if you have any questions, you can always reach out to our support team. But thank you everyone and have an awesome rest of your day. Thank y'all.