An all-in-one macOS plugin featuring customizable widgets to enhance your desktop experience.
- π― Custom Widgets - Beautiful, customizable widgets for your macOS desktop
- β‘ Lightning Fast - Built with Vite for optimal performance
- π¨ Modern UI - Styled with Tailwind CSS and shadcn-ui components
- π§ TypeScript - Fully typed for a better development experience
- π Dark Mode Ready - Seamless theme support
- π± Responsive Design - Adapts to different screen sizes
Before you begin, make sure you have the following installed on your macOS system:
- macOS: Version 10.15 (Catalina) or higher
- Node.js: v16 or higher (Download)
- npm: v7 or higher (comes bundled with Node.js)
- Git: Pre-installed on macOS, or download here
Check if you have the required tools installed by running these commands in your Terminal:
# Check Node.js version
node --version
# Should output: v16.x.x or higher
# Check npm version
npm --version
# Should output: 7.x.x or higher
# Check Git version
git --version
# Should output: git version 2.x.x or higherIf any of these commands don't work, you'll need to install the missing software.
-
Open Terminal
- Press
Cmd + Spaceto open Spotlight - Type "Terminal" and press Enter
- Press
-
Clone the repository
git clone https://github.com/SYOP200/macwidget-studio.git cd macwidget-studio -
Switch to the dev branch
git checkout dev
-
Install dependencies
This will download all the packages needed for the project:
npm install
This may take 2-5 minutes depending on your internet connection.
-
Start the development server
npm run dev
You should see output like:
VITE v5.x.x ready in xxx ms β Local: http://localhost:5173/ β Network: use --host to expose -
Open in your browser
- The app will automatically open, or
- Manually navigate to
http://localhost:5173in your web browser
If you want faster installation and builds, you can use Bun:
-
Install Bun
curl -fsSL https://bun.sh/install | bash -
Clone and navigate to the repository
git clone https://github.com/SYOP200/macwidget-studio.git cd macwidget-studio git checkout dev -
Install dependencies with Bun
bun install
-
Start the development server
bun run dev
-
Install GitHub Desktop
- Download from desktop.github.com
- Install and sign in with your GitHub account
-
Clone the repository
- Click "File" β "Clone Repository"
- Go to the "URL" tab
- Enter:
https://github.com/SYOP200/macwidget-studio.git - Choose a local path and click "Clone"
-
Switch to dev branch
- In GitHub Desktop, click "Current Branch"
- Select "dev" from the list
-
Open in Terminal
- Click "Repository" β "Open in Terminal"
- Run the following commands:
npm install npm run dev
Problem: command not found: node
# Solution: Install Node.js from https://nodejs.org/
# Choose the LTS (Long Term Support) versionProblem: permission denied errors during npm install
# Solution: Don't use sudo! Instead, fix npm permissions:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
source ~/.zshrcProblem: Port 5173 already in use
# Solution: The dev server will automatically use the next available port
# Or you can manually kill the process using that port:
lsof -ti:5173 | xargs kill -9Problem: ERR_OSSL_EVP_UNSUPPORTED error
# Solution: This is a Node.js 17+ OpenSSL issue. Add this to your terminal:
export NODE_OPTIONS=--openssl-legacy-provider
# Then run npm run dev againProblem: Slow installation on macOS
# Solution: Clear npm cache and try again
npm cache clean --force
npm install- Node.js and npm installed and verified
- Git installed and verified
- Repository cloned successfully
- On the
devbranch - Dependencies installed without errors
- Development server running
- App opens in browser at
http://localhost:5173
Once you have the app running:
- Explore the interface - Familiarize yourself with the widgets
- Check the code - Look at
src/directory to see how it works - Make a small change - Try editing a component and see it update live
- Read the documentation - Continue reading this README for more details
To run the project in development mode with hot-reload:
npm run devThis will start a local development server where you can see your changes in real-time.
To create a production-ready build:
npm run buildThe optimized files will be generated in the dist directory.
To preview the production build locally:
npm run previewTo check your code for potential issues:
npm run lint- Framework: React 18
- Build Tool: Vite
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn-ui
- Linting: ESLint
macwidget-studio/
βββ .github/ # GitHub workflows and configurations
βββ public/ # Static assets
βββ src/ # Source code
β βββ components/ # React components
β βββ lib/ # Utility functions and helpers
β βββ ... # Other source files
βββ index.html # HTML entry point
βββ package.json # Project dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ vite.config.ts # Vite configuration
βββ tailwind.config.ts # Tailwind CSS configuration
| Script | Description |
|---|---|
npm run dev |
Start development server with hot-reload |
npm run build |
Build for production |
npm run preview |
Preview production build locally |
npm run lint |
Run ESLint to check code quality |
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please make sure to update tests as appropriate and follow the existing code style.
If you find a bug, please open an issue with:
- A clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
- Your environment (OS, Node version, etc.)
This project is licensed under the MIT license specified in the LICENSE file.
For security concerns, please review our Security Policy.
- π§ Open an issue for bug reports or feature requests
- π¬ Start a discussion for questions or ideas
- β Star this repository if you find it helpful!
Made with β€οΈ by SYOP200