{"id":25800029,"url":"https://github.com/njirolu/mysaly","last_synced_at":"2026-06-11T12:31:27.934Z","repository":{"id":197356216,"uuid":"695817998","full_name":"njirolu/mysaly","owner":"njirolu","description":"Cek gaji bulanan kamu setelah potong pajak dan iuran BPJS dengan kalkulator gaji. Gampang banget, cuma butuh sebentar!","archived":false,"fork":false,"pushed_at":"2023-09-30T05:53:27.000Z","size":233,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-27T20:38:46.884Z","etag":null,"topics":["bpjs","indonesia","pph21","salary"],"latest_commit_sha":null,"homepage":"https://njirolu.github.io/mysaly/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/njirolu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-24T10:20:40.000Z","updated_at":"2023-10-18T14:52:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"8e19c111-c91e-42a5-9cb8-a7041cbcda4a","html_url":"https://github.com/njirolu/mysaly","commit_stats":null,"previous_names":["njirolu/mysaly"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/njirolu/mysaly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njirolu%2Fmysaly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njirolu%2Fmysaly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njirolu%2Fmysaly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njirolu%2Fmysaly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/njirolu","download_url":"https://codeload.github.com/njirolu/mysaly/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njirolu%2Fmysaly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34199516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bpjs","indonesia","pph21","salary"],"created_at":"2025-02-27T15:58:22.291Z","updated_at":"2026-06-11T12:31:27.925Z","avatar_url":"https://github.com/njirolu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003ca href=\"https://njirolu.github.io/mysaly/\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/njirolu/mysaly/main/logo.png\" alt=\"MySaly\" width=\"300\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Cek gaji bulanan kamu setelah potong pajak dan iuran BPJS dengan kalkulator gaji. Gampang banget, cuma butuh sebentar!\n\u003cp\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://njirolu.github.io/mysaly/\"\u003e\u003cstrong\u003eHitung disini \u0026rarr;\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## About MySaly\n\nMySaly is an Indonesian salary calculator that helps you estimate your monthly take-home pay after deductions. It calculates tax (PPh 21) and BPJS (Health and Employment) contributions based on current Indonesian regulations.\n\nThe calculator provides a detailed breakdown of:\n\n- Monthly and annual tax calculations\n- BPJS Health contributions (employee and employer portions)\n- BPJS Employment contributions (employee and employer portions)\n- Final take-home salary after all deductions\n\n## Technologies Used\n\n- **React 18** - UI library for building the interface\n- **TypeScript** - Type-safe JavaScript for better code quality\n- **Vite** - Fast build tool and development server\n- **Tailwind CSS** - Utility-first CSS framework for styling\n- **Headless UI** - Unstyled, accessible UI components\n\n## Project Structure\n\nThe project follows a feature-based organization pattern:\n\n```\nsrc/\n├── components/           # Reusable UI components\n│   ├── ui/              # Base UI components\n│   ├── footer.tsx       # Footer component\n│   ├── info.tsx         # Information/FAQ section\n│   └── layout/          # Layout components\n├── features/            # Feature-specific modules\n│   └── salary-calculator/\n│       ├── components/  # Salary calculator components\n│       ├── hooks/       # Custom hooks for salary calculations\n│       └── index.ts     # Feature exports\n├── hooks/               # Global custom hooks\n├── services/            # Business logic services\n├── constants/           # Application constants\n├── types/               # TypeScript type definitions\n├── utils/               # Utility functions\n└── data/                # Static data\n```\n\n## Installation and Setup\n\n### Prerequisites\n\n- Node.js (v16 or higher)\n- npm or yarn\n\n### Local Development\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/njirolu/mysaly.git\ncd mysaly\n```\n\n2. Install dependencies:\n\n```bash\nnpm install\n# or\nyarn install\n```\n\n3. Start the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\n4. Open your browser and navigate to `http://localhost:5173`\n\n### Building for Production\n\n1. Build the application:\n\n```bash\nnpm run build\n# or\nyarn build\n```\n\n2. Preview the production build:\n\n```bash\nnpm run preview\n# or\nyarn preview\n```\n\n## Usage\n\n1. Enter your monthly gross salary in the \"Gaji Kotor Bulanan\" field\n2. Select your marital status from the dropdown:\n   - \"Belum Kawin\" (Single)\n   - \"Kawin\" (Married)\n3. Select the number of dependents (0-3)\n4. Click \"Hitung Gaji\" to calculate your net salary\n\nThe calculator will display:\n\n- Tax calculation details\n- BPJS Health contribution breakdown\n- BPJS Employment contribution breakdown\n- Your final net salary\n\n## Calculation Formulas and Tax Rules\n\n### Tax Calculation (PPh 21)\n\nThe calculator follows Indonesian tax regulations:\n\n1. **Annualized Salary**: Monthly salary × 12\n2. **PTKP (Penghasilan Tidak Kena Pajak)**:\n   - Single (TK/0): Rp 54,000,000\n   - Single with 1 dependent (TK/1): Rp 58,500,000\n   - Single with 2 dependents (TK/2): Rp 63,000,000\n   - Single with 3 dependents (TK/3): Rp 67,500,000\n   - Married (K/0): Rp 58,500,000\n   - Married with 1 dependent (K/1): Rp 63,000,000\n   - Married with 2 dependents (K/2): Rp 67,500,000\n   - Married with 3 dependents (K/3): Rp 72,000,000\n3. **PKP (Penghasilan Kena Pajak)**: Annualized Salary - PTKP\n4. **Position Cost**: 5% of annualized salary (min Rp 500,000, max Rp 6,000,000)\n5. **Tax Rates**:\n   - Up to Rp 60,000,000: 5%\n   - Rp 60,000,001 - Rp 250,000,000: 15%\n   - Rp 250,000,001 - Rp 500,000,000: 25%\n   - Rp 500,000,001 - Rp 5,000,000,000: 30%\n   - Above Rp 5,000,000,000: 35%\n\n### BPJS Contributions\n\n**BPJS Health**:\n\n- Employee: 1% of monthly salary (capped at Rp 12,000,000)\n- Employer: 4% of monthly salary (capped at Rp 12,000,000)\n\n**BPJS Employment**:\n\n- Employee: 2% of monthly salary\n- Employer: 3.7% of monthly salary\n\n## Contributing\n\nWe welcome contributions to improve MySaly! Here's how you can help:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes\n4. Commit your changes (`git commit -m 'Add some amazing feature'`)\n5. Push to the branch (`git push origin feature/amazing-feature`)\n6. Open a Pull Request\n\n### Development Guidelines\n\n- Follow the existing code style and conventions\n- Add appropriate TypeScript types for new code\n- Include JSDoc comments for functions and components\n- Test your changes thoroughly\n- Ensure the application builds successfully\n\n### Code Standards\n\n- Use TypeScript for all new code\n- Follow React best practices\n- Use functional components with hooks\n- Implement proper error handling\n- Write self-documenting code with meaningful variable names\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for a detailed history of changes.\n\n## Support\n\nIf you encounter any issues or have questions, please open an issue on the GitHub repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjirolu%2Fmysaly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnjirolu%2Fmysaly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjirolu%2Fmysaly/lists"}