UniCookbook User Manual
Welcome to UniCookbook! This guide will help you understand all the features and functionality of the application.
Table of Contents
- Getting Started
- Authentication
- User Profile
- Preferences
- Admin Features
- Adding Recipes
- Viewing Recipes
- Personal Recipes
- Shopping Lists (AnyList)
- Cooking Mode
- Editing Recipes
- Filtering & Search
- Tag System
- Recipe Approval System
- Recipe Approvals Dashboard
- Statistics Dashboard
- Sharing & Exporting
- Data Management
- Navigation
Getting Started
UniCookbook is a collaborative recipe management application that allows users to add, view, edit, and share recipes. The app supports AI-powered recipe parsing from text, URLs, images, and multi-page PDFs, making it easy to import recipes from virtually any source.
Key Features
- 🤖 AI-powered recipe parsing with GPT-4o Vision
- 📸 Image and PDF upload support
- 📄 Multi-page PDF processing with page selection
- 🌍 Automatic language detection and translation to British English
- 📏 Imperial to metric conversion
- 🔐 Google authentication with role-based access
- 🏷️ Multi-tag filtering system
- ✅ Recipe approval workflow
- 📤 Share, print, and export recipes
- 🔍 Advanced search functionality
- 💾 Cloud storage with Supabase
Authentication
Login Methods
Google Sign-In
- Click the "Sign in with Google" button
- Select your Google account
- If your email is in the authorized users list, you'll have full access
Guest Access
- Click "Continue as Guest" for read-only access without creating an account
- Guest users can view approved recipes but cannot add or edit
- Guest sessions are managed by Supabase's anonymous authentication feature
User Roles
Authorized Users
Authorized users (defined in the backend's AUTHORIZED_USERS environment variable) have full access:
- ✅ Add new recipes
- ✅ Edit any recipe
- ✅ Delete recipes
- ✅ Approve untested recipes
- ✅ View all recipes including untested ones
- ✅ Access all filter tags including "Untested"
Non-Authorized Users & Guests
Non-authorized users and guests have limited access:
- ✅ View approved recipes (non-untested)
- ❌ Cannot see "Untested" recipes
- ❌ Cannot see "Untested" filter tag
- ❌ Cannot add, edit, or delete recipes
- ❌ Cannot approve recipes
User Profile
Accessing Your Profile
- Click your profile icon in the top-right corner
- Select "User Profile" (or navigate to the profile view)
- You'll see your account details including:
- Email (from Google account, read-only)
- Full Name (synced from Google, read-only)
- Display Name (Alias) - Your contributor alias (editable by authorized users)
- Authorization Status - Shows if you're an authorized user or guest
- Member Since - Account creation date
- Last Login - Your most recent login
Setting Your Display Name (Alias)
Authorized Users Only: Your display name (alias) is how your name appears as the contributor on recipes you add or contribute to.
- Click the Display Name (Alias) field
- Enter your preferred alias (up to 50 characters)
- Click Save Changes
Alias Rules:
- Must be unique across all users (no two users can have the same alias)
- Cannot be empty
- Maximum 50 characters
- Appears on all recipes you contribute to
Note: Non-authorized users cannot set an alias. The alias field is disabled for guest and non-authorized users.
Recipe Adoption
If you change your alias and there are existing recipes with custom contributor names that match your new alias, you'll be prompted:
Found X recipe(s) with custom contributor "[YourNewAlias]".
Do you want to adopt them by linking to your profile?
- OK: Links those recipes to your profile (they'll show your alias going forward)
- Cancel: Leaves them as custom contributors
Deleting Your Profile
⚠️ Warning: This action cannot be undone!
- Scroll to the bottom of your profile
- Click Delete Profile
- Confirm the deletion
When you delete your profile:
- Your user ID is removed from all recipes you contributed to
- Custom contributor names remain (e.g., if a recipe used "John's Special" as a custom name, it stays)
Admin Features
Administrators (defined in the ADMIN_USERS environment variable) have access to additional management features.
Authorized Users Management
Admin users can manage who has editing access by maintaining an "Authorized Users" list separate from environment configuration.
Accessing the Interface
- Click your profile icon in the top-right corner
- Select "Authorized Users"
- You'll see a list of currently authorized users and controls to add/remove them
Adding an Authorized User
Using the Dropdown:
- In the "Add Authorized User" section, click the email input field
- Start typing to filter from authenticated-but-unauthorized users
- Click a suggestion to select it
- Click the "Add" button
Using Manual Entry:
- Type an email address directly (doesn't need to be an existing user)
- Click the "Add" button
- The user will receive authorization once they create an account
Features:
- Single-field interface with dropdown suggestions
- Filter suggestions as you type
- See alias alongside email in suggestions
- Manual email entry for users not yet authenticated
- Suggestions automatically close after successful add
Removing an Authorized User
- Find the user in the "Current Authorized Users" list
- Click the trash icon button
- Click again to confirm removal
- The user will lose editing access immediately
Notes
- The admin users list (defined in
ADMIN_USERSenv var) cannot be changed in this interface - Changes take effect immediately
- Users do not need to log out/in for changes to apply
- Removed users retain their profile and view history but lose editing permissions
- All approvals you gave are removed from recipes
- Your account is permanently deleted
- You'll be logged out
Preferences
Access: Authorized users only
Accessing Preferences
- Click your profile icon in the top-right corner
- Select "Preferences" from the menu
- Adjust your recipe visibility settings
Available Preferences
Show Untested Recipes
Default: Hidden (unchecked)
When enabled:
- ✅ View all recipes tagged "Untested"
- ✅ See "Untested" as a filter option
- ✅ Approved recipes continue to show
This preference is useful if you want to browse recipes under testing before they receive final approval.
Show My Untested Recipes
Default: Enabled (checked)
When enabled (only available when "Show Untested Recipes" is unchecked):
- ✅ Always see your own submitted untested recipes
- ✅ Even if general untested visibility is hidden
- ❌ Does not show other users' untested recipes
This allows you to track recipes you've submitted for testing without viewing all untested recipes in the system.
Note: This setting is automatically disabled when "Show Untested Recipes" is enabled, since all untested recipes will already be visible.
Show Recipe View Counts
Default: Hidden (unchecked)
When enabled (authorized users only):
- ✅ Show total views on recipe cards
- ✅ Pair with "Popularity" sorting for fastest access to top-viewed recipes
- ❌ Hidden from guests and non-authorized users
Toggle this on if you want to see traffic signals for each recipe while browsing.
Enable Recipe Images
Default: Hidden (unchecked)
When enabled:
- ✅ Show dish photos on recipe detail pages
- ✅ Unlock the image grid view in the list toggle
- ✅ Show image upload controls when editing or adding recipes
Use this if you want a more visual recipe browsing experience.
Overview
UniCookbook offers multiple ways to add recipes using AI-powered parsing:
- Text Input - Paste recipe text
- URL Import - Enter a recipe URL
- Image Upload - Upload photos or screenshots
- PDF Upload - Upload single or multi-page PDFs
All methods use advanced AI to extract recipe information, detect the language, translate to British English if needed, and convert measurements to metric.
Method 1: Paste Text
- Click the "Add Recipe" button (+ icon)
- Select the "Paste Text" tab
- Paste or type your recipe in any format
- Click "Parse Recipe with AI"
- The AI will extract and structure:
- Title
- Servings
- Prep time
- Cook time
- Ingredients (with support for ingredient groups)
- Instructions
- Notes
- Tags
AI Processing:
- Detects if the recipe is in a foreign language
- Translates to British English (GB)
- Uses British terminology (courgette, aubergine, etc.)
- Converts imperial measurements to metric with originals in brackets
Method 2: URL Import
- Click the "Add Recipe" button (+ icon)
- Select the "From URL" tab
- Paste a recipe URL from a supported website
- Click "Parse Recipe from URL"
- The AI will fetch, parse, and process the recipe
Notes:
- Works with most recipe websites
- May fail on paywalled or login-required sites
- Complex pages may take longer to process
Method 3: Image Upload
- Click the "Add Recipe" button (+ icon)
- Select the "Upload Image/PDF" tab
- Click the upload area or drag and drop an image
- Wait for the image to be processed and compressed
- Click "Parse Recipe from Image"
Supported Image Formats:
- PNG, JPG, JPEG
- Maximum file size: 10MB
- Images are automatically compressed to optimize processing
Best Results:
- Use clear, well-lit photos
- Ensure text is readable
- Works with cookbook photos, screenshots, or handwritten recipes
Method 4: PDF Upload (Multi-Page Support)
- Click the "Add Recipe" button (+ icon)
- Select the "Upload Image/PDF" tab
- Upload a PDF file (drag and drop or click to browse)
- Wait for PDF conversion (all pages are converted to images)
- For multi-page PDFs:
- View thumbnails of all pages
- Click pages to select/deselect
- Use "Select All" or "Clear" buttons
- First page is selected by default
- Click "Parse Recipe from X Page(s)"
- The AI will combine selected pages into a single recipe
PDF Features:
- Supports multi-page PDFs
- Select specific pages to parse
- AI combines multiple pages into one recipe
- Maximum file size: 10MB
- Password-protected PDFs not supported
Processing Details:
- Each page is converted to an image
- Images are compressed for faster processing
- Selected pages are sent together to the AI
- AI intelligently combines information from all pages
Recipe Preview & Editing
After parsing, you'll see a preview where you can:
- Edit any field (all pre-filled by AI)
- Add, remove, or reorder ingredients and instructions
- Review AI conversions and translations
- Add custom tags
- Upload a dish image (when enabled in Preferences)
- Save or discard the recipe
Default Behavior
Automatic Tagging:
- All new recipes receive an "Untested" tag automatically
- If you have active filter tags when adding a recipe, those tags are also added automatically
AI Processing:
- Language detection and translation to British English
- Metric conversion (imperial measurements converted with originals in brackets)
- British terminology (courgette instead of zucchini, aubergine instead of eggplant)
- Structured grouping of ingredients and instructions
Contributor Tracking:
- Authorized users: Your alias (from your user profile) is used as the contributor
- Non-authorized users: You cannot add recipes
Continue Adding:
- Check "Continue adding recipes" to quickly add multiple recipes without returning to the list
Viewing Recipes
Opening a recipe while signed in records a view for that recipe (tracked per user per day). Guests can browse but their views are not counted.
Recipe List View
Recipes are displayed as cards showing:
- Title
- Tags
- Servings, prep time, and contributor
- Number of ingredients and steps
- View count (authorized users only, when Show Recipe View Counts is enabled in Preferences)
Visual Indicators:
- 🟡 Yellow cards = Untested recipes (visible only to authorized users)
- ⚪ White cards = Approved recipes
Image Grid View (optional): If Enable Recipe Images is turned on, the compact/normal toggle cycles through a third view that shows recipes as image tiles (2 across on mobile). Recipes without images show a colored tile with the name.
Recipe Detail View
Click any recipe card to view full details:
- Complete ingredient list (with support for ingredient groups marked with ###)
- Step-by-step instructions
- Notes section
- Contributor information
- Tags
- Approval status (for untested recipes)
- Dish image (when enabled)
Action Buttons
In the recipe detail view:
- 🔗 Share - Copy a shareable link to clipboard
- 📋 Copy - Copy the entire recipe text to clipboard
- ✏️ Edit - Modify the recipe (authorized users only)
- 🖨️ Print - Print-friendly view
- 📥 Download - Export as PDF
- 🗑️ Delete - Remove the recipe (authorized users only)
Personal Recipes
Use your private cookbook to keep drafts or personal-only recipes separate from the shared collection.
- Turn on personal recipes: Enable the personal cookbook in settings. When adding, choose Shared or Personal from the collection picker.
- Private by default: Personal recipes are visible only to you; they use the same add/edit/delete flow as shared recipes.
- Separate backups: Personal backups export only your private items. Shared backups exclude them so you do not leak private content.
- Submit later (step-by-step): Open a personal recipe → click Submit to shared → confirm. If a shared copy already exists for this personal recipe, it is updated; otherwise a new shared recipe is created.
- Keep editing privately: Continue refining in personal space even after submitting. When ready, click Submit to shared again to push your latest edits to the linked shared copy without losing your private version.
Shopping Lists (AnyList)
Send ingredients from any recipe to your AnyList shopping lists.
Connect your AnyList account
- Go to User Profile → AnyList Integration.
- Enter your AnyList email and password, then click Connect to AnyList.
- Pick your default shopping list (first AnyList list is preselected). Lists load from your AnyList account; create lists there first if none appear.
- Credentials are used only to authenticate and are not stored; you will enter your password again when adding items.
Add ingredients from a recipe
- Open a recipe and tap the shopping cart icon in the action bar (desktop and mobile).
- Choose the target list in the modal (switch lists anytime).
- Select which ingredients to send. All non-header ingredients start selected; use Select all or Unselect all for quick toggles.
- Enter your AnyList password for this add-to-list action.
- Click Add to list. A success banner confirms items were sent; inline errors will call out missing connection, lists, or invalid credentials.
Disconnect
- Go to User Profile → AnyList Integration.
- Click Disconnect from AnyList and confirm. Reconnect later to send ingredients again.
Notes:
- Reconnect if you add new AnyList lists and do not see them in the dropdown.
- Ingredients are added as unchecked; previously completed matches are automatically unchecked.
Cooking Mode
Overview
Cooking Mode is a mobile-friendly feature designed to help you follow recipes hands-free while cooking. It enables you to:
- ✅ Check off ingredients as you prepare them
- 👁️ Highlight each step individually for easy reading
- 🔄 Navigate between steps with previous/next buttons or by tapping steps
- 📱 Keep your screen awake while cooking
- 🔄 Reset all progress at any time
Accessing Cooking Mode
- Open any recipe in detail view on a mobile device
- Tap the menu button (☰) to open the actions menu
- Select Cooking Mode to enable it
Important: Cooking Mode is optimized for mobile devices and works best on smartphones and tablets.
Using Cooking Mode
Checking Ingredients
When you enable Cooking Mode on mobile, the recipe switches into a swipeable layout with two pages: Ingredients and Steps. The dots at the bottom indicate which page you are on.
Tip: Add a short screen recording here showing the swipe between Ingredients and Steps.
- Swipe left/right (or use the buttons) to switch between Ingredients and Steps
- Tap on any ingredient to check it off
- Checked ingredients appear with a green checkmark and strikethrough
- Tap again to uncheck an ingredient
- There's no requirement to check all ingredients before moving to instructions
Following Instructions
On the Steps page:
- The current step is highlighted in orange with a larger font
- The step navigation controls are always visible at the top (sticky)
- Tap Previous or Next buttons to navigate between steps
- Or tap any step directly to jump to it
- The current step automatically scrolls into view when you navigate
- Progress is displayed as "Step X of Y"
- The step panel lists ingredients matched to the current step text
- Tap an ingredient in the step panel to mark it used; the checkmark syncs with the Ingredients page
Resetting Progress
During cooking mode:
- Click the Reset button to clear all checked ingredients and return to step 1
- The view scrolls back to the top of the page so the cooking mode controls are visible
- Alternatively, exit cooking mode (tap the menu and select "Exit Cooking Mode") to automatically reset all progress
Screen Wake Lock
When Cooking Mode is active, your device's screen will stay awake and won't go to sleep. This prevents the screen from locking while you're actively cooking.
- The Wake Lock is activated when entering Cooking Mode
- It's automatically released when exiting Cooking Mode
- This feature works on modern mobile browsers (Chrome, Firefox, Safari on iOS 15+)
Saving Your Progress
Cooking Mode progress is automatically saved to your device:
- Checked ingredients and current step are remembered
- Progress survives page refreshes
- Each recipe maintains its own separate cooking session
Exiting Cooking Mode
To exit Cooking Mode:
- Tap the menu button (☰)
- Select Exit Cooking Mode
- All progress (checked ingredients and current step) will be automatically reset
- You'll return to the normal recipe view
Note: Cooking Mode is also reset when you log out from your account.
Editing Recipes
Access: Authorized users only
- Open a recipe in detail view
- Click the Edit button (pencil icon)
- Modify any field:
- Text fields: Direct editing
- Ingredients/Instructions: Add, remove, reorder, or edit individual items
- Tags: Select from predefined tags or add custom ones
- Click "Save Changes" or "Cancel"
Editing Features
Ingredients & Instructions:
- ➕ Add new items
- 🗑️ Remove items
- ↕️ Reorder with drag handles
- ✏️ Edit text inline
Tags:
- Select from predefined categories:
- Breakfast
- Pasta
- Not Pasta
- Dips & Sauces
- Sweet Stuff
- Drinks
- Untested
- Add custom tags via text input
Metric Conversion:
- Click "Convert to Metric" to automatically convert imperial measurements to metric
- Uses AI to intelligently convert based on ingredient type
- Preserves original measurements in brackets
- Handles teaspoons and tablespoons appropriately
- Converts British vs American terminology
Filtering & Search
Tag Filtering
Filter recipes by one or more tags:
- Click tag pills in the sidebar or above the recipe list
- Multiple tags can be active (shows recipes matching ALL selected tags)
- Active tags are highlighted
- Click again to deselect
Available Tags:
- Breakfast
- Pasta
- Not Pasta
- Dips & Sauces
- Sweet Stuff
- Drinks
- Untested (authorized users only)
- Custom tags (user-created)
Search Bar
Use the search box to find recipes by:
- Recipe title
- Ingredient names
- Instruction text
- Contributor names
- Tags
Search Tips:
- Search is case-insensitive
- Matches partial words
- Searches across all recipe fields
- Combines with tag filters
Contributor Filter
Filter by contributor (authorized users only):
- Click the contributor dropdown
- Select a specific contributor
- View only recipes from that contributor
- Select "All Contributors" to clear
Sorting
Use the sort controls above the recipe grid to reorder results:
- Popularity: Sort by total views (requires tracked views; falls back gracefully when counts are zero)
- Date: Sort by newest/oldest
- A-Z: Sort alphabetically by title
Click the direction toggle to switch between ascending/descending. Popularity sorting is most useful when Show Recipe View Counts is enabled so you can see the underlying view numbers.
Tag System
Predefined Tags
UniCookbook includes these built-in tags:
- Breakfast - Morning meals
- Pasta - Pasta-based dishes
- Not Pasta - Non-pasta dishes
- Dips & Sauces - Dips, sauces, and condiments
- Sweet Stuff - Desserts and sweet treats
- Drinks - Beverages
- Untested - Recipes not yet tested (auto-added to new recipes)
Custom Tags
Authorized users can add custom tags:
- When editing a recipe, type a new tag name
- Press Enter or click "Add"
- The tag is added to the recipe and becomes available system-wide
Tag Behavior
- Tags are case-sensitive
- Tags persist across all recipes
- Deleting a tag from one recipe doesn't remove it from others
- Custom tags appear alongside predefined tags
Recipe Approval System
Access: Authorized users only
Purpose
The approval system helps manage recipe quality:
- New recipes are marked "Untested" by default
- Authorized users can test and approve recipes
- Recipes require 2 approvals to be marked as tested
- Non-authorized users only see approved recipes
Approval Workflow
- Open an untested recipe (yellow card)
- Scroll to the "Approval Status" section
- Click "Approve Recipe"
- Your approval is recorded
- Once 2 users have approved, the "Untested" tag is automatically removed
Approval Rules
- ✅ You can approve any recipe except your own submissions
- ✅ Each authorized user can approve once per recipe
- ✅ Once approved, you can remove your approval
- ❌ Contributors cannot approve their own recipes
- ❌ Recipes are locked at 2 approvals (can't add more)
Unapproving a Recipe
- Open a recipe you previously approved
- Click "Remove My Approval"
- If the recipe drops below 2 approvals, the "Untested" tag is restored
- The recipe returns to pending status
Recipe Approvals Dashboard
Access: Authorized users only
Accessing the Approvals Dashboard
- Click your profile icon in the top-right corner
- Select "Approvals" from the menu
- View all recipes pending your approval
Dashboard Features
Approval List:
- Shows only untested recipes you can approve
- Excludes your own recipes
- Excludes recipes you've already approved
- Excludes recipes with 2 approvals already
Information per Recipe:
- Recipe title and contributor
- Tags (including "Untested" indicator)
- Current approval count (e.g., "1/2 approvals")
- Approvals remaining (e.g., "1 approval needed")
Actions:
-
👁️ View - Open full recipe details in a new view without leaving the approvals screen
- Click "View" to see ingredients, instructions, and notes
- Click "Back to Approvals" to return to the dashboard
-
☑️ Select - Check the checkbox to select recipes for bulk approval
-
Approve Selected - Approve multiple recipes at once
- Only available when at least one recipe is selected
- Button shows count: "Approve selected (X selected)"
- Automatically removes approved recipes from the list
- Shows success message with count
Bulk Approval Workflow
- Review the list of pending recipes
- Check boxes next to recipes you want to approve
- Click "Approve selected" button
- Selected recipes are approved in one action
- Successfully approved recipes are removed from the list
- A confirmation message shows how many were approved
Tips
- View before approving - Click "View" to check recipe details before approving
- Selective approvals - Only select recipes you've tested and verified
- Bulk efficiency - Select multiple recipes to approve them quickly
- Empty list - When the list is empty, all untested recipes are either approved or waiting for others
Statistics Dashboard
Authorized Users Only
The Statistics Dashboard provides comprehensive analytics about recipe views and contributions, helping you understand how your cookbook is being used.
Accessing Statistics
- Click your profile menu (top-right corner)
- Select Statistics (purple bar chart icon)
- The statistics page opens showing analytics for the last 30 days
Time Period Selection
Choose different time ranges to analyze your data:
- Last 7 days: Recent activity and short-term trends
- Last 30 days: Monthly overview (default selection)
- Last 90 days: Quarterly analysis
- Last year: Annual statistics
Select your preferred time period from the dropdown at the top of the page. All charts update automatically to reflect the chosen timeframe.
Available Charts
1. Views Over Time
Type: Column/Line Chart
- Shows daily recipe views across the selected time period
- Each bar represents total views for that day
- Hover over bars to see exact view counts
- Helps identify usage patterns and peak activity days
Use Cases:
- Track recipe usage trends
- Identify busy days or seasonal patterns
- Monitor overall engagement with your cookbook
2. Top Recipes
Type: Horizontal Bar Chart
- Displays the 10 most viewed recipes
- Shows recipe titles with their total view counts
- Bars are color-coded with a green gradient
- Longer bars indicate more popular recipes
Use Cases:
- Discover which recipes are most popular
- Understand what types of recipes engage users most
- Plan which recipes to promote or improve
3. Top Countries
Type: Horizontal Bar Chart
- Shows geographic distribution of your viewers
- Based on IP geolocation data
- Displays country codes (e.g., GB, US, DE, FR)
- Limited to top 10 countries
Use Cases:
- Understand your international audience
- Consider adding region-specific recipes
- Optimize content for your primary geographic markets
4. Operating Systems
Type: Horizontal Bar Chart
- Platform usage breakdown (Windows, macOS, iOS, Android, Linux, etc.)
- Shows which operating systems your users prefer
- Helps ensure compatibility across platforms
Use Cases:
- Understand your audience's technical setup
- Prioritize testing on popular platforms
- Optimize UI/UX for primary operating systems
5. Web Browsers
Type: Horizontal Bar Chart
- Browser distribution (Chrome, Firefox, Safari, Edge, etc.)
- Shows which browsers are most commonly used
- Helps prioritize browser compatibility testing
Use Cases:
- Ensure the app works well on popular browsers
- Debug browser-specific issues
- Understand your users' browsing preferences
6. Most Active Users
Type: Horizontal Bar Chart
- Shows users ranked by total view count
- Displays user aliases (display names) for privacy
- Teal-colored bars indicate view counts
- Limited to top 10 most active users
Use Cases:
- Identify your most engaged readers
- Recognize frequent users
- Understand user behavior patterns
- Thank active community members
7. Recipe Contributions
Type: Interactive Pie Chart
- Shows recipe distribution by contributor
- Each slice represents a contributor's share of total recipes
- Color-coded with 10 vibrant colors
- Displays both registered users and custom contributors
Features:
- Pie Chart: Visual representation with proportional slices
- Legend: Lists all contributors with:
- Color indicator (matching slice color)
- Contributor name or alias
- Percentage of total recipes
- Exact recipe count
- Hover Tooltips: Hover over pie slices for detailed information
Use Cases:
- See who contributes most to the cookbook
- Recognize top contributors
- Balance recipe variety across contributors
- Track contribution diversity
Summary Statistics
At the bottom of the dashboard, four summary cards display key metrics:
Total Views
- Color: Green
- Sum of all recipe views in the selected time period
- Indicates overall cookbook engagement
Recipes Viewed
- Color: Blue
- Number of unique recipes that received at least one view
- Shows content coverage and diversity of interests
Countries
- Color: Purple
- Number of different countries accessing your recipes
- Indicates geographic reach
Browsers
- Color: Orange
- Variety of browsers used to view recipes
- Shows technical diversity of your audience
Understanding the Data
View Tracking
- Views are tracked only for authenticated (signed-in) users
- Each user's daily views per recipe are counted once
- Refreshing a recipe multiple times in one day counts as 1 view
- Viewing on different days increments the count
User Privacy
- User views display aliases (display names), not full names or emails
- IP addresses are used for geolocation but not displayed
- Browser and platform data is anonymized
Data Aggregation
- All statistics are aggregated on the server for performance
- Charts display up to 10 items (top 10 recipes, countries, users, etc.)
- Time-based data shows all dates in the selected range
Tips for Using Statistics
- Regular Monitoring: Check statistics weekly to track trends
- Compare Time Periods: Switch between 7/30/90/365 days to see different perspectives
- Content Strategy: Use top recipes data to guide new recipe additions
- User Engagement: Identify and engage with most active users
- Contributor Recognition: Acknowledge top contributors based on the pie chart
- Geographic Insights: Consider adding recipes popular in your top countries
- Technical Optimization: Ensure the app works well on popular browsers/platforms
Troubleshooting
No Data Showing:
- Ensure recipes have been viewed by authenticated users
- Check that view tracking is enabled in your backend
- Verify users are signing in (guest views are not tracked)
Limited Data:
- Try extending the time period (e.g., from 7 to 30 days)
- Encourage users to sign in for view tracking
- Allow more time for data to accumulate
Pie Chart Not Displaying:
- Ensure recipes have contributor information (contributor_id or contributor field)
- Check that at least one recipe exists in the database
- Verify backend is returning recipeContributions data
Navigation
Browser Back Button
UniCookbook supports native browser navigation:
- Click the browser back button (← in top-left) to go to the previous screen
- Back button remembers your navigation history within the app
- Works across all screens (recipe list → recipe detail → back to list)
Contextual Navigation
The app intelligently tracks where you came from:
- From Recipe List: Back button returns to recipe list
- From Approvals: Back button returns to approvals dashboard
- From Detail View: "Back to Recipes" or "Back to Approvals" button text changes based on source
- From Other Screens: Back button navigates to the previous screen
Navigation Tips
- Use back button to quickly navigate between screens
- Breadcrumb text updates to show your current location
- All screens support back navigation
Sharing & Exporting
Share Link
Create a link
- Sign in, open a recipe in detail view
- Click the Share button (🔗) to copy a signed URL with
recipeandtokenparameters - Personal recipes can only be shared by their owner; shared recipes can be shared by any signed-in user
What recipients see
- No sign-in required; the link opens a recipe-only view tied to that token
- Navigation to other recipes, adding, or editing is blocked in the share view
- Recipients can copy, print, or download the recipe
- Links expire after 30 days—if expired, ask the sharer to generate a fresh link
Copy to Clipboard
- Open a recipe
- Click the Copy button (📋)
- The entire recipe text is copied in plain format
- Paste anywhere (email, notes, messages)
Print
- Open a recipe
- Click the Print button (🖨️)
- A print-friendly version opens
- Use your browser's print function
Print Features:
- Clean, formatted layout
- Ingredient groups preserved
- Instruction sections preserved
- No UI elements (buttons, filters)
- Optional dish image in the top-left (when enabled)
Download as PDF
- Open a recipe
- Click the Download button (📥)
- A formatted PDF is generated
- The PDF downloads automatically
PDF Features:
- Professional formatting
- Preserves all recipe groups
- Includes all metadata
- Suitable for archiving or sharing
Data Management
Backup & Restore
Access: Authorized users only
Creating a Backup
- Go to the recipe list view
- Click "Download Backup"
- All recipes are exported as a JSON file
- Save the file securely
Restoring from Backup
- Click "Restore from Backup"
- Select a previously saved backup file
- Choose restore option:
- Replace all: Deletes current recipes and restores from backup
- Merge: Adds backup recipes to existing ones (skips duplicates)
- Confirm the operation
⚠️ Warning: "Replace all" permanently deletes current recipes!
Data Storage
- Recipes are stored in Supabase PostgreSQL
- Real-time sync across devices
- Automatic backups (if configured in Supabase)
- Secure cloud storage
Tips & Best Practices
Adding Recipes
- Use clear recipe sources - Well-formatted recipes parse better
- Review AI parsing - Always check the preview before saving
- Add descriptive tags - Makes recipes easier to find
- Test multi-page PDFs - Select only relevant pages for better results
- Use good quality images - Clear, well-lit photos work best
Organizing Recipes
- Use consistent tags - Stick to existing tags when possible
- Add notes - Include cooking tips or variations
- Group ingredients logically - Use ### headers for multi-component recipes
- Set clear contributors - Helps track recipe sources
Searching
- Combine filters - Use tags + search for precise results
- Search by ingredient - Find recipes using specific ingredients
- Use contributor filter - Find all recipes from a specific person
Maintenance
- Regular backups - Download backups periodically
- Approve tested recipes - Remove "Untested" tag after testing
- Update recipes - Keep prep/cook times and servings accurate
- Clean up tags - Remove unnecessary custom tags
Troubleshooting
Recipe Parsing Issues
Problem: AI fails to parse recipe correctly
- Solution: Review the source text for clarity, try reformatting, or manually enter the recipe
Problem: URL import fails
- Solution: Ensure the URL is accessible, not behind a paywall, and contains a recipe
Problem: Image/PDF upload fails
- Solution: Check file size (max 10MB), ensure file is not corrupted, refresh page and try again
Problem: PDF conversion fails
- Solution: Verify PDF is not password-protected, try a different PDF viewer to check validity
Authentication Issues
Problem: Can't sign in with Google
- Solution: Check internet connection, verify Google account works, clear browser cache
Problem: Lost authorization after login
- Solution: Contact admin to verify your email is in AUTHORIZED_USERS list
Display Issues
Problem: Recipes not showing
- Solution: Check filter tags, verify you're not filtering to empty results
Problem: Can't see "Untested" recipes
- Solution: This is normal for non-authorized users; contact admin for access
Data Issues
Problem: Recipe changes not saving
- Solution: Check internet connection, verify Supabase is accessible, try refreshing
Problem: Backup restore failed
- Solution: Verify backup file is valid JSON, check file wasn't corrupted
Sharing Issues
Problem: Share link shows "Share link expired" or "Invalid share token"
- Solution: Ask the recipe owner to generate a new link (links last 30 days) and make sure the URL includes both
recipeandtokenparameters
FAQ
Q: Can I add recipes in other languages? A: Yes! The AI automatically detects and translates to British English.
Q: What image formats are supported? A: PNG, JPG, and JPEG files up to 10MB.
Q: Can I upload multi-page PDFs? A: Yes! You can select specific pages to parse and combine into one recipe.
Q: How does metric conversion work? A: The AI converts imperial measurements (cups, ounces, °F) to metric (ml, grams, °C) and includes the original in brackets.
Q: Why are some recipes yellow? A: Yellow cards indicate "Untested" recipes. Authorized users see them by default; you can control visibility in Preferences.
Q: How do recipe approvals work? A: Recipes require 2 approvals from different authorized users to be marked as tested. You can view and approve pending recipes in the Approvals dashboard, and you cannot approve your own submissions.
Q: Can I view recipes before approving them? A: Yes! In the Approvals dashboard, click "View" next to any recipe to see full details before deciding to approve.
Q: How do I see my submitted recipes if untested visibility is off? A: Enable "Show my untested recipes" in Preferences. This lets you track your submissions even when other untested recipes are hidden.
Q: Can I bulk approve recipes? A: Yes! In the Approvals dashboard, select multiple recipes and click "Approve selected" to approve them all at once.
Q: Can guests add recipes? A: No, only authorized users can add, edit, or delete recipes.
Q: How do I become an authorized user? A: Contact the application administrator. If you're an admin user, you can add them using the Authorized Users management interface accessible from your profile.
Q: Are my recipes private? A: Recipes are visible to anyone with app access. Signed share links let you share a single recipe with anyone holding the link, but they cannot browse or edit other recipes.
Q: Can I delete my account? A: Yes, through the User Profile page, but this action cannot be undone.
Q: What happens to my recipes if I delete my account? A: Recipes remain but your profile link is removed; they show as custom contributors.
Contact & Support
For issues, questions, or feature requests, contact the application administrator.
Version: 2.0 Last Updated: January 2026