SlideShare a Scribd company logo
1 of 36
Download to read offline
Modern Toolingwith
WordPress
Keanan Koppenhaver
CTO, Alpha Particle
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
@kkoppenhaver
keanan@alphaparticle.com
alphaparticle.com/chiphp
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
The Good Ol’ Days
Shared hosting
FTP Deployments
Clunkycustom field support
Difficultto monitor
Small/Medium Blogs
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
NewWordPress
How?
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Case Studies
Enterprise levelWordPress (Koppenhaver)
Cloud-scale WordPress (AWS)
This talk(You’re in the rightplace)
Thoseare high-level overviews
Let’s getinto specific tools
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Localenvironment
(unheard of in good ol’WordPress)
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
12 FactorAPp
(https://roots.io/twelve-factor-wordpress/)
Configsand .envfiles
Composer for management
File Structure
├── composer.json
├── config
│ ├──application.php
│ └── environments
│ ├── development.php
│ ├── staging.php
│ └── production.php
├──vendor
└──web
├──app
│ ├── mu-plugins
│ ├── plugins
│ ├── themes
│ └── uploads
├──wp-config.php
├── index.php
└──wp
├── index.php
├──wp-config.php
├──wp-load.php
├──wp-login.php
├──wp-includes
│ ├──A bunch ofWP files
├──wp-admin
│ ├──A bunch ofwp files
├──wp-content
│ ├── mu-plugins
│ ├── plugins
│ ├── themes
│ └── uploads
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Honorable mentions
VaryingVagrantVagrants (VVV)
Homestead
DevelopmentWorkflow
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Better plugin management
WPackagist
Repository forwp plugins thatcan be
pulled in through composer
"require": {
"wpackagist-plugin/akismet":"dev-trunk",
}
Pluginsaren’tjustfor end users
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Objects to Objects
(one of those times notto useWordpress)
Butifyou must…
Letsyou relate “objects” to “objects”and
provides queryinterface for these
relations
add_action('init', ‘register_o2o_connection');
/*Assign related galleries toasingle post*/
function register_o2o_connection() {
O2O::Register_Connection('post_galleries', 'post', 'gallery',array(
'reciprocal' => true,
'to' => array(
'sortable' => true,
'labels' =>array(
'name' => 'Galleries',
'singular_name' => 'Gallery'
)
),
'from' =>array(
'labels' =>array(
'name' => 'Posts',
'singular_name' => 'Post'
)
)
));
}
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Fieldmanager
Custom fields…defined in code
Helps deployfields throughVCS
instead of relying on the DB
add_action( 'fm_post_post', function() {
$fm = new Fieldmanager_Group( array(
'name' => 'contact_information',
'children' =>array(
'name' => newFieldmanager_Textfield( 'Name' ),
'phone' => newFieldmanager_Textfield( 'Phone Number' ),
'website' => new Fieldmanager_Link( 'Website' ),
),
) );
$fm->add_meta_box( 'ContactInformation', 'post' );
} );
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
QueryMonitor
Helps you seewhat’sactuallygoing on
Debugs SlowQueries, Load time,
Template loading, hooks, transients,
and more
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Rewrite Rules Inspector
Necessarywhen doing custom URL
rewrites
Letsyou putinaURLand see the
rewrites thatmatched
Can flush permalinkfrom inside plugin
Templating
Timber letsyou use twig template
Eliminates alotofWP ugliness
<?php
$thumb_id = get_post_thumbnail_id($post->ID);
$url=wp_get_attachment_url($thumb_id); ?>
<img src="<?php echo $url; ?>"
alt="Thumbnailfor <?php echo $post->post_title; ?>" />
<img src=“{{post.thumbnail.src}}"
alt="Thumbnailfor Timber" />
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Wp-cli
Command line interface to interactwith Wordpress
Mostactions thatcan be undertaken with Wordpress
can be done through the command line
Wp core update
wp plugin install
Custom cli commands (migration, scripting, etc)
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Functions.php
Splitfunctions.php into multiple parts
template-tags.php, media.php, etc
Betteryet, if functionalitycan be encapsulated,
splititoutinto aplugin
Use namespaces to ensureyour functions don’t
conflict, because everything is global
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Frontend
You can use sass,justenqueueyour compiled
css
You can use webpackor gulp or npm or
whatever
Basically, findawayto outputacompiledJS/CSS
fileand you can use it
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Frontend (pt2)
You can havean entirelydecoupled front-end
oraSPAtype of site
WP RESTAPI (in core since 4.7)
Caveat:Auth is hard
Caveat2: Plugins
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Coding standards
Usefulwhen workingacrossateam
Phpcs andWPCS
WPCSactually includes:Wordpress-core,wordpress-
docs,Wordpress-extra(WPCORE++),Wordpress-vip
Can be hooked up toyour editor to run on save
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
And finally…
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Please useversion control
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Version control
Some of the bestpracticeswe have covered
helpwith this
avoid constantfunctions.php merge
conflicts
Don’tversion controluploads…or plugins
(ifyou’re using composer)
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Deployment
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
THe firstrule of deploymentis…
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
NO FTP
(Mostly)
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Deployment
Can useanything thathooks intoVCS
Trellis (uses bedrockand deploys
through Ansible)
Deploys should be the leastpainful
partofyourworkflow
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Other considerations
Php7
Gutenberg/react
keanan@alphaparticle.com
AlphaParticle
@kkoppenhaver
Questions?
@kkoppenhaver
keanan@alphaparticle.com
alphaparticle.com/chiphp

More Related Content

What's hot

How to Troubleshoot & Optimize Database Query Performance for Your Application
How to Troubleshoot  & Optimize Database Query Performance for Your ApplicationHow to Troubleshoot  & Optimize Database Query Performance for Your Application
How to Troubleshoot & Optimize Database Query Performance for Your Application
Dynatrace
 
Rails Plugins 1 Plugin
Rails Plugins 1 PluginRails Plugins 1 Plugin
Rails Plugins 1 Plugin
oscon2007
 
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Simplilearn
 
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Simplilearn
 

What's hot (20)

We broke up with the monolith, and started dating #eventSourcing - #symfonyCat
We broke up with the monolith, and started dating #eventSourcing - #symfonyCatWe broke up with the monolith, and started dating #eventSourcing - #symfonyCat
We broke up with the monolith, and started dating #eventSourcing - #symfonyCat
 
2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services Singapore2nd AMIMOTO: WordPress + Amazon Web Services Singapore
2nd AMIMOTO: WordPress + Amazon Web Services Singapore
 
Spring Boot Omakase: A Fast-Paced “Chef’s Choice” Dive into Fun and Useful To...
Spring Boot Omakase: A Fast-Paced “Chef’s Choice” Dive into Fun and Useful To...Spring Boot Omakase: A Fast-Paced “Chef’s Choice” Dive into Fun and Useful To...
Spring Boot Omakase: A Fast-Paced “Chef’s Choice” Dive into Fun and Useful To...
 
How to Troubleshoot & Optimize Database Query Performance for Your Application
How to Troubleshoot  & Optimize Database Query Performance for Your ApplicationHow to Troubleshoot  & Optimize Database Query Performance for Your Application
How to Troubleshoot & Optimize Database Query Performance for Your Application
 
Dev ops with smell v1.2
Dev ops with smell v1.2Dev ops with smell v1.2
Dev ops with smell v1.2
 
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014
 
Serverless a superpower for frontend developers
Serverless a superpower for frontend developersServerless a superpower for frontend developers
Serverless a superpower for frontend developers
 
Enabling Microservices @Orbitz - Velocity Conf 2015
Enabling Microservices @Orbitz - Velocity Conf 2015Enabling Microservices @Orbitz - Velocity Conf 2015
Enabling Microservices @Orbitz - Velocity Conf 2015
 
Ansible ALLTHETHINGS
Ansible ALLTHETHINGSAnsible ALLTHETHINGS
Ansible ALLTHETHINGS
 
Serverless observability - a hero's perspective
Serverless observability - a hero's perspectiveServerless observability - a hero's perspective
Serverless observability - a hero's perspective
 
Rails Plugins 1 Plugin
Rails Plugins 1 PluginRails Plugins 1 Plugin
Rails Plugins 1 Plugin
 
Bluetooth Over-The-Air Firmware Update
Bluetooth Over-The-Air Firmware UpdateBluetooth Over-The-Air Firmware Update
Bluetooth Over-The-Air Firmware Update
 
DevOp with Me!
DevOp with Me!DevOp with Me!
DevOp with Me!
 
Laravel website security and performance optimization guide (pro tips to fine...
Laravel website security and performance optimization guide (pro tips to fine...Laravel website security and performance optimization guide (pro tips to fine...
Laravel website security and performance optimization guide (pro tips to fine...
 
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
 
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
Chef vs Puppet vs Ansible vs Saltstack | Configuration Management Tools | Dev...
 
WP-CLI Presentation from WordCamp NYC 2015
WP-CLI Presentation from WordCamp NYC 2015WP-CLI Presentation from WordCamp NYC 2015
WP-CLI Presentation from WordCamp NYC 2015
 
Developing Skills for Amazon Echo
Developing Skills for Amazon EchoDeveloping Skills for Amazon Echo
Developing Skills for Amazon Echo
 
Panoramic view of web APIs
Panoramic view of web APIsPanoramic view of web APIs
Panoramic view of web APIs
 
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
Chef Tutorial | Chef Tutorial For Beginners | DevOps Chef Tutorial | DevOps T...
 

Similar to Advanced WordPress Tooling

Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The Cloud
Carlos Sanchez
 

Similar to Advanced WordPress Tooling (20)

Voice is the New Keyboard - Voice Interfaces in 2018 and Beyond
Voice is the New Keyboard - Voice Interfaces in 2018 and BeyondVoice is the New Keyboard - Voice Interfaces in 2018 and Beyond
Voice is the New Keyboard - Voice Interfaces in 2018 and Beyond
 
AWS CDK introduction
AWS CDK introductionAWS CDK introduction
AWS CDK introduction
 
Scaling Complexity in WordPress Enterprise Apps
Scaling Complexity in WordPress Enterprise AppsScaling Complexity in WordPress Enterprise Apps
Scaling Complexity in WordPress Enterprise Apps
 
Integration Testing in Python
Integration Testing in PythonIntegration Testing in Python
Integration Testing in Python
 
Embrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with RippleEmbrace NoSQL and Eventual Consistency with Ripple
Embrace NoSQL and Eventual Consistency with Ripple
 
The Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/PressThe Enterprise Wor/d/thy/Press
The Enterprise Wor/d/thy/Press
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The Cloud
 
Performance
PerformancePerformance
Performance
 
Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!Apache and PHP: Why httpd.conf is your new BFF!
Apache and PHP: Why httpd.conf is your new BFF!
 
ServerTemplate Deep Dive
ServerTemplate Deep DiveServerTemplate Deep Dive
ServerTemplate Deep Dive
 
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
 
Revoke-Obfuscation
Revoke-ObfuscationRevoke-Obfuscation
Revoke-Obfuscation
 
(WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
(WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014(WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
(WEB304) Running and Scaling Magento on AWS | AWS re:Invent 2014
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Real-World Pulsar Architectural Patterns
Real-World Pulsar Architectural PatternsReal-World Pulsar Architectural Patterns
Real-World Pulsar Architectural Patterns
 
WordPress Continuous Maintenance
WordPress Continuous MaintenanceWordPress Continuous Maintenance
WordPress Continuous Maintenance
 
NDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my MoncaiNDC 2011 - Let me introduce my Moncai
NDC 2011 - Let me introduce my Moncai
 
Building a WordPress plugin
Building a WordPress pluginBuilding a WordPress plugin
Building a WordPress plugin
 
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 

More from Keanan Koppenhaver

More from Keanan Koppenhaver (11)

The WP REST API as the Foundation of the Open Web 
The WP REST API as the Foundation of the Open Web The WP REST API as the Foundation of the Open Web 
The WP REST API as the Foundation of the Open Web 
 
Selling DevOps To Non-Technical Management
Selling DevOps To Non-Technical ManagementSelling DevOps To Non-Technical Management
Selling DevOps To Non-Technical Management
 
Debugging Tips and Tricks
Debugging Tips and TricksDebugging Tips and Tricks
Debugging Tips and Tricks
 
Contributing to WordPress - #WCNYC
Contributing to WordPress  - #WCNYCContributing to WordPress  - #WCNYC
Contributing to WordPress - #WCNYC
 
Contributing to open source as a non developer - #wclax
Contributing to open source as a non developer - #wclaxContributing to open source as a non developer - #wclax
Contributing to open source as a non developer - #wclax
 
WordPress Debugging Tips and Tricks
WordPress Debugging Tips and TricksWordPress Debugging Tips and Tricks
WordPress Debugging Tips and Tricks
 
WordPress Debugging Tips and Tricks
WordPress Debugging Tips and TricksWordPress Debugging Tips and Tricks
WordPress Debugging Tips and Tricks
 
Your WordPress Site Has Been Hacked: What Now?
Your WordPress Site Has Been Hacked: What Now?Your WordPress Site Has Been Hacked: What Now?
Your WordPress Site Has Been Hacked: What Now?
 
Enterprise-Scale WordPress
Enterprise-Scale WordPressEnterprise-Scale WordPress
Enterprise-Scale WordPress
 
WP REST API - Adding Your Own Endpoint
WP REST API - Adding Your Own EndpointWP REST API - Adding Your Own Endpoint
WP REST API - Adding Your Own Endpoint
 
routrr
routrrroutrr
routrr
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Advanced WordPress Tooling