My Streaming Setup

I have been asked several times over the past few weeks about what kinds of equipment I use for doing live streams from my home. I’m writing this as a way to share that knowledge broadly, but also as a way to evaluate whether I might be making this more complicated than it needs to be. I will write a companion post about the software I use in the near future.

The Hardware

I use quite a selection of hardware, from lights to cameras, PCs, desks, LEDs, mice, keyboards, and other controllers. We’ll go through each one of them, what they are, where you can get them, and what purposes they serve. I’ll also list pricing when I can. All of the prices are in USD.

Lighting – Elgato Key Light ($199)

The key to good video quality starts and ends with lighting. Yes, a good camera can help, but if your lighting isn’t good, it won’t matter how good your camera is. I use the Elgato Key Light. It is incredibly bright, has adjustable colors from warm to cold white light, and is controllable via an app on my PC and my phone. It also comes with its own mounting arm, which many other lights do not include. I actually have two of these, but one should be sufficient for nearly every application. You’ll also find, as I go through this list, that I am quite happy with the Elgato line of products. They make a second, less expensive light called the Elgato Key Light Air, but it is half as bright, and still costs $129. If you really want to keep your costs down, I’ve also had good luck with the NEEWER USB Dimmable LED Video Light ($44.99). You get two of them in the pack, which is more than enough light, and they’re small, so they’re a great choice if you’re taking your stream on the road!

Camera(s) – Sony a6000 DSLR ($648), Logitech BRIO ($199), Logitech C922x ($129)

I actually have several cameras as part of home office streaming setup, but for most people that are just starting out, I would recommend using the Logitech C922x. It’s significantly cheaper than other options, and it’s an excellent webcam. That being said, let’s talk about why I have several cameras in my setup.

Main CameraSony a6000. This camera is amazing, but it also costs WAY more than a regular webcam. Using a DSLR will make a remarkable difference in your video quality, but it also comes at a price. In addition to that price, it is unfortunately designed to run on rechargeable batteries. This isn’t ideal for a static streaming setup, but thankfully they make a power supply cable (for another $139.). There seem to be generic versions of this cable available, but the official Sony version is expensive. Finally, there’s the connection from the camera to your PC. For this, I use a micro-HDMI to HDMI cable ($10.99), which plugs into an Elgato CamLink 4K ($129).

I use this camera as my primary angle focused on my face. A DSLR gives so much more depth to the video than you can get with a standard webcam, and I think that once you have an audience, this should be your first upgrade. (That being said, this is close to $1000 in total for everything.)

Sony a6000

Overhead CameraLogitech BRIO. This is the best sub-$200 webcam I’ve found, and I’ve used (and purchased!) plenty. Like most webcams, it plugs into my PC via USB directly. No additional devices or cables necessary. I currently have this mounted in a unique “top down” angle in my studio, which is very useful for when I’m doing things with my hands, like building hardware (or Lego!), or sorting baseball cards. This is most certainly not a required angle for any streamer, but it’s a fun way to mix things up when it makes sense. I’ll cover how it is mounted in the “Camera Accessories” section.

Logitech BRIO

Office CameraLogitech c922x. This is a workhorse of a camera for the price. You will not regret this purchase in the slightest. I’ve had one of these for years, and it has never failed me. It is currently my resident “wide angle” shot in my office studio, and does a great job of capturing the entire environment I’m streaming from. It’s a fun, unique way to show people exactly how I’m streaming, and it feels a little “behind the scenes.”

Logitech c922x

Your iPhone or iPad – I’m currently using the iPhone 11 Pro Max, but literally any Apple phone or tablet made in the past 5 years is sufficient. The key to this camera is to use a small tripod or mount, and a USB connection to your PC. There is a fantastic app called OBS Camera that will easily allow you to grab the live video feed from your phone as a camera input for your stream. It’s a camera you already own, and it’s probably better than any webcam option you can find.

Camera Accessories

With cameras comes accessories. You need mounts, tripods, power supplies, and extension cables. This section covers all of those extra parts and pieces.

Elgato Cam Link 4K ($129) – This is the device that connects my DSLR to my PC over USB 3.0. It can take any HDMI connection and connect it to your PC as a video input.

Elgato Cam Link 4K

Sony ACPW20 Adapter ($139) – This outrageously overpriced power cable for the Sony a6000 allows it to run continuously without replacing batteries. It’s unfortunately totally worth it for your streaming setup the first time your battery dies mid-stream.

Sony APCW20 Adapter

Amazon Basics Lightweight Camera Tripod ($18.58) – Initially, I had my camera mounted on top of my monitor. But I found that every time I bumped or nudged the desk, the monitor would move a little, which would also shake the camera. It was like I was recording myself during a bunch of minor earthquakes. Using a tripod gives me the stability I’m looking for (especially using a DSLR), and also gives me more choices for height and angles.

UTEBIT C-Clamp Camera Mount ($25) – This has become my go-to for most of my camera mounting needs. It can adjust to nearly any size shelf or tabletop, and offers three different mounting positions. It is incredibly well made, lightweight, and easy to install.

C-Clamp Mount

Ulanzi Aluminum Phone Tripod Mount ($14.95) – There are plenty of phone tripod mounts out there, and most of them are plastic, with a spring-based tension system. I really liked this one for the durability of aluminum, and the ability to tighten it manually.

Elgato Stream Deck XL ($250) – This is like the command center for streaming. Each of the individual buttons can be programmed to perform a number of tasks, from opening apps or websites, to changing your camera angles and scenes of your stream. You can even hook them up to IFTTT to make all sorts of things happen! This is the 32-button configuration, but there is also a 15-button and a 6-button option for smaller budgets.

JACKYLED Power Strip Tower ($38.99) – This is an amazingly helpful power strip. It contains 12 well-spaced power outlets (for those bigger plugs), and 5 USB charging ports. For most streaming setups, this is the only thing you need.

JACKYLED Power Strip Tower

JACKYLED 6-port Power Strip ($23.99) – Another well-spaced power strip. I have two of these mounted under my desk with 3M strips as a great way to conceal many of the wires that are running between me and the PC.

JACKYLED 6-port Power Strip

Anker 10-port USB 3.0 Hub ($52.99) – It doesn’t matter how many USB ports you think you need on your PC, you will need more. This device can connect 7 additional USB 3.0 devices to your PC, and has enough power to charge 3 more.

Anker 10-port USB 3.0 Hub

Vari Single Monitor Arm ($125) – I actually have two of these, but they are super strong, easy to install, and easy to use. I have one for each of my two monitors. It also has an adjustable height, which was not common on most of the monitor arms I looked at.

Vari Single Monitor Arm

3.5mm Audio Switcher ($23.99) – If you’ve ever wanted to seamlessly jump between your speakers and your headphones, you’ve probably looked for one of these. I simply run the audio output from my PC to this little switch, and then plug in both my speakers and my headphones to the two outputs. Pressing the toggle button will allow you to switch between them instantly without messing with cables or software. It also has a dial for volume, making it much easier to adjust on the fly.

The Desk

I teetered between a number of great choices, but I ended up landing on the Autonomous Smart Desk 2 ($379). It’s a motorized adjustable standing desk that comes in a variety of colors and finishes, and was remarkably easy to assemble. I actually have my entire setup oriented “long-ways” to give me the depth I need for everything to fit on the desk. I have the model shown in the photo, which is white tabletop on white legs.

SmartDesk 2 - Home Office -
Autonomous Smart Desk 2

The PC

Last, but certainly not least is the PC I’m using for streaming. This section includes the keyboard, mouse, monitor, speakers, mouse pad, and all of the internal parts, including the processor, video card, and capture card that I’m currently using. Be prepared for LOTS of RGB lights.

FLOPAD RGB Large Mouse Pad ($29.99) – To protect my desktop surface from wear, I wanted a large mouse pad that could hold my devices, but also look cool. This one hits the mark. It’s got a dynamic LED strip around the entire edge, and lots of modes to suit your mood. Also, it’s HUGE. At 32″ wide, it’s actually a little wider than my desk.


Aukey LED Mechanical Gaming Keyboard with Blue Switches ($69.99) – If you like that “clicky” sound from your keyboard, this will be a winner for you. A very satisfying click from a very colorful keyboard. Aukey really made a nice tool here, and the software for it gives you infinite control over how it illuminates. I absolutely love this keyboard.

Aukey LED Mechanical Keyboard

AOC CQ32G1 31.5″ Curved Frameless Monitor ($319) – Finding a curved monitor at this size that was also compatible with a VESA mount was more difficult than I expected. Several Samsung models appeared to work, but when they arrived, they didn’t have any mounting holes on the back of the monitor. This screen is huge, beautiful, and can handle everything I throw at it.

AOC CQ32G1 31.5″ Curved Frameless Monitor

Razer Nommo Chroma Speakers ($149) – Initially, I got these for the LED rainbow glow underneath them, but these are also fantastic speakers. I have been asked to turn them down on a number of occasions, so I think they’re sufficient. They also connect via USB or 3.5mm audio cable, which is nice.

Razer Nommo Chroma

Rode Podcaster Studio Microphone ($299) – This microphone was one of my first purchases for this entire kit. You can actually get the microphone by itself for $229, but the boom arm and cage will prove invaluable to you almost immediately. Every time you touch your desk to type, or just to rest your elbows, a microphone sitting on that surface will get bumped and make a sound. By elevating the microphone into the air, and putting it in an elastic cage, you get the perfect serene sound of only your voice. It should also be noted this is a USB microphone, not an XLR. If you get an XLR microphone (which is what most every high end mic uses), you will also need an additional device to import that audio into your PC. A USB mic makes it just slightly easier, and still has a premium sound.

Rode Podcaster Studio Microphone

Glorious Model O Gaming Mouse ($98.75) – I’m a bit surprised by the price on this mouse, because I don’t remember spending close to $100 for it. That being said, it is absolutely the best mouse I have ever used. Incredibly responsive, great responsive clicks. Even the scroll wheel is satisfyingly good.

Glorious Model O Gaming Mouse

Lian Li Lancool II White ($84.99) – Never mind that I clearly love white devices with RGB lighting, this case won me over with its magnetic hinged doors. Nearly every other case I looked at used some kind of screw to hold the doors in place, and this one was brilliant enough to add hinges and magnets to make it super easy to open and modify. It also runs super quiet.

Lian Li Lancool II

G.Skill TridentZ RGB Series 32GB DDR4 3200Mhz DIMM ($139) – I don’t really have much of a preference for brands of RAM, but these were pretty.

G.Skill TridentZ RGB Series RAM

Elgato 4K60 Pro Capture Card ($235) – This fancy piece of hardware lives inside my PC, but its job is to capture the output of another HDMI device, like my MacBook Pro. This allows me to plug any device into the machine, and capture its output. There is also a non-4K version of this device, but it’s not significantly cheaper.

AMD Ryzen 7 5800x ($450) – The newest generation of processors are incredibly hard to find because flippers are buying literally ALL of them and selling them for 2x on places like eBay and Amazon. That being said, this is unquestionably the fastest machine I have ever used, for gaming, programming, or anything else. It’s remarkable.

AMD Ryzen 7 5800X Review | TechPowerUp

MSI GeForce RTX 3070 ($539) – Ah, the GPU. The card from where all of the graphical goodness flows. I know nothing about video cards, or tweaking performance, or any of that. I DO know that I can run every single game I own at full specs, though, so that’s cool.

MSI GeForce RTX 3070

Enermax ETS-850 Air Cooling Fans ($65) – Another product I bought more for the look than the name, these white fans have more lights in them, and as such, were a winner in my book. They also run very quietly, however. My machine is practically silent.

The Backdrop

I actually get just as many questions about the items in my stream’s backdrop as I do about the hardware I stream with. So here’s a list of the items I have lighting up my background.

This image has an empty alt attribute; its file name is sony-a6000.png

NanoLeaf Shapes – Mini Triangles Smarter Kit ($100) – NanoLeaf has a very solid product on their hands. These lights can be controlled by Alexa, but you can also toggle them to respond to music and sounds, and all sorts of different modes and colors. The beginner kit only comes with 5 triangles, but the expansion kit includes 10 more for the same price. They even have an online tool to decide what shape you want to configure them in!

Nanoleaf Shapes - Mini Triangles Smarter Kit (5pk)

LIFX Beam ($149) – First, these are sold out everywhere, and if they aren’t, they’re being sold at incredibly inflated prices. That being said, these are the highlight of my wall. They animate, can make millions of colors, and have tons of great pre-created themes to choose from. Alexa is capable of managing these lights at a far more granular level than most lights I’ve seen. Each set is one shelf in my setup, and as soon as they are back in stock, I’ll be picking up a third set for the top shelf.


Govee Dreamcolor LED Light Strip ($49) – I have tried and sampled dozens of different types of LED strips, and these are hands-down the kings. Great app, lots of options, works with Alexa, responds to sounds and music. It also has the best adhesive of any LED strip I’ve found. I still recommend using these strip clips for mounting them, but the ones in my office aren’t clipped. Govee makes many different types of LED strips, so make sure the box actually says “Dreamcolor” on them or you might be buying something a little lower quality.

IKEA Bergshult / Granhult Combination ($59) – I have six total shelves holding all of those Funko Pop figures, and they’re just simple shelves from IKEA. The nickel hardware looks great, and reflects the lights quite well. They even offer a connector bracket to put two shelves next to each other.

BERGSHULT / GRANHULT Wall shelf combination, white/nickel plated, 31 1/2x7 7/8 "

LaMetric Time Wi-Fi Clock ($199) – This is the dynamic little display that lives just over my left shoulder. It has lots of apps that you can configure for your social channels, and you can even create your own. Mine currently loops through stock prices, the date / time, my Twitch followers, TikTok followers, YouTube followers, GitHub followers, and Twitter followers. It’s a fun, dynamic device, but the price is a bit high.

Tips & Tricks for Playing Video with APL and Alexa

I am currently in the process of building an Alexa skill that contains all of the knowledge of the Star Wars Universe.  This includes characters, droids, weapons, vehicles, planets, creatures, and even different species and organizations.  It also includes the ability to request the opening crawl videos from each of the movies in the Star Wars saga, and the trailers for the movies, television shows, and video games.

It’s the videos that have brought me here to share what I have learned.

Alexa is available in a wide variety of devices.  Some small, some big, some with screens, others without.  For those devices with screens, I want to be able to provide my users with a simple workflow.

  1. Ask for a specific video.
  2. View the requested video.
  3. Continue the conversation when the video ends.

For the first two steps, this was surprisingly easy to implement using Alexa Presentation Language (APL.) . For the third step, it required some research and trial and error, but I have it working successfully now.

Identifying the Video a User Requested

While there is nothing complicated about identifying a user’s request, I’ll show you how I am handling this so that if you want to build your own version of this, you have everything you need.

In my Interaction Model, I have an intent called “CrawlIntent.”  This is there to handle all of the ways a user might ask to see the opening crawl of a specific film.  It looks like this:

  "name": "CrawlIntent",
  "slots": [
    "name": "media",
    "type": "Media"
  "samples": [
    "show me the {media} crawl",
    "{media} crawl",
    "can I see the {media} crawl",
    "show the crawl for {media}",
    "for the {media} crawl",
    "to show the crawl for {media}",
    "show me the {media} opening crawl",
    "{media} opening crawl",
    "can I see the {media} opening crawl",
    "show the opening crawl for {media}",
    "for the {media} opening crawl",
    "to show the opening crawl for {media}",
    "play the {media} opening crawl",
    "play the {media} crawl"

When a user says something to my skill like one of the utterances above, I can be confident they are looking for the opening crawl video for a specific film.  I also have a slot, called media that contains a list of all of the films and shows that I want my skill to be aware of.

  "values": [
    {"name": { "value": "Battlefront 2","synonyms": ["battlefront 2", "battlefront"]}},
    {"name": { "value": "Clone Wars","synonyms": ["the clone wars"]}},
    {"name": { "value": "Episode 1","synonyms": ["the phantom menace"]}},
    {"name": { "value": "Episode 2","synonyms": ["attack of the clones"]}},
    {"name": { "value": "Episode 3","synonyms": ["revenge of the sith"]}},
    {"name": { "value": "Episode 4","synonyms": ["a new hope", "new hope"]}},
    {"name": { "value": "Episode 5","synonyms": ["empire", "the empire strikes back", "empire strikes back"]}},
    {"name": { "value": "Episode 6","synonyms": ["return of the jedi", "jedi"]}},
    {"name": { "value": "Episode 7","synonyms": ["the force awakens", "force awakens"]}},
    {"name": { "value": "Episode 8","synonyms": ["the last jedi", "last jedi"]}},
    {"name": { "value": "Episode 9","synonyms": ["rise of skywalker", "the rise of skywalker"]}},
    {, "name": { "value": "Rebels","synonyms": ["star wars rebels"]}},
    {"name": { "value": "Resistance","synonyms": ["star wars resistance"]}},
    {"name": { "value": "Rogue One","synonyms": ["rogue one a star wars story"]}},
    {"name": { "value": "Solo","synonyms": ["han solo movie", "solo a star wars story"]}},
    {"name": { "value": "The Mandalorian","synonyms": ["the mandalorian"]}}
"name": "Media"
This slot allows me to match the user’s request against the list of items my skill can handle, using Entity Resolution.  This allows me to be certain that I’m choosing the right video for their request.


Playing A Video Using APL

For the code of my skill, I am using the Alexa Skill Kit SDK.  This makes parsing through the JSON that Alexa provides far easier, and gives me greater control over building responses for my users.

To add APL to my skill’s response, I do something like this:

var apl = require("apl/videoplayer.json");
apl.document.mainTemplate.items[0].items[0].source = media.fields.Crawl;
  type: 'Alexa.Presentation.APL.RenderDocument',
  token: '[SkillProvidedToken]',
  version: '1.0',
  document: apl.document,
  datasources: apl.datasources

Line #1 refers to the location of my APL document.  This document is the markup that tells the screen what to show.  Line #2 is dynamically updating the source of the video file to be played, so that we can play the appropriate video for the appropriate request.

As you’ll see in the APL document below, we define a Video element, and include a source property that indicates a specific URL for our video.

The important lesson I learned when building this is that I don’t want to include any speech or reprompts to my user in this response.  I can send this APL document to the user’s device, which immediately starts playing the video.  This is completely counter-intuitive to everything I’ve ever considered when building an Alexa skill, but it makes sense.  I’m sending them a video to watch…not trying to continue our conversation.

Adding an Event to the Video When It Is Finished

Finally, I had to do some exploration to figure out how to not only identify when the video has concluded, but also prompt my skill to speak to the user in order to continue the conversation.  This is done using the onEnd event on the Video element that we created earlier.  Here is the entire APL document.

  "document": {
    "type": "APL",
    "version": "1.1",
    "settings": {},
    "theme": "dark",
    "import": [],
    "resources": [],
    "styles": {},
    "onMount": [],
    "graphics": {},
    "commands": {},
    "layouts": {},
    "mainTemplate": {
      "parameters": [
      "items": [
        "type": "Container",
        "items": [
            "type": "Video",
            "width": "100%",
            "height": "100%",
            "autoplay": true,
            "source": "",
            "scale": "best-fit",
            "onEnd": [
              "type": "SendEvent",
              "arguments": [
              "components": [
          "height": "100%",
          "width": "100%"
    "datasources": {}
This is the second lesson that I learned when building this.  By adding this onEnd event, when the video finishes playing, it will send a new kind of request type to your skill: Alexa.Presentation.APL.UserEvent. You will need to handle this new event type, and prompt the user to say something in order to continue the conversation. I included the argument “VIDEOENDED” so that I’d be confident I was handling the appropriate UserEvent. Here is my example code for handling this:
const VideoEndedIntent = {
  canHandle(handlerInput) {
    return Alexa.getRequestType(handlerInput.requestEnvelope) === 'Alexa.Presentation.APL.UserEvent'
    && handlerInput.requestEnvelope.request.arguments[0] === 'VIDEOENDED';
  handle(handlerInput) {
    const actionQuery = "What would you like to know about next?";
    return handlerInput.responseBuilder
With these few additions to my Alexa skill, I was able to play videos for my users, but bring them back to the conversation once the video concludes.
Have you built anything using APL?  Have you published an Alexa skill?  I’d love to hear about it.  Share your creations in the comments!

Introducing the Smart Deck

We recently renovated our 15-year old wooden deck, and I wanted to share with you how we created a smart deck.  Here’s what it looked like before we started this project (we had already cut the benches up before I took the photo):


This video illustrates how it has changed pretty well.

The technology behind everything is actually pretty simple.  For the floodlight, it’s a standard floodlight hooked up to a WeMo Light Switch.  I’ve had this switch installed for about three years now, and it’s still the perfect solution.  We have 6 more of these throughout our house.

For the colored lights in the deck itself, I took a chance on a set of LED lights that I found on that were listed in the “Works with Alexa” category.  They’re made by a company called FVTLED.  Could not be happier with how they turned out.  Each 10-light kit costs about $100, but has a wi-fi module, a remote control, and an outdoor power supply as part of the kit.

You couldn’t see them in the dark (and I didn’t want to turn them on and wake the neighbors), but there are two speakers connected to a Bluetooth receiver mounted above the deck as well. This allows me to pair an Alexa device, or my phone, to the receiver, and play music through the speakers.

The Grace Digital receiver is small.  Maybe 6 inches wide, and 10 inches deep.

Grace Digital GDI-BTAR513 100 Watt Digital Integrated Stereo Amplifier with Built-In AptX Bluetooth Wireless Stereo Receiver

The Yamaha speakers are pretty standard outdoor speakers.  I had to run speaker wire to them, and they don’t require any additional power to run them.

Yamaha NS-AW150WH 2-Way Indoor/Outdoor Speakers (Pair, White)


Overall, I’m pretty happy with how this turned out.  I don’t actually expect that I’ll be running techno dance parties with flashing colored lights, but I love that I have the option.  Most of the time, I expect to be running standard white (or off white) colors.

Have you done anything cool to improve your outdoor living space?  I’d love to see it!

Making An Alexa Raspberry Pi

Last week, I ordered all of the bits and pieces I needed to get a Raspberry Pi configured to become an Alexa device.  It was incredibly easy, the tutorial was very straightforward, and I ended up with something that can do this:

What You Need

If you want to try this, here’s what you’ll need (links and prices from Amazon):

Optionally, you might want to protect your Raspberry Pi if you plan to take it anywhere.  They make a very nice, inexpensive case for it:

Finally, there are a few things you’ll need to get it running, but these are things I assume you probably have.  If you don’t, I’ve recommended some with the links.

  • USB keyboard & mouse (Logitech MK270 Wireless USB keyboard and mouse – $19.95)

    I like this one because it’s small, compact, and easy to travel with.  Most travel keyboards are garbage, so I tend to lean towards smaller, full-function keyboards instead.  (My primary keyboard is a Das Keyboard, much bigger and clickier.)

  • HDMI monitor (there are way too many options here, any monitor will do. I’m hunting for a tiny one I can travel with.  Like 5″ or smaller.  But in a secure case, since it will likely see the bottom of my backpack occasionally.)
  • Micro-USB Charging Cable (you literally have 100 of these in a drawer. Any of them.)
  • 3.5mm audio cable
  • Literally ANY speaker that can take a 3.5mm audio cable as input (I used the Nokia MD-12 for mine, but you can certainly find cheaper speakers if you need one.)


The How-To

I would normally give you a run-down of the steps I took, and the issues I faced, but there simply isn’t much point in that.  I followed the provided tutorial on GitHub, and it was one of the smoothest experiences I’ve ever had setting something like this up.

My Takeaways

I’m working on a few things to enhance the experience, but here’s my takeaways:

  1. If you ONLY want an Alexa device, this is probably not the project for you.  The Echo Dot is $49.99, and doesn’t require any setup to work.  This project, at a minimum cost, is about $53.15.  That being said, having an Alexa device that can also run some other services is really compelling.  Adding a touchscreen to it would allow you to see the “cards” that Alexa skills produce at, for example.
  2. Each time you power up the Raspberry Pi, you have to manually start all of the services again.  I’m hoping that with some creative effort, this might not always be true, but there’s some authentication that happens that requires your monitor, mouse, and keyboard every time you power it up.  (This is why I’m looking for travel keyboards and monitors.)
  3. This was one of my first experiences in the Raspberry Pi ecosystem, and I’m very excited by what I found.  There are tons of accessories to enhance and protect your device, and I’m looking forward to seeing where I can take this project forward.




Blitzball Strike Zone

A couple of years ago, I played a few rounds of whiffleball with my friends Ryan and Travis Lowdermilk.  Travis went so far as to build a strike zone out of PVC and sheet metal, and it was an amazing amount of fun.

Since that time, I’ve seen all sorts of awesome things about the Blitzball, including the guys over at Dude Perfect.

This past weekend, I decided I needed to make one for myself.  This is the final product:


The rest of this post is about how I built it, so if that sort of thing isn’t for you, here’s something fun to watch instead.

The Supplies

It’s a pretty affordable setup, made entirely of PVC, sheet metal, and zip ties.

Total cost?  $41.45 with 7.5% sales tax.

The Frame

I knew that I didn’t want to have to cut the sheet metal.  I’d do a poor job, and it was pretty close to the standard strike zone size, give or take an inch or two.  This meant that I needed to make a PVC frame that would hold a 24″ x 36″ piece of metal, with a little space to give.  I ended up setting my dimensions of the inside of the frame to be an inch larger in both directions, 25″ x 37″.

This meant cutting out these pieces:

  • 2 x 37″ (sides)
  • 1 x 25″ (top)
  • 2 x 4.25″ (bottom)
  • 1 x 12″ (bottom)

Because we’re using the Tee joints to connect to the base, I had to break the bottom up into three separate pieces, that’s why you see those cuts in the list.  The entire frame should be able to come from ONE of the 10′ PVC pipes.


When it’s assembled, it looks like this:


The Base

I know, I know, you’re all about that base.  I saw some photos of a strike zone that another person had built, and it had angled legs that reminded me of how a catcher sits behind the plate.  I decided to emulate that look, because it looks cooler.

The cuts you need for the base are here:

  • 1 x 23″ (front)
  • 2 x 16″ (sides)
  • 2 x 12″ (legs)
  • 2 x 7″ (connect to frame)


When you assemble the base, it should look like this, where the legs tilt in towards the center a bit:



I would generally recommend using some PVC primer and cement at this point.  It will make your strike zone virtually indestructible.  That being said, I simply used a rubber mallet to make sure all of my pieces were completely connected, and that seemed to make it strong enough.

Put Them Together!

Once you’ve gotten the two sections cut and assembled, put them together!  Your strike zone should resemble the one below.  (See how much cooler the angled legs look?)


Paint It!

At this point, you could say you’re done with the frame, but I highly recommend painting it.  Pick your favorite team colors, or just go with black.  Either way, a coat of paint will do wonders.


Prepping the Sheet Metal

I also painted my sheet metal, but you certainly don’t have to.  The galvanized steel finish looks good on its own, but some color really makes it look finished.  Unfortunately, I didn’t take any pictures of my sheet metal when I was painting it, but you can see what it looked like from the first photo at the top of this post.

Drill Your Holes

I’ve seen some folks that just hammer a nail through their sheet metal to make the holes for the zip ties, but I think that would result in some bends to the metal that I wanted to avoid.  I just used a simple drill bit that was slightly larger in diameter than the zip ties.

On the top and bottom (24″ edges), I punched holes at 3″, 12″, and 21″ across.  Especially on the bottom, these measurements are important, because you don’t want your drill holes to be over the Tees that connect to the base.

On the sides (36″ edges), I drilled holes at 6″, 12″, 18″ 24″, and 30″.  You can space these out however you’d like, but make sure they’re evenly spaced on both sides, or your sheet metal might hang slightly crooked.

Attach the Sheet Metal

Run the zip ties through each of the holes, and tighten.  I don’t recommend over-tightening them, because your PVC will just pull towards the center.  Hand-tightening should be plenty.


Take Advantage of the Power of Magnets

You’ve got a magnetic surface, so why not add some flair?  I had a large Cleveland Indians logo hanging on a refrigerator in my basement that added the perfect finishing element to my PVC strike zone.  You can get one for just about any team on Amazon.

So, that’s it!  Time to get some pitching practice in!  Let me know if you build one…I’d love to see it!