Stacks Guru is born from the need to search the vast number of videos out there on stacks built for Stacks Pro and the Stacks 5 plugin for Rapidweaver.
We have scraped over 500 videos to get the transcripts for each in order to make the spoken word searchable.
Please use this free tool to help you learn and discover the awesome power that Stacks and the stacks made for Stacks have to offer.
I have been hard on the new version of Total CMS: Site Builder. Extensions. CLI. One-command Composer install. This is the biggest T3 release I've ever shipped. The new Site Builder lets T3 power entire pages on its own — perfect for client-facing pages and landing pages. And for your Stacks projects, everything works exactly like it always has, just with a ton of new power underneath. I'll walk through all of it and answer whatever you throw at me. Come hang out.
00:04 And we're live. Yay, we're here.
00:10 Sorry guys, I was trying to get, if you remember, the last time I did a stream last month, the um my chat wasn't working. So, I was frantically trying to
00:18 fix it and realized uh there was an app update and the version I had wasn't updating. So, um hey, I got chat again,
00:25 so it's easy for me to uh see your guys' chats. though. Um, let me know thumbs up on v audio and visuals. Um, if we're all
00:33 good. Um, I've been having some issues with my audio levels, so if I either get super soft or super loud, let me know. I think it's a bad cable. I I don't know.
00:43 It's always trickies to debug that stuff, right? Um, so Mr. Chris, David, Jeff's in the
00:50 house. Wolf, excellent. Thanks for popping in, guys. I appreciate it.
00:58 Cool. Um, okay. So, Ryan, what's happening, dude?
01:07 Okay. And let me get my little cursor thing. Great. Okay. So, um, a I've been
01:14 super busy uh recently. Uh, not only busy uh, you know, obviously work-wise and working on Total CMS and and
01:21 whatnot. Got some crazy drama going on in the background. I I took my daughter to a a volleyball tournament in Reno a
01:28 few weeks ago and while we were there um my car breaks down like 200 miles away from the house and I'm still dealing
01:36 with that. Uh the car is essentially dead now. The mechanic up there refused to try to work on it. So whole hoopla.
01:44 Um got some other f stuff going on but we're not going to go into everything.
01:48 We care about total CMS, right? So um I'm about a week behind. I I wanted what
01:55 I have today available u I wanted to um have shipped last Thursday but um hey
02:02 we're here right okay so a lot of really amazing stuff's going on with Total CMS and um this release we're
02:10 jumping from 3 we're current we're currently 3.2.5 2.5 I think and we're jumping to 3.5. Okay. Um the reason is because this is that big of an update.
02:23 Okay. Um this essentially turns Total CMS into its own platform. Okay. Um it's
02:30 a standalone everything. Okay. Um and uh really great still it'll still it still works with STAX. So um it's the full
02:39 STAX integration. I'm still kind of working on some of it. We'll show you what's currently built and what my vision for it is. Um, but yeah, it's
02:47 gonna be super cool. Um, we're gonna bring in a ton more users hopefully with this with this release. Um, get even more STAX users from it, which I'm super
02:56 excited about. Um, and uh, yeah, so without further ado, let's just dive in.
03:01 Um, I probably should bring up my uh, release notes uh, so that here. Let me let me do that. Let me go find it and bring that in there because there's so
03:10 much. There's just no way I can uh uh I can remember everything that we've done here. Um
03:20 okay. Um actually here I will put the I'll put the release notes. Um I'll put those in the chat. Okay. Um
03:30 that's kind of what I'm going to be looking at right now just to kind of give you guys a heads up as we're going through um all the
03:37 various features. Okay. Um, and actually I want to open up.
03:52 Give me a second. Sorry guys.
03:56 I'm also today been working on a upgrade an update to the spam guard in Foundation 6 forms. So, if you've been um getting pounded because bots have
04:05 learned um how to mitigate all of the um the spam guard stuff.
04:14 Spam bots, man. They're getting smart, man. It's uh analyzing what they what they're doing and how they're getting around what I've put in place is very
04:22 interesting. Um, so we're just going to put up more walls and um, yeah, hopefully the goal is to put enough
04:29 walls to block them, but let the the good the good messages through, right?
04:34 That's obviously the goal. We don't want to block the news the good stuff. So, um, yeah. Sorry, my my brain's not working here.
04:42 Let's uh, where is Oh, there it is.
04:44 Okay, perfect.
04:52 Okay, got my notes up on my other screen and let's share. Okay.
05:01 Um, so first off, we're going to go over some things that you guys can access
05:08 now. Okay. And um I we'll see how we'll see how the uh the how today goes and
05:15 maybe we'll uh we'll give you guys access to the beta if for those that want it. Okay. Um, okay.
05:25 First off, if you go to uh docs.totalcms.co.
05:30 Um, now these are all the docs that are embedded into total CMS as well. Okay, it's the same exact docs. However, if
05:39 you visit this site now, um, you will see all kinds of new stuff. Okay. Um, so
05:47 this doc site has been updated um for 3.5. Um, and it has all of the new
05:53 features documented here. Okay. Um, I also spent um, a couple days working on the getting started documentation.
06:03 Okay. Um, because yeah, uh, you want to make sure that if someone's going to be using Total CMS that the getting started
06:09 docs are as good as possible. Okay. Um now just as before these docs aren't necessarily stacks specific okay
06:19 especially installation right installation this is uh oh actually even for fun I'll show you guys how all this works okay um but your installation is
06:27 easy you install the you install total CMS you add CMS core to the page and you publish that's your that's your installation okay um but if you want to
06:36 see how people will install this outside of the STAX world um we'll give you a quick demo of that as Well, um it's actually a big part of what I've been working on. Okay. Uh it's a lot of work.
06:48 Like a lot of work. Okay. Um but it's fun. Okay. Um but other things we'll see. There's there is now a new um page builder. Oh, that's the sitemap builder.
06:58 Um there's a new site builder. Okay. Uh which is fun. Uh there is all new extensions.
07:07 Woohoo. So we're going to have total CMS extensions. And if you've joined Hangouts, I know a lot of you that are here in the chat um have been on the
07:15 Hangouts and I think we already have maybe close to 10 extensions made by
07:23 various people. Okay. Well, Josh, Chris, and I know Johan's working on one. Um so yeah, we have some extensions. Um and
07:31 the the API for the extensions is all documented. Um it comes with total CMS 3.5 ships with two built-in extensions.
07:40 Um, and we'll show we'll show that off a little bit, um, today. And, um, yeah.
07:46 So, um, yep, check out the docs. There's some new stuff.
07:50 We'll dive into that. Okay. Another thing is, oh, in the docs, um, well, here, let me show you. Let's go, while
07:59 we're talking about docs, and let's go into 3.5. We're going to go into the here.
11:57 Test test test. Oh, there we go. Oh, audio.
12:18 Um, all right. Hold on one second.
12:41 Test, test, test.
12:49 Hi. Yes. Sorry, I missed a call. Someone called me about my daughter. She's interviewing at Kiser for an internship.
13:08 Yes.
15:55 Okay, guys. I think I fixed it. Is that fixed? Hello. Hello. Testing. One, two, three.
16:14 Hello. Hello. One, two, three. Yes. No. Okay. I don't know.
16:23 I think I lo Okay. Yes. Excellent. Okay.
16:26 I'm sorry. Um, while that was happening, one of the little family emergencies were happening. Also, I had to deal with that. So, I'm sorry. Okay. Let's hope
16:36 we're good till the end of the stream now. Okay. Um, where was I? Sound is okay. Perfect.
16:45 Let's go back. Okay. Um, can you guys still hear me when I share my screen?
16:50 Just making sure that that's good. I see the the audio volumes are going up, so I think we're okay. Ah, boy. Okay.
16:58 Fun times. Um, so, okay. So, there's the docs. Um, another thing that I I did want to say
17:06 is if you guys are using the MCP server, I did a lot of work on the MCP server. I think it was yesterday. And so, that
17:14 should actually be like a lot better. It should give you much better, more robust responses. Um, interesting. I, you know,
17:22 I've never built obviously this my first ever MCP server. So, um, it's been an interesting learning experience and I think I think, like I said, I think it's
17:30 going to be it's much better than it, uh, than it was and hopefully going forward it'll give you better responses.
17:37 Now, um, I have done a lot of work and it does it will potentially give you responses for like extensions and stuff
17:44 like that if you ask. Um, and obviously none of that works in your current version. Um, it does know about 3.5, the MCP server. So, um, yeah, just to let you know about that. Okay. Okay.
17:58 Um, let's dive in now and uh let's start showing off some stuff. Um, so what you'll what you've uh probably noticed
18:05 here um and I think I've you've seen some of this. Okay, is that um yeah, there's a little bit more color to the
18:12 admin area now. Um thank you to Johan and Matias for their inspiration. Okay. Um I I modified what they what they did.
18:21 They did some CSS tweaks in their admin areas and I was like, Oh, wow. I'm going to totally steal that. Um, I modified it slightly, but we have a nice
18:29 little gradient here on the on the sidebar that utilizes the accent color that you set in the settings. Okay. Um,
18:37 yeah, pretty fun. Uh, that's pretty much it for the for the dashboard mode. Um, you know, for the general dashboard, you'll notice that there are some new
18:44 icons down the sidebar. Okay. Um, and one of the biggest things, um, if if
18:52 you've used Total CMS a lot, okay, you notice that there there's a lot of clicking going on, okay? Like I go in and, you know, if I have to go into my
19:00 blog, um, you know, and then I'm like, oh, I need to go into the schema. Now, I added a little bit of shortcut where you can say edit schema here, but a lot of
19:08 times people will then go into the schema and then they like look for their schema and they're like, I want this one, right? And then they, you know, and they're like, Oh, now I need to go back
19:16 to my collection. So, let's click on the collection and we wait. And then I click on the blog, right? I mean, it's just
19:24 so much clicking. And um so I wanted to solve that. And I wanted to solve it in
19:32 in a way that I've never seen actually a website do it. Okay. But it's how I do it on my Mac, right? It's how I switch
19:40 between apps so quickly using I I I particularly love Alfred. Okay, I know a lot of you do here, but there's a lot of
19:47 other um you could use Spotlight if you're into that or um there's all kinds and I forget there's there's a few other popular ones out there. Okay, but I use
19:56 Alfred and I was like, you know what, I want Alfred in my CMS. So, um now um in this version, you can do shift commando.
20:06 Okay. And a Alfred like window pops up right in the middle and you could type what you want to go to. Okay. So like if I wanted to go to if I type in blog,
20:15 you'll see that I can go directly to um a collections blog, the schema's blog, um builder pages, which we haven't got
20:22 to. There's a a blog pro collection, right? Oh, I want to go to that. Click on that. Now I'm in my blog pro. And
20:29 let's say I want to go to the cache manager. I just go to cache manager and voila, I'm directly in my cache manager,
20:36 right? Oh, I need to go back to my uh schema for members, right? I just members, right? Uh schemas. Boom.
20:47 Really cool. Okay, so navigating around if you if you are tired of clicking all over the place, um we now have a very
20:57 nice quick navigation um to get around the admin area. Right. Super excited about that. I love it. Okay. Um what you
21:06 might also notice is I tightened up the uh the sidebars in all of the um areas here. Okay. Um when I first developed
21:14 obviously this UI um I didn't think we'd have this much stuff, right? Um I thought we would just have, you know, a handful of schemas.
21:25 Like who who needs like you'd have like maybe two or three custom schemas? like who's who's going to need more than that? And uh wow, you guys have really
21:35 created a lot of stuff, right? And we we've definitely taken Total CMS farther than I have I've ever imagined and we're
21:42 still only shipped it five months ago, right? It's crazy. Um but with that said, like when we have a lot of
21:50 collections or a lot of schemas, like this before was just like I don't know, it seemed too wide open. So I tightened
21:57 this up. Um, and yeah, I like it. I think it's much nicer. Okay, it's it's nicer to kind of see every you you can
22:04 see more at a time. Um, anyway, I like that. That combined with the quick navigation, I think is a huge win. Okay.
22:13 All right. If you guys want me to p at any point in time like pause or reshow something or explain something a little further, just let me know. Okay. Um, let
22:22 me bring up my release notes. All right, let's do that.
22:26 All right, let's go down. We're just going to go down the line here. Um, so obviously, uh, at the top. Okay, if you
22:34 don't if you can't remember the command shift O, um, then there we go. And just to let you know why I chose command
22:41 shift O is um, well, you know what? When we're really leveraging our stacks uh, app, guess what? Command shift O does.
22:54 Okay. So, uh, when we're using stack 6, command shift O is open quickly. And so,
23:01 yeah, no matter whether or not you're in stacks, um, or you are, um, going to be Oops, there we go. Right. Whether or not
23:10 you're in stacks or total CMS, command shift O will, uh, give you your
23:15 open quickly. Okay, so there we go. Um
23:22 again uh on mobile this does work on mobile as well. Obviously you can't do the keyboard shortcut but in the you can click on the um the search icon in the
23:31 toolbar and it will allow you to quickly navigate on mobile. Okay, just to let you know that um schemas
23:42 we have some cool stuff for schemas. I'm going to skip it for now though. Okay.
23:48 Uh, we have a few new fields um that we have access to. Um, which is kind of fun.
23:55 Uh, okay. Data views. Not much has really changed with data views. Okay. Um, those are still the same.
24:01 Okay. Um, let's skip this. Well, we'll we'll see. This is the new site builder. Oo. Ah. Okay. We're coming back to it.
24:10 Okay. Um, I do have to say, um, if you'll notice, there is a item gone from
24:17 the menu. The templates are gone. Okay, templates have been rolled into the site builder. Okay, so now all your white
24:24 labels and stuff like that. They're all done via the site builder. There isn't going to be a site builder and templates. The site builder is templates. It's just goes a lot farther.
24:34 Okay, which we'll see in a little bit.
24:35 Okay. Um, hey, Mailer. Not much has really changed with mailer playground. Same stuff hasn't really
24:44 changed in the playground. Um, utilities got a new icon. Uh, mostly because yeah, I I got it confused. I thought it
24:52 was a little bold. It was a little too It drew my eye for some reason. So, utilities got a new icon. Um, and all the same utilities. I don't think
25:00 there's any new utilities here. Um, but yeah. Uh, well, there is uh there is a new update manager. We'll talk about
25:08 this really quick. Okay. Um so
25:14 right now um the way that we publish total CMS via stacks is that you publish
25:21 and as you know if you publish there are a lot of files in total CMS. Okay. And 3.5 actually has quite a bit more. Okay.
25:31 So um I tried to come up with ways to alleviate that for us.
25:37 So one thing you can do is you can actually publish total CMS. Um and then at that point you can actually update total CMS directly from inside the admin area.
25:48 So I can go ahead and I can click check for updates and if there is an update available it'll show me and I can install it directly from this and it
25:56 actually downloads it onto your server, extracts it and does the entire update process of um the CMS application.
26:04 Pretty cool. Um, if you've ever used Sitelock, another way is if you didn't want to install it via the stacks, you can actually manually install it just by
26:13 uploading it to your server. And at that point, you can actually choose a custom installation directory, which is kind of interesting. Okay. Um, but yeah, so um
26:22 with that said, you can actually go ahead and have um you know, you can publish it. Uh then if you actually in your version you have right now inside CMS core, there's an installer substack.
26:33 Well, the reason I did that was because I knew this was coming. Okay. So, um yeah, you can actually remove the installer stack if you didn't want to
26:41 keep publishing 7,000 files. Okay. Um then you would have the ability to either update by putting that installer
26:50 stack back in there and then publishing or updating directly from the admin dashboard. Okay, so pretty cool.
26:58 Um there is another new utility called the sync manager and
27:06 I don't have a demo to show this off right now and I probably won't today but I will explain to you what the what this will be.
27:16 So uh here let me go ahead and I will uh so you can see my my beautiful face.
27:21 Okay. So sync manager a lot of times when we're working you have a server on may probably on your on your
27:29 Mac right that you're testing maybe it's running M or Servebay or some other web server right and you're actively
27:36 developing and testing because deploying to that is a lot faster right and then you have total CMS on your server so again you have the server and then your
27:44 your Mac right and a lot of times you're going to be um as you're working locally on on your Mac using N or whatever. Um,
27:54 you're creating schemas and you're creating maybe some collections. You're creating a a bunch of stuff, right? Um,
28:01 that possibly at at some point you want to make sure is on your server.
28:08 So, what's the workflow of getting all those schemas that you created and then adding them to your server? Now, you can, it's not too hard, right? You can
28:15 actually export those schemas locally and then you can import them on your server.
28:21 Not too bad, but I think we can do better. Okay, so that's what this new sync manager will do. Um, what the sync
28:28 manager is is you'll develop you'll uh create API keys on your server. Uh, and then you can actually um add those API
28:37 keys to your local environment. And then all you have to do is inside this, again, I don't have a demo for you to see. It's it's going to be pretty cool.
28:45 But then all all of a sudden you're just going to be able to say, Hey, um, sync these particular um,
28:53 schemas or collections or whatever. Now, it's not going to do it's not going to sync objects. I It will only sync, you know, configurations and schemas and
29:01 tuff like that, templates. Um, so, hey, sync this data to the production server, and it'll just be a one-click little
29:09 manual sync. You can do a push and a pull, which is pretty cool. Um so yeah um that's going to be the sync manager.
29:17 Uh and again that is the that gives you the ability from your local machine to publish schemas and uh other type of uh
29:26 you know template data from locally to your production CMS uh online. So that's
29:32 going to be pretty slick. Okay. Um, and then let's see.
29:44 All right, that's all for that.
29:49 The king of Let's circle back. Nice. Um, okay. So, that's the utilities. And again, you can you can quickly navigate
29:56 between all these utilities, right? So, I want to go to I think like I think a big one is going to be the cache manager, right? I want to go to cash manager. Boom. Right. Very cool. Um, all
30:06 right. Next up down the line is we have new extensions.
30:11 Um, super super excited about this. The stuff that if you've joined any of the hangouts, you've seen uh what Josh and
30:20 Chris have both made and I'm really excited about the future for this.
30:25 They've already create I I'm gonna let some of the cats out of the bag, guys.
30:28 Sorry. So, um, yeah, they've already created, uh, Josh has made one for Vibro, uh, VibroLogics that like
30:36 basically complete like it completely syncs between Total CMS and Viblogix and allows you to like edit uh, basically
30:43 have a your VibroL Logix dashboard directly inside total CMS. Like, it's really a a very extensible,
30:53 you know, solution to make the admin area like your ultimate admin area. Um, it's really cool. Um, Chris has created
31:01 an Equid integration that essentially does the same thing. It's like it's nuts. Okay. Where it will then sync your
31:08 product information from total CMS to the Equid store online and then it gives you an entire uh edit again. Same
31:16 concept where you just have a single dashboard for everything. It's really amazing. Okay. Um, Chris has also
31:24 created something called the toggler. as you know, he's the king of toggles.
31:28 Okay. Um Josh has created one for Cloudflare. Um hey, this is cool. I I've admit I this this was really slick idea.
31:37 So, as you know, um Total CMS has a developer mode. Okay. And um I added some hooks explicitly for him so that
31:45 extensions can watch when you as a user turn on dev mode. Right? Now, I know a lot of us here use Cloudflare as well.
31:55 Well, now he has an extension that um checks whenever you turn on development mode, it goes on and automatically turns
32:02 on development mode on Cloudflare as well.
32:07 Like really cool. And if you ever turn off development mode, guess what? It turns off developer mode on Cloudflare.
32:13 There's no extra UI. It just it's built into the total CMS controls and it all keeps it in sync. Super amazing. Okay.
32:22 Um, yeah, really excited about that. Um, let me go ahead and I there's a starter I'm going to enable the starter extension here. Okay. And just to show
32:31 you that when I enabled this starter extension, uh, Whoops. Let's see. Oh, I have it turned off. So, when you go into you
32:39 could there's all kinds of features that extensions can have. Um, this starter extension has a little bit of everything. Okay, I'm not going to dive
32:46 into everything, but um, it can create custom twig functions. So it can extend your twig syntax. It can create custom,
32:53 we haven't even talked about command line interfaces. There's an entire command line interface for total CMS. Now it can create its own APIs for you.
33:01 It can create public routes. It can create admin pages. It can have dashboard widgets. Um yeah, pretty much if total CMS can do it, an extension can
33:10 also do it for the most part. And um yeah, it's really exciting stuff. Okay.
33:15 Um so I just turned on this uh this admin nav. Let's go ahead and save that.
33:20 uh just to kind of show you one thing that it can do. Uh let me reload my pages. There it goes. So now I have this new uh this new navbar and um this isn't
33:30 anything special. Again, this is kind of like just a little test extension. Um but yeah, so extensions can actually add new um sidebar navigation and you can
33:40 have a p a web page here that can do all kinds of stuff. You can actually have not just a single web page, but you can have like an entire web app. Um and Josh
33:48 and Chris have both done that. Like I said, they they've added little e-commerce things on the side that they can go ahead and um you know, create an
33:55 entire e-commerce management solution for either Equid and Fiber Cart. It's just mind-blowing, guys. It's super
34:02 cool. Okay. Oh, and Chris, oh my goodness, Chris created this thing for his SEO.
34:09 It integrates with um I forget what it was, but anyway, it's an SEO tool. Okay.
34:14 And basically you can like create he creates freaking blog posts with AI.
34:21 He has an entire interface where you answer some questions and then it automatically populates the CMS with AI generated blog posts.
34:31 Like so amazing. These guys have already building so many cool stuff for total CMS. Um yeah it's going to be Oh, I said
34:38 vibrologix. Viper cart. Thank you Matias. I knew I said that wrong. Viblogics is the name of the company.
34:46 So, Viberart. Thank you. Um, yep. Brain fart there.
34:53 Rank litics. There we go. Yeah, he was using rank litics and he created an entire dashboard where the rank litics
35:02 will you give it all, you know, information about your your site and it goes ahead and and automatically through
35:08 AI generates blog posts for him. It's so badass.
35:14 So cool. Okay. Um and it's all integrated in total CMS. So you have one integrated admin area for everything. It's just mind-blowing. So cool. Okay.
35:23 Um so anyway, so that is the extensions.
35:26 You as you see if I I you can enable them, disable them. Um we'll talk about the built-in ones in a little bit when we look at site builder. Okay. Um, these
35:35 are two freebies that kind of come with um, Total CMS and, uh, you'll see what they can do in a little bit.
35:42 Um, settings. Um, I mean, there nothing new groundbreaking in here. Um, there are some new settings for like sync data. Um, you know, like what's your URL
35:51 to your production server and the API key. Um, because it use it has written API key. API keys require you have pro.
36:00 So, that sync feature is a pro feature. just let everybody know being upfront.
36:04 Okay. Um it does that. So that sync feature um will require a pro version.
36:09 Okay. Um uh there's some settings for builder. Um nothing big. It's just settings. Okay. And then the docs um as
36:17 you saw earlier um yeah the docs have been completely revamped. Um and so yeah there. So that goes down everything in
36:23 the uh the sidebar. Okay. Um let's dive into you guys. Let me know. Do do we want to
36:30 go into the new fields or do we want to dive into site builder? H maybe maybe we should look into the new fields first.
36:38 We'll save site builder the site builder tour for last. Okay. I think I think we'll do that. Um
36:48 sure I Oh, this this is a new feature. I
36:58 actually um I literally just add finished adding it this morning. Okay. Maybe it was last night. I don't know.
37:05 Um well, I did some testing of it this morning. I I did all the coding last night. Um but inside of a collection, let's just go to um this is for off
37:13 collections. Okay. Um off has there there's two new features that I added um for off collections. Okay. And um the
37:22 first one is um it's actually just a setting um in the stack actually um in the form stack. If you let's say you
37:29 create a user registration form on your website and um let's open up
37:37 let's open let's do let's open up this second
37:45 waiting for this project to open. All right.
37:49 If I go to I think it's this one, uh, advanced layouts. Maybe it's here.
38:02 Sorry. Oh, here we go. Okay. So, in a the a custom form, okay, um there is a new setting called user registration
38:11 form. Okay. And um if you set that what this will do is it will um after the
38:19 user creates his account it will automatically log that person in.
38:26 Okay. That way they don't have to create their account and then go to the login form and then log in. So just a nice little workflow. Um if you define this
38:34 as a user registration form again it will automatically log that person in.
38:40 Okay. Now, while that is cool, okay, um, after I added that, I, you know, my brain started going and a couple days
38:48 later, I then implemented, if we go into my O collection and edit that collection, there is now a require email
38:57 verification. Now, this setting only makes sense if your collection, it's a setting that's in all collections, but
39:04 it only makes sense to enable this setting if your collection is an off collection. So that it's a collection where people in that will actually end
39:13 up logging in. Okay. And you want the ability to create these accounts publicly.
39:20 Okay. Um so require email verification.
39:24 What that will do is um when someone fills out a user registration form and you to enable this you actually don't need to turn on anything here. Okay. in
39:33 in the stack. It just happens. Um when the user uh creates their new account um
39:42 their account as you know there is an there is a uh in a off collection there is an enable field
39:49 or an active field sorry. So if we go into um we go into my account here. So there's an active by default that active
39:57 will be turned off. So um when the user creates the login um it'll create the object in the collection and then it
40:04 will set active to be false that the user will then be sent an email and they have to click on that email and
40:12 when they do it will enable their account just by clicking on that email.
40:17 Now that email has a a special link it has like a it expires after 24 hours blah blah blah blah blah. Okay. Um, so
40:26 yeah, uh, pretty cool little workflow, I think that will be a nice, uh, a nice to have, especially, um, while the other workflow is nice, it could allow a lot
40:35 of bot traffic to be created. So, this verifi, you know, verification link via email, um, just makes sense. So, there
40:43 we go. Pretty cool new feature. Um, hot off the press just added that one yesterday. Okay. Um, if you if you do
40:50 end up using this and testing that, let me know ASAP because uh yeah, I I did some very cursory tests on that. I need to test it out some more. So, let me know.
41:00 Um, new field. Oh, yeah. We'll go over new field types uh in a little bit.
41:08 All right. I guess we'll go over new field types. Those are the the next big thing. And we're kind of running low on time, although I had audio problems for a little while. So, okay. Let's dump
41:17 let's jump into schemas. We have two new field types. Uh two right fields I give
41:25 you. Oh well, we have Oh, yeah. We got some big ones here coming up. Okay. Um we'll go over the simple things first.
41:34 Uh let's go into let's go to the docs really quick and go to fields field types password. Okay. Um
41:43 there is a new setting uh that you can add to password fields called numeric.
41:47 Okay. And what that does is um it will make sure that let's say you're on a phone. This is most beneficial on a
41:55 phone. Uh when you when you are active on that password field, it's going to make the keyboard show up as a number pad. Okay? That means you're saying that hey all passwords are numbers only.
42:08 So that's just a benefit. Again, obviously on desktop, someone can have access to whatever, but um yeah, it just makes it so that a number keypad shows
42:17 up on mobile, which is nice. Okay, so that's just a numeric setting um in password fields.
42:25 Um next up, inside of a code editor, okay, uh we have the ability to have
42:33 somewhere in here there's a new full screen option. I'll well I'll just show you. Right. So, uh, we're gonna I said we're not going to dip into the into the
42:41 p site builder really quick, but we'll show you. So, we now have full screen mode for code editor. Okay, which is nice.
42:50 Um, all right. Let's go back to uh we're in schemas, I think. All right.
42:56 All right. Next up is uh a feature that I've wanted. Okay. So, if we go into settings here and let's say I go into SMTP.
43:05 Okay. Oh, I don't have one set here, but um this SMT password field. Okay. Um this is there is a new field called
43:12 secret. And what that does is when you type it shows you it looks like a password field. However, um unlike a
43:22 actual user password field, the data is saved um as plain text. Okay, this is useful for um a SMTP passwords because
43:31 we need to actually know what the password is. Okay. Um, and what's kind of cool is if you click on this, you can actually kind of peek at what that is.
43:39 Okay. So, um, this is useful for again passwords that you need to have access to because I need to know the SMTP SMTP
43:47 password. Um, for password fields where users log in. Um, it is impossible even for me. I have there's once the it is
43:56 saved, it is impossible to know what their original password is. Okay. Um that's not the case for this secret
44:03 field. Um this one is purely just a way of when you display the form um the field is kind of hidden, right? And a
44:11 lot of times when I was doing demos and whatnot and I'd show my SMTP settings, my password was just right there or my API key was just right there. Um and
44:19 that's stuff you probably don't want necessarily to be publicly visible on the web page. Okay. Um but if you really do need to see it, you can have the
44:27 little preview button. So that's the new secret field.
44:32 Qu coincidentally enough um before I added that um Josh had created an extension uh and in his extension he was
44:42 saving API fields and another thing that extensions can do is they can they can actually create custom fields and um his
44:50 extension implemented a secret field um and it implemented almost in a an identical way which is very funny. Um,
44:58 so anyway, that fun little funny little side story there.
45:04 All right, next up is there. I have two big ones here and uh I
45:13 think this first one we'll go over an existing field. Okay. And
45:20 um we're going to look at this demo that I have here called nested uploads.
45:26 Okay. Um, so if I go into here, you'll notice that, um, I have a bunch of fields in this object. It was just kind of to test things around. And I
45:34 have a deck down here. Okay. And, um, if I go in into this deck, you'll notice that, um, there's a few things, um, that
45:42 are new here because deck now supports images, files, and images and files inside of styled text.
45:53 Okay. Um, I can't tell you how much work and headache this was. Okay, pretty amazing. Um, and it's it works really
46:02 well now. Um, thanks for, you know, Chris and Josh and everybody that helped me test this out because, um, yeah, uh, it it was a lot of work and there was a
46:11 lot of bugs and there was a lot of issues to fix, but I think we've ironed it all out and it's working fairly well now. Um and so there there is a
46:20 completely new well not a completely new but uh there is a slightly uh new syntax for uh the macros. Okay, it's just the
46:28 property. Okay, so in here instead of my my property, it's now my deck.1 image, right? So um we can analyze that in a
46:36 future time, but um yeah, just to let you know that it's pretty cool. Uh, we now have the ability to add images, files, and um whatnot to our style text.
46:50 Exciting times.
46:53 Okay, the next the next field and it's very is strongly related to deck,
47:03 okay, is something called a card field.
47:08 And to explain this, I'm going to show you this example um here.
47:16 So let's look at uh the schema for this particular collection.
47:24 We're going to go to uh nested upload.
47:27 This is the schema of the um the form we were just looking at. Okay. So obviously
47:34 we have an ID that's required. Okay. I then have a my image, a my file, and a my card. Uh oh, wait. Uh oh, let's here.
47:43 Let's my style text. Okay. Uh and uh here, let's Well, yeah. Okay. And you
47:52 know what? For fun, I'm actually going to we're going to go to dual pane mode here. Okay.
47:59 Uh we're going to go into here so we can kind of look at these at the same time.
48:10 Okay. So, obviously I have my ID which is up here. I then have an image property which is an image. Okay. I have a file property which is my file here.
48:23 Um I then have a style text area which is right here. Then we'll notice I have two two things.
48:30 I have a my card and a my deck. Okay. So the deck obviously you know that that's down here but if you look what is a my
48:37 card. Okay so card in this instance is here is my card and the card has an image a file and a style text area.
48:49 Essentially a card allows you to have multiple fields inside of it very similar to a deck.
48:58 Okay, think of a card as so as you know when you create a deck every item in the deck has a certain defined number of
49:05 fields and then at that point each item in that deck has the same fields
49:13 card is exactly the same however you don't get multiple you get one
49:20 okay let's look at how that is uh done so if we look at our deck as you probably know um inside property
49:27 property info. You you have a schema reference for the deck and this is using the nested card schema, right? Hopefully you're following me.
49:38 Again, whenever you create a deck item, you have to point um to the schema reference.
49:45 Okay, this used to be called deck reference, by the way. It's now called schema reference. It used to point to um
49:52 that a different schema that defined what was inside the deck.
49:57 Well, that is exactly the same what my card does. So, inside the card field, I then use schema reference and funny in
50:05 this particular instance because I was testing this um the card uses the same schema as the deck.
50:14 Okay, so here we have nested card. So if we look at that nested card schema, okay, you'll notice that inside nested
50:23 card, I have an ID, an image, a file, and style text. And that's exactly what we have here. So when I added the my
50:31 card to my form, I got an image, a file, and style text. And then because I'm
50:38 using the same exact schema in my deck, that's exactly what's inside my deck.
50:44 Okay. Now what you're seeing here is uh just me testing right obviously I was testing images and files and style text
50:52 with images for deck and I also need to do quite a bit of work to get them in working in cards as well. Okay. So, um
50:59 yeah, that was just a way of me doing this. But what are some real life use cases for card?
51:06 So, um let's imagine probably I think the best real life use case for card, okay, is addresses.
51:15 Now, right.
52:48 How's that for sound?
52:58 Okay, when I get the heads up, I will continue. Um, and hopefully Uh, okay. Let's see.
53:15 Does sound come sound back better. Okay, man. I need to figure that out.
53:23 Okay. Um, quick. Did Did you guys hear the analogy of cards with addresses?
53:32 Someone let me know in the chat whether or not you heard card plus addresses and that analogy.
53:38 I don't know when when my um explanation went south or when my audio went south.
53:53 Okay. Uh go back three minutes. Thanks. Okay.
53:58 So, uh cards, an analogy of cards. Well, I'll just reexplain this. It's an address. So, what you can do is you can create an address um that is a card and
54:07 that that that card is street, city, state, country, so on and so zip code,
54:14 right? And at that point, you can then create a in your in your person or your member collection or schema, you're
54:22 going to have a billing address that is assigned to your address schema. And then you're going to have a shipping
54:29 address and that's going to be assigned to your address schema. Right? So at that point you can do something like um
54:37 shipping street shipping city. Right? So it's just so much more clean um where you don't have to have um you know 20
54:45 different fields to manage two addresses, right? You have two fields, right? You have a shipping field and a
54:52 billing field uh property. And um those are assigned to be an address. And we've defined what an address is within a separate schema. Super powerful.
55:11 All right. Sorry if uh hopefully my reexlanation of that um makes some sense. Okay. Um so cards are going to be
55:20 super super useful for um extending and making complicated data structures just easier to use and manage.
55:29 Okay. Um okay. Now I will say uh if you notice so in this particular schema that we're looking at here let me share my
55:37 screen. Okay. So in this schema I have an image a file and style text and it says deck compatible. That also means
55:46 card compatible. Okay. So, deck compatible. Now, if I were to go ahead and add in a gallery.
55:57 Okay. Um, and let's close that. Uh, if I were to here, let's go ahead and save that really quick just for fun.
56:06 And now it says deck incompatible. Okay.
56:08 And that's because gallery and depot do are still not supported and they never will be supported in a deck. Okay. um be
56:17 happy with image and file and images and files in style text. Okay. Um you are not getting gallery or depot. Um it it's
56:25 just it ain't happening. Okay. Um now I don't know if you noticed but when I added that gallery field there's
56:34 actually another new thing. Okay. Um when you add in a field before there was two drop downs where you you had to define the type and the form field.
56:44 And this caused all kinds of confusion for people, right? Like what type do I set? I just I just want a gallery like
56:51 or you know I I just want a list. What am I supposed to set for the type? Okay.
56:55 So now all that's automated. Okay. Now that field isn't gone. Okay. Um it is if you really need to define a a type um
57:05 you can set it in here. But what it does is when you define a form field and you save, um, it's going to automatically
57:11 assign the most likely scenario of what type you actually want. Okay? Because most of the time, 99.9% of the time
57:20 actually, um, what you what form field you set dictates really what you want.
57:27 So you're g again, you're just going to set your form field and then uh the type will automatically get created. If you know what you're doing and you're like,
57:34 No, I really want this to be an array, Joe. I don't want it to be a gallery. You can do that. Okay. Um, but you're
57:42 not you don't have to anymore. Okay. Um, the the smart defaults will uh will help you out. Okay. All right. I don't want
57:50 this gallery in here. And we're going to resave that. Okay.
58:02 Um, so that's all the changes for schemas.
58:11 Now we're left with site builder. Okay.
58:14 Um, you know, for fun, I think we are going to um I'm going to
58:21 show you the I think we're I'm I'm going to jump out and show you how you how we're going to do or how a developer
58:28 will do this. Okay. And I'm going to go ahead and let me open up a new a new window.
58:37 Excellent. All right.
58:50 I'm going to create a website that did not exist before. Okay. Um just to show you, uh let's go. Let me open up a new tab.
59:02 Uh oh. Well, this exists because that's browser cache. Let me go ahead and I'm going to empty my cache here. And we're
59:08 going to refresh. And how does that exist? Because that does not Let me go ahead and restart my web server.
59:27 How is that even possible? The directory doesn't exist. What the heck, man?
59:37 It's flying. One second.
59:43 The folder doesn't even exist on my machine. What? How's it doing that? What you talking about? Will this That's some crazy stuff.
59:56 That's probably like uh interesting. How is it even doing that? That's crazy.
60:04 Folder doesn't even exist on my Mac. That's some crazy stuff.
60:24 That's some powerful cashing I got going on on my on my Oh, let's try that now. There we go.
60:39 Hey, doesn't work. Hey, there we go. Figured out. Doesn't exist, right?
60:46 All right. So, doesn't exist. Um, I'm gonna go ahead and we're going to create a completely new web server or or
60:53 website. Uh, I'm going to do it locally on my Mac, obviously. Okay. Um, and again, this is how um a non-stacks user
61:01 um in the future will uh can create a website with total CMS um all by itself. Okay. Um so, we're going to go composer.
61:11 So, I'm going to use this command. Um, and this command is, uh, it basically goes up online and it downloads some
61:18 stuff and it's going to create a dummy project for us. Um, and it's going to install a bunch of stuff. Um, so we just
61:26 got to sit here and and wait uh, while it does that.
61:40 All right. Uh so it installed everything. Now it's going to ask us a few questions. Um essentially um is total CMS going to own the whole domain or is it going to be live in a
61:49 subdirectory? Okay. Um so this is example of um you know uh total CMS using it by itself or maybe installed it
61:57 as a subpath such as like in a stacks website. Okay. Uh this we're just going to test it on its own. Um and then uh we
62:05 have some starter packs, right? So some example like little demo. I don't need that right now. Um, maybe we'll do that.
62:14 And look, so it it automatically installed those and it actually popped it up over here in the background. How did it auto refresh? That's crazy. Okay.
62:22 Um, so yeah, we have the website. Um, if I uh let me go ahead and I'm going to empty my cache really quick. Pretend it's I didn't have a browser open to it.
62:38 How is this Oh, I'm an idiot. I was doing this in the wrong directory path.
62:59 Hold on one second.
63:10 All right, here we go. Now it's down.
63:13 All right, I got to do that that whole thing again. Sorry, it'll only take a second.
63:19 All right, now it's installing blah blah blah blah blah. Okay, sorry about that.
63:31 Helps when you're in the correct location. All right. Uh, we're going to do root.
63:38 I'm going to do portfolio. Um, and yes, I want front-end assets. And we're done.
63:44 Okay. So, now if I go ahead and refresh, there we go. This is what I expected.
63:51 Okay. So, um, now when I visited the web page, it says, hey, this is a fresh new install and, uh, we have a new setup
63:58 wizard now. So, you can go ahead and your language that you want. Uh we're going to choose English. Click next.
64:04 It's going to do a little check on the server and make sure everything is installed that's supposed to be there.
64:08 All this um the default is document root. I do recommend above root if possible. Um so we're going to click continue on that. Now we're going to
64:17 create an account and uh we're going to do that. I don't want to save it. One password. Thank you very much. I don't want it. Thank you very much.
64:30 And right now it's it's like creating all the the default, you know, outside, you know, TCMS data and all that jazz.
64:36 It created the account. It's going to say, Hey, we're going to start a new trial. Awesome. Started a new trial.
64:41 Um, in here, this is going to give us a little bit of info about some server configuration. Now, since I used that tool, um, the the ht access files were
64:49 already installed. Um, but then here's the cron job that we might want to uh enable via cron for scheduled jobs. You can also always get this via the the job
64:57 Q manager. Um, so that's just mostformational. So we can go and click continue.
65:09 And voila, we're done. So now I have a total CMS website. Uh, I can then go to project setup. Um, I can create some default collections, right?
65:19 And that will create all my default collections. You don't have to do that because um if you remember, I installed a starter template. So, we're going to go to the the main website here.
65:32 Oh, it's probably thinking because it's creating all those uh those uh collections. See, did it do it?
65:43 What happened there? I was being Oh, there it goes.
65:47 It's done. All right. So now let's or now we're going to create a now we're going to go to the homepage. Voila. So there's my homepage. Um I have my
65:54 featured work in here. Um this entire website is is built and served up and managed by Total CMS.
66:03 Okay. Um so let's jump in and look at this in the admin area. Okay. So um
66:10 here's my admin area um for the the website that we just created that didn't didn't exist a few minutes ago.
66:17 If I go into my site builder, okay, you'll see that I have a bunch of pages here. Let's go ahead and make this a little bit bigger, you guys.
66:25 Um, so in site builder, we have a couple things. First, we have pages. These are actual routes and pages just as we have
66:33 in stacks. Okay, I have a work page that um the URL is is work. Um, it going to use a page template called work. We'll
66:42 get to that in a little bit. Um, we can have data and do you want this page to be in the site map? So on and so forth.
66:49 Okay. Um, there's a getting started page that if you notice it's kind of grayed out. That's because it's not shown in
66:55 the navigation. Okay. Um, so if we go to that, we can go to I think that was on the homepage. There was a link to it, a getting started guide. Um, so yeah, it's
67:04 just a little getting started guide to kind of help you out and uh, you know, teach you a little bit about the page builder, right? But that's what we're doing right now. Um, then there's a
67:13 contact page obviously. So, I'm not going to go through each one. This one has a page title, page description, uh, an open graph image, right? Showing in
67:20 the navigation, uh, what's our page and templates? There are some data. Do do we want this one in the site map or not? Okay, so on and so forth.
67:29 Um, so again, this is how our pages are.
67:31 Um, you can also click on this little guy here and then you can drag and drop to reorder them, right? So, um, not sure this work home project is going to be on
67:40 top. And we have home, work, contact, and about. Maybe we do about up there.
67:46 There we go. So, you can reorder your pages. Okay. The reason I did this mode where you have to you go into reorder
67:53 mode, um, was because, uh, a lot of times when you're reordering stuff, you're you're clicking, um, and I don't want you to click on something, change
68:02 the page, and it kind of mess up your drag and drop reordering. So, we do have a reorder mode um to to handle that.
68:10 Okay. Um, you can also drag and do sub.
68:12 So, if I wanted um you know about to be under home, uh we can do that. So, you can you can have sub navigation as well.
68:22 Pretty cool.
68:24 Um, now down here is where we have all of our templates. Okay. Um, and this is how we build out our websites.
68:34 Now, um I will say I know for STAX users, um what what you're about to see
68:41 might look a little bit scary, okay? Um as I said, I'm I am working on how we can leverage our stacks generated pages
68:50 as templates. Okay. Um I have the underpinnings of it done. Um but I needed to get this part working
68:58 first. So hopefully the next step before I ship it will be working. um or should be working so that we can actually um
69:05 leverage um stacks pages here that we publish to our server as templates.
69:10 Okay. Um but let's look at what these are. And you're familiar if you're familiar with stack 6 um a lot of these
69:19 this terminology should actually sound familiar to you. Okay? Because we have layouts. Uh layout think of this is like
69:26 the base kind of theme, okay, of our page. like what do we have in the header? Um I have you know this and then
69:33 our content goes inside of it. So on and so forth. Okay. So you can have many different layouts. Um you have pages and
69:41 this is our actual page. Okay. So here you'll notice that I have um just some I have an H1 and a paragraph. These are
69:48 very simple pages, right? Um nothing in insanely fancy here. Okay. But you can
69:55 type out your your HTML um for all your pages. Now you'll notice in type you can you can set the type of uh template that
70:02 you have and then you give it an an ID partials. What is a partial? Well, for example, it's just like partials inside
70:10 of a stack. Okay. Um here I have a navigation. I've built out my navigation here so that it um essentially this
70:19 loops through all the pages and it creates a little menu for me. Okay. Um, and then inside of my um, layout, I
70:27 actually, if you notice right here, I include my navigation at the very top of the page. Right? So, um, this partial is
70:34 now added to every single page that uses this layout, right? Um, macros, I don't have any examples, those are just like
70:41 little utility functions that you can create on your own. Okay. Um, templates, uh, well, in this in this build doesn't
70:49 have any in white label. Here. Let's go to Let's go back to um this actually here. Let's close this tab out. All
70:57 right. If we go to this site builder here, this is my local dev server. Here I have templates and then the white label stuff. Right. So, um the white
71:05 label features that we had before. Um you can go ahead and still use those. Um it's the same. Okay. Let's go. I'm going
71:12 to go back into here. Okay. And let's look at that about page. Okay. You'll notice that there is also um this preview button here. So here I have my
71:21 um my page that I've built. You can go ahead and click preview and there is the pre there's a preview built into the into here and you have you can go to
71:28 tablet full whatever. You can also just go ahead and resize. Okay, so we have full preview ability. Okay, which is
71:36 nice. But we we can actually go a little bit farther. Okay, I'm going to go ahead and let's do split
71:42 mode here. Okay. And um so if you notice over here, I'm going to go to my about page, okay? Which is the page I'm right I'm at
71:51 right here, right? And um um let's say I I want to change about us, right? And
71:58 I'm just going to save this. Let's watch over here.
72:05 And of of course it didn't work, man.
72:12 Oh, it's probably it's probably cash. Interesting.
72:29 Well, what happened there? That's why we have beta.
72:41 Oops. Something broke.
72:46 Oh, I logged myself out. Oh, and I didn't save that password.
72:52 Okay. Um Oh, well. Uh that last thing I just wanted to show you was um there is a live reload. So, you can actually
72:59 update your templates here and then it will update uh the template over here live. You you shouldn't have to refresh the page or anything. Um not 100% sure
73:08 what was going on there. Um but um yeah, I'll I'll make sure I research that. But uh it's pretty cool little feature. Um some people that are on here will vouch that they've saw it work. Okay.
73:21 It's pretty magical. All right, let's go back into here. Um and so just about if we go into here, see if I do preview
73:28 page. Yeah, we have a back if it works on my local dev server here just for fun. Um,
73:36 let's do I always forget how to add a uh split pane in here
73:47 open split. There we go. If we do. All right. So, here we have about us.
73:55 Let's see if this is working in my dev server. Um, all right. So, let's see.
74:03 I'm just going to put in um hello save.
74:14 Oh man. Oh yeah. I don't know. It was working. I'll get that fixed. But if you were to update any of the uh any of the
74:20 templates or the pages um let's see if Yeah. Oh well.
74:34 this work?
74:38 Nope. Okay. Oh, I had to refresh, but um it should do it automatically. We'll get
74:45 that working. Okay. Um
74:52 Okay. Um, other things about um, you know, I'm not going to dive into right now the ABsplit test stuff. Um, uh,
75:01 there's there's some geor redirect and absplits test stuff. Uh, maybe I'll Okay, I'll do a really quick a really quick um, demo of those.
75:10 Hey. Um, so I think it was on the contact page. Okay. So, if you notice, um, I have absolut.
75:22 Oh, another thing I should say there's off. If you ever want to password protect a page, you just turn on off and you can actually put in what uh access groups or if you leave that blank, any
75:31 anyone will be allowed to see this page as long as they are logged into any group. Okay, pretty awesome. Um,
75:40 AB split test. This is something I've always wanted um for my websites and so um I've added as a free extension to total CMS. So what does this do?
75:53 So if we visit my um let's visit this I should uh go ahead and let's visit this
76:00 page. Let's just do slash contact.
76:06 All right. So here I have a page a contact page and it says contact alternate at as the header. Okay. Now if
76:14 we look at this particular um template you'll notice that um it
76:24 actually puts in page title and then I I have another template here called contact B. And if you know there it actually puts the only difference is I
76:32 put the word alternate. So I have two templates for contact. I have contact and contact B. Now let's go back to my contact page.
76:41 Um here I set the template for that page to be contact. Um but then in when when you enable ABsplit, you can put in
76:49 settings here that says hey um my AB template a aka my B template is contact B.
76:56 Okay. And what that does is whenever I visit this page then it will randomly pick either A or B for it for that
77:04 particular visitor and serve it up. Now I visited this page I the luck I was the luck of the draw. I got the B template.
77:13 Okay. And what's cool is um total CMS tracks that I was served the B template and it will never serve me the A
77:22 template ever. Okay. because unless I like clear all my cookies and my browser cache and whatnot here. Let's go ahead and do that. If I go ahead in here and I
77:30 clear all my website data. Let's see if I refresh this here. Let's see if I do it again. There we go. Oh, now I got served the A template.
77:41 Okay. Now, for testing, you might want to know, hey, I want to I want to be able to test A or B. Um I'll show you a little bit behind the curtains.
77:49 essentially um what it what it does is it does save a cookie and um it says TMSAB contact and I can go ahead and say
77:58 I can force B on my connection. I can refresh and voila, I now get served B. I can refresh this as much as I want and
78:05 as long as that's there, I'm always going to get the B template.
78:10 Okay. Um and at that point, how can you how is this useful to you? you can use Google Analytics or whatever to then track conversions based on if you're on page A or page B.
78:21 Okay, so super useful stuff. Um, now the about page.
78:30 So, uh, when we looked at the about page, okay, uh, you'll notice that it
78:37 has geo redirect enabled. Okay. And then um in my settings you can actually set up multiple different languages or or
78:45 countries and you the URL where these should be redirected to. Okay. My default URL for this page is slashabout.
78:56 Now um this isn't like geo target uh where it actually ships an entire database uh of that that is maintained
79:04 of IP addresses and how it maps to people around the world.
79:08 This does require that you have a service such as Cloudflare that actually does that for you on your behalf. Okay.
79:16 Um, in the docs I talk about various services that do this. Um, Cloudflare is one of them. I'm a I'm a huge Cloudflare
79:23 fan. I do use that. Um, so let's go ahead and I'm going to we're going to go into here and as you see I see the
79:31 English page. Okay. And actually here before just just to show you but notice um I can create a template called
79:39 about-de okay and um that template is completely different. It is a German variant. Okay.
79:47 Um and if you notice inside the about page I then define whether or not they are in Germany or other countries and the route that that uh uses.
79:59 Okay. This is all in the docs. Okay. Um, so how do we mimic that? How do I get this to show me German? Okay. Um,
80:08 to do it via the web browser actually isn't easy. You could also you could use VPN. Um, I'm going to use a little uh utility that I um that I have. Uh, oops.
80:18 Let's go here. I'm just going to create a new one and I'm going to put in this page here.
80:28 Okay. So, if I just do a a refresh here, you'll see that I just went to this URL and um it sends me there, right? Uh I'm going to have to turn on redirects here.
80:38 Now, I'm going to add some custom headers to this request. Um and these are headers that Cloudflare would add to my con my connection. So, I'm going to
80:46 add CFIP country. And then in here, I'm going to put in de. Okay, so I'm simulating right now that Cloudflare is
80:54 telling the browser uh or telling my server actually that this visitor is coming from Germany. Okay. And let's go ahead and refresh.
81:04 And voila. If you notice uh the URL here, I got redirected to slashdeabout
81:12 and um I then got served a different uh web page. So there we go. um useful.
81:20 Um I do have plans for even more localization in international that'll probably be in 3.6 though. Um but yeah,
81:30 this was I developed this as uh I think it was it was an interesting way to test the extension system uh as well as kind
81:37 of dip my toes into stuff that's coming in the future. Okay. So um you can use this, it is functional. Um, I think
81:45 we're going to make that this much better though, uh, with the international extension coming in version 3.6. Okay.
81:54 Um, so there we go. Uh, man, I went over a lot today. Um, if there's any questions, I'm super sorry about the
82:01 audio issues um that happened today. I will look into that. Um, I'm me just by me unplugging and unplugging.
82:09 I think I I figured out which cable's bad. It was actually the USBC cable. Um I always thought it was my mic cable,
82:16 but it seemed to be the USBC cable today. Um so maybe I'll order a new one and uh replace that so that uh yeah, hopefully we can get that fixed.
82:28 Okay. Um sweet. Okay guys, um I appreciate you coming on today. Again, sorry for the technical difficulties. Um
82:36 but hopefully you're seeing the power of Oh, I did promise. Okay, if you're still here, you deserve a link to the beta.
82:44 Okay, so um if you are still here and
82:54 let me get it one second. Hold hold the hold your horses.
83:00 Um and just to reiterate, this is
83:07 um this is beta Okay.
83:12 Um, so there's big changes here. Um, I you know what? I should actually before I go talk about some of the breaking
83:21 changes. Okay. Um, this does break a few things. Okay. It's only very some edge case things, but it does have some
83:29 breaking changes. Okay. So, um, let me talk about those.
83:46 Okay. Um, if you were using the API routes, okay, um, if you were using the REST
83:54 API, uh, you probably know that you were doing like, um, you know, you rwcom
84:02 slash uh, stacktms and then slasholctions slashblog whatever, right? Um, I've
84:12 added the API in there. Okay. So now after your TCMS it's TCMS slappi.
84:21 Okay. So this version it changes the API URL.
84:26 Okay. Also um the URL to the login page it used to be um just uh TCMSlo.
84:38 Okay. It's now slashadmin.
84:43 Okay. Um as well as uh the log out is slashadminolog now instead of just slashlog. Okay. Um
84:53 again and preface that with rwcom plugin stacks tcmss. Okay. So um yeah I've added uh for login and logout. It's now
85:01 inside admin. Um, so if you've built some custom integrations, aka David, if you're still here, um, we might need to,
85:09 you know, make sure that your little redirect loop thing that you've got going on for the ones website is, uh, is still working. This should actually,
85:16 this change should actually make that a little bit nicer. Okay, just saying.
85:21 Um, let's see. Um, a minor one here, let me I'm just going to move this over. Okay.
85:30 Um, if you're using any of the templates and I doubt many of you were actually including them, okay, now if you're
85:37 using the stacks to include them already fixed, okay, but um, if before the syntax was include header.twig, you
85:46 would need to do include templates/header.twig.
85:49 So if you were utilizing the templates before and you were including those on your page, you have to make sure that you add in explicitly put the the templates folder in front of that. now.
86:02 Okay. Um prior um well the current version that is shipped, let me go back. If we look
86:10 at the white label templates before you could save white label templates inside the templates folder or in the white
86:17 label folder. Now all of them have to be in the white label folder. So, if you have, let's say, login above inside templates, okay, you'd have to go in
86:26 here and then just set it to be white label and resave it. Okay? And at that point, you're it'll it'll move it into the white label folder and it will work
86:34 again. Okay? So, if you had any white label templates and they don't show and they show up in the templates folder instead of the white label folder,
86:42 again, all you need to do is you go to it and you have to click on white label and save and then it will save it in the white label folder.
86:51 Okay. So, um yeah, right now those are the only three breaking changes. Again, all relatively minor ones um or edge
86:59 case things that most people aren't doing. Um but there we go.
87:10 Okay. Um any other questions or are you guys just like Whoa, man. I just hit my mic. Sorry about that. guys kind of like
87:19 blown away, you know? I understand. I just threw a lot at you. Um, especially the site builder stuff because it's so
87:25 new. Um, and I think um, as now that I got it the base of it working um, as I get it working with stacks and using the
87:34 stacks as the templates, I think that's going to be pretty exciting where you guys can uh, see how you'll be able to use it with stacks in the future. So,
87:42 I'm really excited about that. Um, so anyway, uh, that's it guys. I will uh let you all go again. Sorry for the
87:50 technical difficulties today, but hey, at least we got here. So, thank you very much. Hope to see you uh some of you guys tomorrow at the hangout.