The Defensive Situations Guide and our 225+ drill library — the same tools trusted by coaches nationwide — now in your pocket. Browse by position, read the steps, run the drill.
$19.99 one-time download
40Defensive Situations
225+Practice Drills
8Positions Covered
⚾️
40 SituationsDigitized guide
📋
225+ DrillsEvery position
10,000+Players & Coaches
225+Practice Drills
40Game Situations
1App For Practice
Drill Library
Train by category
225+ drills organized by position — Hitting, Pitching, Catcher, Infield, Outfield, and every infield spot — so practice time never gets wasted on the wrong skill.
Browse drills by position or category
Free and premium drills built in
Simple, mobile-friendly experience
Drill Details
Master every detail
Every drill breaks down setup, coaching points, equipment needed, and the purpose behind it — so there's never any guesswork at practice.
Clear step-by-step setup for every drill
Coaching points and equipment needed
Purpose and benefits behind every rep
Defensive Situations Guide
Every situation, covered
The same 40-situation guide trusted by coaches nationwide, now digitized. Pick random, browse the full library, or jump to a featured situation.
All 40 real-game defensive situations
Pick random or browse the full library
Featured situations, hand-picked to focus on
Visual Diagrams
See the play
Clear positioning diagrams for every game-like scenario, so every player always knows where to be and what to do.
Diagrams for cutoffs, relays, and coverage
Instructions for every position's role
Built for coaches, players, and parents
Drills By Position
Built around your lineup
Every position gets its own dedicated set of drills, so practice time is never wasted on the wrong skill.
HIT
Hitting
Swing mechanics & approach
P
Pitching
Mechanics & command
C
Catcher
Blocking, framing & throws
IF
Infield
General fielding fundamentals
1B
First Base
Footwork & scoops
2B
Second Base
Double plays & range
SS
Shortstop
First step & arm strength
3B
Third Base
Reaction & hot corner reads
How It Works
From download to first rep
1
Download the app
Get it on iPhone or Android for a one-time $19.99 and create your account in under a minute.
2
Browse by position or situation
Pull up drills by category, or jump straight to a defensive situation you're working on.
3
Read it, then run it
Every drill includes clear step-by-step instructions and the equipment you'll need — ready for the field, the cage, or the driveway.
Is this the same Defensive Situations Guide I already know?
Yes — the same 40 situations and diagrams, now built into the app so it travels with you instead of living on a shelf.
Who is the app for?
Players, parents, and coaches — anyone running a practice, a private lesson, or working on their own game at home.
Is there anything else to buy?
The app is a one-time $19.99 download — no subscription required.
What devices does it work on?
The app is available on iPhone through the App Store and on Android through Google Play.
Stop guessing. Start practicing smarter.
Every situation and every drill, organized and ready to go — the next time you step on the field.
// Show only the relevant store badge/link on mobile devices.
// iOS -> App Store only. Android -> Google Play only. Desktop/other -> show both.
(function () {
var ua = navigator.userAgent || navigator.vendor || window.opera || '';
var isIOS = (/iPad|iPhone|iPod/.test(ua) && !window.MSStream) ||
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1); // modern iPadOS reports as Mac
var isAndroid = /Android/i.test(ua);
var root = document.getElementById('mba-app');
if (!root) return;
if (isIOS || isAndroid) {
var hideSelector = isIOS ? '[data-store="google"]' : '[data-store="apple"]';
var toHide = root.querySelectorAll(hideSelector);
for (var i = 0; i < toHide.length; i++) {
toHide[i].style.display = 'none';
}
}
// Point the single "Get the App" pricing CTA at the right store too.
var priceCta = document.getElementById('mba-price-cta');
if (priceCta && isAndroid) {
priceCta.href = 'https://play.google.com/store/apps/details?id=com.mariettabaseballacademy.premium';
priceCta.textContent = 'Get it on Google Play →';
}
})();
var iconic_wsb_frontend_vars = {"ajax_url":"/wp-admin/admin-ajax.php","nonce":"dbfd319f93","fbt_use_ajax":"1","is_checkout":"","i18n":{"error":"Please Try Again","success":"Added to Cart","add_selected":"Add Selected to Cart","disabled_add_to_cart":"Please select a variation before adding the selected products to your cart."},"modal_options":{"showCloseBtn":false}};
//# sourceURL=iconic_wsb_frontend_scripts-js-extra
jQuery(document).ready(function(){
jQuery(".pb_img_thumbnail").on("click",function(){
var clikedElID = jQuery(this).attr("id");
jQuery("#pb_lightbox"+clikedElID).css("display","block");
});
jQuery(".pb_single_img_lightbox").on("click",function(){
jQuery(this).css("display","none");
});
jQuery(window).scroll();
});
(function($) {
/**
* Copyright 2012, Digital Fusion
* Licensed under the MIT license.
* http://teamdf.com/jquery-plugins/license/
*
* @author Sam Sehnert
* @desc A small plugin that checks whether elements are within
* the user visible viewport of a web browser.
* only accounts for vertical position, not horizontal.
*/
$.fn.visible = function(partial) {
var $t = $(this),
$w = $(window),
viewTop = $w.scrollTop(),
viewBottom = viewTop + $w.height(),
_top = $t.offset().top,
_bottom = _top + $t.height(),
compareTop = partial === true ? _bottom : _top,
compareBottom = partial === true ? _top : _bottom;
return ((compareBottom <= viewBottom) && (compareTop >= viewTop));
};
jQuery(document).on("click", 'a[href^="#"]', function (event) {
event.preventDefault();
var clickedLinkElAttr = jQuery(this ).attr("href");
if(typeof(jQuery(clickedLinkElAttr).offset() ) != "undefined"){
jQuery("html, body").animate({
scrollTop: jQuery(jQuery.attr(this, "href")).offset().top
}, 500);
}
});
})(jQuery);
if(typeof pluginOpsCheckElViewFrame != "function" ){
function pluginOpsCheckElViewFrame (el) {
if (typeof jQuery === "function" && el instanceof jQuery) {
el = el[0];
}
if( typeof(el.getBoundingClientRect) == "function" ){
var rect = el.getBoundingClientRect();
windowInnerHeight = window.innerHeight;
if(rect.height >= windowInnerHeight){
rect.height = windowInnerHeight - 50;
}
docClientHeight = document.documentElement.clientHeight;
if( rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= (windowInnerHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth) ) {
return "InView";
}else{
return "NotInView";
}
}else{
return "Function didnt work";
}
}
}
jQuery(window).scroll();
//# sourceURL=pluginops-landingpage-scripts-inline-js-footer-js-after
document.addEventListener( 'wpcf7submit', function ( event ) {
var detail = event.detail || {};
if ( 'mail_sent' !== detail.status ) {
return;
}
var apiResponse = detail.apiResponse || {};
if ( ! apiResponse.fb_pxl_code ) {
return;
}
try {
var s = document.createElement( 'script' );
s.textContent = apiResponse.fb_pxl_code;
document.head.appendChild( s );
} catch ( e ) {
// no-op
}
}, false );
(function() {
// Always start from a fresh object: a `||` fallback would keep a same-named DOM element alive.
window.wcAnalytics = {};
const wcAnalytics = window.wcAnalytics;
// Set the assets URL for webpack to find the split assets.
wcAnalytics.assets_url = 'https://mbaseballacademy.com/wp-content/plugins/jetpack/jetpack_vendor/automattic/woocommerce-analytics/src/../build/';
// Set the REST API tracking endpoint URL.
wcAnalytics.trackEndpoint = "https://mbaseballacademy.com/wp-json/woocommerce-analytics/v1/track";
// Set common properties for all events.
wcAnalytics.commonProps = {"ui":0,"blog_id":214105619,"store_id":"9e9485fd-e095-4895-b00c-6f417d1ee0ad","url":"https://mbaseballacademy.com","woo_version":"11.2.1","wp_version":"7.1.3","store_admin":0,"device":"desktop","store_currency":"USD","timezone":"-04:00","is_guest":1,"package_version":"0.18.0"};
// Set the event queue.
wcAnalytics.eventQueue = [];
// Features.
wcAnalytics.features = {
ch: false,
sessionTracking: false,
proxy: false,
};
wcAnalytics.breadcrumbs = ["app"];
// Page context flags.
wcAnalytics.pages = {
isAccountPage: false,
isCart: false,
};
})();
// Listen for clicks on the entire document
document.addEventListener('click', function(event) {
console.log(event.target.dataset)
// Check if the clicked element has the 'track-click' class
if (event.target.classList.contains('trk-clk-ulbp')) {
// Get the unique ID from the data-id attribute
const elementTxt = event.target.dataset.btntxt;
const elementUrl = event.target.dataset.btnhref;
// Create a FormData object to send data
const formData = new FormData();
formData.append('clicked_element_text', elementTxt);
formData.append('clicked_element_url', elementUrl);
formData.append('clicked_element_psid', 35314);
//console.log(formData.get('clicked_element_psid'));
// Use the Fetch API to send the data to our PHP script
fetch(
"https://mbaseballacademy.com/wp-admin/admin-ajax.php?action=ulpb_rc_current_usr_click&POPB_CTA_Nonce=4143ebe46f"
, {
method: 'POST',
body: formData
})
.then(response => response.text())
.then(data => {
console.log(data); // Log the response from PHP (e.g., "Success!")
})
.catch(error => {
console.error('Error tracking click:', error);
});
}
});