What a Magic Mirror Is (and Why You’ll Want One)
How to make a magic mirror is simpler than it sounds. Here’s the quick version:
- Mount a monitor behind a two-way mirror panel
- Connect a Raspberry Pi to the monitor via HDMI
- Install MagicMirror² software on the Raspberry Pi
- Configure your modules (clock, weather, calendar, etc.)
- Set MagicMirror² to auto-start on boot using PM2
- Frame everything and hang it on your wall
That’s the core of it. The rest is customization.
A magic mirror — also called a smart mirror — is a regular display hidden behind a semi-reflective panel. The glass reflects your face like a normal mirror, but lets just enough light through to show the screen behind it. The result: information appears to float in the reflection.
Think time, weather, your calendar, and news headlines — all visible while you get ready in the morning. It sounds like something from a sci-fi film. And honestly, it still kind of does.
The project has been near the top of makers’ wish lists for years, and it’s easy to see why. What once required disassembling bulky, high-voltage CRT monitors is now achievable with a slim USB-C display, a credit-card-sized Raspberry Pi, and an afternoon of your time.
Costs can start as low as $30 if you source second-hand parts — or scale up to a premium wall installation with touchscreen and voice control. The choice is yours.
Essential Components and Hardware Selection
Before we start drilling holes or coding, we need to gather our “ingredients.” The quality of your components directly impacts how “magical” the final result looks.
Choosing Your Brain: The Raspberry Pi
The Raspberry Pi is the heart of this project. While the software is lightweight, you want a model that handles modern web rendering smoothly. We generally recommend the Raspberry Pi 4 (2GB or 4GB) as the gold standard. It offers the perfect balance of power and price. If you are aiming for a “super-slim” build, the Raspberry Pi 3 Model A+ is a fantastic alternative due to its thinner profile.
You might wonder Why Raspberry Pi is Perfect for Your Smart Mirror. Simply put, it’s low-power, has a massive community for troubleshooting, and fits behind a picture frame with ease. Avoid the original Pi 1 or the Pi Zero for this specific project; they often struggle with the Electron-based software used by MagicMirror².
The Display: Brightness is King
The biggest mistake beginners make is choosing a dim monitor. Because the light has to fight through a semi-reflective mirror, you need a high-contrast display. We recommend a monitor with at least 300 nits (cd/m²) of brightness. If you can find one with 400 nits, even better!
When shopping, look for an LED/LCD monitor with slim bezels. If you’re on a budget, a second-hand 24-inch 1080p monitor from a thrift store is perfect. For those wanting a sleek, modern look, a portable 15.6-inch USB-C monitor is ideal because it’s incredibly thin and often runs on low voltage.
The Mirror: Glass vs. Acrylic vs. Film
This is where the magic happens. You have three main paths:
| Material | Pros | Cons | Best For |
|---|---|---|---|
| Two-Way Glass | Best clarity, scratch-resistant | Heavy, expensive, hard to cut | Permanent living room installs |
| Two-Way Acrylic | Lightweight, easy to drill, affordable | Scratches easily, can “bow” | First-time builds, kids’ rooms |
| Mirror Film | Extremely cheap ($25) | Hard to apply without bubbles | Ultra-budget student builds |
For a deep dive into these materials, check out The Ultimate Guide to Building a Two-Way Smart Mirror.
Power and Cables
Don’t overlook the “boring” parts. A Raspberry Pi 4 requires a stable 5V 3A USB-C power supply. Using a cheap phone charger often leads to “undervoltage” warnings and system crashes. Also, grab a 90-degree angled HDMI cable. This allows the cable to sit flush against the back of the monitor, keeping your frame as slim as possible.
How to Make a Magic Mirror: Step-by-Step Assembly
Now that we have our parts, it’s time to get our hands dirty. The goal is to create a “sandwich” of components that looks like a high-end piece of furniture.
Step 1: Monitor Prep and Disassembly
If you’re using a standard desktop monitor, you’ll likely want to “de-bezel” it. This means carefully prying off the plastic outer casing to reveal the slim internal panel.

Be careful! Once the bezel is off, the internal ribbon cables are exposed. We recommend using duct tape or electrical tape to secure any loose controller boards to the back of the LCD panel. This prevents them from dangling and snapping. For a truly professional look, you can follow this guide on How to build a super-slim smart mirror.
Step 2: Choosing and Preparing the Frame
Your frame choice dictates the “vibe” of your mirror.
- IKEA Ribba/HOVSTA: These are popular because they are deep enough to hide a Pi and a slim monitor without extra carpentry.
- Shadow Box: Great for wall-mounted versions where you want depth for larger components.
- Custom Wood Frame: For those with woodworking skills, building a frame from scratch allows for integrated ventilation and hidden mounting points.
If you’re planning on hanging your creation, read How to Build and Install a Wall Mounted Smart Mirror to ensure it doesn’t come crashing down—mirrors and monitors together can weigh between 8kg and 12kg!
Step 3: Light Bleed Prevention
This is a pro-tip: light is the enemy of a clean mirror effect. If light leaks from the sides of the monitor, it will wash out the reflection. We use black foam weatherstripping tape around the edges of the monitor bezel. This creates a light-tight seal against the mirror. Additionally, we often use a piece of black cardstock with a cutout exactly the size of the screen to ensure no “glow” escapes from the back.
Step 4: Component Mounting
To keep everything in place, use VHB (Very High Bond) double-sided foam tape. It’s strong enough to hold the Raspberry Pi and controller boards to the back of the monitor. When securing the mirror and monitor into the frame, use nylon fasteners or plastic clips. Avoid over-tightening metal screws against acrylic mirrors, as they can cause the material to crack or warp.
Software Setup and MagicMirror² Installation
With the hardware assembled, we need to bring the mirror to life. We’ll be using the industry-standard MagicMirror² software, an open-source platform that is incredibly flexible.
1. Prepare the OS
Start by flashing Raspberry Pi OS (64-bit) onto a 16GB (or larger) microSD card using the Raspberry Pi Imager. During the setup, we recommend a “headless” configuration. This means you enable SSH and Wi-Fi right in the imager so you can control the Pi from your main computer without needing a separate keyboard and mouse.
Need a hand with the initial boot? See Setting Up Your Smart Mirror: A Complete Guide.
2. Install Node.js and MagicMirror²
Connect to your Pi via SSH and run the following commands to install Node.js (the engine that runs the mirror):
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
Next, clone the MagicMirror² repository and install the dependencies:
git clone https://github.com/MichMich/MagicMirror
cd MagicMirror
npm install
For a detailed breakdown of the code involved, our Magic Mirror Coding Guide is an essential resource.
3. Autostart with PM2
You don’t want to manually start your mirror every time the power flickers. We use PM2, a process manager, to ensure the software boots automatically.
sudo npm install -g pm2
pm2 startup
Follow the on-screen instructions, then create a simple script to launch the mirror. Once it’s running, type pm2 save to lock in the settings. This turns your DIY project into a reliable “appliance.” For more advanced automation tips, check out How to Make a Magic Mirror with Raspberry Pi – SparkFun Learn.
Customizing Modules and Advanced Features
The default MagicMirror² setup is great, but the real fun begins when you make it your own.
How to make a magic mirror interface with core modules
The layout of your mirror is controlled by a file called config.js. By editing this file, you can move modules to different positions: top_left, top_right, bottom_bar, and so on.
- Clock & Weather: These are the basics. Ensure you set your “locationID” for accurate local forecasts.
- Calendar: You can integrate your Google Calendar by using the “Secret iCal address” found in your Google settings. This allows you to see your family’s schedule in real-time.
- Compliments: A fun way to start the day. You can even change the default “Hey there, sexy!” to something more family-friendly or motivational.
If you’re feeling creative, you can Customize MagicMirror UI using custom CSS to change colors, fonts, and transparency levels. Beginners should start with our Beginners Guide to Building a Smart Mirror for a smooth experience.
How to make a magic mirror smart with third-party integrations
Once you’ve mastered the basics, it’s time to add some “intelligence.”
- Home Assistant: You can turn your mirror into a smart home hub. See DIY Smart Mirror: A Step-by-Step Guide for instructions on displaying light status, thermostat controls, and security feeds.
- PIR Motion Sensor: Why leave the screen on all night? A $3 PIR sensor can wake the monitor when you walk into the room and put it to sleep when you leave. This saves electricity and extends the life of your monitor.
- Voice Control & Facial Recognition: Using a USB microphone or camera, you can set the mirror to show different modules based on who is looking at it. Mom sees her calendar; the kids see their chore lists.
For those interested in the logic behind these features, our Smart Mirror JavaScript Setup guide covers the technical side of module development.
Conclusion
Building a magic mirror is one of the most rewarding DIY projects you can undertake. It combines woodworking, electronics, and software into a single, beautiful object that provides genuine value to your daily routine. Whether you’re building a budget version for your dorm or a 60-inch touch-screen masterpiece for your entryway, the process of how to make a magic mirror is a journey of discovery.
At Foco Finanças, we love seeing how technology can be repurposed to make life more efficient and a little bit more magical. Remember to back up your config.js file often, keep your Raspberry Pi ventilated, and don’t be afraid to experiment with the hundreds of community modules available.
For more deep dives into the tech behind this project, visit our hardware services category.
What is the cheapest way to build a magic mirror?
The absolute cheapest route involves thrifting. Look for a monitor at a Goodwill or Craigslist ($5-$20) and a cheap picture frame ($5). Instead of expensive glass, use two-way mirror film ($25) applied to the frame’s existing glass. Use a Raspberry Pi 3A+ or even a second-hand Pi 3B. You can feasibly build a functional mirror for under $50 if you are patient with your sourcing!
Which Raspberry Pi model is best for MagicMirror²?
While the Raspberry Pi 4 is the best all-around choice for its 4K support and speed, the Raspberry Pi 5 is the new powerhouse. It offers even smoother animations and faster loading for heavy modules. However, the Pi 5 runs hotter, so you will definitely need a heatsink or a fan if it’s enclosed in a tight frame. Check out our guide on Building a Smart Mirror with Raspberry Pi for a model-by-model comparison.
Can I use a laptop screen for this project?
Yes! Don’t throw away that old broken laptop. You can remove the LCD panel and purchase an LCD Controller Board (usually around $20 on eBay or Amazon) that matches the model number on the back of the screen. This board adds an HDMI port to the laptop screen, making it compatible with your Raspberry Pi. This is a great way to achieve a “super-slim” build for very little money.