This talk was given by Victor Ramirez and took place at WordCamp Atlanta in 2019.
I recently joined Dow Jones as a WP developer. I discovered not everyone was a WP developer but PHP or other developers who did some WordPress. I had to figure out how to win adoption of ‘the WordPress way’ across multiple countries, devs, stakeholders, & online publications. We also had to make sure that legacy plugins, tools, etc kept up with the new changes of WordPress 5. I’ll share how I won adoption and coordination by using Git for collaboration, regularly scheduled meetings (without death by meetings), & creating standards. I’ll also give a peek at pitfalls to avoid when trying to work within org that never did remote before & worked with multiple outside agencies.
- The definition of “done” in a plug-in repository across internal organizations.
- CICD that all stakeholders can understand.
- Continuous Integration, Deployment, and Testing as “Spell Check” for developers.
Transcription (via Otter)
Victor Ramirez 00:00
Victor Ramirez 06:01
So I’m gonna go through some concepts first about how to think about standards, and then it will make sense and then hopefully, it’ll help you make sense of the next two sections. So when you’re building a WordPress website, the one thing that I’ve really pushed is that when in my opinion, when you build a WordPress website, you want a fleet vehicle, not a race car. So what do I mean by a fleet vehicle? The Toyota Camry, if you go to New York City, every single Uber, I’d say like 90% of yellow cabs are a Toyota Camry and the Toyota Camry is one of the most stolen vehicles in the United States. And there’s a reason for that. They’re 20 to $40,000, which is a reasonable price, right? Toyota, when they build the car, they use the Kanban process. They actually have an actually Kanban was invented by Toyota. So if you guys like Trello, JIRA, anulus things, people don’t realize this. This is literally before the 70s people were just smashing rocks together and hoping things would be built. Then someone invented Kanban, right. One model per factory when they build a Toyota Camry, they only build one they’ve I think they built I think they build a car here in Georgia. I don’t know, I don’t know. But they build a Toyota, they bought a Sienna, each factory builds one model of one car. OEM standards only when they go in if you go and like put some crazy, you know, 30 inch muffler that makes your car sound like a bass drum going down the street, you voided your warranty, and you don’t get the 100,000 mile Toyota warranty, right. And there’s a warrantied life expectancy. So you know exactly this car. When you buy a Toyota Camry, it’s going to last you 10 to 15 years, good for 100,000 miles. And that’s great. And that’s how a website should be right? Shouldn’t our websites we can say like, Okay, this was built, right? Even if my theme breaks, I can swap out any theme, because it was built the WordPress way. And therefore, like, it’s easy to maintain. But that’s not how people build websites. That’s not how hotshot developers build websites. Oh, by the way, limited specialization for staff throw a rock, you’re gonna have a Toyota drive a Toyota mechanic, right? This is a hot rodder bill, they’re 50,000 to $250,000. And you know, people like to write big checks. They’re built to spec fully custom, one or two vehicles per garage, not productize. So meaning like, they’re only building one or two vehicles, maybe a backup vehicle for when they go and race, right. There’s no standards, and there shouldn’t be standards, right? If I’m trying to win a NASCAR race, I’m going to Formula One, we have to like throw everything we can every idea for some nos in there. I don’t know Pixy dust whatever else they use, right. And there’s no warranty when you go and like blow a gasket or like, you know, flip your car or whatever you do. You can’t take it to the to repair shop, you have to call an extremely specialized pit crew. And this is real math, I went and checked out how much the pit crew to maintain a pit crews a half million to $1 million a year, because their union in some states and you can’t just you can’t just call them Hey, man, I want to be my pit crew. No, you need to maintain a specialized peak group of developers. And that’s where I get to most people, including enterprise, they build their websites like hot rods. And that’s like, I’m all for that if you’re the if you have the budget. But when outside of Dow Jones when people come to me and they say my budget is only $10,000 Over the next two years. I put them on something like a framework like theme beans or Genesis because I say you don’t have a developer, you don’t have a development team. And therefore you don’t want to have to call it pit crew to maintain it. You want people to throw rock in Brooklyn and find someone that knows how to use this thing, right? Second, you can’t just hire smart people. Hiring smart people is not a way to solve a problem. And what do I mean by that? Google this if you want to be horrified. Doctors don’t wash their hands. Notoriously. It’s a notorious problem in the United States healthcare system is notorious problem in western medicine in Eastern Europe. What they’re now doing in some hospitals is they make doctors do UV spray, they get sprayed with UV paint. They have to come off and wash their hands. Why did doctors not wash their hands because their people know their people. they’re just like us, right? They go on the golf course they hit like 18 holes or feeling hot, they’re awesome. They got to get in there and do some brain surgery. So instead of doing the, the quick, they do a quick wash, right. And they think they’re good because they’re a doctor, they’re smart, they didn’t touch anything when they came in, but that leads to contamination. And people change. People just forget things all the time, right? Life changes, career changes, opportunity changes, financial changes, passion changes, you have a doctor and or a developer who just you know, they just don’t care anymore, because, you know, they’re moving to the next job, right? So that’s why you need standards. The other thing is people have different definitions, the standards, stakeholders, how do we benefit organizations? Can we maintain it? Developers? Do I understand it? Users? Does this meet my needs? Vendors? What is the scope, they want to maintain that tight scope, right. And if you don’t define these standards, in the beginning, all of these people are not going to be happy. Finally, the other concept that I try to push for standards is trust, but verify.
Victor Ramirez 10:58
So that just goes back to the thing of the handwashing like you even though doctors, look, doctors are really smart people, they go to school for 810 years, but they won’t wash your hands. So when anyone says to me, we hired really smart developers, we don’t need any of this. I say doctors don’t wash their hands, did you hire a bunch of doctors, they’re still not going to do what you told them to do, because that’s just how life is right. So trust, but verify. And for further reading, I really recommend these two books, the E Myth by Michael Gerber and the art of the steal by Frank addict now, which is if anyone saw Catch Me If You Can, that’s actually his business book that he wrote on how to catch people stealing. And people don’t hit the crux of the book is people don’t steal because people are bad. People steal because of opportunity. And people change. That’s it. So let me go through some real problems. Problem number one, no definition of standards. This is one of the first things I run into. And again, outside of Dow Jones, I work with other agencies in New York City, I consult startups, and I work with some accelerators. And the number one thing I find is there’s they’d never take the time to define the standards. And so just real quick math, you know, if you have imagine that you’re maintaining 10 organization websites, right. 10. CMS is and maybe you farm it out to five different vendors. And you end up with 30 different developers over the course of a year, you have unlimited outcomes, right. And that’s dangerous. So one of the things we did was we went and internally, you need to internally define standards. So for example, and people will say, well, our developer is going to define the standards, which developer, right, and if you’re not a developer, and you need to define standards, work with a developer define the standards, but don’t just let them go cart launch, right. And the same thing, Toyota doesn’t let the fact the parts that the part company has defined the standards, they define the standards, the OEM standards, and they say, this is how our mufflers fit. This is how this fit. This is how this fits, right. So the solution for us is an SME, sorry, subject matter experts, or myself and a couple other people on our team. We’re continually reviewing friction points caused by bad standards and adapt in sprint. So we work in sprint cycles. Every two weeks, we’re going back through all you know, we kind of did what did we learn Charlie Brown and say, Hey, what did we do wrong? What was the problem? It took, like, we had to have three hours of conversations just to understand how this API worked, right? And that’s one of the things that drives me nuts. Sometimes people give us a plugin. And they’ll say, well, any developer can really figure that out. And I go, it took me three hours to figure that out yet. I went to Google’s. And by the way, if you guys don’t know, Google has a machine learning free open source software called TensorFlow. In about one hour, I built a machine learning bot that pick movies for me, without ever calling Google. Yet it took me three hours to understand how a simple Gutenberg block work for an agency. Do you see that? Do you see that the disconnect there? Next, definitions have done this is another problem I run into. We have 10 different teams with a lot of vendors, we have teams all over the world. And these 10 different teams build plugins. And every single one of them we’re missing an item. And what I’m actively working on for us is what is the definition of done for a plugin, right. And this is my growing definition of a complete plugin, a GitHub repo with organizational owner permissions, you’d be amazed how many people we forget, when we adapt the plugin. We don’t have owner permissions on the GitHub repo. Clearly defined file header, there’s file headers, we’re just like, you know, the WordPress file header when you make a plug in or theme. It defines what the link is. And, you know, it says like visit here, we now have a link to our own internal intranet to say to people, Hey, if you need help, or you know, you want like, so you can add those things before they were just generic links that went nowhere write a complete readme for the lowest common denominator. So what I always say is, and that goes back to the TensorFlow thing, I can learn machine, I can do machine learning in two hours, but it takes me like five hours to figure out what your plugin does, right? And that’s a problem. Now do that times, you know, 30 developers, 100 developers, different team members, right? And so when I say make a readme, so we have to figure out what kind of stake holder, look at this and understand how this team could use this plugin, branching structure. So making sure that, you know, sometimes developers, they’ll commit everything to the main master branch, right. And so we define that we have a Dev, QA and production. And I have some resources, if anyone’s not working in that kind of workflow at the end of this. But yeah, so making sure your proper branching structure for our plugins, a defined style in ES lint. So remember, I said, if you guys aren’t non developers, if you guys remember I said, Hey, like, if they forget a word, or they forget this, and they forget that, you know, have those standards, you can define a style in ES lint, org wide and on a plugin basis, so that no matter who pulls the plugin, they get your coding standards or your linting standards by default, when they pull it into their development environment. Clearly defined directory structure. So and, you know, going back one slide, if you remember, we had 10 different teams, I’d say, out of let’s say this, like six out of the plugins that we pulled in,
Victor Ramirez 15:59
Victor Ramirez 19:43
Victor Ramirez 24:03
So here are the tools and assets that we’re building, we are gonna be open sourcing some of them, so follow me on Twitter. Hopefully at the end of the year, we’re gonna have some of these available. But the other thing to remember is, anyone can build these tools. Just listen to Picasa is my favorite saying, good artists borrow Great artists steal? Their like, I did not invent any of this. I literally just listen and I’m, like, cortado parent, like, I just listen. And I just like repeat what I hear, right? Of course, they like filter it sometimes. But I didn’t think of any of these. I just looked at what’s going on in the development world. And I said, Wow, I learned TensorFlow machine learning in one hour because they had a great readme YouTube video and accompanying blog post. Maybe we should make that for Gutenberg. Right? And so what we have done is we’ve created a readme boilerplate. Someone comes in and says, Hey, what are your readme standards? Here you go video at the top or a GIF. This, you know has to have a heading and one of the other benefits to have a really great readme. You guys may not realize this but you guys notice like the wordpress.org repository for the plugins. All of them have like a nice heading a nice text. And I swear, do you think someone’s manually going and writing that in? No, it pulls from the readme, because there’s a standardized readme format that is required to submit to the wordpress.org repo. So because we have standardized our readme, now we have our own intranet site where any stakeholder can go in and view all the plugins that we have and assets that are available. So any developer that comes on, I just tell them go to our intranet. And then for your plugin, we will plug in boilerplate, which includes our phpcs, or styling or ES lint and other any other configurations. So that way, when someone comes in, they fire up the IDE, they pulled on the plugin, and it auto configures for VS code or PHP storm, whichever one they want to use. We have a Gutenberg plugin boilerplate that uses WP scripts a singular dependency, we have that well documented and tell people how to fire it up what files you need to change, etc. We have a theme boilerplate, we do not use a framework, we do have our own theme, that we have a theme boilerplate at my company, but I prefer Genesis. So again, thinking about a standard theme or framework that you can use to build off of. And then we have a CMS handbook and knowledge base, a lot of it just links to standard WordPress stuff. But there are certain things where we have different standards that we have defined. And then the other thing we you don’t have to this, but again, defining it. For some smaller teams, I just recommend using a local by flywheel or VVb. But making sure you’re all in the same thing, like I get it developers have their preferences. In my, in my personal company Abstract, I do have some people who are like, I prefer this and like, that’s cool, I’m not paying you for that I’m paying you for this. And so use this standard I don’t. And if you have to do the work there and move it over, that’s on you, but I’m not paying you for that, right. And that and that’s like something, you know, it is it was good to get some hard medicines sometimes. And then these are standard processes. We have our dev workflow, which is again, when a developer commits code, it gets tested and put it into dev, a dev environment. And then once that’s tested there, and it passes, then it goes to QA. In QA, we do integration regression testing. And then once it passes that we go to production, we use Jenkins for our CI CD. So remember, I said you guys like before, for non developers, like it’s essentially some system that will go through and check you Jenkins is it’s like a scripting system. And same with Travis, you write these scripts and these commands, and haven’t run these tests. And it will do those things where reject you. It doesn’t have to reject, you can have hard pass soft pass different things. We do unit testing, regret. And again, like I said, regression testing, and that’s just making sure that oh, sorry, regression testing, just making sure that anything that you know, work before works. Now, integration testing is putting it in making sure that you know all doing actual live testing and making sure it works with everything.
Victor Ramirez 27:49
And these are some resources. There was actually a great talk about the technical side of this, you may not have gone but one of the guys from WP Engine automating WordPress development with Chris Weidman, that guy that actually everything I kind of learned about CI CD I just took from WP Engine. WP Engine has amazing resources on that. And they actually make it really stupidly easy to see ICD. There’s an application called deploy bot, there’s one called Code ship. And I think some of them even have like you eyes to write tests where you don’t even have to, like, know how to write tests, you just go and they even have consultants that will help you out. And I put that article in there to continuous integration with WP Engine deploy bot. But the number one thing I find and just in closing, so many people get like, yeah, we want to do CI CD and react and modern development tools. And you know, all these buzzwords, but what does that really mean? And what is the benefit, right? And so what I hope to give you guys for this talk was don’t I’m working in reverse, I’m thinking about what are the standards that we want. And then this is actually the easy part. If you find a developer or you work with a partner like WP Engine, or you work with a partner like Kinsta, they can help you get this together. But if you don’t know why you’re defining these standards, this is like the biggest waste of time. Like I actually worked with a team recently, their version of CI CD was like, checking that all divs had classes. And I was like, okay, like why do we care about that? Is that really going to move the needle? And they’re like, we hate divide us and Bootstrap like, oh, okay, like, but that’s not a business. I don’t care, like, you know, and that and people will just write tests for the sake of tests, but think about what really moves the needle in your organization. And that’s it. I’m gonna tweet the slides after this. And we’re open for q&a. I left like 10 minutes for questions, guys. So like, please, if I’m over if I overwhelmed you, I’m sorry about
Chris talked about Jellybean.
Victor Ramirez 29:41
I have not
syntax basically to put in. Yeah, I guess it’s on good. Oh, cool. He talks about that one. Yeah.
Victor Ramirez 29:55
Actually, so I’m assuming something like WP enforcer might enforce WP standards. Yeah. And
when you push it, you know for, for basically, you know if you’re gonna use it with obviously get it basically QA is for developers.
Victor Ramirez 30:15
Victor Ramirez 34:11
Yeah, I keep forgetting to repeat the questions. Yeah. So the question was that we are, are we using headless WordPress? And yeah, we are using headless WordPress with the WordPress REST API. But in what’s happening is we’re going to the WordPress REST API, grabbing that data. And then in our plugin, we’re modifying it to match our JSON standards. What we didn’t want to do was modify our object, you know, our data types for WordPress. Instead, we’re modifying on the fly when it gets published for our system, because you know, we would have to modify then hundreds of 1000s of websites, we’d rather just modify one WordPress to match our standard. And you any other questions? What’s the craziest block you’ve built so far? So the craziest block that we built so far is Dow Jones has a prop Right as a bunch of proprietary API’s, but one of the blocks that we’re currently messing with is a chart block. So we’re allowing people to grab real time data from different datasets that Dow Jones has, and then manipulate that data into a chart to display and tell the story. And that is actually way more complex than it sounds because it’s not really a data problem. The API is actually the easiest part if, and, and not to, like insult what I do. But as a developer, once you’ve like, once you know how to pull from an API, you know, how to indicate, you know, like, what, you know, how manipulate the data, put it where you want it. That’s the easy part, right? And then now we solved the dependency issue. So that’s another easy. That’s it, we’re making it easier. Now. It’s a user experience problem. What do we want to let people do right? And so one of the things without getting too heavy to the chart API, we recently built a byline block. So if anyone’s not familiar, like a byline is like by you know, Victor Ramirez. And let’s say Brett, right. And so when every, we didn’t build that in a uniform way, what happened was, before I came on, everyone was already building it. So one agency built it. Were in the Gutenberg sidebar, they could search for names and then drag the name into the byline. Okay. Then one team went and built it, where you would type a name. And then there’d be a drop down of all the available names, you’d select the name, hit a plus to add another name. Okay. I thought that was weird. And what they were doing was they were bringing in what I the way that I saw it was ACF into WordPress, because that’s the that’s how WordPress forums work. Right? That’s what I think ninja forms is like that. You drag things from the side, Gravity Forms like that. You drag things to the side, right? And that’s how WordPress does things. But in my mind, I was like, and this was this is what made it difficult, by the way. I said, Well, how, how does it work in the wild? without us having to train users. I didn’t even get into that in here without having to train users are number one when it comes to user interfaces and user experience? Our number one competitor is Domino’s. That sounds weird, right. And I literally say this to every stakeholder. And here’s why. You guys know this is web developers, non technical stakeholders have no concept of what the cost or scope is of a technical problem, right? So when I order I haven’t ordered Domino’s in a while, but like, when you if anyone has tried to try it just ordered Domino’s, for the kids. See, this is pretty cool. You ordered Domino’s on the website, and there’s a Domino’s tracker, you literally can see when the pizza goes in the oven, when the dude has it in the car, and you can cheer him on and like even tip some extra money if he gets in the car earlier, right? That’s my user experience for $10 Pizza. Right? So why in God’s name for a $100 form block or a $500? This block or a $50,000? Enterprise plug in? Do I have this horrible user interface? Right? So that’s why I say Domino’s is our competitor because people a $10 pizza has an amazing user experience. Right? So what I did was went and looked in the wild instead, what is the user experience when you’re adding names to something Facebook app, Twitter app, you know, and all these other things. So in the Gutenberg,
Victor Ramirez 38:13
the Gutenberg package on the GitHub repo, it’s not well documented, there is an auto Completer. Right. And the default autocomplete er in WordPress, in Gutenberg, if you guys want to Gutenberg right now, and do that it goes and searches the profiles from your WordPress site. Right. But we didn’t need that we want to pull from external authors, right? Because one person might be writing the story. But there might be five editors on a story, right? And so we did was we with Gutenberg, you can either learn this on the fly, by the way, it’s not documented. But we disabled the standard app, right. And with the autoprefixer package that is available in Gutenberg, you can make any autocomplete er you want. So what we did was we made an autocomplete or block for the byline. That when you add instead of pinging the internal REST API, and that’s how they get the author’s we pinged an external API, just via fetch, which is a standard es six, again, very simple. Just fetch to our external API. And as the person types, it goes and searches all the names. And then they, when they find the name they want, they hit enter, and the name populates, and it goes to the next space they want. And, and even better in Gutenberg because we didn’t expect people to know to do at when they dropped that block, you can do there’s packages to build tooltips. So have you ever like hovered over something in Facebook and it says, like, Hey, do this, if you’re trying to do that, you know, that’s available in Gutenberg. It’s not documented again, but like we said, we went, it’s documented, okay, but they don’t really tell you, by the way, you’ve seen this in Asana and Facebook, so you may want to use it. So now that’s one of our requirements on every single block requires a tooltip if someone hovers for more than five seconds or something, right, and so that tooltip then says press apt to start searching authors, right. And then the other thing we did was, now that byline block, we also restricted that that autocomplete only works in the byline block. If you try to instantiate or press the Add symbol in any other block, it doesn’t work. And that block is restricted to only be used once. If you try to use that block again, it’s not available. It’s not available in the drop down list. And that was like, now that I went through a lot, right, that’s a lot of stuff to do. But think about that I essentially made my own like, Asana experience, and it was so we had a hackathon recently where all the teams got together. And when we demoed our byline, everyone’s like, well, we’re stealing that like, and I was like, please do and, and now, instead of thinking about each of us making our own block, now the next problem is how do we add a filter? So people can add different API’s? How do we, you know, modify? And how do we, and by having standardization were bigger like that? And that was a similar thing with the chart block? Because now back to the user experience problem? Do we have a drop down? Do we have autocomplete? That’s not really I think, appropriate for chart? Do we? what users are have what API’s available to them? If they’re a bankruptcy desk writer, what API’s do they need, if they’re a mergers and acquisitions writer, what do they need? If they’re just a contractor, and we don’t want them to have access to really sensitive data? What does that mean? And that’s, that’s a really complex problem, because who’s using it? Who’s writing it? Who’s authorized? How does it look? And those are really interesting problems, you can solve now that you have Gutenberg, because I wouldn’t even know how to begin to do that in an in a form interface in a form interface that would just you know, it might look like a nightmare and too many options. Right? So if I overloaded you, sorry, but Yeah. Next question. So I have a question about,
have you thought has your team thought about the issue of content, and API is changing over time? So let’s say that you have a story that is using a blog that has an API? And then I mean, it was possible that never ever, ever go in and edit it three years from now or five years from now. But what happens if that block is not available then? Or for charts? Okay. Yep, yep. Okay, so let me so just to repeat the question,
Victor Ramirez 42:02
I was just asked, What do you do with the API is no longer available? Or the API changes? Are things like that? Right? existing content, right? For existing? Written with? Without, but with beer, same with Gutenberg, right? With the API right at the time, but it doesn’t matter, right. So some API’s you have no control over. And some API’s. If we tried to do this, we’d violate their standards. So for example, the Instagram block, right? There’s certain blocks where we essentially say, and sometimes agencies are like, Oh, we don’t really like the block from the default standard WordPress, we’re gonna build our own. And I said, Hold on a second, who’s gonna build it? Who’s gonna maintain it? What are the standards? So for example, the Instagram block, right, the beauty of the Instagram block is, don’t try to build a custom just use the standard Instagram block, it’s pretty good. Like, I don’t care what there can’t be a feature that you want to have to maintain that, because the Instagram API is changing so often, right? But let’s look at the chart API. We thought about that. We said, Hey, we want the chart data live in the editor. But what’s great about Gutenberg is there’s two functions, there’s an edit function, which dictates how it works in the editor, then there’s the save function, which dictates how it looks to the viewer and in your database, right? We flatten the chart, we capture it as an image. And then we save that to the database. And that image is then forever in perpetuity available. And that that’s really cool. Because that was immediately we had that same that was the exact same issue to think about, what if all of our API’s changed, we have our keys changed when the site goes down, we want these you know, this. And also the one thing, we’re actually going to limit the amount of stories in our WordPress instance, to keep it fast. So there will only be like 100 to 500 stories at a time. Once the story has been in there for like six months, it will get dumped and put into our into our custom API storage base. Because we want the site to be fast, you don’t want 5000 posts. And if someone wants to edit an old post, they have to go into the AR System, grab the key, and they can input it and re instantiate the story. So those are like really, and that’s interesting problems to solve. Because you have to think about that, right? When API’s disappear. One thing change. And that’s, I think, one of the scary things about Gutenberg, it’s going to force you. And this is the one thing I say we just brought on some new developers, I tell them, like, you can’t use Stack Overflow, you can’t use Google. You can’t use anything. Like you have to literally go into the Gutenberg GitHub repo, or go for Richard tambores stuff. By the way, if you want to fork anything. Look at Richard tambores code blocks, I still have stuff about him to drink. So if you’re even, but um, you know, or Coca Cola blocks, look at atomic blocks, look at stackable, we go and look at those and we and that and that’s kinda like we borrow from. But it’s a really interesting challenge and that kind of stuff. If you think about it, what do you do in the API disappears? That stuff that we don’t have to worry about right now and WordPress really, right, because we’re not giving the React thing. If it disappears, we can like do an interesting image, but that’s not predefined for us. Right? So yeah, so that’s what we’re doing to solve that. How am I doing on time? I was gonna question I think we’re Whatever the question was, What am I doing for state management? So we’re just using the standard Redux wrapper. What’s in? Yeah, so we don’t know. So anything. So we’re trying to really just stick to the word. My goal is to stick to vanilla WordPress. So we’re trying to be as vanilla as possible, anything where we have to, like, pull in, like, you know, someone was like, Oh, I really don’t like this about the Gutenberg thing, or I don’t like this, or this could be better, or Isn’t there a better this we could do? And it’s only I’ve never seen something that’s 10 times better. It’s always something that’s like 10% better, and maybe saves one of our developers 15 minutes. But the one thing is as, and that’s like, you know, and I apologize anyone who uses this, but like twig press or not deliberately press what is it called timber twig versus someone’s twitter handle timber, right? Or like timber? And like all these like, or like,
Victor Ramirez 45:52
Brett helped me out? What does that thing called? What are these these custom theme frameworks, that kind of, like, reconfigure WordPress to be in different folders? There’s, there’s all these like, you know, frameworks out there, where they reconfigure WordPress, right. And a lot of people say, you know, you’ll see on advanced WordPress, people will say, Oh, well, like any developers gonna be able to figure that out in 10 hours anyway. Right? Okay, cool. I have 100 developers, and now I have to spend 100 hours or 1000 hours for them to get up to speed. Now for my team that makes an unhappy developer, they’re on salary anyway, doesn’t cost me more money, but it’s a waste of time. For vendors, I now have to pay that vendor money. And there’s a diminishing ROI. Unless we’re using that across all our systems, right? And then I can’t go and recruit in the standard WordPress community, I have to find someone who knows this really abstract concept, right? And so that too, when any, when you start thinking about anything like because I know, tribe event, the guys who have event the event plus modern tribe, they made their own wrapper for Redux. Right. And that was the big conversation advanced WordPress, where Yost and everyone else said, now you’re gonna have to maintain that right? And I guess if they’re doing enough business to maintain their own Redux wrapper, their own Redux, great. I don’t want to maintain that your enemy, I don’t want to deal with that. And it’s like about what, you know, what’s going to move the needle right. Now, for example, with that chart system, if we had to come up with our own state management, that would make sense because Dow Jones, our money is data, we trade information, right? That’s something where I’d make our own state management system, right? But you have to think about what’s if it’s, if it’s not going to give you 10 times the ROI. If it’s like a 10% Bump, don’t even don’t even do it stick to vanilla WordPress. I’m very opinionated, by the way. So if like anyone doesn’t like what I say it’s fine. Sorry. Cool. Any other questions?
Next, with this whole group, project, changing widgets, header menu.
Victor Ramirez 47:46
Victor Ramirez 51:44
Are you in neutral open for the online websites? Looking at amp stories?
Victor Ramirez 53:24
So that’s not our team? That’s the doubt. So we call that downstream, like the people were doing the websites. They’re doing amp stories. But back to so the question was, are we looking at amp stories, if everyone’s not familiar, like in Instagram, there’s stories where you click the story, and it goes through. Google is now launching its own version of stories. So when you go in, click a link in Google, it will be a swipeable story. And so I think that’s kind of nightmarish because I am in my browser, and now I click a link and I have a story. But there is a people, it shows high engagement for both Instagram and Facebook. So with Gutenberg, you can go and build your own app stories builder, but it would have to be set. You know, you have to now that’s a user experience problem, right? Because there’s a startup that I work with outside of Dow Jones called Whippets. And what they do is you give them you give them an article, and they go and find using machine learning and AI, the most important phrases in that article, and then they turn that they match it with stock video footage, or like Getty footage, and turn that into a video. So if you guys ever seen Bloomberg, any Bloomberg video that has text overlays on stock footage and news footage that’s generated by a bot called widgets, and all the editor does is they go in and say that phrase makes no sense. Give me another one, the BOC gives another one. That video makes no sense. Give this one instead. And it’s doing that right. So it would be great if we could do something like that where we read the blog post and go based on his blog that you gave us. Here’s your amp story with five images and five phrases that were the most important quotes right But that’s something you could do now, because now we can bring in TensorFlow for machine learning. We could bring in React to do kind of like, you know, the modal experience of editing the story before they go to publish. And so that’s the kind of stuff you can do now with Gutenberg. And that’s the people really aren’t doing because they’re not thinking like that, where it’s like, yeah, I think, how do we bring an amp story into Gutenberg? So
well, Excel up and is working on the plugin ANP stores? The ANP plug in? Yeah. Right now we’re releasing the beta to also have stories
Victor Ramirez 55:32
interesting. But I think but I think the thing too, is, how do you get people to do it, right? Because the thing is, like, everyone guys, like how many times you read a blog post, there’s no featured image, there’s no seo keyword, you gotta you have to make the user experience. easy for people to do it like and that’s the same thing. We even with Gutenberg. Now, we have it where like, if you put a blockquote and don’t put an attribution, you can’t publish every blockquote must have an attribution. If an image doesn’t have a caption with an attribution you cannot publish. And so those are the kinds of things you can do in Gutenberg, you couldn’t do in the standard, Tiny MCE editor for each of those individual components. So cool. I think it’s time, right. All right. Cool. All right. Thank you so much, guys. I hope you enjoyed it. I’m gonna post the slides.