A React Native app that transforms old tablets into smart mirror displays with weather, GitHub, and Twitter widgets.
Magic Mirror is a React Native application that converts old Android tablets into smart mirror displays. It solves the problem of electronic waste by repurposing unused devices into functional home automation interfaces that show weather, GitHub, and Twitter information behind a two-way mirror surface.
DIY enthusiasts, makers, and developers with old Android tablets who want to build affordable smart mirrors without purchasing expensive commercial units.
Developers choose Magic Mirror because it provides a complete open-source solution using familiar React Native technology, requires minimal hardware investment, and offers customizable widgets through simple API integrations.
:crystal_ball: ReactNative smart mirror project
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Transforms old tablets into functional smart mirrors using affordable materials like privacy film and Velcro, reducing electronic waste compared to expensive commercial units, as detailed in the hardware build guide.
Leverages modular React Native components for personalization, allowing users to display and tweak widgets like weather, GitHub, and Twitter, evidenced by the configurable API integrations in env.js.
Simplifies data fetching with easy setup for Forecast.io, GitHub, and Twitter APIs via a single env.js configuration file, making it accessible for developers familiar with API keys.
Provides step-by-step hardware and software build instructions, including a blog tutorial link, helping makers assemble the mirror and run the app with minimal confusion.
Exclusively supports Android tablets, as shown by the 'react-native run-android' command, with no mention of iOS compatibility, restricting its user base.
Relies on external APIs like Forecast.io and Twitter that require active keys and internet connectivity; changes or deprecations in these services could break functionality without updates.
Requires users to manually create and populate env.js with API keys and assemble hardware, which can be error-prone and daunting for those new to development or DIY projects.