MagicMirror
MagicMirror² is an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or bathroom mirror into your personal assistant.
Top Related Projects
The fairest of them all. A DIY voice controlled smart mirror with IoT integration.
⌨️ A curated list of Open Source Mechanical Keyboard resources.
Quick Overview
MagicMirror² is an open-source modular smart mirror platform. It allows users to create a personalized smart mirror display with customizable modules for information such as weather, calendar events, news, and more. The project is designed to be easily extendable and configurable, making it popular among DIY enthusiasts and developers.
Pros
- Highly customizable with a wide range of available modules
- Active community contributing to development and support
- Easy to set up and configure for both beginners and advanced users
- Cross-platform compatibility (works on various operating systems)
Cons
- Requires some technical knowledge for initial setup and customization
- Hardware costs can be significant for a full mirror setup
- Some modules may require additional configuration or API keys
- Performance can vary depending on the hardware used
Code Examples
// Example of creating a custom module
Module.register("mymodule", {
defaults: {
text: "Hello World!"
},
getDom: function() {
var wrapper = document.createElement("div");
wrapper.innerHTML = this.config.text;
return wrapper;
}
});
// Example of configuring modules in config.js
modules: [
{
module: "clock",
position: "top_left"
},
{
module: "calendar",
position: "top_left",
config: {
calendars: [
{
symbol: "calendar-check",
url: "https://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics"
}
]
}
}
]
// Example of using the notification system
this.sendNotification("SHOW_ALERT", {
title: "Hello World!",
message: "This is a test notification.",
timer: 4000
});
Getting Started
-
Clone the repository:
git clone https://github.com/MagicMirrorOrg/MagicMirror
-
Install dependencies:
cd MagicMirror npm install
-
Copy the config sample file:
cp config/config.js.sample config/config.js
-
Start the application:
npm run start
-
Access the MagicMirror² interface at
http://localhost:8080
in your web browser.
Competitor Comparisons
The fairest of them all. A DIY voice controlled smart mirror with IoT integration.
Pros of smart-mirror
- Simpler setup process, potentially easier for beginners
- Built-in voice control functionality
- More focused on a specific set of features
Cons of smart-mirror
- Less active development and community support
- Fewer modules and customization options
- Limited documentation compared to MagicMirror
Code Comparison
smart-mirror:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.sendFile(`${__dirname}/app/index.html`);
});
MagicMirror:
var Server = function(app, io) {
var self = this;
self.app = app;
self.io = io;
self.expressApp = express();
self.expressApp.use(bodyParser.json());
};
Both projects use Express.js for their server-side functionality, but MagicMirror has a more structured approach with a dedicated Server class. smart-mirror's code is more straightforward, which aligns with its simpler setup process. However, MagicMirror's approach allows for more extensibility and modularity, supporting its wider range of features and customization options.
⌨️ A curated list of Open Source Mechanical Keyboard resources.
Pros of awesome-mechanical-keyboard
- Comprehensive resource for mechanical keyboard enthusiasts, covering a wide range of topics
- Regularly updated with new information and links
- Community-driven content with contributions from various users
Cons of awesome-mechanical-keyboard
- Limited functionality as it's primarily a curated list of resources
- Lacks interactive features or practical applications
- May require additional research to find specific information
Code comparison
As awesome-mechanical-keyboard is primarily a markdown file containing a curated list of resources, there isn't a direct code comparison to be made with MagicMirror. However, here's a snippet from the awesome-mechanical-keyboard README:
## Firmware
- [QMK](https://github.com/qmk/qmk_firmware) - Quantum Mechanical Keyboard Firmware.
- [ZMK](https://github.com/zmkfirmware/zmk) - Modern, open-source firmware for keyboards.
In contrast, MagicMirror is a full-fledged application. Here's a sample from its config.js file:
let config = {
address: "localhost",
port: 8080,
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
language: "en",
timeFormat: 24,
units: "metric",
The comparison highlights the different nature of these projects: awesome-mechanical-keyboard serves as an information repository, while MagicMirror is a functional application with configurable settings.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
MagicMirror² is an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or bathroom mirror into your personal assistant. MagicMirror² is built by the creator of the original MagicMirror with the incredible help of a growing community of contributors.
MagicMirror² focuses on a modular plugin system and uses Electron as an application wrapper. So no more web server or browser installs necessary!
Documentation
For the full documentation including installation instructions, please visit our dedicated documentation website: https://docs.magicmirror.builders.
Links
- Website: https://magicmirror.builders
- Documentation: https://docs.magicmirror.builders
- Forum: https://forum.magicmirror.builders
- Technical discussions: https://forum.magicmirror.builders/category/11/core-system
- Discord: https://discord.gg/J5BAtvx
- Blog: https://michaelteeuw.nl/tagged/magicmirror
- Donations: https://magicmirror.builders/#donate
Contributing Guidelines
Contributions of all kinds are welcome, not only in the form of code but also with regards to
- bug reports
- documentation
- translations
For the full contribution guidelines, check out: https://docs.magicmirror.builders/about/contributing.html
Enjoying MagicMirror? Consider a donation!
MagicMirror² is opensource and free. That doesn't mean we don't need any money.
Please consider a donation to help us cover the ongoing costs like webservers and email services. If we receive enough donations we might even be able to free up some working hours and spend some extra time improving the MagicMirror² core.
To donate, please follow this link.
Top Related Projects
The fairest of them all. A DIY voice controlled smart mirror with IoT integration.
⌨️ A curated list of Open Source Mechanical Keyboard resources.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot