Oh, thanks. Yeah, so this is a fairly technical talk. So since I have to hold this mic, it might get a little weird at some point, so apologize. But yeah, so talking about WP GraphQL, a new way to interact with WordPress data. If you don't have the Wi-Fi info and want to log on, I put the Wi-Fi info up here. I'll leave that up for just a sec for anybody who wants to get on. I'll also have a link to the slides if anybody wants to follow along. All right, so first off, who am I? Currently a senior WordPress engineer, Digital First Media in Denver, Colorado. The large publishing company. We have like 100 plus newspapers across the country. Use WordPress pretty heavily there. Been a WordPress developer full time for about nine years. Doing GraphQL development for about a year and a half. Denver native and creator and maintainer of a WordPress plugin called WP GraphQL, which I'm talking about today. So previous talks I've given, as she mentioned, I've talked at several WordCamps already, and I've done talks about why to use GraphQL, so you can look that up. I'm not gonna give you the pitch on why to use it. I'm gonna jump straight into how to use it this time. So if you're curious on reasoning why it might be a good fit, I got lots of material out there. Just go to graphql.org. That's not my side. That's the actual GraphQL site, but they'll sell you on it too, so. I'm gonna jump straight into how to use it, and I think that'll probably sell you on why to use it as well. So my agenda for today, I'm gonna talk about what is GraphQL. We're gonna look at what WordPress looks like as an application data graph. We're gonna look at using the WordPress, or the WP GraphQL plugin, and then how to extend it for your needs. And then we'll look at a few examples of WP GraphQL in the wild. And it is a very technical talk, so enjoy. All right, so first off, what is GraphQL? GraphQL, it's an open source spec for a query language that Facebook open sourced They built a query language that they use internally, but then they open sourced a spec that can be implemented in any technology. Just like how JSON is a spec that you can use in any language, GraphQL is a spec that can be used in any language. So GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time and enables powerful development tools. It's probably the most text I have on a single slide, so bear with me on it. So like I said, GraphQL is an open source spec by Facebook, so it's been implemented in PHP, Ruby, Python, Java, JavaScript, Scala, like any language you can think of has a GraphQL implementation pretty much at this point. So I'm using, for my plugin, I'm using the PHP version to bring that to WordPress. One thing I wanna clarify though, GraphQL, some people think, oh, since Facebook open sourced it must have to do with their graph search that they had on, so you could search Facebook data. Same name, different thing, that's a completely different thing, has nothing to do with graph search. There's also database technologies like Neo4j and some others that are called graph databases, nothing to do with those. You can use GraphQL with those databases, but they're not the same. So graph in this in GraphQL means application data graph and QL means query language. So any application data graph you can query with GraphQL. Yeah, so GraphQL, the query language for your application data graph. So this is kind of the hello world of what a GraphQL query looks like. You send a request that looks essentially like JSON keys without the values and the response you get is actual JSON with keys and values. So you ask for what you specify what you want and you get back what you asked for. WordPress as an application data graph looks something like this, at the heart of WordPress we have posts or pages or whatever content we might have. Those posts have properties, let's say a post has a title and that might be hello world. Posts might also be connected to other things like categories or images. And those categories also have properties like names. And those categories have connections to other posts and those posts have titles. And those posts might have other categories and those categories might have an image and the category has name. So that's what an application data graph looks like in a WordPress perspective. We have all this data that has these connections and GraphQL is gonna let us pluck that data out of the graph. So yeah, GraphQL lets us pick trees out of the application data graph. So we could send a GraphQL request to WordPress something like this. We could say, hey, I want a specific post and on that post I want a title, I want a link and I want the categories and on each category node I want the name. We'll get a response like this, that's just JSON with exactly what I asked for. I asked for a post, I got its title, its link, its categories and on each category I got its name. So if we look at application data graph with this request in mind, it would look something like this. So we have the same graph of data but I only asked for one post and its categories. So I just got its post and its categories back. The rest of this data still exists in my application but I didn't ask for it so I didn't get it. So that brings us to using it, actually using it with WordPress. So WP GraphQL is a free open source WordPress plugin that provides an extendable GraphQL schema and API for any WordPress site. So I'm the creator maintainer of it, it's on GitHub, you can go download it, start playing with it, it's technically considered beta still but it's been used in production on a lot of sites including some big sites like DenverPost.com, TwinCities.com, SiliconValley.com, there's a lot of sites using it right now, Quartz.com or QZ.com. So it's technically beta but feel free to use it. Oh yeah, we do have stickers if you're interested. So using the GraphQL plugin, so this is kind of what WordPress looks like today. At the bottom we have a persistence layer, that's MySQL, then we have a business logic layer that handles things like roles and capabilities for users and registration of custom post types and taxonomies and whatnot, if you have a membership site or whatever it is, you have this business logic layer, then you have authorization, that checks to identify, that's also kind of part of that, so it checks who your identity is, what capabilities you have to access data, whatnot. And then at the top of that we have now the REST API, which is what, two years now or something in core, then we have XMLRPC, and these are different ways to interact with WordPress, right? So you can send a request to WordPress, hit a REST endpoint, get JSON data back, use XMLRPC to get data back. So GraphQL sits in this layer, it sits atop these other layers, so you send a GraphQL request to WordPress, it still respects authorization, business logic, and then gets the data out of my SQL. So yeah, WordPress, like I mentioned, at the heart of WordPress we have posts, of course we have users and comments and pages and terms and media, and these all have random connections, or not random, but they all have connections with each other, so WPGraphQL takes that and makes it GraphQL friendly. So let's take a look at how you can start using this plugin, so adding the plugin to WordPress. Right now it's not on the wordpress.org plugin repository, it might be one day, for now it's on GitHub, so you can visit GitHub, download it, clone it, of course start the repo, tweet about how awesome it is to use GraphQL with WordPress of course, then of course clone or download the plugin, then install and activate, right? So if you're on your plugin activation screen, you should see WPGraphQL, I have another plugin called WPGraphQL, which we'll see in a second. I'm gonna show you what it looks like to activate both of these. If you activate both of these, WPGraphQL will give you this menu item here, which gives you this tool called GraphQL inside your dashboard, so. And we'll be looking at using GraphQL to explore a GraphQL API quite a bit in this talk. So I'm gonna jump straight and show you things working. So I put up this site, please don't hit this so much, that it's gonna take the server down. But put this up last night, playground.wpgraphql.com. So this is a React app that just kinda walks through various queries to help you get a feel of how to use GraphQL. So I'll navigate through and show you how things work. So first thing, we'll just take a look at what a kinda hello world type query looks like. So we're just gonna ask the site for some basic info. So we're just gonna ask for the site title, the URL and the language, which is all stored in the options when you configure WordPress site. So this request, I just say, hey, give me some general settings, I want the title, the URL and the language of the site. When I click this play button, it just executes that request and I get my response. Maybe, can we move the video to the bottom corner? Yeah, cool, thanks. So yeah, so it's as easy as that. You send a request, you get the data back. So wpgraphql, though, when you activate it, it builds the schema for you. So, and you can explore the schema in this documentation explorer. So at the root, you have all these types defined in these fields that you can query against. So in my case, like I have a custom post type book, so you'll see I can ask for a book or I can ask for multiple books. I can ask for comments or settings or media items or pages. So any custom post type I have, if I register to have support for GraphQL, it's gonna show up in my schema. And if it's in my schema, I can then go query for it. So that's kind of what a hello world query looks like. I can also search my schema. So if I wanna find posts, I can see what's available in my schema to query for posts. I can find what arguments it has and whatnot. So I'll walk you through some more examples and we'll learn more about the GraphQL query language and how to use it. So next example would be like querying for a list of posts, a very common thing in WordPress, right? To build, let's say, like a blog index page. So normally in WordPress, you'd write something like a WP query to get this data. Behind the scenes, GraphQL is still using WP query and WP comment query and WP tax query. But this is just an abstraction layer that does a lot of the heavy lifting for you.  So I can execute a query like this. I can say, hey, WordPress, I want some posts. On those posts, I want edges and node, which I'll explain in just a second. And then on each node, each post, I want the ID, title, date, and excerpt. And I can send this over and in response, I'm gonna get a list of posts with the ID, the title, the date, the excerpt. And I can change these fields. Like if I just, for my sake, just wanted the ID and the title, oh, of course. If I just wanted the ID and the title, I can just get the ID and the title. Edges and node, I'll take a side real quick on that. So in GraphQL, if you remember the application data graph, what WordPress looks like, or what an application data graph looks like, you have these nodes. So in our case, we have posts and we have categories or terms. We have images or media items. These would all be considered nodes in the graph. And then the edges would be this kind of space between this contextual space that's not a property of either node. So a classic example would be like a social network, right?  There's a property called friends since. Like we've been friends since 2012 or whatever. It's not a property of me as a user and it's not a property of you as a user. It's just a property of that edge between us, that space between us. So that's where the concept of edge comes. It allows for this space between to exist. WordPress doesn't have a good storage mechanism for that yet. But something like, if you can think with me, like a term relationship meta would be something like that. So a post is in a certain term, like post is categorized as crime and maybe you added, date added to crime, right? That would be like this edge data that only exists in the context of that post with that category. So that's the concept of edges and node. It also provides uses for pagination which I'll get to in a later example. And yeah, we'll look at that a little bit more. So you can also ask for a single entity. So I can ask for a single post with an ID. This ID, you might not recognize what that looks like, right? Because WordPress normally has integers as IDs. So, and this still has the concept of the normal WordPress database integer ID. But this ID that GraphQL uses is a global ID. So it's a base 64 encoded ID of the type with the ID because WordPress doesn't have global IDs. You can have a category with ID one, you can have a post with the ID one, you can have a user with the ID one. So this globalizes IDs. So now I can use this ID, send it back to GraphQL and it has enough info to know if it's a user or a post or a category or a term. So I can then use that to query an individual entity for an individual node. I can use that same ID, pass it back to, I can pass that back to GraphQL. I can say, hey, I have this ID for a node. I don't know exactly what it is. I'm gonna give you the ID. If it turns out when you execute that it's a post, give me the ID and the title back. If it's not a post, I don't want anything. So if I put like an invalid ID, I'm not a, oh, well, screw some up there. Yeah, so, what's that? Yeah, so in this case, I'm still gonna get a response with the one part of the request, the initial post that I asked for. I still get that in my response. Just my second node, it's not a valid ID.  So then let's, again, posts and pages very similar. I can also ask for a list of pages. So same thing, I'm just gonna send this request for a list of pages. If I wanted one page, I could take the ID and ask for that as well. Yeah, and I'll show some examples to some degree. I'll show an example of that. So yeah, and then with terms, we're gonna look at this really deeply nested example, right? It's like a hierarchical taxonomy. If I wanted to get categories in those categories, children in those categories, children in those categories, children, right, I can send a request like this. I asked, well, of course, live demos, huh? There we go.  So anytime I have, I don't think I have any hierarchical, I don't think I have hierarchical relationships in this, so that's probably not the best example for this environment. But yeah, so you can ask for what you want and you're gonna get that back. So then users, again, I can ask for users. Very, very similar concept, right? I just say, give me some users, give me their node data, and I'm gonna get that data back. Also works with plugins, so I can get info on the plugins I have active. Works for themes, so I can see what themes are active on that environment. If they add a gap to fill it, they'll have to write some code to make it work. Yeah, not by default. But if somebody's interested, talk to me, I'll help you figure out how to bridge that gap. But general settings, if you're using the Register Setting API, WP GraphQL knows about that as well. It respects authorization, authentication, callbacks too, so if you try to query for something that's private, you're gonna have to be authenticated to get it. So this is an example, like in WordPress we have several settings pages, right? We have general settings, discussion settings, reading settings, writing settings. I can ask for data from multiple settings in one request and get that back. Like something pretty core to building a decoupled app. I need the site name, right? I need the site URL, things like that. I need the site language so I can, I know if I need a translator, whatnot. So I can do all these things. But if I try to ask for something that's private, like the email address, by default that's treated as a private field. So you have to be authenticated to get that. So if I ask for something private, I'm still gonna get the public data in my response so I can do something with it. I'm gonna get a null value for the email because I don't have access to it. And I'm gonna get a helpful message saying, hey, sorry, you don't have permission to view that. And I get a path to where in my query this message relates so I can render that, let's say, in a DOM if I'm building a React app or a View app or something like that. So I can ask for all this data in one spot in essentially plain English. Like this is hardly code. And the cool thing about this, since it's just a string, I can take this string, I can use it in any language that knows how to make an HTTP request. So I can use it in JavaScript. Let's say I'm building a React app or a View app or Ember or Angular. I can use that if my language can make an HTTP request to WordPress, I can get this data now. So you can use this exact same thing in PHP. You can use it in Ruby or whatever to interact with WordPress. So you don't have to be inside the WordPress context now to get rich data from WordPress. So that's kind of like the intro to the language. I'm gonna take you a little bit deeper into it now because a lot of that stuff you could just look up and get familiar with pretty quick. I wanna take you into some nuance of the actual language now and we'll look at some more advanced examples. So there's something called arguments on GraphQL fields. So previously we were just looking at getting a list of posts and by default, I was getting 10 back. But what if I wanted something other than 10? I can pass this argument first five and I'll get five back on this Wi-Fi maybe. Bear with me. Live debugging. Might have to switch and do this local. Excuse me, I'll switch and do this local. I'm not getting connection anymore. Back to business. So I'm running this locally now. I don't know what's going on. Yeah, so back to that though. I can send a request and specify arguments so I can say, hey, give me five posts or maybe one post and I'm gonna get just that one back. And then as you can see here too, I can get nested data, right? So posts don't just have their individual properties like an ID and a title, but they have connections to other properties like tags or categories or authors. And I can get that data too. Or something like, even in PHP, I'm gonna have to write a WP query and then I'm gonna have to write a WP tax query to use a function like getTerms or something like that. Then I'm gonna have to write a WP user query or instantiate a user object or something like that. So I'm gonna have to write all this code and then figure out a way to connect it all. And then even in like a modern JavaScript using the REST API, something like Gutenberg for example, if I wanted all this data, I'm gonna have to make separate endpoint requests and then figure out on my end how to tie this all together. So WP GraphQL does that heavy lifting for you on the back end. You just say, hey, here's what I want. Here's the shape I want it in. Here's the fields I want from it. It does the heavy lifting, it gets it back to you and then you can be on your way. You don't have to figure out how to glue it all together. And I actually have, we'll look in a second, I have some examples of actually taking this data and putting it into React Components just to see how easy it is. So again, I can also ask for multiple resources at the root of a single request. So here at the top of my request, I'm asking for posts and then separately, but in the same request, I'm asking for users. So in a single HTTP request, I can ask for multiple resources. In typical, like REST for example, or XMLRPC or something like that, I'm gonna have to make a separate request for posts and separate requests for users. Here I can make one HTTP request, I can get a list of posts and a list of users and I can have arguments at different levels too. I can get one user and one post if I wanted. Whatever my use case is, I have this flexibility now to easily declare what I want and get back what I asked for. So another nuance of the GraphQL query language is this thing called fragments. So I can actually define pieces of my query in something called a fragment. So I can say, hey, if the type that's coming back to me as a post, these are the fields that I want. And in this case, if the type coming back to me as an author, I want these fields. So I can define these fragments and then reuse them throughout my application. So if I have multiple components that will render this post data, I can define this fragment in one spot and use it throughout my application in different queries. So when I execute this, it's gonna give me the data that I asked for here. So the ID, the title, the date, the author, and then it's gonna use the author fragment to get that. So when you're building component-based applications React or Viewer, what have you, you can now couple your data requirements with your component. So there's a common pattern of coupling your styles now with your component in React especially, like style components or CSS and JS in general. So now you can actually couple your data dependencies also. So you have one place to go.  And then all you have to do is tell the top level query, these are the fragments to use. So now if you, let's say you built a component that, oh, hey, we need the email address on this user now, that email or the author component, you would just update the fragment right there in that component and then you'll have it, right? You don't have to go chase your application like, wait, where do we fetch the data and then how do we get that data and transform it to our view? Like it's right there, it's in one spot. So another awesome thing with the GraphQL query language, there's something called aliases. What if you don't like that it's called posts and nodes? What if you're building an application that has a UI that's a list of cards and you want your data to come back called a card list and each node you want to be called a card and maybe instead of ID you like the word key or something like that. You can alias your data with GraphQL so you can say, hey, I want posts but when you return it to me, I want it to be a return card list and for each one I want to be called or the list I want to be called cards or whatever and then each ID I want it to be called key and you can see my response. It's the same data that I asked for but now it's aliased with what I asked with what I asked it to be aliased for so I don't have to do that transformation on the client side now. So more aliases and I'm gonna show you what the power of this in a second. So I can ask for two lists of different things with the same shape so I can ask for list of posts but their node for ID it's gonna be called key, the title, description, and link and then this one I'm asking for categories but I want it to have the same shape, right? So my post I'm gonna get back a list of cards, key, title, description, link and then my categories, same exact shape. So this gives us some pretty powerful things to do with components so we're actually gonna look at what this looks like in action now. So I can send this query that I just showed you it's a query asking for a list of posts and a list of categories. I can build one card component that expects a key, a title, the type name, the description, and the link and then I can render this list so on one side you have posts, on the other side you have terms, right? So it's one component, right? I can, I now don't have to build a specific component for my terms and a specific component for my posts, right? I can use the same component in both cases. So this is just a quick example showing like this is the actual react component that you're seeing rendered right here and in both cases terms, posts, works, right? So variables, good thing to know about GraphQL, it's best practice to keep them static strings which means there's no actual variable part of the request itself.  This IDE gives you a pain to edit these variables so you can declare a variable statically in your request string so in this case I'm gonna say hey, I wanna accept the variable first and it's gonna be an integer and this validates that, knows that first would be an integer and then, so now I can keep my request a static string so I can have like a library of requests or whatever in my application and then if I need to make it dynamic I can pass variables as a separate part of the request. GraphQL knows how to validate first that your variables are what they're supposed to be. In my case, first is supposed to be an integer so before execution, GraphQL says hey, is this variable an integer? If so, cool, go ahead and process. If not, send an error back. So look at more variables. This one's getting a little crazy because we have a lot of variables here now. So if I execute, I'm not passing any variables so it's just gonna go back to the defaults, right? But I can fill in some of these things like first one where, let's see, I think I'm the author on these, I don't know, maybe. Yeah, so Jason is not the author on any of these, right? Maybe it's my full name, I can't remember. Yeah, but you can narrow the scope of what you're asking for. And that was actually a good example. If I send my stuff in invalid format, like that was invalid JSON for my variables, I get this error back, a pretty helpful error telling me, hey, that's actually unexpected. But yeah, so I can use these variables to make my app dynamic while keeping my query string static, which is super powerful. Another really cool thing is this thing called directives. So you could actually add logic into your queries to even request fields or not request fields based on certain conditions. So this directive here is gonna say, if this variable is true, include this field. If this variable is false, don't include it. So, and that variable can be set by whatever you want, like is the user logged in or does the user have certain permissions or is it Tuesday, right? Like whatever, I don't know. Like whatever you want, if you can set this to true or false, you can dictate what data you're gonna get back conditionally. So if I just set this to false, send that same request, you'll see this page info and this link field will not be included this time. So page info gone, link gone, right? So I can, at my query layer, just set, here's what I want in this case, here's what I want in this case. So really powerful stuff. And this page info actually has to do with pagination and this is where cursors, edges, and edges nodes and cursors come in. So if I wanna paginate my data, if I get a list of items, I can ask for page info. I don't have much data in this environment, so has next page, has previous page, I don't have that much data. But I would get an indication that yeah, there is another page and then I can use this cursor as a reference point to where in the data set I am, GraphQL will use that and go to the next one. So I can do something like this. So I want the first post after this cursor. So if the live demo gods don't hate me, I should get, so I'm asking for the post after WordCamp Phoenix, so that should, if everything goes well, be hello world. So I'm just asking for the first one after this one. And there you go, hello world. So that's how you paginate, right? So in something like React or whatever, you'll cache that cursor value and then on your next request, you say hey, give me the next X amount after this. Another powerful thing is unions. Sometimes you don't know what the data is until execution time. A good example of this would be media item parent, right? An image can be attached to a post or it can be attached to a page or it can be attached to a product or whatever, a user, like who knows. So media item parent, well, probably not user, maybe. Anyway, sometimes you don't know what you're gonna get back until execution time. So this is a quick example as well. I want a list of all terms on this post regardless of taxonomy. But if it's a category when you get these terms, I want the ID of the name and the slug, but if it's a tag, I want the slug in the link. So I can execute this and you'll see here on category I get ID name and slug, on tag I just get slug in link. So like a common use case would be like search, right? If you search across types and maybe you wanted a different view presented for different types of content, you can say hey, I wanna search but I might get different types back and depending on the type, I want different data. So that's that. We'll look super quick at some extending and then I gotta wrap up. So custom post type support, I know just out there itching like how do I support my custom post types in GraphQL? Pretty easy. So just a couple lines here. So in this case, I'm gonna register a post type book. We just say show in GraphQL true, give it a couple properties, register a post type or a taxonomy genre, connect that to books. Then I'm gonna add one field price that's gonna return post meta of price on the post ID that I query. So now I can query for books. So this is pretty cool. I have two books so I'm gonna query for the ID of the title, the genres, what not. I get my book, WordCamp Phoenix, genre's best WordCamp ever. Host of WordCamp US 2019, okay. Price is $9.99, okay. Using GraphQL with WordPress, priceless. Okay, cool, I get it. So that's this in action now too. So I can run this query for posts. Oh, whoops, got the wrong component in this one. My demo data's wrong on that. Anyway, but this is that in action, right? So I can run that query, get my books. I can get multiple things. I get the title, I get a custom meta field. I get a featured image URL. I get the title, I get the avatar of the author and I get a list of term names all in a one request, like very simple request. So my time's actually out. I did have some demos on mutations because you can actually write data with GraphQL as well, not just query for data and it respects authentication authorization, but I am out of time. So talk to me in the happiness lounge if you wanna find out more, thanks. Three minutes. What's that? Oh, yeah, all right, let's see. Oh, maybe I lied. I don't think I actually put it in here. Let's see, I thought I did, but yeah. Yeah, find me at the happiness bar. I'll show you mutations if you're interested. What's that? Like in the request. Yeah, that's probably where fragments would come in then.  Yeah, yeah, that's what I would probably suggest, yeah. Yeah, so the question here was writing data. So WP GraphQL by default is gonna bind stuff to WordPress, but it doesn't have to. I did have another example that I didn't get to that query data from icanhasdadjoke.com, right? So you can query dad jokes from WordPress. So you can also store data wherever you want. By default, what comes out of the box is support for the WordPress data stuff. So post users, terms, things like that. If you had a custom table or an external data source, like I don't know, you could even mutate data in Google Analytics if you wanted to, right? Through a request like this. So it's agnostic to the data store. By default, it's gonna give you a lot of help with WordPress data, but you can customize it to do whatever you want. What's that? Cool. Yeah, so it would have to be registered right now. So like one example that I went by really fast, but right here for now, this is an example of adding a price field to the book type in the graph, and then I can resolve this however I want. In my case, I'm just resolving to get post meta. I do have some prototype plugins that bring ACF support to GraphQL or field manager support. They're kind of broken right now, so don't use them, unless you want to contribute to them, which would be awesome. Depends on, so the question was, is it beneficial to disable the default REST API? I think it depends on what you're building and what your needs are. We use GraphQL for a lot of stuff, but we have native mobile apps that still hit our REST endpoints for some things. So if we had zero dependencies on it, I don't know, maybe we would disable it, I don't know. We use both currently still. Not yet. Dave Ryan, I know, has expressed interest. I don't use multi-site at all. Theoretically, it should not be that hard, but if you use multi-site and are interested, chat with me and we'll figure some out. Oh yeah, yeah, yeah. Good question. Those were the slides I didn't get through. Shout out to contributors too, didn't get here, sorry. And then here's two examples. There are more, work.courts.com and hopelab.org are two examples that use it. And I'll show you just super, super fast. One cool thing. They're using a client called Apollo that actually monitors your queries in DevTools. So as I navigate around, I can see what queries they're running. And this is not a site I'm affiliated with, by the way. But then I can actually see what queries they're using to hydrate their data. And then to debug, I can run this query straight here in my DevTools. Like, there's awesome tooling around GraphQL, which I didn't even get to highlight. Last one, I think. For the queer language itself, GraphQL.org, for the PHP library that's under my plug-in, GraphQL-php.com or .org, I think. And then my site is just wpgraphql.com. All right, thank you guys.


I will be live in a shaitaanir regime. Bismillahir Rahmanir Rahim. Today's topic is corporate governance. And this is one thing which is very, very important in the life of any business. Learning outcomes. Students will be able to understand that the interest of the stakeholder is protected. Stakeholders not only include the directors, employees, shareholders, but anyone who is directly or indirectly related with the business. To watch out who are actually responsible for true and fair presentation of the financial reports. The important thing is we have to watch out who are the individuals who are preparing these statements and reporting the true and fair views. The Board of Directors composition will be highlighted. The most important thing is the Board of Directors. Who are the directors? What type of directors they are? Executive directors or non-executive directors or independent directors and so on. So we must know clearly. Objective is to avoid fraudulent presentation following the code of corporate governance. The main problem is that people don't present the right figures. They play with those figures. Intentionally they do manipulation in those figures. So corporate governance means that we should try to find out who are the culprit. To fix the responsibility if there is a bad decision. If something is going wrong anywhere in the business, so we need to fix the responsibility. And it is from top to bottom. Everybody should be taken care. To understand the ethical values and mindset required by the company's officials. Again whatever we are going to, ethically we should keep in mind that we should not do something wrong, which is not ethical. And in this case I am talking about from directors to the last man, a sweeper even. All should work ethically. Beware of right practices required to perform by company's while operating. Although we have written down the best practices or right practices, but are we following it or not that is the most important thing. So we must look into it that we should keep in mind what is the best practice of doing this particular activity. Then what to avoid when functioning as a business. We must keep in mind that if I am doing a certain job, what I should not suppose to do. There are SOPs for everything. So we must keep in mind that we should not go beyond those SSP. We must keep in mind all the time those right practices. Now the introduction, corporate governance has become very important in monitoring role in the recent years. After prevalence of enormous financial standard. These scandals are all over in the world, let me tell you. You will be surprised in America, in UK, 30,000 to 40,000 companies go bankrupt every year. Not in number of years, every years. But over there, you know, thing is that if a company is not performing well, in spite of all their efforts, they can place, they can go to a court and get winding up, voluntary winding up.  So they allow. It doesn't mean that the company cannot close. The company can wind up with business provided they go by the law. So corporate governance is a set of mechanism through which outside investors may protect themselves against expropriation by the insiders, managers and controlling shareholders. Here, very simple thing. That we are talking about the outside investors. So investor means not simply those who are putting money into the business. No. Even they are putting resources into the business. If they are putting their services into the business, they are all investors in my opinion. And we should protect the interest of all of them because whatever they are spending, time or money, we must care that it shouldn't be misappropriated. And who are going to misappropriate? Maybe top-level people, middle-level people or even low-level people. So we should be very, very careful keeping in mind the corporate governance that we should avoid all these misappropriations. Corporate governance comprises of private and public institutions, both formal and informal. In fact, the Code of Corporate Governors 2019, which is applicable in Pakistan, it is basically for listed companies, a company which is listed on stock exchange. But it does not mean that this is only for those companies, it is for every company, every business we should keep in mind. Which governs the relationship between those who manage these corporations and those who invest resources in these corporations. So clear. We are not just talking about money, we are talking about resources. Whichever resource you are putting into the business, you have to see what is being used and what is being performed. Now, look at the types of corporate governance. This is also a very important issue. What is our corporate governance here? Basically, what is word-wise? So look, basically there were two approaches at the beginning. One was a rule-based approach. What was in it? It is mandatory upon companies to follow the Code through Act Rules and Regulations and Pay Penalties. In the US and UK, what they have written as mandatory is that you have to follow these things as a regular company. And you have to tell it that we have followed it. If you have not followed it, then you will be penalised. It can be in the form of cash or in the form of punishment. So this is rigid that you have to do this. If you have not done anything of it, then you are liable for it and you have to pay for it. So Germany is there for it if you do not follow it. But it was very strict. That is why they have changed the principle-based approach. What is in the principle-based approach? The companies adhered to the spirit of the rules and are explaining in annual reports as to why they are not complying with the requirements of the Code. It is a bit like this. If you understand that these are mandatory, then you have to follow them. But if you follow them, then it is better. But if you are not following them, then you need to explain. That is why we followed them. We have to explain the reasons. This will leave the shareholders to draw their conclusion about the governance of the company. So let the shareholders, let the investors see whether leaving those codes are good or bad. But it is available. If you follow the mandatory, then you will do it. But other than the mandatory, you should also follow it. In Pakistan, there is a third thing called hybrid. Hybrid is that you have the rules in which there are the mandatory. After that, it is recommended that you follow these rules. Along with this, it is also recommended that you should also follow it. Now it happens that in the mandatory, if a company does not follow the mandatory rules, then believe it that it does not commit up to 5 million. And it is also that if you are not able to pay, then it should be added according to 1000 per day. This is also about the mandatory. But the one that is not recommended about the mandatory is that you have to follow it. But if for some reason, a company is not able to follow those rules, then they need to explain that this was the reason and we have not followed it. Therefore, all these things are available in the company by laws. But the Security Exchange Commission of Pakistan and the stock exchanges and the other sources have decided that these things are must. But if they are recommended, then you also have to follow them. And if they are recommended, if you do not follow them for some reason, then it will be necessary to give an explanation. After that there is the Code of 2019. Listed companies should implement them and leaders should be effective in the diversity of direct. This is also an important issue. It is necessary to be effective. It is necessary to be effective of leadership. Look, if you go with the name, sit down, no. Are you monitoring it or not? That is the important thing. And in diversity, it is that directors should have different skills. For example, if there is management, then the director should have management. If there is direct marketing, then the marketing experience should be there. If there is finance, then the finance experience should be there. There should be diversity so that the directors can see the best practices. The best practices indexes. Here we have critical performance indicators. So what do we do? We decide that these four, five, seven, whatever they are, we fix them. And then for every indicator, you see how you have performed it. And add its points. And then we add it and see which points we have properly performed. As per the code, if we have not done it somewhere, then we have to see what we have to give its explanation. So these are the types of corporate governors. Basically what we have done is that we have to follow the mandatory on. If we do not follow it, then its penalty is there. But the recommended ones are also necessary to be followed. But in case you are not able to follow them for any reason, then you need to explain. Now when you give an explanation, then let the readers decide whether the explanation you have given is appropriate or not. But you do not have to leave it. We will have to tell you that we have not followed this particular code. Thank you very much.


Unanswered questions that Dr. Brown has failed to address. Who is Dr. Brown? Which questions has he failed to address? And why is this important? Why am I taking your time to tell you about this? Dr. Brown is a Christian missionary. He has authored a five-volume series entitled Answering Jewish Objections to Jesus, in which he tries to persuade a Jewish audience to bend their hearts, to give their hearts to Jesus. You see, Dr. Brown understands that if he's going to tell a Jew that millions and millions of people believe in Jesus, that's not going to sway the Jew. If he's going to tell the Jew that many miracles are performed in Jesus' name, that also will not sway the Jew. And if he tells the Jew that many Christians feel in their hearts and know in their hearts that Jesus is really the Messiah, that will also not convince the Jew. Because as long as the Jew reads the Jewish Bible, when I say the Jewish Bible, I mean what the Christians refer to as the Old Testament. If the Jew reads that Bible and understands that God is talking to him through that book and directing him to reject the claims of the church, to reject Jesus, then all the miracles, all the numbers, and all the knowledge in your heart is meaningless. False prophets can perform miracles, frauds can get many millions of people to follow them. So all of these are meaningless in the face of the Word of God. As Isaiah the prophet said, the Word of our God stands forever. So Dr. Brown authored his massive five-volume series Answering Jewish Objections to Jesus. In this series, he tries to make a case on the basis of the Jewish Bible that Jesus is indeed the Messiah and what the church claims him to be. This is not just Dr. Brown. You have to realize that for 2,000 years the theologians of the church were working on this. They were preparing a case and presenting various arguments on the basis of the Jewish Scripture, trying to present that the Jewish Scriptures lead you, point you to Jesus. So I see Dr. Brown's 1,500 pages as a culmination of a 2,000-year effort. And I have read Dr. Brown's five-volume series and I have found it to be incredibly empty, incredibly inadequate. He doesn't address some of the foundational Jewish objections, some of his central arguments contradict each other, and his reasoning is generally flawed. I don't expect you to take my word for this. I laid out my arguments. I laid out my reasoning in writing. In a series of articles you can find my articles on my blog. My blog is entitled 1,000 Verses and you can read about it over there. I'm not here to convince you. I'm not here to persuade you. I'm here to empower you. I encourage you, study, read. Don't try to expect, don't expect to find the Jewish position presented by someone like Dr. Brown, a Christian missionary. He's good for presenting the Christian position. I attempt to present the Jewish position. I ask you to please read it and see if Dr. Brown's arguments add up. I will point out that it has been several years since I published my articles and since then Dr. Brown has not responded to my questions, to my arguments. You see, Dr. Brown is highly motivated. He wrote all this literature. He wrote so many pages to try to convince the Jew that Jesus is the Messiah. So the motivation is there. I did him the service of showing him why a Jew who's educated in the Bible, in the Jewish tradition sees right through his arguments. So if you could have answers to my questions, I think he would share them with the public. The fact that he has not responded to my questions tells me that he does not have any answers to my questions. Now again, I told you I don't expect you to take me on my word, read and study. But perhaps 1,500 pages sounds like a lot to you and my articles may be too lengthy for you and that is why I'm talking to you today. What I'm going to do here today is I'm going to present three questions, only three questions and there's only a fraction of what I've written about and the questions that I've asked Dr. Brown which he has failed to respond to. But I think that these three questions will give you a taste, will give you a feeling and will wet your appetite. It will encourage you to study the issue in greater depth and educate yourself with a deeper education. In my own life, when I study the Bible, the more I study the Bible, the more clearly and the more concisely I am able to articulate the Jewish position, why it is that the Jewish people reject Jesus, reject the claims of the church. Dr. Brown points to this very same book, the same book which I draw strength from, I draw clarity from and I draw articulation from. He points to this very same book and he makes the case that this book leads you in the opposite direction. It points to Jesus and it validates the claims of the church. How does he do this? Well, he doesn't address some of the foundational passages that God uses to present his case. He misinterprets some passages in the Bible but that's not his main tactic, that's not the main tool he uses. The main tool he uses is that he invents, he presents his own reader's guide to the Bible. What do I mean when I say a reader's guide to the Bible?  It's about 30,000 verses. It's very easy to get lost out there. Thankfully, the author of the book provided us with a reader's guide to his book. He points to various passages and he tells you this passage is a teaching on a given subject. The passage is introduced as a teaching on idolatry perhaps, on the power of repentance, etc. God repeats certain teachings again and again and this gives you to understand that these teachings are central and foundational to the narrative of Scripture. Sometimes God has the narrative built to a climax and a certain concept is highlighted and again, this will tell you that this concept is important and foundational and sometimes God uses strong and commanding language to tell you that a given concept is central and sets the tone and provides the context for the rest of the narrative of Scripture. If you follow God's cues, you will realize that the prohibition against idolatry is foundational to the narrative of Scripture. Observance of the law of Moses is important. The election of the people of Israel, the covenantal relationship that they share with God is important. The temple in Jerusalem is important and the power of repentance is foundational and central to the narrative of Scripture. If you follow God's cues, the theology of Judaism will jump out at you. You will clearly see the Jewish position and I challenge you and I encourage you to try to read Scripture following God's cues. Let God tell you which passages are teaching on which subject, which teaching, which concept is the trunk and which concepts are the branches. But if you look in Dr. Brown's book, you will see that he ignores God's reader's guide to the Bible and he provides his own reader's guide to the Bible. He emphasizes different points. For example, he has a lengthy discussion on the subject of idolatry. Now God points Deuteronomy 4 as the definitive teaching on idolatry. But Deuteronomy 4 doesn't even appear in Dr. Brown's lengthy discussion on the subject of idolatry. Instead, Dr. Brown puts Genesis 18 at the center of the discussion. Genesis 18 is not presented by the author of the Bible as a teaching on the subject of idolatry. But for Dr. Brown, that is the centerpiece in this area and this issue. When it comes to the question of guilt, sin, and dealing with the burden of sin. So the author of the Bible points to Deuteronomy 30. He introduces that passage as a teaching about how the nation as a whole, as a collective unit can deal with the burden of sin and guilt and repair their relationship with God. God points to Ezekiel 33. It's presented as a teaching about how an individual can repair his relationship with God. But Dr. Brown, in his lengthy discussion about the subject of sin, atonement, the burden of guilt. Deuteronomy 30 doesn't merit a mention. Ezekiel 33 gets mentioned in a backhanded way at the end of the discussion. And Dr. Brown puts Leviticus 1711 at the center of the discussion. Leviticus 1711 is presented by the author of Scripture as a teaching about the prohibition for drinking blood. Don't drink blood. That's what God is saying over there in a backhanded way. The concept of atonement comes in there. But that's not how the passage is presented. So here we have Dr. Brown presenting his own reader's guide to the Bible about which passages are central, which passages are teachings on which subject. And he's completely ignoring God's reader's guide to the Bible. Is this something that the Jewish people are expected to overlook? Are we expected to take this seriously? That God has one reader's guide to the Bible and Dr. Brown has another. Are we expected to take Dr. Brown's reader's guide to the Bible seriously? Well, in case that's what you thought, I'll point out to you that Dr. Brown doesn't take his own reader's guide to the Bible seriously. You see, in an interview with Lee Strobel, Dr. Brown points to Zachariah 6 as the most overt passage in the Bible where a human being is identified with a messianic figure. He highlights this passage because he reads something in between the lines. He doesn't even explicitly say which leads him in the direction that he's trying to go. So when it fits his purposes, this passage is a very important messianic passage. But when it comes to volume 3 of answering Jewish objections on page 172, Dr. Brown notices that the prophet explicitly says that this messianic figure is supposed to build a temple. And in volume 3, Dr. Brown is in the process of downplaying the importance of the temple. And he tells us this prophecy only appears once in the Bible in one book in the Bible and therefore it cannot be considered a significant prophecy and it could be interpreted on a symbolic level. So here Dr. Brown is not taking his own reader's guide to the Bible seriously. So are we expected to take Dr. Brown's reader's guide to the Bible more seriously than he takes it himself? So that was my first question. My first question is, here we have God's reader's guide to the Bible. Why should we ignore that and overlook God's reader's guide to the Bible and accept Dr. Brown's reader's guide to the Bible when he himself is not consistent with his reader's guide? Let's move on to the second question. From a Jewish standpoint, this is the most serious question because why is it that for 2,000 years Jews refused to accept Jesus? They said no to Jesus. And I don't want you to take this question lightly. You have to realize that for centuries upon centuries Jews were willing to be locked into ghettos. They opened themselves to persecution, to ridicule. They gave up civil liberties and sometimes they were even given the choice to die or to accept Jesus. And they generally chose to die. It didn't come easy to take this decision, to maintain this position of no, we don't want to have anything to do with Jesus. So why were the Jews so adamant about this? And the answer is very simple because the Jews understand that the devotion, that the church is demanding that people give their hearts to Jesus is identified by the Jewish Bible as idolatry.  Now Dr. Brown recognizes that this is a serious charge against Christianity. And he devotes many pages in his book to discussing this. He discusses this question on a scriptural level, on a philosophical level, on a theological level. And you have to realize that these Jews who want to die rather than accept Jesus, most of them were not philosophers, theologians. These were simple people, simple laborers.  It wasn't something about philosophy, it wasn't theology. It was about devotion. You see? Judaism is not about a set of rules. Yes, there are many rules in Judaism. We do this and we don't do that, but all of we do what we do as an expression of our devotion to God. It's all about a covenantal relationship that the Jewish people share with God. Our hearts belong to God. Now when we're talking about a relationship we're not talking about rules. Yes, no. We're talking about a heart that's filled with love, a heart that finds joy and satisfaction, a thirst that is quenched. A heart that finds peace and love in a relationship with God. And the satisfaction that I'm talking about is not a satisfaction. Well if you love God, you will get this benefit. It's the relationship itself that provides a satisfaction that quenches the thirst. So what is this love? What is this attraction, this magnetism that drew the heart of the Jewish people and really should draw the heart of all mankind towards God, towards the one creator of heaven and earth? And the answer is very simple. The Psalms of David. Look at David. David is our Messiah. He's our King and his heart is completely open for us. In the book of Psalms David expresses and opens his heart to all of us and he pours out his love to God and that gives expression to the Jewish heart, the Jewish magnetism, the attraction that the Jew finds in his heart towards the God of Israel. That is what our relationship to God is all about. It's about this love. It's about this relationship. But the Christian missionary is not satisfied with a heart that is devoted to God, with a heart that is flowing in the same direction that David's heart is flowing. The missionary is introducing a new magnetism, a new attraction that is not present. I never heard of a Christian missionary encouraging someone, read the Psalms of David and you will find Jesus. I never heard that. What the Christian missionary tells people is read the New Testament, read the Christian Scriptures and you'll find Jesus over there. It's a different magnetism. It's not the same magnetism. The Jew is missing nothing in his relationship with God and the Jew can be missing nothing in his relationship with God because God is everything. If you want to get the Jew to move his heart away from God and towards Jesus, you're asking him to commit spiritual adultery and in all of Dr. Brown's 1500 pages he doesn't answer this question. He doesn't tell the Jew what he is missing in his relationship with God. He doesn't explain to the Jew why it's right and proper for him to devote his heart to Jesus. From the standpoint of the Jew, if Dr. Brown didn't answer this question and he did not answer this question he did not answer the question on the devotional level. How is it that devotion to Jesus is not idolatry? Then he wrote nothing. From the standpoint of the Jew the 1500 pages are completely empty because Dr. Brown does not answer, does not explain why devotion to Jesus is not idolatry on the devotional level. That was my second question. My third question would be an important question from the Christian standpoint because when the Christian speaks about the Jewish Bible pointing to Jesus, he's thinking about messianic prophecies. He's thinking about prophecies in the Bible which describe the Jewish Messiah and he believes that Jesus fulfilled these prophecies and indeed in Dr. Brown's book in Volume 3 he has a list of prophecies which he believes that Jesus fulfilled and I encourage you to read those prophecies, to study those prophecies and to ask yourselves are those really messianic prophecies? Did Jesus really fulfill them? But that's not what I'm going to be talking about here and now. What I want to talk about now is the following question. Is that all? That list of prophecies that Dr. Brown presents is that all that the prophets had to say about the messianic era and the answer is clearly no. The prophets had so much more to speak about the messianic era. They spoke about the universal peace. They spoke about the vindication of the people of Israel. They spoke about a temple in Jerusalem.  They spoke about the restoration of Israel to their ancestral homeland and these are prophecies that Jesus did not fulfill and will not fulfill. So how does Dr. Brown tell us that the Jewish Bible is pointing to Jesus? He has to get us to look away from those prophecies which Jesus did not fulfill and focus and highlight and emphasize those prophecies which he believed that Jesus did fulfill. So how does he do this? How does Dr. Brown downplay so much of what the prophets had to teach us about the messianic era? And he employs a three-step strategy. The first step is simple. He evades. He does not discuss many of the concepts which the Jewish prophets associated with the messianic era. He does not speak about the vindication of people of Israel. He does not speak about universal knowledge of God. He does not speak about the restoration of Israel to their ancestral homeland. He simply doesn't speak about those issues. He is willing to speak about three issues that Jesus did not fulfill. Three concepts that Jesus did not fulfill. He speaks about peace, the restoration of the sacrificial system and the temple in Jerusalem. And what he does now is he comes to the second step in his strategy. He separates each of these one from another. He treats them separately as if they'd be standing apart from one another, although the prophets wove them together in a panoramic whole. And then he comes to the third step in his strategy. The third step in his strategy is that he creates a false dichotomy. Dr. Brown tells us that certain prophecies are significant and important and foundational, and others are insignificant and peripheral. And the ones that are insignificant can be interpreted on a symbolic level and we do not expect that they should be fulfilled on a practical level. How does Dr. Brown divide? How does he differentiate? How does he identify? How does he identify which prophecies are significant and which prophecies are peripheral? Well, Dr. Brown tells us that if a prophecy doesn't appear in that many books in the Bible or that many times in the Bible, if it doesn't mention a messianic figure, if the timing of the prophecy doesn't seem to fit with the Jewish expectation of the messianic age, then we can relegate those prophecies to the realm of insignificant. And that leaves him with his prophecies which he considers significant and important and foundational. Now, in order to arrive at his count of prophecies, how many times do the prophets mention this concept or that concept, Dr. Brown conveniently forgot a number of prophecies. It's also interesting to note that some of the very same prophecies which Dr. Brown considers significant because one aspect of the prophecy was fulfilled allegedly by Jesus. Dr. Brown tells us it's insignificant because the other aspect of the prophecy was not fulfilled by Jesus. But let's ask a different question. What happens to Dr. Brown's own little list of prophecies when we apply his own standard, this very same standard that he created in order to downplay the Jewish messianic hope? What happens to his list of prophecies when we apply his standard to his list of prophecies? And they all fail miserably. They appear less times in the Bible and less books of the Bible. Some of them don't mention a messianic figure and some of them do not fit in with the Christian eschatology with the Christian hope for the messianic age. So according to Dr. Brown's own standard his little list of prophecies ought to be considered insignificant and we should not expect that they will be fulfilled on a literal practical level. So Dr. Brown's central argument, again from a Christian standpoint these messianic prophecies are the centerpiece of his argument. This is the case for Jesus on the basis of the Jewish Bible. It's an exercise in hypocrisy and self-contradiction. Is this something that the Jewish people are expected to ignore? You have to realize I mentioned the Jewish people suffered for many many centuries they suffered. They endured a lot. What gave them the strength and the courage and the fortitude to go through the suffering to endure the suffering? It was the messianic prophecies in the Jewish Bible. That was the rock. That was the security that the Jewish people found in the Word of God. You expect that the Jewish people just simply ignore this, throw this out on the basis of an argument that doesn't add up? So that was my third question. If Jesus is really the Messiah of the Jewish prophets then why does Dr. Brown have to tie his argument in a knot of self-contradiction when he's trying to make a case for Jesus? So let's just wrap this up. Again, let me remind you there are many more questions than the three that I presented to you today. But in short, the three questions I presented to you was A, why does Dr. Brown invent his own reader's guide to the Bible? What was wrong with God's reader's guide to the Bible? Number two is how could Dr. Brown expect that the Jew turn away from God, add a new attraction, a new magnetism into his heart? What was missing for the Jew in his devotion to God? And number three is why is Dr. Brown's presentation of the messianic prophecies tied in the knot of self-contradiction? Dr. Brown knows about these questions. These were presented to him several years ago and he has not answered them. I don't believe that if Dr. Brown has the answers to these questions, he would withhold them from the public. I believe that this tells you that Dr. Brown has no answers to these questions and it's not just Dr. Brown that has no answers to these questions. It's the church, 2,000 years of work, 2,000 years of millions of man-hours of effort did not find the answers to these questions. You see, Dr. Brown had 1,500 blank pieces of paper upon which to make his case and he couldn't answer these basic questions. I think that this tells you that Jesus is not just not the Messiah of the Jews, he's not the Messiah of anyone.  Study, analyze. Think about the questions, read and come to your own conclusions. It's not about me, it's not about Dr. Brown. It's about you and God's truth. Study and learn, analyze and may the God of truth be with you every step of the way.


if we talk about being able to self-sufficiency, then probably New Zealand, Norway, Australia, Canada, definitely Iceland too, all of them provide house owners with enough space and all have access to water sources. I agree with you regarding water. Unfortunately, the politics in New Zealand, Australia and Canada, Norway, I don't know about the situation there. I know they're into NATO's laptop, they do whatever the US tells them, right? Same with Canada, Australia and New Zealand. But the draconian, tyrannical governments in Canada, Australia and New Zealand are a huge negative in regards to putting everything in there, right? I agree regarding water, but all of a sudden, the government might come out and say, oh, you have access to good water, then we're going to tax you up the yin and yang. Oh, you have a gas stove, you're no longer allowed to use gas. So, and all of a sudden, they kick up your taxes. It's a funny game, a galaxy one. Right now, it's very dangerous to go all in on anything.


Hey guys, what is up? Welcome to my channel. So for today's video, I am going to be doing a full face of trying Tom Ford makeup products.  So if you want to see how I did that and what else I got, make sure you check out that video. But for today, I'm putting those products to use and to test out. And this is the look that I created and I've got to say I'm kind of mad at myself for how much I love these products. So if you want to see how I got this look and what I think of Tom Ford products and whether I think they are worth it or not, then just keep watching. So first of all, more important than the makeup, I bought a blazer. I've always wanted a blazer that I could wear with some jeans and like a t-shirt. So yeah, if you're looking for a blazer, H&M, I just wanted to mention that because I feel okay. Tom Ford, let's go. So I tried to only pick out the products that you can still purchase in store that I saw online. So the first thing we have is the bronzing primer. This is in the shade Resort to Pleasure. So I'm already breaking the roll. I found this online, but it's like sold out everywhere. I don't know if it will be coming back, but I just really, really want to try this. So it looks like this. Let's see if it bronzes my skin. Kind of scared. So I definitely look bronze. Okay, listen, I'm not going anywhere after this. So I'm not going to do my neck because I don't want to mess up my new blazer. But I suppose I look quite bronze. So that definitely did warm up my face. So this will be good if you self tan. I personally do not self tan, but I mean that left me quite bronze. I actually think I would really like this in the summer and it left a slight dew to my face as well. So for foundation today, I'm using the Traceless Foundation Stick. This I've had for, I bought this summer. So this might be a little dark on me. But the bronzing primer on actually is a good shade. So this foundation stick is amazing. I've had this for quite some time and I love it. It's one of the best foundation sticks I've ever tried. It's just like mad expensive, but I love it. If you're into luxury foundations, this just really makes your skin look so natural. It's not like super high coverage or anything, but that's actually one of my favorite foundations for the summer because I just kind of stick out my skin and I'll use my hands to blend it out and it doesn't need set or anything and I just look so beautiful. So I love that foundation. It's expensive, but that foundation is actually worth it. Okay, so for concealer, I actually do not own a Tom Ford concealer. And typically, for the sake of my channel, I would go out and buy concealer, but the way Tom Ford prices its makeup, I'm just going to use Charlotte Tilbury because it's expensive as well. And at my Nordstrom, Tom Ford and Charlotte Tilbury are back to back on their counters. So same thing, right? So this is just the Magic Away liquid concealer and I'm using a light shade because I'm looking a little bronzer than I was born. People really like that whole brightening effect, but honestly, it's a bit much for me. So I'm going to take a little bit of the foundation on the back of my sponge and we're just going to kind of put it all over the face just to kind of neutralize that burden. And I just love this foundation because I feel like you can never put too much on. I don't talk about this foundation enough. It is good. So here's another thing I was extremely excited about. This is the Tom Ford, obviously, shade and illuminate. This is in the shade intensity one. I sell Patrick Toll using this and I love Patrick Toll. So I'm just going to apply the contour right here. Oh, that looks scary. I like to apply a little bit higher than I normally would in an attempt to kind of raise my cheeks. Let's see how this blends. Oh, this blends nicely. Okay, so wow. That blended so beautifully. I'm a little overly bronze more than I'd prefer, but it's okay. Okay, so I just decided while editing that it is not okay. I am extremely overly bronze with two light concealer throughout the rest of the video. That is why this was just a try on. Okay, just relax. I completely acknowledge I look a little crazy, but next time I will know how to use the product hopefully and I won't make myself look like a crazy person. Yo girl was just having fun. Okay. And then we're going to use the illuminate side. I'm not really a big cream illumination person, but this is like pure glow from within glow. So with this, you're not going to get anything super beaming, but it is like super glossy looking like it looks like glass. So I did notice this did slightly pick up the foundation just a little bit on my cheek, but nothing too bad. I think that's more of a problem with the foundation rather than this, but this has like no color to it. That's not the type of illumination it gives. It's more about the finish that it gives. This is really, really pretty. I see the hype behind that one. Okay, so what I also was super pumped about was the sole contouring compact. So this one, I think you can get on Beautylish and this is sole after glow.  So I'm going to bring out my handy-dandy Tom Ford bronzer brush. I don't really need bronze, but for the sake of the video, I'm just going to kind of pat that and setting it. What is a bad idea? Oh my gosh. So I don't really want to speak too much on the color. I just kind of wanted to set the bronzer. So let's move on to blush. This is my favorite Isom X52. We're going to go into this pink. It's quite pink. She's pigmented. If you have a deeper complexion, I think you will love this blush. This is going to look so good on you. I look like I just went to the Bahamas. Okay, and then we are going to try this highlighter. So this is very, very pink. So if you don't like a pink highlighter, it won't like this. It goes very well with the blush though. So I'm going to keep it lower, more so on the blush. That's pretty. I'm interested in seeing how the bronzer and the highlight do on its own because there was a cream bronzer underneath and also a cream highlighter underneath. So that will always amplify how they work. So I will continue to test this and see how I like it on its own. I can't get over how like orange I look. So for the eyes, we have the eye color quad. This is in seductive rose. So this is in the permanent line. So I'm so happy that I picked this up. So I guess we're just going to go in with this one. I'm going to go in very lightly. Listen, if my makeup doesn't perfectly match, that's only because I'm trying to show you the products that you can still purchase. So ideally I wouldn't wear this look with this blush or be this bronze. So that just blended itself. So, um, okay. Palms can be very, very hard to work with and that just literally did it itself. I barely did anything. And now we're going to use this color right underneath the brow bone. Okay. And then we are going to use this color right here, which seems very sheer from swatching. Yeah. So this isn't giving it too terribly much payoff on the lid. It's more that finish that's showing up. So it's kind of a really soft glitter. I don't know if it's worth $88. And then I'm going to use this one more towards the front. And this looks the same as the outside color. So, I mean, okay. So look at my eyes. Really, really pretty. However, this palette is originally priced at $88. Do I think this is worth $88? No. However, the quality is good. I wish the shimmer shades gave a little more than what they gave, but I like how this plum color, it's buildable too. So you're really not just getting like one color. You can build onto it for more depth in the eye. And I didn't set my under eyes, but that's okay. And I'm going to use the highlight that was in here to highlight my inner corner. I don't know though. This stuff applied like a dream. So this highlighter definitely isn't too blingy either. So I'm going to put on some mascara really fast, and then we will move on to the lips. So just let it be known, I am not having a good hair day. So we're just gonna tuck that behind the ears. Okay, so a couple lips. Neither of them really match my look. So this first one is Wilful, which is going to be my new favorite summer color. But I'm not going to try that on in this video. And the other one that you can get so is Deceiver, which is a peachy nude. So this is obviously going to go better than the Wilful. Going to line my lips really fast. This isn't Tom Ford. This is Pat McGrath Lab contour, but it just looks good with everything. I know I love their lipsticks already. So smooth and so moisturizing. So I know this is like a little concealer lippy, but I kind of like it. So this is the final look. Now my face is a little mismatchy because I normally wouldn't pair these products and colors together. But just for the sake of the video and trying on the products that you can still get, this is what we ended up with. Like maybe not all together, but everything looks really, really beautiful. Let me just go over everything. So the bronzing primer. I love this. It really did bronze my skin. I think I'm going to love this in the summer, honestly. Put that down the neck. It's going to look beautiful. I already said my two cents on the Traceless Foundation Stick. This is phenomenal. So the shade and illuminate is really, really nice. I don't know that this is worth the price, but I'm such a cream bronzer girl that I'm so extremely happy that I bought this. The lens like a dream. I think I would go a shade down if I have the choice, but this still works. And especially once it hits summer, this is going to be more appropriate for my skin tone. I know I look a little overly bronzed right now, but it's okay. Then we have the Soleil Contouring Compact. I love everything about this. This is so luxurious. This is very pink. I don't really like how it looks with my look right now, but individually, I want to play with this stuff some more. But from what I can tell, I do really like it. That blush is very, very pigmented, but it blended really easily over a cream foundation that I hadn't set. So that's very impressive, and I love a good pink blush. This isn't that blingy, but I kind of like that. And I really can't speak on the bronzer because I really just only used it to set the cream bronzer, but I can imagine that I really like this because everything in here is so good. The next item that I talked about was the Eye Color Quad. Now, this one I'm kind of on the fence about. I don't think it's worth the money, but dang, it is amazing quality. There's something, I don't know, because there really is something special and unique about these shadows because, yeah, they aren't your typical super pigmented shadow, but that is what I like about this. It's for a specific type of person. It's really buildable as well. It blends like a dream, and I mean, I love, love, love, love my eye look. So I think in the grand scheme of things, this isn't worth the money if you're trying to be practical, but there really is something special about this formula that I really like. So, I mean, I say it's not worth it, but for somebody like me who is a makeup enthusiast, and I mean, I'm loving this look and I'm loving the quality, believe it or not, I could justify purchasing a few more of these, but it'll hurt my soul. It really would. And the last thing that I used from Tom Ford in this video is the Lip Color in the shade Deceiver. I mean, I know I love Tom Ford lipsticks. I have a couple already. I think they are beautiful quality, overpriced, absolutely. Sephora has like little smaller ones that are a bit more affordable. I would recommend you purchase those.  I don't think I would really ever purchase a lipstick from Tom Ford for full price, but they do have a lovely formula. If you're looking for comparable formulas for a little bit less money, Pat McGrath has a great formula. Hourglass has my favorite formula. Fenty has a beautiful formula. All of those lipsticks have a formula that reminds me of this. So, those are still a bit expensive as well, but they're less expensive than this. Well, crazy. But the formula is one of my favorites, absolutely. Yeah, overall, that is my opinions on the Tom Ford stuff that I got to purchase. I really was hoping I wouldn't like anything in this video because this stuff is so expensive. But I mean, Tom Ford lovers, I see what you mean. It's good stuff. Anyways, I hope you guys have found this video helpful and enjoyable. I thought it would just be fun to sit down and play with some new expensive luxurious makeup. Let me know what your favorite products from Tom Ford are, or if you haven't tried Tom Ford, what you want to try. And I will see you guys in the next video. Bye, guys. Have a great day.