# Credits Source: https://www.create.xyz/docs/account/credits Understanding Credits Credits power AI generations and integrations in Create. They're used as: * Create builds your app with AI * AI integrations run in your app **Free Plan**: Get 5k credits to explore Create with daily message limits. Choose a paid plan for higher credits per month and no message limits. ## Create Pro Plans Create Pro unlocks our most advanced AI agent, private projects, custom domains, and more. Choose your credits per month. You get volume discounts for higher monthly limits or annual plans: * **Pro 20k** - \$19/mo - 20k credits * **Pro 50k** - \$49/mo - ~~50k~~ 55k credits * **Pro 100k** - \$99/mo - ~~100k~~ 110k credits * **Pro 200k** - \$199/mo - ~~200k~~ 220k credits * **Pro 300k** - \$299/mo - ~~300k~~ 330k credits * **Pro 400k** - \$399/mo - ~~400k~~ 440k credits * **Pro 500k** - \$499/mo - ~~500k~~ 550k credits * **Pro 600k** - \$599/mo - ~~600k~~ 660k credits * **Pro 750k** - \$749/mo - ~~750k~~ 825k credits * **Pro 900k** - \$899/mo - ~~900k~~ 990k credits Need a custom credit limit or teams plan? [Contact us](https://n95j344rku9.typeform.com/to/KXvf3tZG). ## How Credits Work Credits are used in two main ways: 1. **AI generations** * Create generates your app as you send messages. * Create uses many AI models to generate code, images, and more for your app when you send messages. * Create uses a model and task dependent number of credits per message (typically 100-500 credits per message, but it can be more or less). 2. **AI Integrations** * You can include AI integrations in your app * When your app runs an AI integration, it uses credits per run * Only select integrations use credits - many run for free * You can add Functions with your own API keys for credit-free alternatives * Integrations use a model and input/output dependent number of credits per run # Purchasing and Managing Credits All plans come with a set number of credits per month. * Monthly credits refill on your billing date to your selected monthly plan * Unused monthly credits expire at the end of your billing cycle * Paid members can purchase additional one time credits anytime if you need a few more in a month. One time credit purchases do not expire. * Upgrade your plan for higher monthly limits You can view usage, change your plan, and purchase additional credits from Subcription & credits tab in the [dashboard](https://create.xyz/dashboard). ## Hitting your limit When you hit your credit limit, you'll need to upgrade your plan or purchase additional credits to keep building or have your integraitons run. If you run out of credits while building, Create will prompt you to upgrade your plan when you send your next message. As apps you create start using credits for integrations, Create sends you an email alert from `hello@create.xyz` as you near your limits. Track your credit usage from: * **Subscription & credits** in the dashboard * **Email alerts** as you approach your limit ## Need More? If you need a custom credit limit or team plan, [contact us here](https://n95j344rku9.typeform.com/to/KXvf3tZG). ## **Refund Policy and Cancellations** Create does not offer refunds at this time. We can assist you with cancelling your Create subscription, which you can do by heading to your [dashboard](https://app.create.xyz), clicking on Subscription and Credits > Update Plan > Manage Billing ![Screenshot2025 06 04at12 02 26PM Pn](https://mintlify.s3.us-west-1.amazonaws.com/create/images/Screenshot2025-06-04at12.02.26PM.png) # Subscriptions Source: https://www.create.xyz/docs/account/subscriptions Join Create Pro ## Plans * **Free** - Perfect for trying out Create * 5k credits to explore * Daily message limits * Limited code generation * Public projects * **Create Pro** * Advanced code generation agent * Private projects * Custom domains * Priority AI models * Choose your monthly credit limit: * Pro 20k - \$19/mo - 20k credits * Pro 50k - \$49/mo - ~~50k~~ 55k credits * Pro 100k - \$99/mo - ~~100k~~ 110k credits * Pro 200k - \$199/mo - ~~200k~~ 220k credits * Pro 300k - \$299/mo - ~~300k~~ 330k credits * Pro 400k - \$399/mo - ~~400k~~ 440k credits * Pro 500k - \$499/mo - ~~500k~~ 550k credits * Pro 600k - \$599/mo - ~~600k~~ 660k credits * Pro 750k - \$749/mo - ~~750k~~ 825k credits * Pro 900k - \$899/mo - ~~900k~~ 990k credits You can view a full feature breakdown on our [pricing page](https://create.xyz/pricing). Free plans come with daily message limits and projects are public by default. Upgrade to Create Pro for more credits per month, private projects, custom domains, and more. ## Support Get help from our community of creators and the Create team Premium email support for paid members ## Change Subscription 1. Go to the [dashboard](https://create.xyz/dashboard) 2. Choose "Subscription & credits" 3. You can see your current plan and credits 4. Select "[Update plan](https://pay.create.xyz/p/login/5kA6oDbVS22c2jedQQ)" 5. From here you can: * Upgrade your plan * Downgrade your plan * Cancel your subscription ## Invoices, Receipts, and Billing History You can access your invoices, receipts, and billing history through Create's [billing portal](https://pay.create.xyz/p/login/5kA6oDbVS22c2jedQQ) in Stripe. # Your Profile Source: https://www.create.xyz/docs/account/your-profile Update and manage your profile settings You can customize your profile settings including: * Username * Profile photo These settings can be accessed and modified from the **Edit Profile** section in your dashboard. ## Profile Visibility Your profile information (username and profile photo) will be displayed: * On the Create Community page * Next to your published projects Learn more about sharing your work in the [Create Community](/publish-and-share/community) section. # Components Source: https://www.create.xyz/docs/builder/components Create reusable UI building blocks Components are reusable building blocks for your app. They help you create consistent, maintainable interfaces by breaking down complex UIs into smaller pieces. ## Why Use Components Components offer several advantages: * **Break down large projects** - Split large projects into manageable pieces * **Maintain consistency** - Once perfected, components work the same way everywhere * **Save time** - Reuse components instead of regenerating similar elements * **Improve accuracy** - Shorter, focused prompts help Create generate more precise code * **Share with team** - Build a library of components for your organization As pages grow longer in terms of lines of code, AI models become more likely to make errors. Breaking your project into components helps save lines of code, and improve accuracy. ## Creating Components You can create components in several ways: * **From Select Mode**: * Tap a generated element you want to convert in a page or component * Choose "Convert to Component" from the chat * **From Logo Menu**: * Open top left menu > New Component * Or press `option-C` (or `alt-C` on Windows) * **From Chat**: * Type `/` > Create Component * **From Canvas Mode, generating across elements**: * Create will automatically create components that can help with your request Describe what you want the component to do in the chat. Be specific about: * Visual design - colors, fonts, sizes, etc. * Behavior - how it should work in different states * Arguments it should accept * Variants it should support ## Managing Components You can manage your components in several ways: * **Rename**: Click the project group selector dropdown > Click component name to edit * **Duplicate**: In Canvas Mode, click the element's top left corner menu > Duplicate * **Delete**: In Canvas Mode, click the element's top left corner menu > Delete When you delete a component, you'll need to remove or replace it anywhere it's used in your app. ## Style Your Components Make components look good using: * **Screenshots** pasted in chat - see our [prompting guide](/prompting) * **URLs** in chat - Create screenshots any URL * [**Integrations**](/builder/integrations) for component packs like shadcn/ui * [**Style Guides**](/builder/style-guides) for consistency * Other components as building blocks ## Using Components Add components to any page or other component: * Type `/` in chat * Select your component * Describe how you want to use it * Send message to integrate After updating a component, you'll need to click "Update" wherever it's used to see the changes. ## Updating Components When you make changes to a component, you'll need to update any pages or components that use it: * Find the places where you integrated the component * Click the "Update" button next to the component integration * Create will refresh the component with your latest changes Changes to components don't automatically update everywhere they're used. This helps prevent unwanted changes from breaking your app. ## Common Components Consider making components for: * Navigation elements (headers, footers, menus) * UI patterns (cards, lists, tables) * Form elements (inputs, buttons, selectors) * Layout sections (hero areas, feature grids) * Interactive elements (modals, tooltips) These are just ideas, but you can make components for anything you want. ## Arguments Components can accept arguments to customize their appearance or behavior. For example: * Button text and colors * Card content and images * Form field labels and validation * Section headings and descriptions To add arguments, describe what you want the component to accept. Example prompt: "Create a banner component that accepts: * Title * Subtitle * CTA text * Background image * Theme (light/dark)" You'll want to explain how to use these arguments. Later, when using the component, Create will guess the right values to pass in for the component's arguments from its context, or you can be explicit on what you want. ## Variants Components can have multiple variations for different contexts. For example: * sizes (small, medium, large) * layouts (horizontal, vertical) * types (success, warning, error) * Theme variations (light, dark, branded) To create variants: Example prompt: "Add variants to the button component: * Primary: solid background, white text * Secondary: outlined, colored text * Danger: red background for destructive actions" ## Preview Stories Preview stories help you test how your component works with different inputs. They show examples of your component in action, letting you check that it works correctly in various scenarios. Create automatically generates these previews to help you validate your component's design and functionality. * Different text lengths and content * Various image sizes * Multiple color themes * Custom argument combinations The preview wraps your component in a container that lets you: * Change the preview width * Test responsive layouts * See how it looks embedded in other components * Verify spacing and alignment Control previews by describing what you want to test: Example prompt: "Show preview stories with: * Short vs long text content * Light and dark themes * Different container widths (mobile to desktop) * Various image aspect ratios" While you'll see all preview stories on the component's canvas, when you use the component in your app, you'll only see the specific instance you create. The preview stories help you test and validate your component but don't affect how it works in your final app. # Controls Source: https://www.create.xyz/docs/builder/controls How to use the Create builder ![](https://mintlify.s3.us-west-1.amazonaws.com/create/images/builder.png) ## Chat You chat with Create to build your app. Tell it what to build using text or images: * You can paste imges into the chat * Press `cmd-enter` (or `ctrl-enter` on Windows) to send messages * Create uses your app's code and chat history to generate updates * Paid plans get enhanced AI generations with more context * When you select a **specific element**, messages update only that element * When you select the **project name** in the [**Project Selector**](/builder/controls#project-selector) or the **canvas**, messages can modify multiple elements at once * **Discussion Mode** - chat without making edits by clicking on the speech bubble icon labeled *Discuss*. It can be important at times to prevent edits to your work and be able to ask questions of the builder about status, approach or specific features without allowing it to alter your current design. Learn how to write effective prompts in our [Guide to Prompting](/prompting). ## Commands * Type `/` in the chat to open the add-ons menu * Choose [integrations](/builder/integrations) or create new elements * Your selection appears as a special chip in chat * Send your message to apply the command ## Controls Key controls in the top navigation from left to right: * **Logo Menu**: Create new elements ([Pages](/builder/pages), [Components](/builder/components), [Functions](/builder/functions), etc.) * **Project Selector**: Rename the project/element, jump between different elements in your project, change the [generation level](#generations) * **Modes**: Toggle between [Demo](#demo-mode), [Select](#select-mode), and [Code](#code-mode) modes * **Views**: Switch between [Canvas and Focused views](#canvas-vs-focused-views) * **Responsive**: Test responsive design (Desktop/Mobile) * **Privacy**: Control access and team settings * **Invite**: Add collaborators to your project * **Publish**: Launch your app live ### Logo Menu Create new elements ([Pages](/builder/pages), [Components](/builder/components), [Functions](/builder/functions), etc.) ![](https://ucarecdn.com/e5bb6e1c-ae74-4162-8177-743f25b6cf0e/) ### Project Selector Rename the project/element, jump between different elements in your project, change the [generation level](#project-wide-vs-single-element-generation) ![](https://ucarecdn.com/31edd5db-c58a-493b-b497-22bec7c732ea/) ![](https://ucarecdn.com/a15745a2-08e0-4f33-abeb-718e5184eecd/) ### Project Settings Control important project specific settings including assets, secret keys, custom instructions, generation settings, authentication providers, branding, social share, mobile app settings and more. ![Ezgif 6c735490bbae99 Gi](https://mintlify.s3.us-west-1.amazonaws.com/create/images/ezgif-6c735490bbae99.gif) ### 3 Dot Menu Access element specific settings ![](https://ucarecdn.com/8e49232d-0fb5-4c62-bb6c-a0171f00357e/) ### Mode Switcher Toggle between [Demo](#demo-mode), [Select](#select-mode), and [Code](#code-mode) modes ![](https://ucarecdn.com/6311426a-d462-4d91-b198-d87e014af8be/) ### View Switcher Choose between [Canvas and Focused views](#views) ![](https://ucarecdn.com/97152048-ddac-4cbf-8f7e-7be09667f262/) ### Responsive Preview Test responsive design (Desktop/Mobile) ![](https://ucarecdn.com/8fc8dae8-20bb-4337-9c97-179865e89128/) ### Privacy Control [community visibility](/publish-and-share/community) ### Invite Add [team members](/publish-and-share/teams) to your project ### Publish [Launch your app](/publish-and-share/publish) and set domain. Remember to re-publish after changes to go live. ## Generations Control the scope of Create's changes by selecting different elements: * **Project**: * Select the **project name** in [**Project Selector**](/builder/controls#project-selector) or tap the **canvas** * Create's chat can modify multiple elements at once * Can add new [Pages](/builder/pages), [Components](/builder/components), [Functions](/builder/functions) as needed * Best for building features that span elements * **Element**: * Select a specific **element name** in the [**Project Selector**](/builder/controls#project-selector) or tap it on the **canvas** * Create's chat modifies just that element * Changes confined to just that [Page](/builder/pages), [Component](/builder/components), or [Function](/builder/functions) * Best for focused updates and refinements to each element See our [Guide to Prompting](/prompting#project-wide-vs-single-element) for level-specific prompting tips. ## Modes Switch between three modes as you build: * **Demo**: Test your app * **Select**: Select elements for specific updates * **Code**: View and edit code ### Demo Test your app as users will experience it: * Fill forms and trigger interactions * See real-time integration updates * Perfect for testing flows and debugging ### Select Make updates to specific elements: * Tap elements to make updates * Create reusable [components](/builder/components) * Add links between [pages](/builder/pages) * Modify properties and styling with direct commands ### Code View and edit code directly: * Make precise adjustments * Add custom logic * Export the code as a React/Next.js project ## Views Toggle between two views using the collapse icon: ### Canvas See multiple elements on an infinite canvas: * Get a bird's eye view of your project * Drag and arrange elements freely * Generate across the project ### Focused Work one element at a time: * Fix the element's position, which helps you test scroll * Switch elements using [**Project Selector**](/builder/controls#project-selector) ## Version History Keep track of changes and revert to previous versions: ![2025 06 1915 15 42 Gi](https://mintlify.s3.us-west-1.amazonaws.com/create/images/2025-06-1915.15.42.gif) * **Chat**: * Tap on previous versions in the chat to jump back * Hit 'Restore' to make it the current version * **Version Timeline**: * Tap the clock icon in the top left to see all versions * Published versions are labeled * Restore any version ## Elements When you select an element in Select mode: * **Duplicate, Preview, or Delete** from the drop down menu in the top left corner in Canvas view * Move elements by dragging from their title * See quick actions appear in the chat ![](https://mintlify.s3.us-west-1.amazonaws.com/create/images/page-menu.png) ## Projects **Rename, Duplicate or Delete** projects from the dashboard (create.xyz/dashboard) ![](https://mintlify.s3.us-west-1.amazonaws.com/create/images/project-menu.png) # Databases Source: https://www.create.xyz/docs/builder/databases Store and manage data in your apps ## Overview Every Create project comes with a free database built in. As you chat with Create, it handles all database details - from designing the structure to writing the code that lets your app save and retrieve data from it. Use databases to: * Store user submissions (forms, feedback, uploads) * Save content (blog posts, products, galleries) * Persist data between uses of the app * Build dynamic data-driven features ## Chat Create automatically updates your database structure & how your app retrieves and stores data as you chat. When a feature requires storing data, it: 1. **Designs the database structure** based on your description 2. **Makes Functions** to save and retrieve data from the database 3. **Designs the Pages and Components** to display and interact with the data 4. **Connects everything** to make sure your Pages use the Functions that retrieve/store data. For example, if you say "Make me a tasks app", Create: As you continue describing your app, Create updates your database structure, Functions and Pages to match what you want. Here are common ways to modify your database through chat: ### Setting the scene It helps to start with a specific description of what you want your app to do. Prompt: ``` Make a tasks app. Users should be able to add, view, and delete tasks. Each task has title, description and comments Comments should show up under the task and show who wrote them. ``` Create will: * Make the tables needed * Make a Tasks table with title, description, and comments fields * Make a Users table with name and avatar fields * Make a Comments table with text and author fields * Create Functions to save and fetch tasks, users, and comments * Build a Page with a task list, add form, and comment list * Make the Page use your Functions to save tasks when submitted and grab tasks to display ### Adding Fields ``` Add a description to todos. Show it below the title in italics. ``` Create will: * Add the description column to the Todos table * Update Functions to handle the new field * Modify the UI to display descriptions ### Removing Fields ``` Remove the priority from todos, we won't use it anymore ``` Create will: * Remove the priority column * Update queries to exclude the field * Clean up any UI elements showing priority ### Adding Tables ``` Let users add comments on todos. Each comment should have the text and who wrote it ``` Create will: * Make a new Comments table * Link it to the Todos table * Add UI for viewing/adding comments * Handle saving comments to the database ### Changing Structure ``` Instead of due dates, let's use status (Todo, In Progress, Done) to track progress ``` Create will: * Convert the due\_date field to a status field * Update existing data * Modify the UI to show status options ### Relationships ``` Let users assign todos to team members. Show their avatar next to each todo ``` Create will: * Add user relationships to todos * Update queries to fetch user data * Show assignee info in the UI ### Filling Data ``` Generate 10 sample todos with different statuses and assignees ``` Create will: * Generate 10 sample todos with different statuses and assignees based on your structure * Insert the data into your database * Preserve relationships between tables ### Validation ``` Make sure every todo has a title ``` Create will: * Add validation rules to the database * Update Functions to check data * Show validation errors in the UI Always describe both what data you want to store AND how you want to use it. This helps Create build the right database structure, Functions, and UI. The more specific you are in your prompt, the better Create can help. If you describe something at a high level, "make a todo app", Create will guess what fields each todo should have. If you describe what you want in detail, "make a todo app with a title, due date, and priority field", Create will make sure each todo has those fields. ## Viewing & Editing Data Create comes with a built-in database viewer for manual edits to your data. You can quickly verify that data is being stored in the right way when you use your app. Access it from: * Chat - tap the database * [Project Selector](/builder/controls#project-selector)- choose your database name The database viewer lets you: * See all tables * Edit individual rows * Sort and filter data * Download data in bulk * Run custom SQL queries to fetch data You can also make your own internal tools to update multiple tables at once: * Make a new[Page](/builder/pages) * Describe your tool and how it should update the database * Try out your UI Changes in Demo mode in the Builder use a test database. This lets you experiment safely without affecting your live data. ## Test vs. Live DB Create maintains separate test and live databases for each project: **Test Database** * Used in Demo mode from the builder * Allows you to make sure your app is saving data correctly before publishing **Live Database** * Used in your published app * Access your live database from the builder ### Publishing When you publish your app, Create automatically: * Creates your live database * Applies the latest structure from the Test database to your Live database so that it has the same tables and fields * Runs your app with that structure When making changes to your database structure after publishing, be careful about conflicts with your live database. For example: * You make an app that has a User table with email, image, and phone fields * You publish your app so your live database has the same tables. You launch it and users start signing up. * You later decide that you don't need phone numbers, so in an update to the app you remove it. * You try to publish your app again. Your live database now has users with phone numbers. * Create will warn you about this conflict on publish. If you publish, it will remove the existing phone numbers. This is called a "migration conflict". You've changed the structure of your test database, but it now conflicts with your live database structure. To resolve migration conflicts: 1. Check the error message for details 2. Either: * Modify your test database to match production (keep "phone" around) * Manually migrate the live data (move data from "phone") 3. Try publishing again Create warns you about destructive changes before your publish to protect your live data. ## Errors Here are some good ways to troubleshoot common errors: ### Data isn't saving or retrieving If data isn't saving when you use your app, there are 3 common failure points to check. Go in this order to test each isolation: #### 1. Database Structure **How to check:** * Open the database viewer * Verify tables and fields match what you expect **If there's an issue:** * Describe the correct structure you want in chat * Example: "Update the Tasks table to have title, description, and dueDate fields" * Create will modify the database to match #### 2. Function -> Database **How to check:** * Identify which function saves or retrieves data from the database. Tap on it. * Open the [Test Runner](/builder/functions#test-runner) (3-dot menu > Test) * Enter sample data and run the test * Check database viewer to verify data was saved * Delete test records if needed **If there's an issue:** * Copy any error messages * Paste them into the function chat * Ask Create to fix the specific error * Example: "I see this error when I run saveTask and test it with this data: \[error] \[example data]" #### 3. UI -> Function **How to check:** * Try the app in Demo mode from the UI * Check that data is being saved when you use the app in the database viewer * Verify your page/component references the correct function * Type `/` in chat to see if function is linked * Try the flow in Demo mode * Watch database viewer to see if records appear **If there's an issue:** * Verify your page/component references the correct function * Example: "Connect the tasks form to the saveTask function when I submit a task" * Create will update the code to properly wire everything together For any errors you encounter, you can paste them directly into Create's chat. It often recognizes specific error patterns and knows how to fix them. ## Reset When you publish your app, Create pushes your test database structure to your live database. If you continue making changes to your test database structure in the builder and don't like the changes, you can reset to the structure of your last published version. This is helpful when: * You've made experimental changes you don't want to keep * Your database structure has become complex or incorrect * You want to start fresh from your last stable version To reset your database structure: 1. Open your database in the builder 2. Look for the "Reset" button in the top right corner 3. Confirm that you want to reset to the published version Resetting your database structure will revert all schema changes made since publishing. This includes removing any tables or fields added since the last publish. Any data in those tables or fields will be lost. ## Removing Multiple Databases In 99.99% of cases, you don't need multiple databases per project. A single database can have an arbitrary number of tables. It's easy to add more tables (just describe what you want to store, and Create adds a table for it). It's better to have multiple tables in the same database than multiple databases as it makes joins easier. If you have multiple databases in a single project, you can remove ones you don't need: Select the database from the project selector Top right corner next to Reset and View Live Verify you want to remove this database from your project If you had data in the database you removed, you can ask Create to update your single database with tables that support all of your use cases. It will update the remaining database to have multiple tables instead of having multiple databases. Before removing a database, make sure you understand which app features are using it. Create will attempt to warn you if removing a database would break functionality. ## Using an Existing Database Create will automatically create a new database for your project. However, there are some scenarios where you might want to use an existing database for a new project: * You already have data in one database that you want to reuse for a new app * You're making a new app or frontend for the same data (e.g. an internal tool or another app) To add an existing database to your project: 1. Go to the new project 2. Press `/` > Databases > select the database you want to use 3. Prompt Create on what you want to build with the database chip in the chat When you add an existing database to a project, both projects will share the same data. Changes made in one project will be visible in the other. This approach is excellent for creating multiple views of the same data, such as customer-facing apps alongside internal admin tools. If you no longer want to use this database in your project, you can [remove it from the project](#removing-multiple-databases). ## FAQ Yes. Create's built in databases are designed to scale. Under the hood, it's PostgreSQL, which is powerful and scalable. We partner with [Neon](https://neon.tech) to autoscale your database as your app grows. Free plans include 100mb of storage per database. You can upgrade to a paid plan to increase this. Not yet, we will be working on an import function in the future Use [Functions](/builder/functions) to connect to external databases like Supabase or your own backend. Yes, databases are automatically backed up. Contact support if you need to restore data. Create handles making queries to your database automatically. For custom queries, create a [Function](/builder/functions) and describe what you need. You can then use your Function. Or use the built in SQL editor in the database viewer. We still have documentation for you, [linked here.](https://www.create.xyz/docs/builder/databases) Need help? Join our [Discord community](https://create.xyz/discord) or email [hello@create.xyz](mailto:hello@create.xyz) ## Helpful Database Terms Create handles the technical details of your database, but understanding some key concepts can help you work more effectively. Think of a database as a collection of connected spreadsheets: * A **table** is like a spreadsheet (e.g., "Users", "Products") * **Fields** (or columns) are the types of information stored (e.g., "name", "email") * **Rows** are individual entries * **Relationships** connect data between tables using **foreign keys** Key terms explained: | Term | Definition | Example | | --------------- | -------------------------------------------------- | ---------------------------------------------------------------- | | **Schema** | The structure of your database (tables and fields) | Your app's blueprint showing Users table with name, email fields | | **Query** | Instructions to get or save data | "Get all products where price \< \$100" | | **Join** | Combining data from different tables | Showing posts with their authors' names from the Users table | | **Foreign Key** | A field that references another table | Post's `authorId` connects to User's `id` | | **SQL** | The language databases understand | Create writes this for you! | | **Migration** | Changes to your database structure | Adding a "phone" field to Users table | Don't worry about memorizing these! Just describe what data you want to store and how you want to use it - Create handles the technical implementation. # Functions Source: https://www.create.xyz/docs/builder/functions Functions let you build powerful backend logic by turning your words into code. They handle powerful operations while keeping your UI clean and focused. ## Why Use Functions Functions offer several key benefits: * **Turn words into logic** - Describe what you want in plain language and Create generates the code * **Separate UI from Logic** - Keep pages focused on presentation while Functions handle powerful operations * **Test in Isolation** - Debug and perfect logic independently from your UI * **Reuseable** - Use Functions across pages and components once they're working * **External APIs** - Functions can connect securely to thousands of APIs using [Secrets](#secrets) * **Composeable** - Build powerful features by combining Functions with [Integrations](/builder/integrations), [Databases](/builder/databases), and other Functions For example, imagine building an app that analyzes documents with AI: Without Functions, you would need to handle everything in one place: * Upload interface for PDFs * Code to display the document * AI analysis of images * AI text summarization * Error messages * Loading screens With Functions, you can split this into simpler parts: Page: * A clean upload interface * Document display * A button that calls your analysis Function Function: * AI image analysis * AI text summarization * Error handling This separation makes your app easier to build, test, and maintain. ## Creating Functions Create Functions in several ways: * **Logo Menu** > New Function * Press `option-F` (or `alt-F` on Windows) * Type `/` in chat > Create Function ![](https://mintlify.s3.us-west-1.amazonaws.com/create/images/functions/new.gif) Describe what you want the Function to do: * What inputs it needs * What logic it should perform * What outputs it should return Create generates: * A flow diagram showing the Function's logic * The underlying serverless code (viewable in the "Code" tab) * Input/output interfaces ## Making Functions that Work When building Functions: * For external APIs, find their documentation first. You can paste API endpoint URLs directly into the Function chat - Create will analyze the screenshot and write the code. * If you get test errors, paste the error message back into your Function definition. Create often knows how to fix the specific issue. ## Using Integrations, Databases, and Other Functions Make your Functions more powerful by combining them with: * [Integrations](/builder/integrations) - Add AI capabilities and other features * [Databases](/builder/databases) - Store and retrieve data * Other Functions - Chain multiple Functions together To use these in your Function: 1. Type `/` or open the Add-ons menu 2. Select the Integration, Database, or Function 3. Describe how you want to use it ![](https://mintlify.s3.us-west-1.amazonaws.com/create/images/functions/use-integration.gif) For example, you could build a Function that: * Uses ChatGPT to analyze text * Stores results in a database * Calls another Function to notify users Create handles connecting everything together based on your description. If you need specific behavior, add more details to your prompt about how you want the pieces to interact. ## Testing Functions Every Function has a full test runner available by clicking on the three dot menu to the far right of the function page itself and selecting Run Test. ![Screenshot2025 06 25at4 42 33PM Pn](https://mintlify.s3.us-west-1.amazonaws.com/create/images/Screenshot2025-06-25at4.42.33PM.png) * **Sample Inputs** - Enter test data as Form or JSON * **Run Tests** - Execute the Function with your inputs * **View Results** - See outputs or error messages * **Debug** - Use error descriptions to fix issues. You can often just paste the error description into your prompt to fix it. ![](https://mintlify.s3.us-west-1.amazonaws.com/create/images/functions/testing.gif) Functions have a 5-minute timeout. Chain Functions together for longer operations. ## Using Functions Add Functions to pages, components, or other Functions: * Type `/` in chat * Select your Function * Describe how you want to use it ![](https://mintlify.s3.us-west-1.amazonaws.com/create/images/functions/use-in-page.gif) Create handles: * Connecting inputs/outputs * Error states * Loading indicators * UI integration ## Updating Functions After changing a Function: 1. Find where you integrated it 2. Click "Update" next to the integration 3. Create will refresh with latest changes Changes to Functions don't automatically update everywhere they're used. This prevents unwanted changes from breaking your app. ## External APIs and Secrets Functions can connect to any external API. To use an API: 1. Store authentication details (API keys, tokens) as [Secrets](#secrets) 2. Tell Create which API to use - it will handle the integration 3. Test carefully since calls hit live APIs Popular APIs and where to find credentials: * **Stripe**: [How to get your API Key](https://docs.stripe.com/keys) * **GitHub**: [How to get your Personal Access Token](https://github.com/settings/tokens) * **Exa**: [How to get your API Key](https://docs.exa.ai/reference/getting-started) * **Twilio**: [How to get your API Key](https://www.twilio.com/docs/iam/api-keys) * **Sendgrid**: [How to get your API Key](https://www.twilio.com/docs/sendgrid/ui/account-and-settings/api-keys) * **MailGun**: [How to get your API Key](https://help.mailgun.com/hc/en-us/articles/203380100-Where-can-I-find-my-API-keys-and-SMTP-credentials) * **HubSpot**: [How to get your API key](https://knowledge.hubspot.com/integrations/how-do-i-get-my-hubspot-api-key) Here is an in-depth YouTube video tutorial on how to connect to an external API, using the [Exa AI Search API](https://exa.ai/):
``` If you are working with a wordpress.com site, you may need to use a [plugin](https://wordpress.com/plugins/iframe) to get the iframe to display. # Publish Source: https://www.create.xyz/docs/publish-and-share/publish Host and share your Create apps Create hosts your projects for free on created.app domains. Your apps can handle significant traffic - reach out to [customers@create.xyz](mailto:customers@create.xyz) to discuss high-scale deployments. ### Quick Publish 1. Tap **Publish** in the top right 2. Choose your created.app subdomain 3. Select pages and functions to publish 4. Set routes for each page 5. Confirm your settings and tap **Publish** 6. View your published app live at \[yourslug].created.app ### Routes and URLs Routes determine how users access your pages: * `/` is your homepage * `/about`, `/contact` etc. for other pages * `/api/[function-name]` for published functions Routes make your content accessible at yourdomain.com/route. For example, publishing a page to `/about` makes it available at yourdomain.xyz/about ### Managing Published Pages / Functions Control what's live by toggling pages and functions on/off. Unpublished items become inaccessible. Remember: After making changes to your pages or functions, you'll need to republish for them to appear on your live site. ### Version History You can view your published versions in the Version History settings. This helps you track changes and see what's currently live. ### Customizing Social Previews You can customize how your pages look on social media: * Set page title, description, and preview image * Update these in [Pages](https://github.com/Create-Inc/docs/blob/main/getting-started/pages.md) * Changes affect social media previews ### Domain Options Choose your domain: * **Free**: yourapp.created.app domain * **Pro plans**: Add [custom domains](/publish-and-share/custom-domains) ([pricing](https://www.create.xyz/pricing)) Want to use your own domain? Learn how to set up [custom domains](/publish-and-share/custom-domains) with Create. ### Branding * Free projects display a "Made with Create" logo * Remove branding with [Pro Plan](https://www.create.xyz/pricing) ### Availability * Published URLs are public to anyone with the link * Use [User Accounts](/builder/user-accounts) to restrict access to signed-in users * Toggle pages and functions on/off to control availability Keep internal tools private by not publishing them or requiring user authentication # Invite your team Source: https://www.create.xyz/docs/publish-and-share/teams Work with others on your app in real time Create lets you collaborate with teammates in real time as you build your app together. Invite your designer, developer, agency, or anyone else to join your workspace. ## Getting started Invite teammates in two steps: * Click the **'Invite'** button in a project or from the dashboard * Enter their email addresses to send invitations When teammates accept their email invitations, they'll join your workspace and see your projects. ## Real-time collaboration When teammates join your project: * See their cursor and changes in real time * Their icon appears in the top right corner * Work together simultaneously on any element The /build URL from the builder stays private by default. After inviting teammates, you can share this link for direct access. ## Managing access * Teammates can access all projects in the workspace * Switch between different teams from the dashboard side panel * Teammates need to accept their email invitation to join Team member removal isn't supported in the UI yet. Email [hello@create.xyz](mailto:hello@create.xyz) if you need to remove someone from your workspace. # Animations Source: https://www.create.xyz/docs/quick-tips/animations Add animations to any website or app just by describing what you want. Here's a video tutorial showing how to add animations in Create: