Live Demo: https://costotus.com
A free, open-source cost calculation application for small manufacturing businesses.
Costotus helps you track expenses, manage materials, create recipes, and analyze your production costsโall in your browser with complete privacy.
- Track materials, packaging, recipes, and end products
- Real-time cost calculations as you update data
- Visual cost breakdowns with interactive charts
- Historical expense tracking with trend analysis
- Materials: Track raw materials with cost history and currency support
- Recipes: Create production recipes with ingredients and labor costs
- Products: Manage semi-finished products used in manufacturing
- Packages: Define packaging materials and costs
- End Products: Calculate final product costs including all components
- Company profile management
- Employee management with labor cost tracking
- General expenses and overhead costs
- Production capacity and cost per unit calculations
- Full internationalization support (English, Turkish)
- Multi-currency with exchange rate tracking
- Automatic exchange rate updates from external APIs
- Historical currency conversion rates with charts
- Built with React and TailwindCSS
- DaisyUI components for consistent design
- Multiple theme support (Emerald, Cupcake, Bumblebee, Dark, Light)
- Responsive design for mobile and desktop
- Modern navbar with smooth animations
- 100% Local Storage: All data stored in browser's local storage
- No External Servers: No data leaves your device
- No Account Required: Start using immediately
- Export/Import: Full backup and restore functionality
- Try the app with pre-loaded sample data (Lemonade & Supplement businesses)
- Safe exploration without affecting real data
- Easy transition from demo to production mode
- Node.js (v14 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/donis3/react-costcalc.git
cd react-costcalc- Install dependencies:
npm install- Start the development server:
npm start- Open http://localhost:3000 in your browser
npm run buildThe optimized production build will be in the build/ directory.
- Welcome Screen: Choose to start fresh or load a demo
- Company Setup: Enter your company information
- Currency Selection: Set your base currency
- Start Adding Data: Begin with materials, then recipes, then end products
- End Products: Your final sellable products with complete cost breakdown
- Materials: Raw materials with purchase history
- Packages: Packaging materials and containers
- Manufacturing:
- Products: Semi-finished goods
- Recipes: Production instructions with ingredients and labor
- Company:
- Company Info: Business details and production capacity
- Employees: Staff and labor costs
- Expenses: General overhead and operating costs
- Start by adding materials and their costs
- Create recipes that use those materials
- Build products from recipes
- Add packaging options
- Finally, create end products that combine everything
- Frontend Framework: React 17.0.2
- Routing: React Router DOM 6
- Styling: TailwindCSS 3 + DaisyUI 2
- State Management: React Context API
- Charts: Chart.js 3 with react-chartjs-2
- Forms & Validation: Joi
- Internationalization: i18next + react-i18next
- Date Handling: date-fns
- Icons: React Icons
- Notifications: React Toastify
- HTTP Client: Axios
react-costcalc/
โโโ public/
โ โโโ locales/ # Translation files (en, tr)
โ โโโ img/ # Images and assets
โโโ src/
โ โโโ v2/
โ โโโ components/ # Reusable UI components
โ โโโ context/ # React Context providers
โ โโโ hooks/ # Custom React hooks
โ โโโ pages/ # Page components
โ โโโ router/ # Application routing
โ โโโ config/ # Configuration files
โ โโโ data/ # Demo data
โ โโโ helpers/ # Utility functions
โโโ package.json
The app supports multiple languages through i18next. Translation files are located in public/locales/.
To add a new language:
- Create a new folder in
public/locales/(e.g.,de/for German) - Copy translation files from
en/ortr/ - Translate the JSON content
- Run the translation sync script:
npm run translation-syncEdit src/v2/config/config.json to customize:
- Available themes
- App name and branding
- Module icons and colors
- Exchange rate API settings
Customize styling in tailwind.config.js:
- Color schemes
- Font families (default: Poppins)
- Custom animations
- DaisyUI theme settings
All data is stored in browser's localStorage under the key pattern:
costotus_{module}: Main data storagecostotus_settings: App settingscostotus_company: Company information
Important:
- Data persists across sessions
- Clearing browser data will delete all information
- Regular exports/backups are recommended
Contributions are welcome! This project was created as a learning experience, and there's always room for improvement.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This is experimental free software. While care has been taken in development:
- Always verify calculations independently
- Do not rely solely on this app for critical business decisions
- No guarantees are provided regarding accuracy
- Use at your own risk
This project is licensed under the MIT License - see the LICENSE file for details.
Donis3
- GitHub: @donis3
- Built with React and modern web technologies
- Icons by React Icons
- UI components by DaisyUI
- Exchange rate data from various free APIs
If you encounter issues or have suggestions:
- Open an issue on GitHub
- Check existing issues for solutions
- Contribute improvements via pull requests
Made with โค๏ธ for small businesses