A simple, mobile-friendly recipe management app built with React, TypeScript, and Tailwind CSS. Store your favorite recipes locally in your browser - no server required!
Visit: https://semihgencten.github.io/recipeApp/ to use it
- 📱 Mobile-First Design - Optimized for mobile browsers
- 🗂️ Category Organization - Organize recipes into 5 categories:
- Çorbalar (Soups)
- Tatlılar (Desserts)
- Yemek (Main Dishes)
- Salata (Salads)
- Meze (Appetizers)
- 🔍 Filter by Category - Quick filtering with dropdown menu
- ➕ Easy Recipe Creation - Simple form to add new recipes
- 💾 Local Storage - All data saved in browser (no server needed)
- 🗑️ Delete Recipes - Remove recipes you no longer need
- 📝 Detailed View - See full ingredients and cooking instructions
- 🇹🇷 Turkish Interface - Full Turkish language support
- Node.js (v16 or higher)
- pnpm (recommended) or npm
App is deployed to gh-pages but if you install, try and contribute then you can install by following these steps
-
Clone the repository
-
Install dependencies
pnpm install
-
Run the development server
pnpm dev
-
Open in browser
- Navigate to
http://localhost:5173 - The app is now running!
- Navigate to
pnpm buildThe optimized production build will be in the dist folder.
pnpm preview- React 18 - UI library
- TypeScript - Type-safe development
- Vite - Fast build tool and dev server
- Tailwind CSS - Utility-first CSS framework
- Lucide React - Beautiful icon library
- LocalStorage API - Browser-based data persistence
- Click the + button in the bottom-right corner
- Select a category from the dropdown
- Enter the recipe name (Tarif Adı)
- Add ingredients (Malzemeler) - one per line recommended
- Write cooking instructions (Hazırlanışı)
- Click Tarifi Kaydet to save
- All recipes are displayed on the main screen
- Click on any recipe card to view full details
- Use the category dropdown filter to show specific categories
- Select "Tümü" to show all recipes
- Click on a recipe to open detail view
- Click the trash icon in the top-right corner
- Confirm deletion
recipe-app/
├── src/
│ ├── App.tsx # Main application component
│ ├── main.tsx # Application entry point
│ ├── index.css # Tailwind CSS imports
│ └── vite-env.d.ts # Vite type definitions
├── public/ # Static assets
├── index.html # HTML template
├── package.json # Dependencies and scripts
├── tailwind.config.js # Tailwind configuration
├── postcss.config.js # PostCSS configuration
├── tsconfig.json # TypeScript configuration
└── vite.config.ts # Vite configuration
Edit the categories array in src/App.tsx:
const categories: Category[] = ['Çorbalar', 'Tatlılar', 'Yemek', 'Salata', 'Meze'];The app uses Tailwind's emerald color palette. To change:
- Open
src/App.tsx - Find and replace
emerald-with another color (e.g.,blue-,purple-,rose-)
To add new fields to recipes:
- Update the
Recipeinterface - Add the field to
formDatastate - Add input field in the create screen
- Display the field in the detail view
All recipes are stored in the browser's localStorage under the key recipes. Data persists across sessions but is specific to:
- The browser being used
- The domain/URL where the app is hosted
Note: Clearing browser data will delete all recipes.
- ✅ Chrome/Edge (v90+)
- ✅ Firefox (v88+)
- ✅ Safari (v14+)
- ✅ Mobile browsers (iOS Safari, Chrome Mobile)
MIT License - feel free to use this project for personal or commercial purposes.
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
- Icons by Lucide
- Built with Vite
- Styled with Tailwind CSS
If you encounter any issues or have questions, please open an issue on GitHub.
Happy Cooking! 🍳👨🍳