Create a Recipes app to publish cooking recipes online.
Recipes have a title, ingredients, instructions and photos.

The app supports several user roles: visitors (without authentication), users, admins.

## Visitors
  - Visitors can view all published recipes, search by keyword, and view recipe details.
  - Visitors can register user accounts, login and logout.

## Users
  - Registered users can submit new recipes and list / edit / delete their own recipes.
  - Recipes have state: for review / published / rejected.
  - New recipes stay unpublished (for review) until admin approves them.
  - Recipies have photos: user-uploaded set of photos

## Admins
  - Admins have access to the admin panel, designed to manage all recipes in the app.
  - If no admin exists in the app, run a one-time "App Installation" to create the first admin (ask for email + password).
  - Admins can approve / reject pending recipes.
  - Admins can view / edit / delete all recipes.
 
## Data Storage
  - App data (users, recipes, photos) are stored in Supabase.
  - Photos are stored in Supabase storage.

Technologies: React, TypeScript, Vite, Tailwind, Supabase.
