{"version":1,"pages":[{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation","siteSpaceId":"sitesp_mNrtl","emoji":"1f338"},{"id":"a4j0zxAMNAQc7FVpt5Wp","title":"Changelog","pathname":"/petal-pro-documentation/changelog","siteSpaceId":"sitesp_mNrtl","emoji":"1f4a1","description":"A history of changes to Petal Pro"},{"id":"lb1K5rmw5ZZ4DDBLs0vB","title":"Upgrade guide","pathname":"/petal-pro-documentation/upgrade-guide","siteSpaceId":"sitesp_mNrtl","emoji":"23eb","description":"How to upgrade your PetalPro project to the latest versions"},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_mNrtl","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"jdVc4e2YZPTEHpaGDkra","title":"Deploy to Fly.io","pathname":"/petal-pro-documentation/guides/deploy-to-fly.io","siteSpaceId":"sitesp_mNrtl","emoji":"1f30e","description":"Deploy your application to production using Fly.io","breadcrumbs":[{"label":"Guides"}]},{"id":"0JMy43wrqKm7yWvyPhZz","title":"Adding a subscription","pathname":"/petal-pro-documentation/guides/adding-a-subscription","siteSpaceId":"sitesp_mNrtl","emoji":"1f4b3","description":"How to start charging customers in your web app","breadcrumbs":[{"label":"Guides"}]},{"id":"xw51YfkPRaxBowrBqfjm","title":"Metered Usage","pathname":"/petal-pro-documentation/guides/metered-usage","siteSpaceId":"sitesp_mNrtl","icon":"gauge-high","description":"How to add metered usage to your Stripe subscription","breadcrumbs":[{"label":"Guides"}]},{"id":"bhO7oF3ZqHXw5CyP9cAs","title":"Creating Your Own API","pathname":"/petal-pro-documentation/guides/creating-your-own-api","siteSpaceId":"sitesp_mNrtl","emoji":"1f522","description":"You can use the Petal Pro API for user management (register, sign in and update). It comes with OpenAPI support out of the box.","breadcrumbs":[{"label":"Guides"}]},{"id":"BXN6Sj7gJLEd9gfOpSnB","title":"Content Editor - adding your own plug-in","pathname":"/petal-pro-documentation/guides/content-editor-adding-your-own-plug-in","siteSpaceId":"sitesp_mNrtl","emoji":"1f50c","description":"Adding an Editor.js plug-in and adjusting the renderer","breadcrumbs":[{"label":"Guides"}]},{"id":"3O8IjVUy4aRj6FUAMT3y","title":"Test","pathname":"/petal-pro-documentation/guides/test","siteSpaceId":"sitesp_mNrtl","breadcrumbs":[{"label":"Guides"}]},{"id":"HPO7wZeQIIdxcbjh2rmG","title":"Recipes","pathname":"/petal-pro-documentation/recipes","siteSpaceId":"sitesp_mNrtl","emoji":"1f469-1f373"},{"id":"wP3NqE7I9A7xMuevIJvt","title":"How to apply a recipe with git cherry pick","pathname":"/petal-pro-documentation/recipes/how-to-apply-a-recipe-with-git-cherry-pick","siteSpaceId":"sitesp_mNrtl","emoji":"1f352","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"FM5Ji7yWzugcGJ4tn5WH","title":"UUIDs","pathname":"/petal-pro-documentation/recipes/uuids","siteSpaceId":"sitesp_mNrtl","emoji":"0023-20e3","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"NunmTIgIPxzifxNniuyz","title":"First/Last name","pathname":"/petal-pro-documentation/recipes/first-last-name","siteSpaceId":"sitesp_mNrtl","emoji":"270d","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"cfeqtaV3unzXJrn1VFuB","title":"Google Maps","pathname":"/petal-pro-documentation/recipes/google-maps","siteSpaceId":"sitesp_mNrtl","emoji":"1f5fa","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"t0CLpmXbBM2qmdLg4m5W","title":"Password Hashing for Windows","pathname":"/petal-pro-documentation/recipes/password-hashing-for-windows","siteSpaceId":"sitesp_mNrtl","icon":"windows","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"bS5CR616t1dDJKIQebmA","title":"Installation","pathname":"/petal-pro-documentation/fundamentals/installation","siteSpaceId":"sitesp_mNrtl","emoji":"1f4bf","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vnUbJfejni7SkUexvT1J","title":"Folder structure","pathname":"/petal-pro-documentation/fundamentals/folder-structure","siteSpaceId":"sitesp_mNrtl","emoji":"1f4c2","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/fundamentals/included-pages","siteSpaceId":"sitesp_mNrtl","emoji":"1f5c3","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/fundamentals/users-and-authentication","siteSpaceId":"sitesp_mNrtl","emoji":"1f600","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2BZfTKnQkCtsGdB6wMWM","title":"Organizations & Multitenancy","pathname":"/petal-pro-documentation/fundamentals/organizations-and-multitenancy","siteSpaceId":"sitesp_mNrtl","emoji":"1f3e2","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"mQkYdQBF7OhObAqhqDLD","title":"Stripe billing","pathname":"/petal-pro-documentation/fundamentals/stripe-billing","siteSpaceId":"sitesp_mNrtl","emoji":"1f4b3","description":"Easily add payment plans to your web app with our Stripe integration (v1.7.0 onwards).","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"hwC3Cld8HvSX8nESZJp4","title":"Blog/CMS","pathname":"/petal-pro-documentation/fundamentals/blog-cms","siteSpaceId":"sitesp_mNrtl","icon":"signal-stream","description":"Blogging system based on the Content Editor component.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vEpKmvupFUqQyvCm42Dn","title":"User Notifications","pathname":"/petal-pro-documentation/fundamentals/user-notifications","siteSpaceId":"sitesp_mNrtl","emoji":"1f514","description":"A realtime notification/broadcast system for authenticated users.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/fundamentals/components","siteSpaceId":"sitesp_mNrtl","emoji":"1f9ca","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ClvX6Z8c9YlGIuHy0Of1","title":"Dark mode","pathname":"/petal-pro-documentation/fundamentals/dark-mode","siteSpaceId":"sitesp_mNrtl","emoji":"2b1b","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/fundamentals/branding","siteSpaceId":"sitesp_mNrtl","emoji":"1f3a8","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/fundamentals/seeding","siteSpaceId":"sitesp_mNrtl","emoji":"1f331","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_mNrtl","emoji":"1f4c4","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"k4djqJ72BzcsfACuezKU","title":"Image uploads","pathname":"/petal-pro-documentation/fundamentals/image-uploads","siteSpaceId":"sitesp_mNrtl","emoji":"1f5bc","description":"Allow images to be uploaded to the cloud","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"kkFnf4z55B6iUploSkRg","title":"Impersonation","pathname":"/petal-pro-documentation/fundamentals/impersonation","siteSpaceId":"sitesp_mNrtl","emoji":"1f465","description":"Admins can sign in as any user","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_mNrtl","emoji":"1f6e0","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util & Helpers","pathname":"/petal-pro-documentation/fundamentals/util-and-helpers","siteSpaceId":"sitesp_mNrtl","emoji":"1f527","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/fundamentals/emails","siteSpaceId":"sitesp_mNrtl","emoji":"1f4e7","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/fundamentals/javascript-hooks","siteSpaceId":"sitesp_mNrtl","emoji":"1fa9d","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_mNrtl","emoji":"1f4da","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators","pathname":"/petal-pro-documentation/fundamentals/generators","siteSpaceId":"sitesp_mNrtl","emoji":"1f3d7","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/fundamentals/translations","siteSpaceId":"sitesp_mNrtl","emoji":"1f5e3","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"aCyxlHh1IdqO4vyE61Fg","title":"Contributing","pathname":"/petal-pro-documentation/fundamentals/contributing","siteSpaceId":"sitesp_mNrtl","emoji":"1f590","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"MjkwuYTFFQGAbenxL0aD","title":"Deployment","pathname":"/petal-pro-documentation/fundamentals/deployment","siteSpaceId":"sitesp_mNrtl","emoji":"1f6eb","description":"How to get your app running in production","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"gJoGGSgaR8zDs2ymHEPC","title":"Testing","pathname":"/petal-pro-documentation/fundamentals/testing","siteSpaceId":"sitesp_mNrtl","emoji":"1f6e1","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"W8HCcQ4XEVv7AGPNU09i","title":"REST API","pathname":"/petal-pro-documentation/fundamentals/rest-api","siteSpaceId":"sitesp_mNrtl","emoji":"1f522","description":"Petal Pro comes with a pre-built REST API. Though it is limited in scope, the API has been created so that it is easy to extend","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation/v2.2.0","siteSpaceId":"sitesp_Anuwy","emoji":"1f338"},{"id":"a4j0zxAMNAQc7FVpt5Wp","title":"Changelog","pathname":"/petal-pro-documentation/v2.2.0/changelog","siteSpaceId":"sitesp_Anuwy","emoji":"1f4a1","description":"A history of changes to Petal Pro"},{"id":"lb1K5rmw5ZZ4DDBLs0vB","title":"Upgrade guide","pathname":"/petal-pro-documentation/v2.2.0/upgrade-guide","siteSpaceId":"sitesp_Anuwy","emoji":"23eb","description":"How to upgrade your PetalPro project to the latest versions"},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/v2.2.0/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_Anuwy","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"jdVc4e2YZPTEHpaGDkra","title":"Deploy to Fly.io","pathname":"/petal-pro-documentation/v2.2.0/guides/deploy-to-fly.io","siteSpaceId":"sitesp_Anuwy","emoji":"1f30e","description":"Deploy your application to production using Fly.io","breadcrumbs":[{"label":"Guides"}]},{"id":"0JMy43wrqKm7yWvyPhZz","title":"Adding a subscription","pathname":"/petal-pro-documentation/v2.2.0/guides/adding-a-subscription","siteSpaceId":"sitesp_Anuwy","emoji":"1f4b3","description":"How to start charging customers in your web app","breadcrumbs":[{"label":"Guides"}]},{"id":"bhO7oF3ZqHXw5CyP9cAs","title":"Creating Your Own API","pathname":"/petal-pro-documentation/v2.2.0/guides/creating-your-own-api","siteSpaceId":"sitesp_Anuwy","emoji":"1f522","description":"You can use the Petal Pro API for user management (register, sign in and update). It comes with OpenAPI support out of the box.","breadcrumbs":[{"label":"Guides"}]},{"id":"BXN6Sj7gJLEd9gfOpSnB","title":"Content Editor - adding your own plug-in","pathname":"/petal-pro-documentation/v2.2.0/guides/content-editor-adding-your-own-plug-in","siteSpaceId":"sitesp_Anuwy","emoji":"1f50c","description":"Adding an Editor.js plug-in and adjusting the renderer","breadcrumbs":[{"label":"Guides"}]},{"id":"HPO7wZeQIIdxcbjh2rmG","title":"Recipes","pathname":"/petal-pro-documentation/v2.2.0/recipes","siteSpaceId":"sitesp_Anuwy","emoji":"1f469-1f373"},{"id":"wP3NqE7I9A7xMuevIJvt","title":"How to apply a recipe with git cherry pick","pathname":"/petal-pro-documentation/v2.2.0/recipes/how-to-apply-a-recipe-with-git-cherry-pick","siteSpaceId":"sitesp_Anuwy","emoji":"1f352","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"FM5Ji7yWzugcGJ4tn5WH","title":"UUIDs","pathname":"/petal-pro-documentation/v2.2.0/recipes/uuids","siteSpaceId":"sitesp_Anuwy","emoji":"0023-20e3","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"NunmTIgIPxzifxNniuyz","title":"First/Last name","pathname":"/petal-pro-documentation/v2.2.0/recipes/first-last-name","siteSpaceId":"sitesp_Anuwy","emoji":"270d","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"cfeqtaV3unzXJrn1VFuB","title":"Google Maps","pathname":"/petal-pro-documentation/v2.2.0/recipes/google-maps","siteSpaceId":"sitesp_Anuwy","emoji":"1f5fa","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"t0CLpmXbBM2qmdLg4m5W","title":"Password Hashing for Windows","pathname":"/petal-pro-documentation/v2.2.0/recipes/password-hashing-for-windows","siteSpaceId":"sitesp_Anuwy","icon":"windows","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"bS5CR616t1dDJKIQebmA","title":"Installation","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/installation","siteSpaceId":"sitesp_Anuwy","emoji":"1f4bf","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vnUbJfejni7SkUexvT1J","title":"Folder structure","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/folder-structure","siteSpaceId":"sitesp_Anuwy","emoji":"1f4c2","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/included-pages","siteSpaceId":"sitesp_Anuwy","emoji":"1f5c3","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/users-and-authentication","siteSpaceId":"sitesp_Anuwy","emoji":"1f600","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2BZfTKnQkCtsGdB6wMWM","title":"Organizations & Multitenancy","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/organizations-and-multitenancy","siteSpaceId":"sitesp_Anuwy","emoji":"1f3e2","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"mQkYdQBF7OhObAqhqDLD","title":"Stripe billing","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/stripe-billing","siteSpaceId":"sitesp_Anuwy","emoji":"1f4b3","description":"Easily add payment plans to your web app with our Stripe integration (v1.7.0 onwards).","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"hwC3Cld8HvSX8nESZJp4","title":"Blog/CMS","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/blog-cms","siteSpaceId":"sitesp_Anuwy","icon":"signal-stream","description":"Blogging system based on the Content Editor component.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vEpKmvupFUqQyvCm42Dn","title":"User Notifications","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/user-notifications","siteSpaceId":"sitesp_Anuwy","emoji":"1f514","description":"A realtime notification/broadcast system for authenticated users.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/components","siteSpaceId":"sitesp_Anuwy","emoji":"1f9ca","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ClvX6Z8c9YlGIuHy0Of1","title":"Dark mode","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/dark-mode","siteSpaceId":"sitesp_Anuwy","emoji":"2b1b","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/branding","siteSpaceId":"sitesp_Anuwy","emoji":"1f3a8","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/seeding","siteSpaceId":"sitesp_Anuwy","emoji":"1f331","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_Anuwy","emoji":"1f4c4","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"k4djqJ72BzcsfACuezKU","title":"Image uploads","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/image-uploads","siteSpaceId":"sitesp_Anuwy","emoji":"1f5bc","description":"Allow images to be uploaded to the cloud","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"kkFnf4z55B6iUploSkRg","title":"Impersonation","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/impersonation","siteSpaceId":"sitesp_Anuwy","emoji":"1f465","description":"Admins can sign in as any user","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_Anuwy","emoji":"1f6e0","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util & Helpers","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/util-and-helpers","siteSpaceId":"sitesp_Anuwy","emoji":"1f527","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/emails","siteSpaceId":"sitesp_Anuwy","emoji":"1f4e7","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/javascript-hooks","siteSpaceId":"sitesp_Anuwy","emoji":"1fa9d","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_Anuwy","emoji":"1f4da","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/generators","siteSpaceId":"sitesp_Anuwy","emoji":"1f3d7","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/translations","siteSpaceId":"sitesp_Anuwy","emoji":"1f5e3","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"aCyxlHh1IdqO4vyE61Fg","title":"Contributing","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/contributing","siteSpaceId":"sitesp_Anuwy","emoji":"1f590","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"MjkwuYTFFQGAbenxL0aD","title":"Deployment","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/deployment","siteSpaceId":"sitesp_Anuwy","emoji":"1f6eb","description":"How to get your app running in production","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"gJoGGSgaR8zDs2ymHEPC","title":"Testing","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/testing","siteSpaceId":"sitesp_Anuwy","emoji":"1f6e1","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"W8HCcQ4XEVv7AGPNU09i","title":"REST API","pathname":"/petal-pro-documentation/v2.2.0/fundamentals/rest-api","siteSpaceId":"sitesp_Anuwy","emoji":"1f522","description":"Petal Pro comes with a pre-built REST API. Though it is limited in scope, the API has been created so that it is easy to extend","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation/v2.0.0","siteSpaceId":"sitesp_ysjtX","emoji":"1f338"},{"id":"a4j0zxAMNAQc7FVpt5Wp","title":"Changelog","pathname":"/petal-pro-documentation/v2.0.0/changelog","siteSpaceId":"sitesp_ysjtX","emoji":"1f4a1","description":"A history of changes to Petal Pro"},{"id":"lb1K5rmw5ZZ4DDBLs0vB","title":"Upgrade guide","pathname":"/petal-pro-documentation/v2.0.0/upgrade-guide","siteSpaceId":"sitesp_ysjtX","emoji":"23eb","description":"How to upgrade your PetalPro project to the latest versions"},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/v2.0.0/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_ysjtX","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"jdVc4e2YZPTEHpaGDkra","title":"Deploy to Fly.io","pathname":"/petal-pro-documentation/v2.0.0/guides/deploy-to-fly.io","siteSpaceId":"sitesp_ysjtX","emoji":"1f30e","description":"Deploy your application to production using Fly.io","breadcrumbs":[{"label":"Guides"}]},{"id":"0JMy43wrqKm7yWvyPhZz","title":"Adding a subscription","pathname":"/petal-pro-documentation/v2.0.0/guides/adding-a-subscription","siteSpaceId":"sitesp_ysjtX","emoji":"1f4b3","description":"How to start charging customers in your web app","breadcrumbs":[{"label":"Guides"}]},{"id":"bhO7oF3ZqHXw5CyP9cAs","title":"Creating Your Own API","pathname":"/petal-pro-documentation/v2.0.0/guides/creating-your-own-api","siteSpaceId":"sitesp_ysjtX","emoji":"1f522","description":"You can use the Petal Pro API for user management (register, sign in and update). It comes with OpenAPI support out of the box.","breadcrumbs":[{"label":"Guides"}]},{"id":"HPO7wZeQIIdxcbjh2rmG","title":"Recipes","pathname":"/petal-pro-documentation/v2.0.0/recipes","siteSpaceId":"sitesp_ysjtX","emoji":"1f469-1f373"},{"id":"wP3NqE7I9A7xMuevIJvt","title":"How to apply a recipe with git cherry pick","pathname":"/petal-pro-documentation/v2.0.0/recipes/how-to-apply-a-recipe-with-git-cherry-pick","siteSpaceId":"sitesp_ysjtX","emoji":"1f352","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"FM5Ji7yWzugcGJ4tn5WH","title":"UUIDs","pathname":"/petal-pro-documentation/v2.0.0/recipes/uuids","siteSpaceId":"sitesp_ysjtX","emoji":"0023-20e3","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"NunmTIgIPxzifxNniuyz","title":"First/Last name","pathname":"/petal-pro-documentation/v2.0.0/recipes/first-last-name","siteSpaceId":"sitesp_ysjtX","emoji":"270d","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"cfeqtaV3unzXJrn1VFuB","title":"Google Maps","pathname":"/petal-pro-documentation/v2.0.0/recipes/google-maps","siteSpaceId":"sitesp_ysjtX","emoji":"1f5fa","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"Tg0nYKGrdZ62RHScmyic","title":"Password Hashing for Windows","pathname":"/petal-pro-documentation/v2.0.0/recipes/password-hashing-for-windows","siteSpaceId":"sitesp_ysjtX","icon":"windows","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"bS5CR616t1dDJKIQebmA","title":"Installation","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/installation","siteSpaceId":"sitesp_ysjtX","emoji":"1f4bf","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vnUbJfejni7SkUexvT1J","title":"Folder structure","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/folder-structure","siteSpaceId":"sitesp_ysjtX","emoji":"1f4c2","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/included-pages","siteSpaceId":"sitesp_ysjtX","emoji":"1f5c3","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/users-and-authentication","siteSpaceId":"sitesp_ysjtX","emoji":"1f600","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2BZfTKnQkCtsGdB6wMWM","title":"Organizations & Multitenancy","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/organizations-and-multitenancy","siteSpaceId":"sitesp_ysjtX","emoji":"1f3e2","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"mQkYdQBF7OhObAqhqDLD","title":"Stripe billing","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/stripe-billing","siteSpaceId":"sitesp_ysjtX","emoji":"1f4b3","description":"Easily add payment plans to your web app with our Stripe integration (v1.7.0 onwards).","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vEpKmvupFUqQyvCm42Dn","title":"User Notifications","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/user-notifications","siteSpaceId":"sitesp_ysjtX","emoji":"1f514","description":"A realtime notification/broadcast system for authenticated users.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/components","siteSpaceId":"sitesp_ysjtX","emoji":"1f9ca","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ClvX6Z8c9YlGIuHy0Of1","title":"Dark mode","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/dark-mode","siteSpaceId":"sitesp_ysjtX","emoji":"2b1b","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/branding","siteSpaceId":"sitesp_ysjtX","emoji":"1f3a8","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/seeding","siteSpaceId":"sitesp_ysjtX","emoji":"1f331","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_ysjtX","emoji":"1f4c4","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"k4djqJ72BzcsfACuezKU","title":"Image uploads","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/image-uploads","siteSpaceId":"sitesp_ysjtX","emoji":"1f5bc","description":"Allow images to be uploaded to the cloud","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"kkFnf4z55B6iUploSkRg","title":"Impersonation","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/impersonation","siteSpaceId":"sitesp_ysjtX","emoji":"1f465","description":"Admins can sign in as any user","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_ysjtX","emoji":"1f6e0","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util & Helpers","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/util-and-helpers","siteSpaceId":"sitesp_ysjtX","emoji":"1f527","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/emails","siteSpaceId":"sitesp_ysjtX","emoji":"1f4e7","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/javascript-hooks","siteSpaceId":"sitesp_ysjtX","emoji":"1fa9d","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_ysjtX","emoji":"1f4da","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/generators","siteSpaceId":"sitesp_ysjtX","emoji":"1f3d7","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/translations","siteSpaceId":"sitesp_ysjtX","emoji":"1f5e3","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"aCyxlHh1IdqO4vyE61Fg","title":"Contributing","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/contributing","siteSpaceId":"sitesp_ysjtX","emoji":"1f590","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"MjkwuYTFFQGAbenxL0aD","title":"Deployment","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/deployment","siteSpaceId":"sitesp_ysjtX","emoji":"1f6eb","description":"How to get your app running in production","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"gJoGGSgaR8zDs2ymHEPC","title":"Testing","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/testing","siteSpaceId":"sitesp_ysjtX","emoji":"1f6e1","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"W8HCcQ4XEVv7AGPNU09i","title":"REST API","pathname":"/petal-pro-documentation/v2.0.0/fundamentals/rest-api","siteSpaceId":"sitesp_ysjtX","emoji":"1f522","description":"Petal Pro comes with a pre-built REST API. Though it is limited in scope, the API has been created so that it is easy to extend","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation/v1.8.0","siteSpaceId":"sitesp_EwpIT","emoji":"1f338"},{"id":"a4j0zxAMNAQc7FVpt5Wp","title":"Changelog","pathname":"/petal-pro-documentation/v1.8.0/changelog","siteSpaceId":"sitesp_EwpIT","emoji":"1f4a1","description":"A history of changes to Petal Pro"},{"id":"lb1K5rmw5ZZ4DDBLs0vB","title":"Upgrade guide","pathname":"/petal-pro-documentation/v1.8.0/upgrade-guide","siteSpaceId":"sitesp_EwpIT","emoji":"23eb","description":"How to upgrade your PetalPro project to the latest versions"},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/v1.8.0/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_EwpIT","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"0JMy43wrqKm7yWvyPhZz","title":"Adding a subscription","pathname":"/petal-pro-documentation/v1.8.0/guides/adding-a-subscription","siteSpaceId":"sitesp_EwpIT","emoji":"1f4b3","description":"How to start charging customers in your web app","breadcrumbs":[{"label":"Guides"}]},{"id":"bhO7oF3ZqHXw5CyP9cAs","title":"Creating Your Own API","pathname":"/petal-pro-documentation/v1.8.0/guides/creating-your-own-api","siteSpaceId":"sitesp_EwpIT","emoji":"1f522","description":"You can use the Petal Pro API for user management (register, sign in and update). It comes with OpenAPI support out of the box.","breadcrumbs":[{"label":"Guides"}]},{"id":"HPO7wZeQIIdxcbjh2rmG","title":"Recipes","pathname":"/petal-pro-documentation/v1.8.0/recipes","siteSpaceId":"sitesp_EwpIT","emoji":"1f469-1f373"},{"id":"wP3NqE7I9A7xMuevIJvt","title":"How to apply a recipe with git cherry pick","pathname":"/petal-pro-documentation/v1.8.0/recipes/how-to-apply-a-recipe-with-git-cherry-pick","siteSpaceId":"sitesp_EwpIT","emoji":"1f352","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"FM5Ji7yWzugcGJ4tn5WH","title":"UUIDs","pathname":"/petal-pro-documentation/v1.8.0/recipes/uuids","siteSpaceId":"sitesp_EwpIT","emoji":"0023-20e3","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"NunmTIgIPxzifxNniuyz","title":"First/Last name","pathname":"/petal-pro-documentation/v1.8.0/recipes/first-last-name","siteSpaceId":"sitesp_EwpIT","emoji":"270d","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"foJcokLGw26hofhHDddN","title":"NPM packages","pathname":"/petal-pro-documentation/v1.8.0/recipes/npm-packages","siteSpaceId":"sitesp_EwpIT","emoji":"1f4e6","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"cfeqtaV3unzXJrn1VFuB","title":"Google Maps","pathname":"/petal-pro-documentation/v1.8.0/recipes/google-maps","siteSpaceId":"sitesp_EwpIT","emoji":"1f5fa","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"Yy9sYbAypFU0q3hqzl7k","title":"Password Hashing for Windows","pathname":"/petal-pro-documentation/v1.8.0/recipes/password-hashing-for-windows","siteSpaceId":"sitesp_EwpIT","icon":"windows","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"bS5CR616t1dDJKIQebmA","title":"Installation","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/installation","siteSpaceId":"sitesp_EwpIT","emoji":"1f4bf","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vnUbJfejni7SkUexvT1J","title":"Folder structure","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/folder-structure","siteSpaceId":"sitesp_EwpIT","emoji":"1f4c2","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/included-pages","siteSpaceId":"sitesp_EwpIT","emoji":"1f5c3","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/users-and-authentication","siteSpaceId":"sitesp_EwpIT","emoji":"1f600","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2BZfTKnQkCtsGdB6wMWM","title":"Organizations & Multitenancy","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/organizations-and-multitenancy","siteSpaceId":"sitesp_EwpIT","emoji":"1f3e2","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"mQkYdQBF7OhObAqhqDLD","title":"Stripe billing","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/stripe-billing","siteSpaceId":"sitesp_EwpIT","emoji":"1f4b3","description":"Easily add payment plans to your web app with our Stripe integration (v1.7.0 onwards).","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/components","siteSpaceId":"sitesp_EwpIT","emoji":"1f9ca","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ClvX6Z8c9YlGIuHy0Of1","title":"Dark mode","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/dark-mode","siteSpaceId":"sitesp_EwpIT","emoji":"2b1b","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/branding","siteSpaceId":"sitesp_EwpIT","emoji":"1f3a8","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/seeding","siteSpaceId":"sitesp_EwpIT","emoji":"1f331","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_EwpIT","emoji":"1f4c4","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"k4djqJ72BzcsfACuezKU","title":"Image uploads","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/image-uploads","siteSpaceId":"sitesp_EwpIT","emoji":"1f5bc","description":"Allow images to be uploaded to the cloud","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"kkFnf4z55B6iUploSkRg","title":"Impersonation","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/impersonation","siteSpaceId":"sitesp_EwpIT","emoji":"1f465","description":"Admins can sign in as any user","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_EwpIT","emoji":"1f6e0","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util & Helpers","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/util-and-helpers","siteSpaceId":"sitesp_EwpIT","emoji":"1f527","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/emails","siteSpaceId":"sitesp_EwpIT","emoji":"1f4e7","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/javascript-hooks","siteSpaceId":"sitesp_EwpIT","emoji":"1fa9d","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_EwpIT","emoji":"1f4da","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/generators","siteSpaceId":"sitesp_EwpIT","emoji":"1f3d7","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/translations","siteSpaceId":"sitesp_EwpIT","emoji":"1f5e3","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"aCyxlHh1IdqO4vyE61Fg","title":"Contributing","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/contributing","siteSpaceId":"sitesp_EwpIT","emoji":"1f590","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"MjkwuYTFFQGAbenxL0aD","title":"Deployment","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/deployment","siteSpaceId":"sitesp_EwpIT","emoji":"1f6eb","description":"How to get your app running in production","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"gJoGGSgaR8zDs2ymHEPC","title":"Testing","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/testing","siteSpaceId":"sitesp_EwpIT","emoji":"1f6e1","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"W8HCcQ4XEVv7AGPNU09i","title":"REST API","pathname":"/petal-pro-documentation/v1.8.0/fundamentals/rest-api","siteSpaceId":"sitesp_EwpIT","emoji":"1f522","description":"Petal Pro comes with a pre-built REST API. Though it is limited in scope, the API has been created so that it is easy to extend","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation/v1.7.0","siteSpaceId":"sitesp_RQ72s","emoji":"1f338"},{"id":"a4j0zxAMNAQc7FVpt5Wp","title":"Changelog","pathname":"/petal-pro-documentation/v1.7.0/changelog","siteSpaceId":"sitesp_RQ72s","emoji":"1f4a1","description":"A history of changes to Petal Pro"},{"id":"lb1K5rmw5ZZ4DDBLs0vB","title":"Upgrade guide","pathname":"/petal-pro-documentation/v1.7.0/upgrade-guide","siteSpaceId":"sitesp_RQ72s","emoji":"23eb","description":"How to upgrade your PetalPro project to the latest versions"},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/v1.7.0/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_RQ72s","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"0JMy43wrqKm7yWvyPhZz","title":"Adding a subscription","pathname":"/petal-pro-documentation/v1.7.0/guides/adding-a-subscription","siteSpaceId":"sitesp_RQ72s","emoji":"1f4b3","description":"How to start charging customers in your web app","breadcrumbs":[{"label":"Guides"}]},{"id":"HPO7wZeQIIdxcbjh2rmG","title":"Recipes","pathname":"/petal-pro-documentation/v1.7.0/recipes","siteSpaceId":"sitesp_RQ72s","emoji":"1f469-1f373"},{"id":"wP3NqE7I9A7xMuevIJvt","title":"How to apply a recipe with git cherry pick","pathname":"/petal-pro-documentation/v1.7.0/recipes/how-to-apply-a-recipe-with-git-cherry-pick","siteSpaceId":"sitesp_RQ72s","emoji":"1f352","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"FM5Ji7yWzugcGJ4tn5WH","title":"UUIDs","pathname":"/petal-pro-documentation/v1.7.0/recipes/uuids","siteSpaceId":"sitesp_RQ72s","emoji":"0023-20e3","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"NunmTIgIPxzifxNniuyz","title":"First/Last name","pathname":"/petal-pro-documentation/v1.7.0/recipes/first-last-name","siteSpaceId":"sitesp_RQ72s","emoji":"270d","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"foJcokLGw26hofhHDddN","title":"NPM packages","pathname":"/petal-pro-documentation/v1.7.0/recipes/npm-packages","siteSpaceId":"sitesp_RQ72s","emoji":"1f4e6","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"cfeqtaV3unzXJrn1VFuB","title":"Google Maps","pathname":"/petal-pro-documentation/v1.7.0/recipes/google-maps","siteSpaceId":"sitesp_RQ72s","emoji":"1f5fa","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"bS5CR616t1dDJKIQebmA","title":"Installation","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/installation","siteSpaceId":"sitesp_RQ72s","emoji":"1f4bf","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vnUbJfejni7SkUexvT1J","title":"Folder structure","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/folder-structure","siteSpaceId":"sitesp_RQ72s","emoji":"1f4c2","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/included-pages","siteSpaceId":"sitesp_RQ72s","emoji":"1f5c3","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/users-and-authentication","siteSpaceId":"sitesp_RQ72s","emoji":"1f600","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2BZfTKnQkCtsGdB6wMWM","title":"Organizations & Multitenancy","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/organizations-and-multitenancy","siteSpaceId":"sitesp_RQ72s","emoji":"1f3e2","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"mQkYdQBF7OhObAqhqDLD","title":"Stripe billing","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/stripe-billing","siteSpaceId":"sitesp_RQ72s","emoji":"1f4b3","description":"Easily add payment plans to your web app with our Stripe integration (v1.7.0 onwards).","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/components","siteSpaceId":"sitesp_RQ72s","emoji":"1f9ca","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ClvX6Z8c9YlGIuHy0Of1","title":"Dark mode","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/dark-mode","siteSpaceId":"sitesp_RQ72s","emoji":"2b1b","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/branding","siteSpaceId":"sitesp_RQ72s","emoji":"1f3a8","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/seeding","siteSpaceId":"sitesp_RQ72s","emoji":"1f331","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_RQ72s","emoji":"1f4c4","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"k4djqJ72BzcsfACuezKU","title":"Image uploads","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/image-uploads","siteSpaceId":"sitesp_RQ72s","emoji":"1f5bc","description":"Allow images to be uploaded to the cloud","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"kkFnf4z55B6iUploSkRg","title":"Impersonation","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/impersonation","siteSpaceId":"sitesp_RQ72s","emoji":"1f465","description":"Admins can sign in as any user","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_RQ72s","emoji":"1f6e0","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util & Helpers","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/util-and-helpers","siteSpaceId":"sitesp_RQ72s","emoji":"1f527","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/emails","siteSpaceId":"sitesp_RQ72s","emoji":"1f4e7","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/javascript-hooks","siteSpaceId":"sitesp_RQ72s","emoji":"1fa9d","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_RQ72s","emoji":"1f4da","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/generators","siteSpaceId":"sitesp_RQ72s","emoji":"1f3d7","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/translations","siteSpaceId":"sitesp_RQ72s","emoji":"1f5e3","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"aCyxlHh1IdqO4vyE61Fg","title":"Contributing","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/contributing","siteSpaceId":"sitesp_RQ72s","emoji":"1f590","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"MjkwuYTFFQGAbenxL0aD","title":"Deployment","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/deployment","siteSpaceId":"sitesp_RQ72s","emoji":"1f6eb","description":"How to get your app running in production","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"gJoGGSgaR8zDs2ymHEPC","title":"Testing","pathname":"/petal-pro-documentation/v1.7.0/fundamentals/testing","siteSpaceId":"sitesp_RQ72s","emoji":"1f6e1","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation/v1.6.0","siteSpaceId":"sitesp_L0GOc","emoji":"1f338","description":""},{"id":"a4j0zxAMNAQc7FVpt5Wp","title":"Changelog","pathname":"/petal-pro-documentation/v1.6.0/changelog","siteSpaceId":"sitesp_L0GOc","emoji":"1f4a1","description":"A history of changes to Petal Pro"},{"id":"lb1K5rmw5ZZ4DDBLs0vB","title":"Upgrade guide","pathname":"/petal-pro-documentation/v1.6.0/upgrade-guide","siteSpaceId":"sitesp_L0GOc","emoji":"23eb","description":"How to upgrade your PetalPro project to the latest versions"},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/v1.6.0/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_L0GOc","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"HPO7wZeQIIdxcbjh2rmG","title":"Recipes","pathname":"/petal-pro-documentation/v1.6.0/recipes","siteSpaceId":"sitesp_L0GOc","emoji":"1f469-1f373","description":""},{"id":"wP3NqE7I9A7xMuevIJvt","title":"How to apply a recipe with git cherry pick","pathname":"/petal-pro-documentation/v1.6.0/recipes/how-to-apply-a-recipe-with-git-cherry-pick","siteSpaceId":"sitesp_L0GOc","emoji":"1f352","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"FM5Ji7yWzugcGJ4tn5WH","title":"UUIDs","pathname":"/petal-pro-documentation/v1.6.0/recipes/uuids","siteSpaceId":"sitesp_L0GOc","emoji":"0023-20e3","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"NunmTIgIPxzifxNniuyz","title":"First/Last name","pathname":"/petal-pro-documentation/v1.6.0/recipes/first-last-name","siteSpaceId":"sitesp_L0GOc","emoji":"270d","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"foJcokLGw26hofhHDddN","title":"NPM packages","pathname":"/petal-pro-documentation/v1.6.0/recipes/npm-packages","siteSpaceId":"sitesp_L0GOc","emoji":"1f4e6","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"cfeqtaV3unzXJrn1VFuB","title":"Google Maps","pathname":"/petal-pro-documentation/v1.6.0/recipes/google-maps","siteSpaceId":"sitesp_L0GOc","emoji":"1f5fa","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"bS5CR616t1dDJKIQebmA","title":"Installation","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/installation","siteSpaceId":"sitesp_L0GOc","emoji":"1f4bf","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vnUbJfejni7SkUexvT1J","title":"Folder structure","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/folder-structure","siteSpaceId":"sitesp_L0GOc","emoji":"1f4c2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/included-pages","siteSpaceId":"sitesp_L0GOc","emoji":"1f5c3","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/users-and-authentication","siteSpaceId":"sitesp_L0GOc","emoji":"1f600","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2BZfTKnQkCtsGdB6wMWM","title":"Organizations & Multitenancy","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/organizations-and-multitenancy","siteSpaceId":"sitesp_L0GOc","emoji":"1f3e2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/components","siteSpaceId":"sitesp_L0GOc","emoji":"1f9ca","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ClvX6Z8c9YlGIuHy0Of1","title":"Dark mode","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/dark-mode","siteSpaceId":"sitesp_L0GOc","emoji":"2b1b","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/branding","siteSpaceId":"sitesp_L0GOc","emoji":"1f3a8","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/seeding","siteSpaceId":"sitesp_L0GOc","emoji":"1f331","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_L0GOc","emoji":"1f4c4","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"k4djqJ72BzcsfACuezKU","title":"Image uploads","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/image-uploads","siteSpaceId":"sitesp_L0GOc","emoji":"1f5bc","description":"Allow images to be uploaded to the cloud","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"kkFnf4z55B6iUploSkRg","title":"Impersonation","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/impersonation","siteSpaceId":"sitesp_L0GOc","emoji":"1f465","description":"Admins can sign in as any user","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_L0GOc","emoji":"1f6e0","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util & Helpers","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/util-and-helpers","siteSpaceId":"sitesp_L0GOc","emoji":"1f527","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/emails","siteSpaceId":"sitesp_L0GOc","emoji":"1f4e7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/javascript-hooks","siteSpaceId":"sitesp_L0GOc","emoji":"1fa9d","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_L0GOc","emoji":"1f4da","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/generators","siteSpaceId":"sitesp_L0GOc","emoji":"1f3d7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/translations","siteSpaceId":"sitesp_L0GOc","emoji":"1f5e3","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"aCyxlHh1IdqO4vyE61Fg","title":"Contributing","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/contributing","siteSpaceId":"sitesp_L0GOc","emoji":"1f590","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"MjkwuYTFFQGAbenxL0aD","title":"Deployment","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/deployment","siteSpaceId":"sitesp_L0GOc","emoji":"1f6eb","description":"How to get your app running in production","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"gJoGGSgaR8zDs2ymHEPC","title":"Testing","pathname":"/petal-pro-documentation/v1.6.0/fundamentals/testing","siteSpaceId":"sitesp_L0GOc","emoji":"1f6e1","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation/v1.5.2","siteSpaceId":"sitesp_YrWVO","emoji":"1f338","description":""},{"id":"a4j0zxAMNAQc7FVpt5Wp","title":"Changelog","pathname":"/petal-pro-documentation/v1.5.2/changelog","siteSpaceId":"sitesp_YrWVO","emoji":"1f4a1","description":"A history of changes to Petal Pro"},{"id":"lb1K5rmw5ZZ4DDBLs0vB","title":"Upgrade guide","pathname":"/petal-pro-documentation/v1.5.2/upgrade-guide","siteSpaceId":"sitesp_YrWVO","emoji":"23eb","description":"How to upgrade your PetalPro project to the latest versions"},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/v1.5.2/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_YrWVO","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"HPO7wZeQIIdxcbjh2rmG","title":"Recipes","pathname":"/petal-pro-documentation/v1.5.2/recipes","siteSpaceId":"sitesp_YrWVO","emoji":"1f469-1f373","description":""},{"id":"wP3NqE7I9A7xMuevIJvt","title":"How to apply a recipe with git cherry pick","pathname":"/petal-pro-documentation/v1.5.2/recipes/how-to-apply-a-recipe-with-git-cherry-pick","siteSpaceId":"sitesp_YrWVO","emoji":"1f352","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"FM5Ji7yWzugcGJ4tn5WH","title":"UUIDs","pathname":"/petal-pro-documentation/v1.5.2/recipes/uuids","siteSpaceId":"sitesp_YrWVO","emoji":"0023-20e3","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"NunmTIgIPxzifxNniuyz","title":"First/Last name","pathname":"/petal-pro-documentation/v1.5.2/recipes/first-last-name","siteSpaceId":"sitesp_YrWVO","emoji":"270d","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"foJcokLGw26hofhHDddN","title":"NPM packages","pathname":"/petal-pro-documentation/v1.5.2/recipes/npm-packages","siteSpaceId":"sitesp_YrWVO","emoji":"1f4e6","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"cfeqtaV3unzXJrn1VFuB","title":"Google Maps","pathname":"/petal-pro-documentation/v1.5.2/recipes/google-maps","siteSpaceId":"sitesp_YrWVO","emoji":"1f5fa","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"bS5CR616t1dDJKIQebmA","title":"Installation","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/installation","siteSpaceId":"sitesp_YrWVO","emoji":"1f4bf","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vnUbJfejni7SkUexvT1J","title":"Folder structure","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/folder-structure","siteSpaceId":"sitesp_YrWVO","emoji":"1f4c2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/included-pages","siteSpaceId":"sitesp_YrWVO","emoji":"1f5c3","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/users-and-authentication","siteSpaceId":"sitesp_YrWVO","emoji":"1f600","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2BZfTKnQkCtsGdB6wMWM","title":"Organizations & Multitenancy","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/organizations-and-multitenancy","siteSpaceId":"sitesp_YrWVO","emoji":"1f3e2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/components","siteSpaceId":"sitesp_YrWVO","emoji":"1f9ca","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ClvX6Z8c9YlGIuHy0Of1","title":"Dark mode","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/dark-mode","siteSpaceId":"sitesp_YrWVO","emoji":"2b1b","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/branding","siteSpaceId":"sitesp_YrWVO","emoji":"1f3a8","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/seeding","siteSpaceId":"sitesp_YrWVO","emoji":"1f331","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_YrWVO","emoji":"1f4c4","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_YrWVO","emoji":"1f6e0","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util & Helpers","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/util-and-helpers","siteSpaceId":"sitesp_YrWVO","emoji":"1f527","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/emails","siteSpaceId":"sitesp_YrWVO","emoji":"1f4e7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/javascript-hooks","siteSpaceId":"sitesp_YrWVO","emoji":"1fa9d","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_YrWVO","emoji":"1f4da","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators & Page Builder","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/generators-and-page-builder","siteSpaceId":"sitesp_YrWVO","emoji":"1f3d7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/translations","siteSpaceId":"sitesp_YrWVO","emoji":"1f5e3","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"aCyxlHh1IdqO4vyE61Fg","title":"Contributing","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/contributing","siteSpaceId":"sitesp_YrWVO","emoji":"1f590","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"MjkwuYTFFQGAbenxL0aD","title":"Deployment","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/deployment","siteSpaceId":"sitesp_YrWVO","emoji":"1f6eb","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"gJoGGSgaR8zDs2ymHEPC","title":"Testing","pathname":"/petal-pro-documentation/v1.5.2/fundamentals/testing","siteSpaceId":"sitesp_YrWVO","emoji":"1f6e1","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation/v1.5.0","siteSpaceId":"sitesp_RQ72a","emoji":"1f338","description":""},{"id":"a4j0zxAMNAQc7FVpt5Wp","title":"Changelog","pathname":"/petal-pro-documentation/v1.5.0/changelog","siteSpaceId":"sitesp_RQ72a","emoji":"1f4a1","description":""},{"id":"lb1K5rmw5ZZ4DDBLs0vB","title":"Upgrade guide","pathname":"/petal-pro-documentation/v1.5.0/upgrade-guide","siteSpaceId":"sitesp_RQ72a","emoji":"23eb","description":""},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/v1.5.0/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_RQ72a","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"HPO7wZeQIIdxcbjh2rmG","title":"Recipes","pathname":"/petal-pro-documentation/v1.5.0/recipes","siteSpaceId":"sitesp_RQ72a","emoji":"1f469-1f373","description":""},{"id":"wP3NqE7I9A7xMuevIJvt","title":"How to apply a recipe with git cherry pick","pathname":"/petal-pro-documentation/v1.5.0/recipes/how-to-apply-a-recipe-with-git-cherry-pick","siteSpaceId":"sitesp_RQ72a","emoji":"1f352","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"FM5Ji7yWzugcGJ4tn5WH","title":"UUIDs","pathname":"/petal-pro-documentation/v1.5.0/recipes/uuids","siteSpaceId":"sitesp_RQ72a","emoji":"0023-20e3","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"NunmTIgIPxzifxNniuyz","title":"First/Last name","pathname":"/petal-pro-documentation/v1.5.0/recipes/first-last-name","siteSpaceId":"sitesp_RQ72a","emoji":"270d","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"foJcokLGw26hofhHDddN","title":"NPM packages","pathname":"/petal-pro-documentation/v1.5.0/recipes/npm-packages","siteSpaceId":"sitesp_RQ72a","emoji":"1f4e6","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"cfeqtaV3unzXJrn1VFuB","title":"Google Maps","pathname":"/petal-pro-documentation/v1.5.0/recipes/google-maps","siteSpaceId":"sitesp_RQ72a","emoji":"1f5fa","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"bS5CR616t1dDJKIQebmA","title":"Installation","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/installation","siteSpaceId":"sitesp_RQ72a","emoji":"1f4bf","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vnUbJfejni7SkUexvT1J","title":"Folder structure","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/folder-structure","siteSpaceId":"sitesp_RQ72a","emoji":"1f4c2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/included-pages","siteSpaceId":"sitesp_RQ72a","emoji":"1f5c3","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/users-and-authentication","siteSpaceId":"sitesp_RQ72a","emoji":"1f600","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2BZfTKnQkCtsGdB6wMWM","title":"Organizations & Multitenancy","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/organizations-and-multitenancy","siteSpaceId":"sitesp_RQ72a","emoji":"1f3e2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/components","siteSpaceId":"sitesp_RQ72a","emoji":"1f9ca","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ClvX6Z8c9YlGIuHy0Of1","title":"Dark mode","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/dark-mode","siteSpaceId":"sitesp_RQ72a","emoji":"2b1b","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/branding","siteSpaceId":"sitesp_RQ72a","emoji":"1f3a8","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/seeding","siteSpaceId":"sitesp_RQ72a","emoji":"1f331","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_RQ72a","emoji":"1f4c4","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_RQ72a","emoji":"1f6e0","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util & Helpers","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/util-and-helpers","siteSpaceId":"sitesp_RQ72a","emoji":"1f527","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/emails","siteSpaceId":"sitesp_RQ72a","emoji":"1f4e7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/javascript-hooks","siteSpaceId":"sitesp_RQ72a","emoji":"1fa9d","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_RQ72a","emoji":"1f4da","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators & Page Builder","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/generators-and-page-builder","siteSpaceId":"sitesp_RQ72a","emoji":"1f3d7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/translations","siteSpaceId":"sitesp_RQ72a","emoji":"1f5e3","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"aCyxlHh1IdqO4vyE61Fg","title":"Contributing","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/contributing","siteSpaceId":"sitesp_RQ72a","emoji":"1f590","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"MjkwuYTFFQGAbenxL0aD","title":"Deployment","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/deployment","siteSpaceId":"sitesp_RQ72a","emoji":"1f6eb","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"gJoGGSgaR8zDs2ymHEPC","title":"Testing","pathname":"/petal-pro-documentation/v1.5.0/fundamentals/testing","siteSpaceId":"sitesp_RQ72a","emoji":"1f6e1","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation/v1.4.0","siteSpaceId":"sitesp_WxEN3","emoji":"1f338","description":""},{"id":"a4j0zxAMNAQc7FVpt5Wp","title":"Changelog","pathname":"/petal-pro-documentation/v1.4.0/changelog","siteSpaceId":"sitesp_WxEN3","emoji":"1f4a1","description":""},{"id":"lb1K5rmw5ZZ4DDBLs0vB","title":"Upgrade guide","pathname":"/petal-pro-documentation/v1.4.0/upgrade-guide","siteSpaceId":"sitesp_WxEN3","emoji":"23eb","description":""},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/v1.4.0/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_WxEN3","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"HPO7wZeQIIdxcbjh2rmG","title":"Recipes","pathname":"/petal-pro-documentation/v1.4.0/recipes","siteSpaceId":"sitesp_WxEN3","emoji":"1f469-1f373","description":""},{"id":"wP3NqE7I9A7xMuevIJvt","title":"How to apply a recipe with git cherry pick","pathname":"/petal-pro-documentation/v1.4.0/recipes/how-to-apply-a-recipe-with-git-cherry-pick","siteSpaceId":"sitesp_WxEN3","emoji":"1f352","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"FM5Ji7yWzugcGJ4tn5WH","title":"UUIDs","pathname":"/petal-pro-documentation/v1.4.0/recipes/uuids","siteSpaceId":"sitesp_WxEN3","emoji":"0023-20e3","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"NunmTIgIPxzifxNniuyz","title":"First/Last name","pathname":"/petal-pro-documentation/v1.4.0/recipes/first-last-name","siteSpaceId":"sitesp_WxEN3","emoji":"270d","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"foJcokLGw26hofhHDddN","title":"NPM packages","pathname":"/petal-pro-documentation/v1.4.0/recipes/npm-packages","siteSpaceId":"sitesp_WxEN3","emoji":"1f4e6","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"cfeqtaV3unzXJrn1VFuB","title":"Google Maps","pathname":"/petal-pro-documentation/v1.4.0/recipes/google-maps","siteSpaceId":"sitesp_WxEN3","emoji":"1f5fa","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"bS5CR616t1dDJKIQebmA","title":"Installation","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/installation","siteSpaceId":"sitesp_WxEN3","emoji":"1f4bf","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vnUbJfejni7SkUexvT1J","title":"Folder structure","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/folder-structure","siteSpaceId":"sitesp_WxEN3","emoji":"1f4c2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/included-pages","siteSpaceId":"sitesp_WxEN3","emoji":"1f5c3","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/users-and-authentication","siteSpaceId":"sitesp_WxEN3","emoji":"1f600","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2BZfTKnQkCtsGdB6wMWM","title":"Organizations & Multitenancy","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/organizations-and-multitenancy","siteSpaceId":"sitesp_WxEN3","emoji":"1f3e2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/components","siteSpaceId":"sitesp_WxEN3","emoji":"1f9ca","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ClvX6Z8c9YlGIuHy0Of1","title":"Dark mode","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/dark-mode","siteSpaceId":"sitesp_WxEN3","emoji":"2b1b","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/branding","siteSpaceId":"sitesp_WxEN3","emoji":"1f3a8","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/seeding","siteSpaceId":"sitesp_WxEN3","emoji":"1f331","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_WxEN3","emoji":"1f4c4","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_WxEN3","emoji":"1f6e0","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util & Helpers","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/util-and-helpers","siteSpaceId":"sitesp_WxEN3","emoji":"1f527","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/emails","siteSpaceId":"sitesp_WxEN3","emoji":"1f4e7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/javascript-hooks","siteSpaceId":"sitesp_WxEN3","emoji":"1fa9d","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_WxEN3","emoji":"1f4da","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators & Page Builder","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/generators-and-page-builder","siteSpaceId":"sitesp_WxEN3","emoji":"1f3d7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/translations","siteSpaceId":"sitesp_WxEN3","emoji":"1f5e3","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"aCyxlHh1IdqO4vyE61Fg","title":"Contributing","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/contributing","siteSpaceId":"sitesp_WxEN3","emoji":"1f590","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"MjkwuYTFFQGAbenxL0aD","title":"Deployment","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/deployment","siteSpaceId":"sitesp_WxEN3","emoji":"1f6eb","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"gJoGGSgaR8zDs2ymHEPC","title":"Testing","pathname":"/petal-pro-documentation/v1.4.0/fundamentals/testing","siteSpaceId":"sitesp_WxEN3","emoji":"1f6e1","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation/v1.3.0","siteSpaceId":"sitesp_kMgPS","emoji":"1f338","description":""},{"id":"a4j0zxAMNAQc7FVpt5Wp","title":"Changelog","pathname":"/petal-pro-documentation/v1.3.0/changelog","siteSpaceId":"sitesp_kMgPS","emoji":"1f4a1","description":""},{"id":"lb1K5rmw5ZZ4DDBLs0vB","title":"Upgrade guide","pathname":"/petal-pro-documentation/v1.3.0/upgrade-guide","siteSpaceId":"sitesp_kMgPS","emoji":"23eb","description":""},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/v1.3.0/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_kMgPS","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"HPO7wZeQIIdxcbjh2rmG","title":"Recipes","pathname":"/petal-pro-documentation/v1.3.0/recipes","siteSpaceId":"sitesp_kMgPS","emoji":"1f469-1f373","description":""},{"id":"wP3NqE7I9A7xMuevIJvt","title":"How to apply a recipe with git cherry pick","pathname":"/petal-pro-documentation/v1.3.0/recipes/how-to-apply-a-recipe-with-git-cherry-pick","siteSpaceId":"sitesp_kMgPS","emoji":"1f352","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"FM5Ji7yWzugcGJ4tn5WH","title":"UUIDs","pathname":"/petal-pro-documentation/v1.3.0/recipes/uuids","siteSpaceId":"sitesp_kMgPS","emoji":"0023-20e3","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"NunmTIgIPxzifxNniuyz","title":"First/Last name","pathname":"/petal-pro-documentation/v1.3.0/recipes/first-last-name","siteSpaceId":"sitesp_kMgPS","emoji":"270d","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"foJcokLGw26hofhHDddN","title":"NPM packages","pathname":"/petal-pro-documentation/v1.3.0/recipes/npm-packages","siteSpaceId":"sitesp_kMgPS","emoji":"1f4e6","description":"","breadcrumbs":[{"label":"Recipes","emoji":"1f469-1f373"}]},{"id":"bS5CR616t1dDJKIQebmA","title":"Installation","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/installation","siteSpaceId":"sitesp_kMgPS","emoji":"1f4bf","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vnUbJfejni7SkUexvT1J","title":"Folder structure","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/folder-structure","siteSpaceId":"sitesp_kMgPS","emoji":"1f4c2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/included-pages","siteSpaceId":"sitesp_kMgPS","emoji":"1f5c3","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/users-and-authentication","siteSpaceId":"sitesp_kMgPS","emoji":"1f600","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2BZfTKnQkCtsGdB6wMWM","title":"Organizations & Multitenancy","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/organizations-and-multitenancy","siteSpaceId":"sitesp_kMgPS","emoji":"1f3e2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/components","siteSpaceId":"sitesp_kMgPS","emoji":"1f9ca","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ClvX6Z8c9YlGIuHy0Of1","title":"Dark mode","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/dark-mode","siteSpaceId":"sitesp_kMgPS","emoji":"2b1b","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/branding","siteSpaceId":"sitesp_kMgPS","emoji":"1f3a8","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/seeding","siteSpaceId":"sitesp_kMgPS","emoji":"1f331","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_kMgPS","emoji":"1f4c4","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_kMgPS","emoji":"1f6e0","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util & Helpers","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/util-and-helpers","siteSpaceId":"sitesp_kMgPS","emoji":"1f527","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/emails","siteSpaceId":"sitesp_kMgPS","emoji":"1f4e7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/javascript-hooks","siteSpaceId":"sitesp_kMgPS","emoji":"1fa9d","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_kMgPS","emoji":"1f4da","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators & Page Builder","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/generators-and-page-builder","siteSpaceId":"sitesp_kMgPS","emoji":"1f3d7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/translations","siteSpaceId":"sitesp_kMgPS","emoji":"1f5e3","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"aCyxlHh1IdqO4vyE61Fg","title":"Contributing","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/contributing","siteSpaceId":"sitesp_kMgPS","emoji":"1f590","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"MjkwuYTFFQGAbenxL0aD","title":"Deployment","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/deployment","siteSpaceId":"sitesp_kMgPS","emoji":"1f6eb","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"gJoGGSgaR8zDs2ymHEPC","title":"Testing","pathname":"/petal-pro-documentation/v1.3.0/fundamentals/testing","siteSpaceId":"sitesp_kMgPS","emoji":"1f6e1","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation/v1.2.0","siteSpaceId":"sitesp_SHy31","emoji":"1f338","description":""},{"id":"a4j0zxAMNAQc7FVpt5Wp","title":"V1.2.0 Overview","pathname":"/petal-pro-documentation/v1.2.0/v1.2.0-overview","siteSpaceId":"sitesp_SHy31","emoji":"1f4a1","description":""},{"id":"lb1K5rmw5ZZ4DDBLs0vB","title":"Upgrade guide","pathname":"/petal-pro-documentation/v1.2.0/upgrade-guide","siteSpaceId":"sitesp_SHy31","emoji":"23eb","description":""},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/v1.2.0/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_SHy31","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"bS5CR616t1dDJKIQebmA","title":"Installation","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/installation","siteSpaceId":"sitesp_SHy31","emoji":"1f4bf","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vnUbJfejni7SkUexvT1J","title":"Folder structure","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/folder-structure","siteSpaceId":"sitesp_SHy31","emoji":"1f4c2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/included-pages","siteSpaceId":"sitesp_SHy31","emoji":"1f5c3","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/users-and-authentication","siteSpaceId":"sitesp_SHy31","emoji":"1f600","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"2BZfTKnQkCtsGdB6wMWM","title":"Organizations & Multitenancy","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/organizations-and-multitenancy","siteSpaceId":"sitesp_SHy31","emoji":"1f3e2","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/components","siteSpaceId":"sitesp_SHy31","emoji":"1f9ca","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/branding","siteSpaceId":"sitesp_SHy31","emoji":"1f3a8","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/seeding","siteSpaceId":"sitesp_SHy31","emoji":"1f331","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_SHy31","emoji":"1f4c4","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_SHy31","emoji":"1f6e0","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util, DB & Helpers","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/util-db-and-helpers","siteSpaceId":"sitesp_SHy31","emoji":"1f527","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/emails","siteSpaceId":"sitesp_SHy31","emoji":"1f4e7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/javascript-hooks","siteSpaceId":"sitesp_SHy31","emoji":"1fa9d","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_SHy31","emoji":"1f4da","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators & Page Builder","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/generators-and-page-builder","siteSpaceId":"sitesp_SHy31","emoji":"1f3d7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/translations","siteSpaceId":"sitesp_SHy31","emoji":"1f5e3","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"aCyxlHh1IdqO4vyE61Fg","title":"Contributing","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/contributing","siteSpaceId":"sitesp_SHy31","emoji":"1f590","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"MjkwuYTFFQGAbenxL0aD","title":"Deployment","pathname":"/petal-pro-documentation/v1.2.0/fundamentals/deployment","siteSpaceId":"sitesp_SHy31","emoji":"1f6eb","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"JOTSzVzScZV28t6LmzZ1","title":"What is Petal Pro?","pathname":"/petal-pro-documentation/product-docs","siteSpaceId":"sitesp_KXDwT","emoji":"1f338","description":"This guide is for v1.1.1"},{"id":"oOjPBb02Bhmzy9RlBZJQ","title":"Creating a web app from start to finish","pathname":"/petal-pro-documentation/product-docs/guides/creating-a-web-app-from-start-to-finish","siteSpaceId":"sitesp_KXDwT","emoji":"1f680","description":"Follow a step by step guide to creating a reminders web application using the Petal Pro boilerplate. We will cover everything from setup to deploying to production.","breadcrumbs":[{"label":"Guides"}]},{"id":"ImWDVUbK8g4qe7anD7KY","title":"Users & Authentication","pathname":"/petal-pro-documentation/product-docs/fundamentals/users-and-authentication","siteSpaceId":"sitesp_KXDwT","emoji":"1f465","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"5r7izGjqFHsChUDIG5Fi","title":"Included Pages","pathname":"/petal-pro-documentation/product-docs/fundamentals/included-pages","siteSpaceId":"sitesp_KXDwT","emoji":"1f4c4","description":"While screenshots in this section are in dark mode, every page also has a light mode.","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"pS8DVrmV0pzg9EVn4Ull","title":"Components","pathname":"/petal-pro-documentation/product-docs/fundamentals/components","siteSpaceId":"sitesp_KXDwT","emoji":"1f9ca","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"N654AG9N8H5v2dOJHTre","title":"Branding","pathname":"/petal-pro-documentation/product-docs/fundamentals/branding","siteSpaceId":"sitesp_KXDwT","emoji":"1f3a8","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"m9QRrchv4GHrl1eVbr30","title":"Seeding","pathname":"/petal-pro-documentation/product-docs/fundamentals/seeding","siteSpaceId":"sitesp_KXDwT","emoji":"1f331","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"IVT51dryxRCdI9PlaKkD","title":"Layouts & Menus","pathname":"/petal-pro-documentation/product-docs/fundamentals/layouts-and-menus","siteSpaceId":"sitesp_KXDwT","emoji":"1f4c4","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"c4GmwSgLkKdyVKdDRBqX","title":"Background Tasks and Jobs","pathname":"/petal-pro-documentation/product-docs/fundamentals/background-tasks-and-jobs","siteSpaceId":"sitesp_KXDwT","emoji":"1f6e0","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"fHN9bAlcBrftv3X2fiXF","title":"Util, DB & Helpers","pathname":"/petal-pro-documentation/product-docs/fundamentals/util-db-and-helpers","siteSpaceId":"sitesp_KXDwT","emoji":"1f527","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"vbJYGp9vaQJFSnkF7oPY","title":"Emails","pathname":"/petal-pro-documentation/product-docs/fundamentals/emails","siteSpaceId":"sitesp_KXDwT","emoji":"1f4e7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"WqPgSm5579LCto1fvLyC","title":"Javascript Hooks","pathname":"/petal-pro-documentation/product-docs/fundamentals/javascript-hooks","siteSpaceId":"sitesp_KXDwT","emoji":"1fa9d","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"YHkOBAtpW4nclmvgofUN","title":"Extra Hex Libraries","pathname":"/petal-pro-documentation/product-docs/fundamentals/extra-hex-libraries","siteSpaceId":"sitesp_KXDwT","emoji":"1f4da","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"CBAvUeV7VSbW98Ic671f","title":"Generators & Page Builder","pathname":"/petal-pro-documentation/product-docs/fundamentals/generators-and-page-builder","siteSpaceId":"sitesp_KXDwT","emoji":"1f3d7","description":"","breadcrumbs":[{"label":"Fundamentals"}]},{"id":"XZO49YgQwUcuqf8i2YMB","title":"Translations","pathname":"/petal-pro-documentation/product-docs/fundamentals/translations","siteSpaceId":"sitesp_KXDwT","emoji":"1f5e3","description":"","breadcrumbs":[{"label":"Fundamentals"}]}]}