# Replit Documentation > A comprehensive compilation of Replit documentation covering getting started guides, tutorials, workspace features, AI capabilities, cloud services, deployments, extensions, teams, billing, and more. This llms.txt file contains a complete compilation of markdown documentation from Replit's documentation site. The content is organized by category to help you navigate and find relevant information quickly. Total documents compiled: 228 ## Getting Started - [Introduction](https://docs.replit.com/getting-started/intro-replit.md) - [Create a Slack channel summarizer](https://docs.replit.com/getting-started/quickstarts/ai-slack-channel-summarizer.md) - [Create with AI](https://docs.replit.com/getting-started/quickstarts/ask-ai.md) - [Create a file converter with AI](https://docs.replit.com/getting-started/quickstarts/build-with-ai.md) - [Connect your app to a SQL database](https://docs.replit.com/getting-started/quickstarts/database-connection.md) - [Create a Discord bot](https://docs.replit.com/getting-started/quickstarts/discord-bot.md) - [Create a FastAPI service](https://docs.replit.com/getting-started/quickstarts/fastapi-service.md) - [Create a Flask app](https://docs.replit.com/getting-started/quickstarts/flask-app.md) - [Build from Scratch](https://docs.replit.com/getting-started/quickstarts/from-scratch.md) - [Create a Google Sheets integration](https://docs.replit.com/getting-started/quickstarts/google-sheets-integration.md) - [Import from Bolt](https://docs.replit.com/getting-started/quickstarts/import-from-bolt.md) - [Import from Figma](https://docs.replit.com/getting-started/quickstarts/import-from-figma.md) - [Import from GitHub](https://docs.replit.com/getting-started/quickstarts/import-from-github.md) - [Import from Lovable](https://docs.replit.com/getting-started/quickstarts/import-from-lovable.md) - [Import from Vercel](https://docs.replit.com/getting-started/quickstarts/import-from-vercel.md) - [Create a Next.js app](https://docs.replit.com/getting-started/quickstarts/next-js-app.md) - [Create a cat image generator](https://docs.replit.com/getting-started/quickstarts/no-code-cat-image-generator.md) - [Manage App Storage in JavaScript](https://docs.replit.com/getting-started/quickstarts/object-storage-javascript.md) - [Manage App Storage in Python](https://docs.replit.com/getting-started/quickstarts/object-storage-python.md) - [Remix an App](https://docs.replit.com/getting-started/quickstarts/remix-an-app.md) - [Create a static blog with Astro](https://docs.replit.com/getting-started/quickstarts/static-blog-astro.md) - [Create a HackerNews Slack bot](https://docs.replit.com/getting-started/quickstarts/webscrape-and-slack-notifications.md) ## Tutorials - [Advanced AI features](https://docs.replit.com/tutorials/advanced-ai-features.md) - [Build a Notion-powered website](https://docs.replit.com/tutorials/build-a-notion-powered-website.md) - [Publish a Grok 3 app on Replit in 5 minutes](https://docs.replit.com/tutorials/create-apps-with-grok-3.md) - [Efficient prompting with Replit AI](https://docs.replit.com/tutorials/effective-prompting.md) - [Building Mobile Apps with Expo and Replit](https://docs.replit.com/tutorials/expo-on-replit.md) - [How to vibe code effectively](https://docs.replit.com/tutorials/how-to-vibe-code.md) - [Learn about MCP in 3 minutes](https://docs.replit.com/tutorials/mcp-in-3.md) - [Replit's built-in security features](https://docs.replit.com/tutorials/vibe-code-securely.md) - [Security checklist for vibe coding](https://docs.replit.com/tutorials/vibe-code-security-checklist.md) - [Vibe coding 101: from idea to published app](https://docs.replit.com/tutorials/vibe-coding-101.md) ## Workspace Features - [Dependency Management](https://docs.replit.com/replit-workspace/dependency-management.md) - [Extensions](https://docs.replit.com/replit-workspace/extensions.md) - [Keyboard Shortcuts](https://docs.replit.com/replit-workspace/keyboard-shortcuts.md) - [Ports](https://docs.replit.com/replit-workspace/ports.md) - [Replit Auth](https://docs.replit.com/replit-workspace/replit-auth.md) - [Replit Themes](https://docs.replit.com/replit-workspace/replit-themes.md) - [SSH](https://docs.replit.com/replit-workspace/ssh.md) - [Developer Frameworks](https://docs.replit.com/replit-workspace/templates.md) - [Workflows](https://docs.replit.com/replit-workspace/workflows.md) - [Console](https://docs.replit.com/replit-workspace/workspace-features/console.md) - [File History](https://docs.replit.com/replit-workspace/workspace-features/file-history.md) - [Using the Git pane](https://docs.replit.com/replit-workspace/workspace-features/git-interface.md) - [Multiplayer](https://docs.replit.com/replit-workspace/workspace-features/multiplayer.md) - [Preview](https://docs.replit.com/replit-workspace/workspace-features/preview.md) - [Secrets](https://docs.replit.com/replit-workspace/workspace-features/secrets.md) - [Security Scanner](https://docs.replit.com/replit-workspace/workspace-features/security-scanner.md) - [User Settings](https://docs.replit.com/replit-workspace/workspace-features/user-settings.md) - [Version control](https://docs.replit.com/replit-workspace/workspace-features/version-control.md) ## Replit AI - [Replit AI](https://docs.replit.com/category/replit-ai.md) - [Replit Agent](https://docs.replit.com/replitai/agent.md) - [Agents & Automations](https://docs.replit.com/replitai/agents-and-automations.md) - [App Testing](https://docs.replit.com/replitai/app-testing.md) - [App Themes](https://docs.replit.com/replitai/app-themes.md) - [Replit Assistant](https://docs.replit.com/replitai/assistant.md) - [Autonomy Level](https://docs.replit.com/replitai/autonomy-level.md) - [Checkpoints and Rollbacks](https://docs.replit.com/replitai/checkpoints-and-rollbacks.md) - [Connectors for Organizations](https://docs.replit.com/replitai/connectors-for-organizations.md) - [Dynamic Intelligence](https://docs.replit.com/replitai/dynamic-intelligence.md) - [General Agent](https://docs.replit.com/replitai/general-agent.md) - [Image generation](https://docs.replit.com/replitai/image-generation.md) - [Agent integrations](https://docs.replit.com/replitai/integrations.md) - [Figma MCP integration](https://docs.replit.com/replitai/mcp/figma.md) - [Message Queue](https://docs.replit.com/replitai/message-queue.md) - [Plan Mode](https://docs.replit.com/replitai/plan-mode.md) - [Replit AI Integrations](https://docs.replit.com/replitai/replit-ai-integrations.md) - [replit.md](https://docs.replit.com/replitai/replit-dot-md.md) - [Visual Editor](https://docs.replit.com/replitai/visual-editor.md) - [Web Search](https://docs.replit.com/replitai/web-search.md) ## Cloud Services - [Cloud Services](https://docs.replit.com/category/cloud-services.md) - [Autoscale Deployments](https://docs.replit.com/cloud-services/deployments/autoscale-deployments.md) - [Custom Domains](https://docs.replit.com/cloud-services/deployments/custom-domains.md) - [Domain Purchasing](https://docs.replit.com/cloud-services/deployments/domain-purchasing.md) - [Published App Monitoring](https://docs.replit.com/cloud-services/deployments/monitoring-a-deployment.md) - [Private Deployments](https://docs.replit.com/cloud-services/deployments/private-deployments.md) - [Reserved VM Deployments](https://docs.replit.com/cloud-services/deployments/reserved-vm-deployments.md) - [Scheduled Deployments](https://docs.replit.com/cloud-services/deployments/scheduled-deployments.md) - [Static Deployments](https://docs.replit.com/cloud-services/deployments/static-deployments.md) - [Static Deployment Configuration](https://docs.replit.com/cloud-services/deployments/static-deployments-advanced.md) - [App Storage](https://docs.replit.com/cloud-services/storage-and-databases/object-storage.md) - [Production Databases](https://docs.replit.com/cloud-services/storage-and-databases/production-databases.md) - [Key-Value Store](https://docs.replit.com/cloud-services/storage-and-databases/replit-database.md) - [Database](https://docs.replit.com/cloud-services/storage-and-databases/sql-database.md) ## Deployments - [Overview](https://docs.replit.com/category/replit-deployments.md) ## Storage and Databases - [Storage and Databases](https://docs.replit.com/category/storage-and-databases.md) ## Extensions - [auth API](https://docs.replit.com/extensions/api/auth.md) - [Background Script API](https://docs.replit.com/extensions/api/background.md) - [commands API](https://docs.replit.com/extensions/api/commands.md) - [data API](https://docs.replit.com/extensions/api/data.md) - [debug API](https://docs.replit.com/extensions/api/debug.md) - [editor API](https://docs.replit.com/extensions/api/editor.md) - [exec API](https://docs.replit.com/extensions/api/exec.md) - [fs API](https://docs.replit.com/extensions/api/fs.md) - [init API](https://docs.replit.com/extensions/api/init.md) - [Extension manifest reference](https://docs.replit.com/extensions/api/manifest.md) - [me API](https://docs.replit.com/extensions/api/me.md) - [messages API](https://docs.replit.com/extensions/api/messages.md) - [replDb API](https://docs.replit.com/extensions/api/replDb.md) - [session API](https://docs.replit.com/extensions/api/session.md) - [themes API](https://docs.replit.com/extensions/api/themes.md) - [Create your first Replit Extension](https://docs.replit.com/extensions/basics/create-extension.md) - [Key Concepts](https://docs.replit.com/extensions/basics/key-concepts.md) - [Extension Devtools](https://docs.replit.com/extensions/development/devtools.md) - [Full-Stack](https://docs.replit.com/extensions/development/full-stack.md) - [Manual Installation](https://docs.replit.com/extensions/development/installation.md) - [useActiveFile() Hook](https://docs.replit.com/extensions/development/react/hooks/useActiveFile.md) - [useIsExtension() Hook](https://docs.replit.com/extensions/development/react/hooks/useIsExtension.md) - [useReplit() Hook](https://docs.replit.com/extensions/development/react/hooks/useReplit.md) - [useReplitEffect() Hook](https://docs.replit.com/extensions/development/react/hooks/useReplitEffect.md) - [useTheme() Hook](https://docs.replit.com/extensions/development/react/hooks/useTheme.md) - [useThemeValues() Hook](https://docs.replit.com/extensions/development/react/hooks/useThemeValues.md) - [useWatchTextFile() Hook](https://docs.replit.com/extensions/development/react/hooks/useWatchTextFile.md) - [Introduction](https://docs.replit.com/extensions/development/react/introduction.md) - [JavaScript Commands](https://docs.replit.com/extensions/examples/javascript-commands.md) - [JSON Editor](https://docs.replit.com/extensions/examples/json-editor.md) - [Snippet Manager](https://docs.replit.com/extensions/examples/snippet-manager.md) - [Extension Developer Docs](https://docs.replit.com/extensions/extensions.md) - [Frequently Asked Questions](https://docs.replit.com/extensions/faq.md) - [Publish your Extension](https://docs.replit.com/extensions/publish.md) ## Teams - [Replit Teams and Enterprise](https://docs.replit.com/category/teams.md) - [Roles, Groups and Access](https://docs.replit.com/teams/identity-and-access-management/groups-and-permissions.md) - [Managing Members](https://docs.replit.com/teams/identity-and-access-management/managing-members.md) - [Access Management](https://docs.replit.com/teams/identity-and-access-management/repl-access-management.md) - [SAML](https://docs.replit.com/teams/identity-and-access-management/saml.md) - [SCIM](https://docs.replit.com/teams/identity-and-access-management/scim.md) - [Transfer App to Teams](https://docs.replit.com/teams/identity-and-access-management/transfer-app-to-teams.md) - [Viewer Seats](https://docs.replit.com/teams/identity-and-access-management/viewer-seats.md) - [Information Security](https://docs.replit.com/teams/information-security/overview.md) - [Projects Overview](https://docs.replit.com/teams/projects/overview.md) - [Conflict Resolution in Projects](https://docs.replit.com/teams/projects/resolving-conflicts.md) - [Public Profiles](https://docs.replit.com/teams/public_profiles.md) - [Replit Core Sponsorships](https://docs.replit.com/teams/replit-core-sponsorships.md) - [Legacy Teams Pro shut down (August 14th, 2025)](https://docs.replit.com/teams/teams-pro-shutdown.md) ## Billing - [Publishing and Database Billing](https://docs.replit.com/billing/about-usage-based-billing.md) - [Replit AI Billing](https://docs.replit.com/billing/ai-billing.md) - [Publishing costs](https://docs.replit.com/billing/deployment-pricing.md) - [Managing Your Spend](https://docs.replit.com/billing/managing-spend.md) - [App Storage Billing](https://docs.replit.com/billing/object-storage-billing.md) - [Cancellation](https://docs.replit.com/billing/teams-billing/cancellation.md) - [Managing Seats](https://docs.replit.com/billing/teams-billing/managing-seats.md) - [Overview](https://docs.replit.com/billing/teams-billing/overview.md) - [Billing](https://docs.replit.com/category/billing.md) ## Legal and Security - [Legal and Security](https://docs.replit.com/category/legal-and-security.md) ## Updates - [December 13, 2024](https://docs.replit.com/updates/2024/12/13/changelog.md) - [December 20, 2024](https://docs.replit.com/updates/2024/12/20/changelog.md) - [December 27, 2024](https://docs.replit.com/updates/2024/12/27/changelog.md) - [January 3, 2025](https://docs.replit.com/updates/2025/01/03/changelog.md) - [January 10, 2025](https://docs.replit.com/updates/2025/01/10/changelog.md) - [January 17, 2025](https://docs.replit.com/updates/2025/01/17/changelog.md) - [January 24, 2025](https://docs.replit.com/updates/2025/01/24/changelog.md) - [January 31, 2025](https://docs.replit.com/updates/2025/01/31/changelog.md) - [February 7, 2025](https://docs.replit.com/updates/2025/02/07/changelog.md) - [February 14, 2025](https://docs.replit.com/updates/2025/02/14/changelog.md) - [February 21, 2025](https://docs.replit.com/updates/2025/02/21/changelog.md) - [February 28, 2025](https://docs.replit.com/updates/2025/02/28/changelog.md) - [March 7, 2025](https://docs.replit.com/updates/2025/03/07/changelog.md) - [March 14, 2025](https://docs.replit.com/updates/2025/03/14/changelog.md) - [March 21, 2025](https://docs.replit.com/updates/2025/03/21/changelog.md) - [March 28, 2025](https://docs.replit.com/updates/2025/03/28/changelog.md) - [April 4, 2025](https://docs.replit.com/updates/2025/04/04/changelog.md) - [April 11, 2025](https://docs.replit.com/updates/2025/04/11/changelog.md) - [April 18, 2025](https://docs.replit.com/updates/2025/04/18/changelog.md) - [April 25, 2025](https://docs.replit.com/updates/2025/04/25/changelog.md) - [May 2, 2025](https://docs.replit.com/updates/2025/05/02/changelog.md) - [May 9, 2025](https://docs.replit.com/updates/2025/05/09/changelog.md) - [May 16, 2025](https://docs.replit.com/updates/2025/05/16/changelog.md) - [May 23, 2025](https://docs.replit.com/updates/2025/05/23/changelog.md) - [May 30, 2025](https://docs.replit.com/updates/2025/05/30/changelog.md) - [June 6, 2025](https://docs.replit.com/updates/2025/06/06/changelog.md) - [June 13, 2025](https://docs.replit.com/updates/2025/06/13/changelog.md) - [June 20, 2025](https://docs.replit.com/updates/2025/06/20/changelog.md) - [June 27, 2025](https://docs.replit.com/updates/2025/06/27/changelog.md) - [July 4, 2025](https://docs.replit.com/updates/2025/07/04/changelog.md) - [July 11, 2025](https://docs.replit.com/updates/2025/07/11/changelog.md) - [July 18, 2025](https://docs.replit.com/updates/2025/07/18/changelog.md) - [July 25, 2025](https://docs.replit.com/updates/2025/07/25/changelog.md) - [August 1, 2025](https://docs.replit.com/updates/2025/08/01/changelog.md) - [August 8, 2025](https://docs.replit.com/updates/2025/08/08/changelog.md) - [August 15, 2025](https://docs.replit.com/updates/2025/08/15/changelog.md) - [August 22, 2025](https://docs.replit.com/updates/2025/08/22/changelog.md) - [August 29, 2025](https://docs.replit.com/updates/2025/08/29/changelog.md) - [September 5, 2025](https://docs.replit.com/updates/2025/09/05/changelog.md) - [September 12, 2025](https://docs.replit.com/updates/2025/09/12/changelog.md) - [September 19, 2025](https://docs.replit.com/updates/2025/09/19/changelog.md) - [September 26, 2025](https://docs.replit.com/updates/2025/09/26/changelog.md) - [October 3, 2025](https://docs.replit.com/updates/2025/10/03/changelog.md) - [October 10, 2025](https://docs.replit.com/updates/2025/10/10/changelog.md) - [October 17, 2025](https://docs.replit.com/updates/2025/10/17/changelog.md) - [October 24, 2025](https://docs.replit.com/updates/2025/10/24/changelog.md) - [October 31, 2025](https://docs.replit.com/updates/2025/10/31/changelog.md) ## Additional Resources - [Add a Replit Badge to your app](https://docs.replit.com/additional-resources/add-a-made-with-replit-badge-to-your-app.md) - [Earning with Replit Bounties](https://docs.replit.com/additional-resources/bounties/bounty-hunting.md) - [Bounty Templates](https://docs.replit.com/additional-resources/bounties/bounty-templates.md) - [Frequently Asked Questions (FAQ)](https://docs.replit.com/additional-resources/bounties/faq.md) - [Resources for Bounty Hunters](https://docs.replit.com/additional-resources/bounties/hunter-resources.md) - [Posting and awarding a Bounty](https://docs.replit.com/additional-resources/bounties/posting-a-bounty.md) - [Replit Cheat Sheet](https://docs.replit.com/additional-resources/cheat-sheet.md) - [The Graphical Command Line Interface](https://docs.replit.com/additional-resources/clui-graphical-cli.md) - [Google Authentication in Python and Flask](https://docs.replit.com/additional-resources/google-auth-in-flask.md) - [Streaming native graphics using VNC](https://docs.replit.com/additional-resources/streaming-native-graphics-vnc.md) - [Bounties](https://docs.replit.com/category/bounties.md) ## Reference - [App Storage JavaScript SDK](https://docs.replit.com/reference/object-storage-javascript-sdk.md) - [App Storage Python SDK](https://docs.replit.com/reference/object-storage-python-sdk.md) ## Other - [Replit Apps](https://docs.replit.com/category/replit-apps.md) - [Replit Core](https://docs.replit.com/category/replit-core.md) - [Overview](https://docs.replit.com/category/replit-workspace.md) - [Workspace Features](https://docs.replit.com/category/workspace-features.md) - [FAQ](https://docs.replit.com/faq.md) - [Reporting Abuse on Replit](https://docs.replit.com/legal-and-security-info/abuse-report.md) - [Account Inactivity](https://docs.replit.com/legal-and-security-info/account-inactivity.md) - [Copyright claims and takedown requests](https://docs.replit.com/legal-and-security-info/copyright-claims-takedown-requests.md) - [Deleting your data](https://docs.replit.com/legal-and-security-info/deleting-your-data.md) - [Licensing information](https://docs.replit.com/legal-and-security-info/licensing-info.md) - [Security](https://docs.replit.com/legal-and-security-info/security.md) - [Strike system FAQ](https://docs.replit.com/legal-and-security-info/strike-system-faq.md) - [Support Policy](https://docs.replit.com/legal-and-security-info/support-policy.md) - [Trust and Safety at Replit](https://docs.replit.com/legal-and-security-info/trust-and-safety.md) - [Usage Quota & Limits](https://docs.replit.com/legal-and-security-info/usage.md) - [Replit web accessibility statement](https://docs.replit.com/legal-and-security-info/web-accessibility.md) - [Replit Desktop App](https://docs.replit.com/platforms/desktop-app.md) - [Replit Mobile App](https://docs.replit.com/platforms/mobile-app.md) - [Replit App Embed](https://docs.replit.com/replit-app/app-embed.md) - [Collaboration](https://docs.replit.com/replit-app/collaborate.md) - [Replit App Configuration](https://docs.replit.com/replit-app/configuration.md) - [Import](https://docs.replit.com/replit-app/import-to-replit.md) - [Replit App Visibility](https://docs.replit.com/replit-app/visibility.md) - [Replit Core](https://docs.replit.com/replit-core/replit-core.md) --- # Content ## Getting Started ### Introduction Source: [https://docs.replit.com/getting-started/intro-replit.md](https://docs.replit.com/getting-started/intro-replit.md) # Introduction > Replit is the fastest way to go from idea to app. Create and publish full-stack apps from your browser with AI at your fingertips—no installation or setup required. export const YouTubeEmbed = ({videoId, title = "YouTube video", startAt}) => { if (!videoId) { return null; } let url = "https://www.youtube.com/embed/" + videoId; if (startAt) { url = url + "?start=" + startAt; } return ; }; Replit is an AI-powered platform that lets you create and publish apps from a single browser tab. Instead of wrestling with complex development environments, you get coding, publishing, and collaboration tools in one integrated interface. Replit Workspace Building apps traditionally requires installing programs, languages, and packages—a time-consuming setup process. On Replit, the platform configures your environment instantly, so you can start building whether you're a beginner or experienced developer. You have everything required to create apps from one browser tab—no installation required. With AI coding tools, real-time collaboration, and instant sharing, Replit gets you from idea to app, fast. ## Quickstart guides To create your app on Replit, choose the guide that matches your needs: ### Create new apps ⏱️ *1 minute* Jump-start your project by building on community-contributed apps. ⏱️ *7 minutes* Use the AI-powered Replit tools to create, explain, and debug your app. ⏱️ *15 minutes* Create a full-stack app with complete control. ### Import existing projects ⏱️ *2 minutes* Import an existing GitHub repository into Replit. ⏱️ *3 minutes* Convert your Figma designs into functional React applications. ⏱️ *4 minutes* Migrate your Bolt projects to Replit with Agent assistance. ⏱️ *4 minutes* Transfer your Lovable projects to Replit and continue building. ### Workspace features Replit provides the following essential app creation tools: * [Real-time preview](/replit-workspace/workspace-features/preview) of your app * [Publish in minutes](/category/replit-deployments) * Browser native app that requires zero installation and configuration * [Full-featured code editor](/category/workspace-features) * [Mobile app](/platforms/mobile-app) for building apps from your phone or tablet * [AI-assisted app creation](/replitai/agent) * [Version control integration](/replit-workspace/workspace-features/version-control) for tracking changes * [Team collaboration](/teams/public_profiles) for building together ### AI companion capabilities Replit AI Agent Replit AI [Agent](/replitai/agent) and [Assistant](/replitai/assistant) accelerate app creation with the following capabilities: * Complete app generation and setup from natural language descriptions * Code suggestions and autocomplete * Automated error detection and debugging assistance * Documentation generation for your app ### Share in minutes Publish your apps in minutes using the following tools: * App publishing to the cloud in a few clicks * Database integration and hosting * Custom domain support and connection encryption for your applications ## Additional information Replit Mobile To learn more about all of Replit's features, see the following resources: * Learn about the Workspace features from [Workspace Features](/category/workspace-features). * Learn about the capabilities of the Replit AI-powered features from [Replit Agent](/replitai/agent/) and [Replit Assistant](/replitai/assistant/). * Learn how to share your creations from [Sharing Your Replit App](/replit-app/collaborate/). * [Download the mobile app](https://replit.com/mobile/) for iOS or Android devices. --- ### Create a Slack channel summarizer Source: [https://docs.replit.com/getting-started/quickstarts/ai-slack-channel-summarizer.md](https://docs.replit.com/getting-started/quickstarts/ai-slack-channel-summarizer.md) # Create a Slack channel summarizer > Build a Slack bot that summarizes channel activity using GPT-4. Learn how to integrate AI with Slack's API. Turn your Slack conversations into concise summaries with AI. This guide shows you how to create a bot that summarizes channel activity using GPT-4. ## Features Summarize Slack channel activity for any time period Generate intelligent, context-aware summaries using OpenAI's GPT-4 ## Create your summarizer 1. Sign in to Replit 2. Navigate to the [AI Slack summary template](https://replit.com/@replit-matt/Slack-Channel-Summary-Bot) 3. Select **+ Use Template** in the upper-right corner 4. Follow the prompts to create your Replit App 1. Go to the [Slack Apps page](https://api.slack.com/apps) 2. Select **Create an App** 3. Choose **From an app manifest** 4. Select your workspace from the dropdown 5. Replace the manifest content with the [manifest.json](https://replit.com/@replit-matt/Slack-Channel-Summary-Bot#assets/manifest.json) file 6. Review the configuration and select **Create** 7. Select **Install the App** You may need administrator approval to install the app depending on your organization's settings. Add the following secrets to your Replit App's **Secrets** tab: 1. **SLACK\_BOT\_TOKEN** * Navigate to Settings > Install App in your Slack App * Copy the **Bot User OAuth Token** 2. **SLACK\_SIGNING\_SECRET** * Go to Settings > Basic Information * Copy the **Signing Secret** from App Credentials 3. **SLACK\_APP\_TOKEN** * Go to Settings > Basic Information * Under App-Level Tokens, select **Generate Token and Scopes** * Add a token name and select permissions * Copy the generated token 4. **OPENAI\_API\_KEY** * Get your API key from OpenAI's platform 1. Select **Publish** in the Workspace header 2. Choose **Reserved VM Deployments** 3. Select **Set up your published app** 4. Select **Publish** ## Using your summarizer Add your bot to a channel and send it a direct message with the following command: ```bash theme={null} /summarize-channel #channel-name duration ``` For example, to summarize the last 24 hours of activity in #general: ```bash theme={null} /summarize-channel #general 24 ``` ## Customization options Customize your summaries by modifying the prompt to focus on specific keywords or topics. Extend functionality by connecting with additional platforms and services. Customize the format and content of Slack alert messages. Configure different summarization intervals for channels or topics. --- ### Create with AI Source: [https://docs.replit.com/getting-started/quickstarts/ask-ai.md](https://docs.replit.com/getting-started/quickstarts/ask-ai.md) # Create with AI > Learn how to create a Replit App using AI-powered tools. export const AiPrompt = ({children}) => { return
{children}
; }; ## Create your app using AI ⏰ *Estimated time: 7 minutes* Learn how to create your Replit App using the **Agent** and **Assistant** AI tools in this guide. Specializes in generating new projects and building complex features. Specializes in describing your code, making quick fixes, and adding new features. Follow the steps below to build a polished business website. Use Replit's AI features to create an app, and refine it until it matches your desired design. image of the Completed App Navigate to the Home screen and select **Create App**: image of the Create App button Select the **Create with Replit Agent** tab as shown in the following image: image of the Create with Replit Agent tab To ask Agent to create your Replit App, enter your **prompt** in the text area. A prompt is a description of the task you want AI to perform. You can include text and file attachments in your prompt. Follow these steps to submit both in your prompt: 1. Copy the following image: image of a SaaS business website 2. Paste the image into Agent text area. 3. Enter the following prompt in the text area: Build a website for a SaaS B2B website that looks like the attached file. 4. Select **Start building**. After you submit your prompt, Agent sets up your Replit App and provides updates on its status in real time. You can monitor and view the history in the **Progress** tab. When Agent finishes setup, it prompts you with what it intends to build and options to include additional features as shown in the following image: image of Agent's approve dialog Leave the additional options unchecked and select **Approve plan & start**. After Agent builds your app, navigate to the **Preview** tab, where you can interact with the website. The website should resemble the following image: The generated website might differ since Agent can return different results for the same prompt. image of the Preview tool showing the website created by Agent Since the prompt only includes information about the landing page, Agent might omit content creation for the links on the page. The next step demonstrates how to use Assistant to add those pages. Navigate to the **Assistant** tab, which should resemble the following image: image of the Assistant tab Enter the following prompt in the text area and submit it: Create pages for each of the links in the navigation bar. You can select **Preview code changes** to view the Assistant's planned changes. Select **Apply All** and confirm your selection if prompted. Assistant and Agent, which rely on popular AI models, occasionally produce results that don't fulfill your request. If you encounter issues, follow up with a prompt that describes the error messages or the incorrect behavior. Alternatively, you can use the Rollback feature to restore your Replit App to a previously known working state. At this point, you should have a navigable website that includes sample text and functional links. ## Explore Try the tasks in the following sections to build your knowledge of Replit. ### Undo an Agent change Agent lets you perform a rollback, a feature that reverts your app to a previous checkpoint, discarding all changes made after that point. Follow these steps to revert the app to a specific checkpoint: When you use the rollback feature, you restore the Replit App to a previous state. This action removes all changes made after that point. This includes edits by you or AI-powered features and AI conversation context. Database data can also be restored if you select "Restore databases" under "Additional rollback options." The rollback affects your entire development environment. For detailed information about checkpoints and rollbacks, see [Checkpoints and Rollbacks](/replitai/checkpoints-and-rollbacks). Navigate to the **Agent** tab and locate the checkpoint you want to restore. Select **Rollback to here** to undo all changes after that point as shown in the following image: image of Rollback to here button in the Agent tab After Agent completes your request, check that the **Agent** tab displays "Rollback completed". Confirm that your app functionality matches its state before the checkpoint. ### Undo an Assistant change Assistant lets you perform a rollback, a feature that reverts your app to a previous checkpoint, discarding all changes made after that point. Follow these steps to revert the app to a specific checkpoint: When you use the rollback feature, you restore the Replit App to a previous state. This action removes all changes made after that point. This includes edits by you or AI-powered features and AI conversation context. Database data can also be restored if you select "Restore databases" under "Additional rollback options." The rollback affects your entire development environment. Navigate to the **Assistant** tab and locate the checkpoint you want to restore. Select **Undo these changes**\* to revert all changes from the checkpoint after that point in time as shown in the following image: image of Undo these changes button in the Assistant tab After Assistant completes your request, the **Undo these changes** button label should be replaced with **Restore checkpoint**. Confirm that your app functionality matches its state before the checkpoint. ## Continue your journey Now that you've completed this tutorial, you're ready to explore more possibilities with your Replit App. Try the following next steps to enhance your skills: * Use Agent to create a new Replit App using your own prompt. If your prompt needs more direction or details, select the pen icon labeled **Improve prompt**. * Add features to your app using Assistant. Navigate to the **Assistant** tab and try one of the recommended prompts. * Publish your Replit App to make it publicly available. Learn more about publishing options and billing from [About Deployments](/category/replit-deployments/). * Learn more about the AI-powered Replit features from the following guides: * [Replit Agent](/replitai/agent/) * [Replit Assistant](/replitai/agent/) --- ### Create a file converter with AI Source: [https://docs.replit.com/getting-started/quickstarts/build-with-ai.md](https://docs.replit.com/getting-started/quickstarts/build-with-ai.md) # Create a file converter with AI > Build a file conversion app in 15 minutes using Replit's AI tools. Learn how to use Agent and Assistant to create apps through natural language. export const AiPrompt = ({children}) => { return
{children}
; }; Learn how to replace line-by-line coding with AI-powered conversations. This guide shows you how to effectively communicate your vision and leverage Replit's AI tools to bring your ideas to life. ## What you'll learn Use Agent and Assistant effectively for different development tasks Learn the art of describing your vision to AI tools Discover how to provide context and specifications effectively Build and publish a working app in just 15 minutes You'll need a Replit account and Core subscription to access Agent. * [View the finished template](https://replit.com/@matt/msftmd-Office-Markdown-Converter?v=1\&utm_source=matt\&utm_medium=youtube\&utm_campaign=msftmd-app) * [Try the live demo](https://msftmd.replit.app/) ; }; export const platform_0 = "Figma" export const projectType_0 = "design" export const setupDescription_0 = "Replit automatically sets up your app's environment and dependencies" ## Import your Figma design ⏰ *Estimated time: three minutes* You can import your Figma designs and turn them into functional React apps on Replit. This quickstart covers how to convert your designs into working applications using AI-powered code generation. For comprehensive import options including other platforms like GitHub, Bolt, and Lovable, see the [Import feature documentation](/replit-app/import-to-replit). Preview of Figma design import in Replit ## Import your design 1. Navigate to [https://replit.com/import](https://replit.com/import). Replit import interface showing available sources 2. Select **Figma** from the available import sources. 3. **Connect your Figma account** to authorize access to your designs. Figma authentication process in Replit 4. **In Figma, select the frame** you want to build in Replit. Selecting a frame in Figma for import 5. **Copy the frame URL** from Figma and paste it into the Replit import interface. 6. Select **Import** to start the conversion process. Figma import progress in Replit ## What gets imported During the import process, Replit converts your Figma design into a functional React application: * **Theme & components**: Design system elements, colors, typography, and reusable components * **Assets & icons**: Images, icons, and other visual assets from your design * **App scaffolding**: Basic application structure and layout framework ## Figma design guidelines To copy the Figma Design frame URL: 1. Right-click the frame 2. Select **Copy/Paste as** 3. Select **Copy link to selection** For optimal conversion results, ensure your Figma design is well-structured with clear component hierarchies complete with auto layout constraints. Follow [these guidelines](https://support.animaapp.com/en/articles/6431384-create-responsive-designs-in-figma) for responsive designs in Figma. You can also ask Agent to help you make your design responsive. ### Tips * Use auto layout constraints to ensure your design is responsive. * Name your layers something short and meaningful. * Convert any groups to frames * Mark image assets for export ## Configure and run your app During the import process, {setupDescription_0}. If your app doesn't run as expected, Replit offers the following workspace tools to help you resolve the issues: * **[Agent](/replitai/agent)**: Use AI to add new features and refine your imported project * **[Assistant](/replitai/assistant)**: Get help with code questions and debugging * **[Secrets](/replit-workspace/workspace-features/secrets)**: Add your API keys and environment variables * **[Workflows](/replit-workspace/workflows)**: Configure the Run button to your preferred command ## Interact in Agent chat (beta) After importing, you can paste Figma links into Agent chat to explore layers, extract tokens, and request code changes. These Agent chat features require a Figma Dev or Full seat; the initial import does not. See the guide: [Figma MCP Integration](/replitai/mcp/figma). ## Continue your journey Now that you've imported your {platform_0} {projectType_0}, learn more about what you can do with your Replit App: * [Replit Agent](/replitai/agent): Get AI assistance with code review, testing, and feature implementation * [Make your Replit App Public](/replit-app/collaborate#make-your-replit-app-public): Share your app as a Template for others to remix * [Replit Deployments](/category/replit-deployments): Publish your app to the cloud with a few clicks * [Collaborate](/replit-app/collaborate): Work with others on your imported projects --- ### Import from GitHub Source: [https://docs.replit.com/getting-started/quickstarts/import-from-github.md](https://docs.replit.com/getting-started/quickstarts/import-from-github.md) # Import from GitHub > Learn how to import GitHub repositories into Replit using rapid import or guided import methods. ## Import your GitHub repository ⏰ *Estimated time: two minutes* You can import your GitHub repositories and turn them into Replit Apps to run, test, and publish your code. This quickstart covers the fastest methods to get your GitHub projects running on Replit. For comprehensive import options including other platforms like Figma, Bolt, and Lovable, see the [Import feature documentation](/replit-app/import-to-replit). Preview of GitHub repository import in Replit ## Rapid import Rapid import works instantly with public repositories. Combine the Replit import URL with your GitHub repository URL to start the import process. 1. Copy the repository GitHub URL, starting with `github.com`. 2. Type `https://replit.com/` in the browser address bar and paste your copied GitHub URL at the end (no spaces). **Example**: GitHub repository URL: `https://github.com/exampleUser/my-app` Import URL: `https://replit.com/github.com/exampleUser/my-app` 3. Press Enter to start the automatic import process. ## Guided import Guided import steps you through the process of selecting a repository to import and supports public and private repositories. 1. Navigate to [https://replit.com/import](https://replit.com/import). 2. Select **GitHub** from the available import sources. 3. **Connect your GitHub account** to authorize access to your repositories. 4. **Select the repository** you want to import. 5. Select **Import** to start the conversion process. 6. Configure your privacy settings and click **Import** to start the automatic import process. ## Configure and run your app During the import process, Replit attempts to set your app's language, dependencies, and workflow. If your app doesn't run as expected, Replit offers the following workspace tools to help you resolve the issues: * **[Assistant](/replitai/assistant)**: Diagnose and fix setup issues using AI-powered assistance. * **[Configure Repl](/replit-app/configuration)**: Configure your app's language, dependencies, and workflow. * **[Secrets](/replit-workspace/workspace-features/secrets)**: Securely add environment variables your app depends on. * **[Workflows](/replit-workspace/workflows)**: Configure the Run button to your preferred command. ## Continue your journey Now that you've set up your app, learn more about what you can do with your Replit App from the following resources: * [Using the Git interface](/replit-workspace/workspace-features/git-interface): Learn how to manage your Git repositories in Replit * [Make your Replit App Public](/replit-app/collaborate#make-your-replit-app-public): Share your Replit App as a Template for others to remix * [Replit Deployments](https://docs.replit.com/category/replit-deployments): Publish your Replit App to the cloud with a few clicks * [Secrets](/replit-workspace/workspace-features/secrets): Securely store sensitive information, including API keys and database credentials * [Collaborate](/replit-app/collaborate): Work with others on your GitHub-imported projects --- ### Import from Lovable Source: [https://docs.replit.com/getting-started/quickstarts/import-from-lovable.md](https://docs.replit.com/getting-started/quickstarts/import-from-lovable.md) # Import from Lovable > Learn how to import Lovable projects into Replit by exporting to GitHub first, then importing with Agent assistance. export const platform_1 = "Lovable" export const platform_0 = "Lovable" export const projectType_0 = "project" export const setupDescription_0 = "Agent validates your project structure and assists with migration to optimize it for the Replit environment" ## Import your Lovable project ⏰ *Estimated time: four minutes* You can import your Lovable projects into Replit by exporting them to GitHub first, then importing them as Replit Agent Apps. This quickstart covers the step-by-step process to migrate your Lovable projects to Replit. For comprehensive import options including other platforms like GitHub, Figma, and Bolt, see the [Import feature documentation](/replit-app/import-to-replit). Preview of Lovable project import in Replit ## Export and import process 1. **Export your Lovable project to GitHub** from your Lovable workspace. 2. Navigate to [https://replit.com/import](https://replit.com/import). 3. Select **Lovable** from the available import sources. 4. **Connect your GitHub account to Replit** to authorize repository access. 5. **Select your new Lovable project repo** for import from the available repositories. 6. Select **Import** to start the migration process. ## What gets imported During the import process, Replit migrates your {platform_1} project with Agent assistance: * **Code**: All application code and logic from your {platform_1} project * **Design and styles**: UI components, styling, and visual design elements * **Assets**: Images, icons, and other static resources * **Backend functionality**: If your {platform_1} project includes backend functionality, it is imported into the Replit environment. * **Database schema**: Database structure and table definitions are imported into a Neon Postgres database, which is integrated directly into the Replit environment. ### What's not included * **Supabase database**: Database content and data are not migrated * **Secrets**: Environment variables and API keys must be added separately You can ask Agent to help build out functionality, add secrets, and recreate databases in your new app. ## Configure and run your app During the import process, {setupDescription_0}. If your app doesn't run as expected, Replit offers the following workspace tools to help you resolve the issues: * **[Agent](/replitai/agent)**: Use AI to add new features and refine your imported project * **[Assistant](/replitai/assistant)**: Get help with code questions and debugging * **[Secrets](/replit-workspace/workspace-features/secrets)**: Add your API keys and environment variables * **[Workflows](/replit-workspace/workflows)**: Configure the Run button to your preferred command ## Continue your journey Now that you've imported your {platform_0} {projectType_0}, learn more about what you can do with your Replit App: * [Replit Agent](/replitai/agent): Get AI assistance with code review, testing, and feature implementation * [Make your Replit App Public](/replit-app/collaborate#make-your-replit-app-public): Share your app as a Template for others to remix * [Replit Deployments](/category/replit-deployments): Publish your app to the cloud with a few clicks * [Database setup](/cloud-services/storage-and-databases/sql-database): Let Agent help you configure and optimize your database * [Collaborate](/replit-app/collaborate): Work with others on your imported projects --- ### Import from Vercel Source: [https://docs.replit.com/getting-started/quickstarts/import-from-vercel.md](https://docs.replit.com/getting-started/quickstarts/import-from-vercel.md) # Import from Vercel > Learn how to import Vercel projects into Replit by linking your GitHub repository and letting Agent handle the setup. export const platform_0 = "Vercel" export const projectType_0 = "project" export const setupDescription_0 = "Agent automatically sets up your app's environment and dependencies and configures run commands for the Replit environment" ## Import your Vercel project ⏰ *Estimated time: three minutes* You can import your Vercel projects into Replit by linking the GitHub repository that backs your Vercel project. Agent scans your code and handles the setup automatically. This quickstart covers the step-by-step process to migrate your Vercel projects to Replit with a clean workflow, live preview, and logs. For comprehensive import options including other platforms like GitHub, Figma, Bolt, and Lovable, see the [Import feature documentation](/replit-app/import-to-replit). Preview of Vercel project import in Replit ## Import process 1. Navigate to [https://replit.com/import](https://replit.com/import). Replit import interface showing available sources 2. Select **Vercel** from the available import sources. 3. **Connect your GitHub account** to authorize access to your repositories. 4. **Select the repository** that backs your Vercel project from the available repositories. 5. **Provide environment variables** when prompted by Agent. Only non-standard secrets and environment variables will be requested. 6. Select **Import** to start the migration process. ## What gets imported During the import process, Replit converts your Vercel project into a functional Replit App: * **Project structure**: Complete codebase and file organization * **Dependencies**: Package.json and dependency management * **Build configuration**: Optimized for Replit's environment * **Environment setup**: Runtime and framework configuration ## What's not included The following items from your Vercel project are not automatically imported: * **Environment variables**: You'll be prompted to provide these during import * **Custom domains**: Set up separately in Replit Deployments * **Vercel-specific configurations**: Edge functions and middleware may need adjustment * **Analytics and monitoring**: Use Replit's built-in monitoring tools ## Configure and run your app During the import process, {setupDescription_0}. If your app doesn't run as expected, Replit offers the following workspace tools to help you resolve the issues: * **[Agent](/replitai/agent)**: Use AI to add new features and refine your imported project * **[Assistant](/replitai/assistant)**: Get help with code questions and debugging * **[Secrets](/replit-workspace/workspace-features/secrets)**: Add your API keys and environment variables * **[Workflows](/replit-workspace/workflows)**: Configure the Run button to your preferred command ## Continue your journey Now that you've imported your {platform_0} {projectType_0}, learn more about what you can do with your Replit App: * [Replit Agent](/replitai/agent): Get AI assistance with code review, testing, and feature implementation * [Make your Replit App Public](/replit-app/collaborate#make-your-replit-app-public): Share your app as a Template for others to remix * [Replit Deployments](/category/replit-deployments): Publish your app to the cloud with a few clicks * [Collaborate](/replit-app/collaborate): Work with others on your imported projects --- ### Create a Next.js app Source: [https://docs.replit.com/getting-started/quickstarts/next-js-app.md](https://docs.replit.com/getting-started/quickstarts/next-js-app.md) # Create a Next.js app > Build and publish a modern React application using Next.js on Replit. Learn how to use server-side rendering and static generation. Learn how to create a Next.js application with server-side rendering capabilities. This guide shows you how to publish a React app using Replit's autoscaling published apps. ## What you'll learn Build modern React applications Enable SSR for better performance Publish with automatic scaling Optimize for production ## Create your app Sign in to Replit and fork the [Next.js template](https://replit.com/@replit/Nextjs?v=1#README). Select **+ Use Template** and follow the prompts to create your Replit App. 1. Select **Publish** in the workspace header 2. Choose **Autoscale** deployment 3. Configure your app: * Machine: 1vCPU, 2 GiB RAM (default) * Max machines: 3 (default) * Build command: `npm run build` * Run command: `npm run start` Autoscale deployments automatically adjust resources based on traffic. Select **Publish** to launch your app. It will be live in a few minutes! ## Next steps Add your own domain Learn about scaling Optimize your app ## Related guides Build a blog with Astro Create apps using Agent Want to learn more about web development? Check out our [publishing documentation](/category/replit-deployments). --- ### Create a cat image generator Source: [https://docs.replit.com/getting-started/quickstarts/no-code-cat-image-generator.md](https://docs.replit.com/getting-started/quickstarts/no-code-cat-image-generator.md) # Create a cat image generator > Build a fun image generator in 5 minutes using Replit's AI tools. Perfect for beginners exploring no-code development. Learn how to create apps without writing code. This guide shows you how to build a playful cat image generator using Replit's AI tools. ## What you'll learn Create apps through natural language conversations Build without writing code Choose the right AI tool for each task Take your app live in minutes You'll need a Replit account and Core subscription to access Agent. ; }; export const AuthorCard = ({img = "https://replit.com/cdn-cgi/image/width=256,quality=80,format=auto/https://storage.googleapis.com/replit/images/1730840970400_e885f16578bbbb227adbfeb7b979be34.jpeg", href = "https://youtube.com/@mattpalmer", name = "Matt Palmer", role = "Head of Developer Relations"}) => { return
{name}

{name}

{role}

; }; ## Build a Notion-powered blog with Replit Agent Notion is a powerful tool for organizing information, and it excels as a Content Management System (CMS). By integrating Notion with Replit, you can manage your website's content—like blog posts, portfolio items, or product listings—directly from your Notion workspace. Replit, powered by [Replit Agent](/replitai/agent), handles the coding, hosting, and deployment, letting you go from idea to a published application quickly. Effective prompting is key to guiding Agent; for a comprehensive guide, see [Efficient prompting with Replit AI](/tutorials/effective-prompting) and [How to vibe code effectively](/tutorials/how-to-vibe-code). This tutorial guides you through building a minimalistic blog that pulls its posts from a Notion table. You will: * Use Replit Agent to generate the initial application * Connect your Replit app to a Notion database * Learn to guide the AI and troubleshoot common issues using effective prompting techniques * Publish your blog for the world to see Screenshot of the final Notion-powered blog application with minimalist design The tutorial will follow largely from the video above, but with some additional context and steps to help you understand the process. ## Prerequisites To follow this tutorial, you'll need: * A Replit account * A Notion account * Familiarity with basic Replit Agent interactions. If you're new to Agent, check out the [Replit Agent documentation](/replitai/agent). ## Step 1: Prepare your Notion database Before prompting Agent, set up your content source in Notion. This involves thinking procedurally about what your blog needs, similar to planning a product. 1. In Notion, go to **Settings & members** (usually in the top-left sidebar). 2. Navigate to **Connections** (previously "Integrations"). 3. Select **Develop or manage integrations**. 4. Select **+ New integration**. Notion developer portal showing the New integration button 5. Name your integration (e.g., "My Replit Blog Integration"). 6. Associate it with your desired workspace. Notion integration configuration screen with name and workspace selection 7. For "Integration type," choose **Internal Integration**. 8. Select **Submit**. 9. Copy your **Internal Integration Secret** (token) and save it securely. This is your Notion API key. Notion integration secrets page showing the integration token 10. Under **Capabilities**, ensure "Read content" is enabled. For this tutorial, reading is sufficient. If you later want to write data to Notion, enable "Insert content" and "Update content." Create a new integration for each project to manage permissions granularly. This is a security best practice. For more detailed instructions, refer to [Notion's official documentation on creating an integration](https://developers.notion.com/docs/create-a-notion-integration). You can directly access Notion's integrations dashboard at [notion.so/my-integrations](https://notion.so/my-integrations). 1. Create a new page in Notion for your blog content. 2. On this page, add a new **Table** database. 3. Name your table (e.g., "Blog Posts"). 4. Define columns for your posts. **Specify** these clearly in your mind, as you'll soon tell Agent about them: * `Title` (Text, default title property) * `Body` (Text, for main post content) * `Slug` (Text, for URL-friendly identifiers) * `PublishedDate` (Date, or use "Created time" / "Last edited time") * `ReadingTime` (Text or Number, e.g., "5 min read") * `Description` (Text, short summary for previews) Notion database configured with columns for blog posts 5. Add a few sample posts. You can use Notion's AI features to help generate content! 1. Open the Notion page containing your database. 2. Click the **•••** (three dots) menu in the top-right corner. Notion connections menu showing how to add your integration to the page 3. Select **+ Add connections**. 4. Search for and select the integration you created (e.g., "My Replit Blog Integration"). Notion page showing the three dots menu to add integrations 5. Confirm the connection. This allows Replit (via the integration token) to access this page and its database. ## Step 2: Prompt Replit Agent With Notion set up, let's get Replit Agent to build our blog's foundation. **Plan before you prompt**: a clear outline of features leads to more focused prompts. Navigate to the Replit homepage and open **Agent**. Provide Agent with a detailed prompt. **Simplify** your language, but be **specific** about requirements, constraints, and desired outputs. Here's an example: ```text theme={null} Help me create a hyper-minimalistic blog using Notion as a CMS. The blog should pull posts from a Notion page. The table on the Notion page has the following columns: Title, Body, Slug, PublishedDate, ReadingTime, Description. You should generate a slug for each post based on its title if the Slug column is empty. Make the blog theme black with white text. Keep it extremely minimal. The posts should be listed on the homepage, and clicking a post should navigate to a page displaying the full post content. ``` For more tips on writing effective prompts, see our guide on [Efficient prompting with Replit AI](/tutorials/effective-prompting). You can also **show** Agent what you mean by providing a URL to scrape for initial styling or content ideas (e.g., your personal portfolio) by adding: `Scrape the content of [URL] for initial design inspiration and placeholder text.` Agent will generate a plan. Review it to ensure it aligns with your expectations, then approve it. This is your first **checkpoint** in the AI-assisted building process. Agent will then generate a visual preview. Check if the basic layout and styling are heading in the right direction. Refinements will come later. ## Step 3: Connect Replit to Notion with Secrets Agent will likely need your Notion integration details to fetch data. Typically, you'll need: 1. `NOTION_API_KEY`: Your Internal Integration Secret from Step 1. 2. `NOTION_DATABASE_ID`: The ID of your Notion database. **How to find your Notion Database ID:** * Open your Notion page with the database in a browser. * The URL might be `https://www.notion.so/your-workspace/PAGE_TITLE-PAGE_ID?v=DATABASE_VIEW_ID`. The `PAGE_ID` is often the database ID if the database is the page's main element. * **More reliably**: Click the **•••** menu on your database view, select **Copy link to view**, and paste it. The link `https://www.notion.so/your-workspace/DATABASE_ID?v=VIEW_ID` contains the `DATABASE_ID` before `?v=`. Go to the **Secrets** tool (🔒 icon) in your Replit Workspace. Add these: * Key: `NOTION_API_KEY`, Value: `[Your_Notion_Integration_Secret]` * Key: `NOTION_DATABASE_ID`, Value: `[Your_Notion_Database_ID]` Replit Secrets tool with Notion API key and Database ID added Agent should automatically use these secrets and attempt to connect. The app will likely restart. ## Step 4: Debugging and refining with Agent Building with AI is iterative. Expect errors or imperfections. This is where guiding the AI effectively—often called "vibe coding"—is key. For a deeper dive into this skill, check out our tutorial on [How to vibe code effectively](/tutorials/how-to-vibe-code). **Master context** by providing only relevant information for each debugging step. Keep the **Console** in your Replit Workspace open. It provides valuable error messages and logs. Replit Console showing error messages while debugging the Notion integration Here are common scenarios and how to address them by **debugging methodically**: ### Scenario 1: "Failed to load posts" or property errors #### Symptom The app runs but doesn't display posts. Console errors might mention "Could not find sort property with name ID created\_time" or other column mismatches. #### Cause Agent might assume column names or properties (e.g., `created_time` for sorting) that don't exist or are named differently in your Notion database. #### Troubleshooting 1. **Verify Notion Database**: Ensure column names in your database exactly match Agent's expectations or your prompt. If Agent seeks `created_time` and you have `PublishedDate`, it's a mismatch. 2. **Prompt Agent with error (Debug principle)**: Copy the *exact* console error and **select** relevant code snippets if you've identified them. Provide this focused context to Agent: ```text theme={null} There's an error fetching posts. Console: "Could not find sort property with name ID created_time". My Notion database uses 'PublishedDate'. Please use this for sorting/fetching. Here's the suspected code from `services/notion.js`: [code snippet] ``` 3. **Iterate (Experiment principle)**: If Agent's fix fails, provide more specifics. "Posts still not loading. Error persists. Show me the code for fetching/sorting Notion posts." If you added a column like `created_time` in Notion as a quick fix, you can later ask Agent: "Remove reliance on 'created\_time', use 'PublishedDate' instead." Remember to use Agent's **Checkpoints** to save working states. ### Scenario 2: Incorrect data display or formatting #### Symptom Data appears, but incorrectly (e.g., reading time wrong on homepage but right on post page; Markdown rendering issues). #### Troubleshooting 1. **Be specific (Specify principle)**: Describe the issue and location clearly: ```text theme={null} On the homepage, post reading time is incorrect, but it's correct on individual post pages. Also, display 'PublishedDate' on the homepage for each post summary. ``` 2. **Markdown issues (Show principle)**: If Notion "Body" Markdown renders incorrectly (e.g., extra spaces, formatting errors): * Inspect raw content in Notion; its formatting can introduce subtle characters. * Prompt Agent clearly. You can even **show** an example: ```text theme={null} Markdown rendering issue: In post X, bold text like '**this**' appears as ' ** this **' and fails to render. Ensure Markdown parsing handles such cases or trims whitespace. Example of correct rendering for bold: **This is bold**. ``` * Testing with known good Markdown (e.g., from ChatGPT pasted into Notion) can isolate if the issue is source data or rendering logic. ### General debugging flow 1. **Observe**: Note the error or incorrect behavior. 2. **High-level prompt (Simplify)**: Describe the problem to Agent clearly. 3. **Check Console/DevTools (Debug)**: Look for detailed errors. 4. **Iterate & provide context (Select, Show)**: If Agent's fix fails, provide more context (error message, relevant code, your goal, attempts made). 5. **Incremental changes (Checkpoint)**: Ask Agent to fix one thing at a time. Use **Checkpoints** in Agent to save progress. 6. **Rollback**: If prompts worsen things, roll back to a working **Checkpoint** and try a new approach. Don't hesitate to examine Agent-generated code. Even without expertise in the language, you can often spot logical issues or understand data flow, helping you write better prompts. Files like `notionService.js` usually handle Notion API calls. ## Step 5: Further enhancements Once core functionality works, ask Agent to add features. Use positive, direct language (**Instruct** principle). Here are ideas: Ask Agent: "Implement post caching and prefetching from Notion for a super-fast site." This reduces Notion API calls and speeds up page loads. Ask Agent: "Add a hover effect to homepage blog post links." or "Improve post typography for readability." Small visual tweaks significantly improve user experience. You can **show** Agent examples of styles you like. Consider how often to fetch new Notion data. For simple blogs, on page load or server restart might be enough. For dynamic content, ask Agent: "Explore options to auto-refresh Notion posts hourly." This might involve background polling (adds complexity but keeps content current). ## Step 6: Publish your website Happy with your site? Time to share it! 1. Select **Publish** in the Replit Workspace (top right). 2. Review publishing settings (project name, tier). For more details, see [About Deployments](/cloud-services/deployments/about-deployments). 3. Select **Publish**. Replit publishing interface showing how to publish your Notion-powered website Replit builds, bundles, and publishes your app to a public URL. ## What you've learned By following this tutorial, you've learned to: * Set up Notion as a CMS with an integration and structured database * Prompt Replit Agent to build a web app connected to Notion, applying principles like **planning, specifying, and simplifying** * Securely manage API keys using Replit Secrets * Iteratively debug and refine an AI-generated app using techniques like **providing context, showing examples, and using checkpoints** * Publish your Notion-powered website on Replit For detailed information about checkpoints and rollbacks, see [Checkpoints and Rollbacks](/replitai/checkpoints-and-rollbacks). Building with AI like Replit Agent is collaborative. Procedural thinking, clear instructions, and methodical debugging are crucial for turning ideas into reality, fast. ## Next steps Continue developing your Notion-powered website: Try adding diverse content from Notion: image galleries, embedded videos, or categorized items. Explore Notion's formulas, rollups, and relations for complex data structures. Work with Agent to display this rich data on your Replit site. Enhance your app by merging Notion data with other [Replit AI](/category/replit-ai) tools or [Agent integrations](/replitai/integrations). For example, use Replit Auth for private content or OpenAI for AI-generated summaries from Notion data within your app. Happy building! We can't wait to see what you create. --- ### Publish a Grok 3 app on Replit in 5 minutes Source: [https://docs.replit.com/tutorials/create-apps-with-grok-3.md](https://docs.replit.com/tutorials/create-apps-with-grok-3.md) # Publish a Grok 3 app on Replit in 5 minutes > Learn how to use Grok 3 and Replit to build and publish a brick breaker game without writing a single line of code. export const AuthorCard = ({img = "https://replit.com/cdn-cgi/image/width=256,quality=80,format=auto/https://storage.googleapis.com/replit/images/1730840970400_e885f16578bbbb227adbfeb7b979be34.jpeg", href = "https://youtube.com/@mattpalmer", name = "Matt Palmer", role = "Head of Developer Relations"}) => { return
{name}

{name}

{role}

; }; Have you ever wished you could create a fun, playable game without writing a single line of code? With Grok 3 and Replit, you can turn this wish into reality in just minutes. ; }; Clear, concise, and context-rich prompts are the foundation of effective vibe coding with Replit AI. Think of prompting as giving precise instructions to a very capable—but literal-minded—assistant like [**Replit Agent**](/replitai/agent) or [**Replit Assistant**](/replitai/assistant). Guiding these tools effectively helps you go from idea to app, fast. ## Examples of bad and good prompts Here are some examples of bad and good prompts: | Bad Prompt | Good Prompt | Explanation | | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | "Fix my code." | "My script fails when processing user input. The error seems to be in the validation function. Can you help debug the `validate_input` part? Here's the relevant error message: \[details]" | **Specificity & Context (Debug, Select, Show)**: The good prompt identifies the problem area and the suspected function. It also offers specific context like code and error details, unlike the vague request. | | "Make a website." | "Create a simple portfolio website. It needs sections for Home, About Me, and a Contact Form. Use a clean, modern design theme and placeholder content." | **Clarity & Constraints (Simplify, Specify, Test)**: The good prompt defines the purpose, core features (sections), desired aesthetic, and initial content state. | | "Don't make it slow." | "Refactor the data processing function to handle larger inputs more efficiently. Could we use a different algorithm or data structure?" | **Positive Instruction & Goal (Instruct, Specify)**: Tells the AI *how* to improve (efficiency) and suggests *what* to consider (algorithm, data structure) rather than a negative constraint. | | "Add animation." | "Animate the main image on the landing page so it gently fades in when the page first loads to create a welcoming effect." | **Specificity & Outcome (Specify, Show)**: The good prompt identifies the specific element, desired visual effect (fade in), timing (page load), and the intended user experience. | | "Build the backend." | "Set up the server-side logic. Implement user authentication (signup/login) and create an API endpoint to retrieve user profile data securely." | **Breaking Down Tasks (Checkpoint, Test, Specify)**: The good prompt breaks down a large task ("backend") into specific functionalities (authentication, data retrieval API). | Just like leading a team, providing clear direction, the right resources, and constructive feedback to your AI partner yields the best results. Mastering the art of the prompt unlocks the full power of AI-assisted development. ## Core prompting principles Effective prompting isn't about complex linguistic tricks; it's about clarity, context, and iteration. Here are the key principles to remember when interacting with **Agent** and **Assistant**: | Tip | Description | | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Checkpoint** | Structure development iteratively. Break large goals into smaller, testable steps, using [**Checkpoints**](/replitai/agent#checkpoints) in **Agent** to save progress and enable safe experimentation. | | **Debug** | Assist the AI in troubleshooting by providing detailed context, including exact error messages, relevant code snippets, and the steps taken. | | **Discover** | Leverage the AI's knowledge by asking for suggestions on appropriate tools, libraries, frameworks, or general programming approaches for your task. | | **Experiment** | Treat prompting as an iterative process. Refine your requests by adjusting wording, adding detail, or simplifying instructions to improve AI responses. | | **Instruct** | Guide the AI effectively by stating clear, positive goals and desired actions, rather than focusing on negative constraints or what to avoid. | | **Select** | Provide focused, relevant context using features like file mentions. Avoid overwhelming the AI with unrelated information; start new chats for distinct tasks. | | **Show** | Reduce ambiguity by providing concrete examples, such as code snippets, desired output formats, sample data, or even UI mockups via image uploads. | | **Simplify** | Communicate clearly and directly. Use concise language, break down complex ideas, and avoid jargon, as if instructing a new team member. | | **Specify** | Ensure the AI understands the exact requirements by defining expected outputs, necessary constraints, data formats, and edge case handling. | | **Test** | Plan your application's structure and features *before* prompting. Break down requirements like a PM/engineer to guide the AI effectively. | Let's explore how to apply each of these principles. image ### Checkpoint: Build incrementally Instead of asking the AI to build your entire application at once, break the project down into smaller, logical steps. Approach development iteratively, confirming each piece works before moving on. This mirrors traditional development cycles and makes the process more manageable for both you and the AI. * **Why it matters**: Building step-by-step makes debugging easier and allows the AI to focus its capabilities. * **How to apply**: Prompt for one feature or component at a time. After each successful step, use **Replit Agent**'s [**Checkpoint**](/replitai/agent#checkpoints) feature (like a `git commit`) to save your progress. If a subsequent step fails, you can easily **Rollback** to a working state and try a different prompt. * **Less Effective**: "Build a complete e-commerce platform." * **More Effective**: "Set up a basic full-stack project for an e-commerce site. Include user sign-up and login functionality using a Replit Database." (Followed by prompts for product listings, cart, etc.) ### Debug: Provide contextual clues When errors pop up, treat the AI like a collaborator who needs information to help. Go beyond saying "it's broken" and provide specific details about the problem, including error messages and the relevant code sections, so the AI can effectively assist in troubleshooting. * **Why it matters**: The AI needs context to understand the error and suggest a correct fix. * **How to apply**: Include the *exact* error message, the relevant code snippet(s), the file name(s) where the error occurs, what you were trying to achieve, and any steps you've already tried. * **Less Effective**: "My login page is broken." * **More Effective**: "When I try to log in with correct credentials on the `/login` page, I get a 'User not found' error in the browser console. It seems like the check against the database isn't working. Here's the relevant login handling code in `auth.js`." ### Discover: Ask about possibilities Don't hesitate to ask **Agent** or **Assistant** for advice. If you're unsure about the best library for a task or different ways to approach a feature, ask! This is a great way to learn about new tools or techniques relevant to your project. * **Why it matters**: You can quickly learn about relevant technologies or techniques you might not be aware of. * **How to apply**: Frame questions openly. Ask about options, trade-offs, or common practices. * **Less Effective**: "Add payments." * **More Effective**: "What are some good options for accepting credit card payments in a web app built on Replit? I need something relatively simple to integrate." ### Experiment: Iterate and refine Your first prompt might not yield the perfect result, and that's okay. Prompting is a conversation. If the AI's response isn't quite right, try rephrasing your request, adding more detail, or simplifying the language. Small adjustments can lead to significantly better outcomes. * **Why it matters**: Iteration helps you converge on the desired outcome and learn what prompts work best for specific tasks. * **How to apply**: If the first response isn't quite right, rephrase your request. Add more detail, provide an example, or simplify the instruction. Try different ways of explaining the same goal. * **Initial Prompt**: "Create a header for my website." * **Refined Prompt**: "Create a sticky header component for my website. It should include the site logo on the left and navigation links (Home, About, Contact) on the right." ### Instruct: Use positive and direct language Clearly state what you want the AI *to do*, rather than listing things to avoid. Positive, direct instructions are easier for the AI to understand and act on, leading to more predictable and useful results. * **Why it matters**: Positive instructions are less ambiguous and guide the AI more effectively toward the desired action. * **How to apply**: Frame your requests as clear commands or descriptions of the desired state. * **Less Effective**: "Don't make the user profile page confusing." * **More Effective**: "Design a clean user profile page. Display the username prominently, followed by the user's email and join date. Include an 'Edit Profile' button." ### Select: Curate relevant context Give the AI the specific information it needs for the task at hand, but avoid flooding it with irrelevant details. Use features like file mentioning to focus the AI's attention. If switching to a completely different task, starting a **New chat** can prevent confusion. * **Why it matters**: Helps the AI focus on the specific problem without getting sidetracked by unrelated details. **Agent** and **Assistant** have features to help manage context, like mentioning specific files or scraping URLs. * **How to apply**: When asking for changes to specific files (`profile.js`, `profile.html`), mention or attach only those key files. Supplement with specific external context like documentation URLs or design mockups instead of attaching the entire codebase. * **Less Effective**: (Attaching the whole project) "Implement the user profile page based on our design system." * **More Effective**: "Create the user profile page. Fetch user data from the server endpoint. Style the page according to the guidelines in the design system documentation: \[URL to design system docs] and match the layout shown in this mockup: \[attach image `profile_mockup.jpg`]." ### Show: Provide examples and demonstrations Sometimes, the best way to explain what you want is to show an example. Provide code snippets illustrating a style, sample data structures, or even upload screenshots of a UI element you want the AI to replicate. This helps eliminate ambiguity. * **Why it matters**: Examples reduce ambiguity and give the AI a clear target to aim for. Replit AI supports multimodal input like images. * **How to apply**: Include code snippets of the desired style, sample input/output data, links to documentation, or even UI mockups/screenshots (which **Agent** can often interpret). * **Less Effective**: "Make the product cards look better." * **More Effective**: "Redesign the product cards on the shop page. Each card should display the product image, name, price, and an 'Add to Cart' button, similar to this layout: \[link to example site or attach screenshot]. Use a light gray border for each card." * **Alternatively**: "Use this JSON structure for representing product data: \[example JSON snippet]. Generate display logic based on this." ### Simplify: Be clear and concise Communicate with the AI using clear, straightforward language. Avoid unnecessary jargon or overly complex sentences. Breaking down your request into simple steps or bullet points can greatly improve the AI's understanding. * **Why it matters**: Simple, direct language reduces the chance of misinterpretation. * **How to apply**: Break down complex requests. Use bullet points for lists of requirements. State the primary goal clearly upfront. * **Less Effective**: "Implement the necessary server-side infrastructure to facilitate the dynamic generation and retrieval of user-generated content artifacts." * **More Effective**: "Create the backend functionality for users to submit blog posts. Users should be able to enter a title and body content. Store these posts in the Replit Database." ### Specify: Define outputs and constraints Be explicit about your requirements and expectations. Define the desired output format, specify any constraints (like using a particular library), and mention important edge cases the AI should consider. The more specific you are, the better the AI can meet your needs. * **Why it matters**: Reduces ambiguity and ensures the AI's output meets your specific needs. * **How to apply**: Detail the expected function signature, return types, data formats, error handling behavior, or specific technologies to use. * **Less Effective**: "Add a contact form." * **More Effective**: "Create a contact form page at `/contact`. The form should include fields for Name (required), Email (required, must be valid format), and Message (required, min 10 characters). On submit, send the form data to `contact@mydomain.com`." ### Test: Plan before you prompt Before you start prompting, take a moment to plan. Think through the application's structure, key features, and user flow, much like a product manager or engineer would. Having a clear plan will help you write more targeted and effective prompts. * **Why it matters**: A clear plan leads to more focused prompts and a more coherent final application. * **How to apply**: Outline the features, data structures, and user flows before you start prompting **Agent** or **Assistant**. Break the overall goal into logical development stages. * **Less Effective**: "Build a task manager app." * **More Effective**: (After planning) "1. Create the basic HTML structure for a task manager with an input field and a task list. 2. Add JavaScript to allow users to add tasks to the list. 3. Use Replit Database to store tasks so they persist. 4. Add functionality to mark tasks as complete..." (Then prompt for each step). ## Summary Apply these principles: build incrementally, provide clear context, be specific, show examples, and plan ahead. This approach significantly improves collaboration with **Replit Agent** and **Replit Assistant**. This allows developers to leverage the power of AI to build and publish applications faster and more effectively. --- ### Building Mobile Apps with Expo and Replit Source: [https://docs.replit.com/tutorials/expo-on-replit.md](https://docs.replit.com/tutorials/expo-on-replit.md) # Building Mobile Apps with Expo and Replit > Replit is the fastest way to create and publish cross-platform mobile apps using Expo, without any setup or configuration. export const AuthorCard = ({img = "https://replit.com/cdn-cgi/image/width=256,quality=80,format=auto/https://storage.googleapis.com/replit/images/1730840970400_e885f16578bbbb227adbfeb7b979be34.jpeg", href = "https://youtube.com/@mattpalmer", name = "Matt Palmer", role = "Head of Developer Relations"}) => { return
{name}

{name}

{role}

; }; Apps are the new websites, and everyone should be able to create them. By combining Replit's browser-based development environment [with Expo](https://expo.dev/blog/from-idea-to-app-with-replit-and-expo), mobile app creation is now as simple as building a website. This tutorial will guide you through creating a mobile app using Replit and Expo, from setting up your environment to publishing your app to your device. Watch Replit's two-part video series to learn how to create and publish a mobile app using Replit and Expo. ## Part 1: Create a mobile app in five minutes Learn how to create a native iPhone/Android app using Replit and Expo in just five minutes - perfect for beginners. ; }; export const AuthorCard = ({img = "https://replit.com/cdn-cgi/image/width=256,quality=80,format=auto/https://storage.googleapis.com/replit/images/1730840970400_e885f16578bbbb227adbfeb7b979be34.jpeg", href = "https://youtube.com/@mattpalmer", name = "Matt Palmer", role = "Head of Developer Relations"}) => { return
{name}

{name}

{role}

; }; This tutorial walks you through the "vibe coding" process on Replit—taking an idea from concept to a fully published application. This tutorial will build an interactive map visualization of San Francisco parks, pulling in external data and using modern frameworks. You'll see how to leverage [Replit Agent](/replitai/agent) for initial development and [Replit Assistant](/replitai/assistant) for refinements and debugging. ## The vibe coding philosophy Vibe coding is less about writing every line of code and more about guiding AI tools with your vision and domain knowledge. It's an iterative process of prompting, reviewing, and refining. Key takeaways from the video: * **Conceptualize First**: Start with a clear idea of what you want to build. Visualizing the end product helps, especially when prompting AI. * **Domain Knowledge is Power**: Knowing relevant frameworks (like Leaflet.js for maps) or data sources (like OpenStreetMap) significantly improves AI-generated results. * **Iterative Development**: Expect to debug and refine. AI tools are powerful, but they're collaborators, not magic wands. ## Project: San Francisco parks map The goal is to build an interactive map displaying parks and public spaces in San Francisco. **Problem Statement**: The goal is an interactive map to discover parks and public spaces in San Francisco. **Solution**: An interactive tool using Leaflet.js and OpenStreetMap data. **Key lessons**: * Prompting AI effectively. * Processing external data. * Debugging and handling errors. ## Building with Replit Agent Replit Agent can scaffold entire projects, set up environments, and generate initial code. A good prompt is specific. We tell Agent: * The goal: "Help me create a minimalist maps app to visualize San Francisco's parks." * Key technologies: "You should use leaflet for map visualization and fetch data from OpenStreetMap." * Specific data types from OpenStreetMap (after research): Natural formations (woods, beaches, islets, cave entrances) and leisure locations (parks, gardens). Help me create a minimalist maps app to visualize San Francisco's parks. You should use leaflet for map visualization and fetch data from OpenStreetMap. Include the following OpenStreetMap data types for San Francisco: natural formations (woods, beaches, islet, cave entrance) and leisure (park, gardens). To learn more about how to write effective prompts, check out [this article](tutorials/effective-prompting). Visual aids help Agent understand the desired layout and features. A simple sketch or mockup can be attached directly to the prompt. Wireframe sketch of the maps app 1. **Plan Creation**: [Agent](/replitai/agent) outlines the steps it will take. Review and approve this plan. Replit Agent plan creation 2. **Visual Preview**: Agent streams a visual preview of the app's UI. Replit Agent visual preview 3. **Environment Setup**: Agent configures the development environment, installing necessary languages and packages—no manual setup required. 4. **Building the App**: Agent writes the code for the front end and back end. 5. **Checkpoints**: Agent creates checkpoints ([Git commits](/replit-workspace/workspace-features/version-control)) so you can roll back if something goes wrong. Errors happen. Use the browser's DevTools (specifically the Console and Network tabs) to find error messages. * **Observe**: The map loaded, but no data points appeared. * **Investigate**: The console showed an error: "Failed to fetch map features error cannot read properties of undefined reading natural." * **Inform Agent**: Paste the error message directly into the chat with Agent. Agent will attempt to debug and fix the issue. Browser console showing an error In the video, Agent identified an issue with parsing the Overpass API response and added robust error handling, which resolved the problem. ## Refining with Replit Assistant Once Agent builds the MVP, switch to Replit Assistant for smaller, more targeted edits and refinements. Assistant is generally faster for these tasks. The initial map was functional but could look better. **Prompt to Assistant**: "Can you use a more minimalist carto style for OpenStreetMap? Carto lite." This relies on knowing that "Carto lite" is a known theme for Leaflet maps. A common refinement is adding a dark mode. **Prompt to Assistant**: "Can you add a dark mode to my app and use, carto dark for the map in the dark mode?" Replit Assistant implementing dark mode Assistant will: * Read files for context. * Make changes to necessary files (e.g., theme providers, styles). * Restart the app to apply changes. Adding dark mode involved several iterations: 1. Initial implementation had a toggle that worked for the map but then disappeared. **Feedback**: "The toggle theme button works for the map, but it disappears when clicked. The theme toggle should be in the side nav and the theme should be applied to the side nav." 2. Issues with multiple toggle buttons and incorrect component references (`side nav` vs. `sidebar`). **Feedback & Guidance**: "Now there are two toggle themes. One controls the map, the other controls the side nav. Make them into one in the side. Now and update the CSS." When Assistant made an incorrect assumption (e.g. `SideNav` component), explicitly pointing it to the correct file (`@Sidebar`) helps. 3. Final fix to ensure the dark mode toggle in the sidebar correctly toggled the map theme to Carto Dark. **Feedback**: "Now the dark mode toggle in @Sidebar does not toggle the map to carto dark." This process highlights the "conversation" aspect of vibe coding. Be descriptive and guide the AI. ## Publishing your application Replit makes publishing straightforward. 1. Select the **[Publish](/cloud-services/deployments/about-deployments)** button. 2. Agent suggests a publishing configuration (e.g., app name, build and run commands). Review and confirm. 3. If your app uses API keys or other sensitive information, store them in **[Secrets](replit-workspace/workspace-features/secrets)**. Agent will use these securely. 4. Select **Publish**. Replit bundles your app and makes it live on the web. Replit deployment screen Your published app will have a public URL (e.g., `park-mapper.replit.app`). Changes made in your development environment won't affect the published version until you click **Republish**. ## Recap and next steps This tutorial went from an idea to a published interactive map application without writing a single line of code manually. Replit Agent was used for the heavy lifting and Replit Assistant for refinements, leveraging domain knowledge and an iterative debugging process. **Potential Next Steps for the Park Mapper App**: * Add a [database](category/storage-and-databases) to store park data persistently (avoiding re-fetch on every load). * Allow users to save or favorite parks. * Implement advanced filtering. * Improve styling and add custom icons for map markers. * Enhance mobile responsiveness (e.g., ensuring filters are accessible on mobile). Vibe coding is about iterating, experimenting, and guiding AI to bring your ideas to life. Don't be afraid of errors; they are part of the process! --- ## Workspace Features ### Dependency Management Source: [https://docs.replit.com/replit-workspace/dependency-management.md](https://docs.replit.com/replit-workspace/dependency-management.md) # Dependency Management > Replit supports a variety of languages and dependency management systems through the Dependencies tool. This section will cover the different types of dependencies and how to manage them in your Replit App. ## Imported Packages Packages imported directly from your code are managed in the `Imports` tab. This tab allows you to view and manage the packages grouped by language. Links are also provided to the appropriate packager file, such as `package.json` for Node.js. Imports tab for a project using Node.js and Python ### Search and add packages Clicking on `Add new package` will allow you to search for and install new packages. The language dropdown provides quick access between packagers. Node.js package search for 'React' You can view installation progress and relevant errors in the `Console` tab. Example console output for an uninstalled package ### The Universal Package Manager Replit will install most packages using [the universal package manager](https://blog.replit.com/packager). To see which languages and package managers are supported, please check out [UPM: Supported Languages](https://github.com/replit/upm/#supported-languages). If you prefer using the CLI, you can still use language-specific package managers such as `poetry` or `npm`. Any changes to the packager files will be reflected in the `Dependencies` tool, but require the respective CLI command or using the **Run** button to properly update. ### Import guessing As your code evolves, we analyze your project for missing dependencies and automatically guess what needs to be installed to get your code to run. For example, if you add `import flask` to `main.py`, the next time you select **Run**, you'll see a section in the **Console** indicating that the latest version of **Flask** is being installed: upm output showing packages being installed ### Guessing failures This section helps you with the command to run a particular version of your package. If there's a particular version that you need, or we guessed the wrong package entirely, you can run `upm` in the shell to resolve the conflict: ```bash theme={null} upm add 'flask==2.3.3' ``` To install additional packages in your Workspace, open a new tab by selecting the **+** sign and searching for **Packages**. Select the packages of your choice and select **Install**. Additional options for package guessing can be configured in the [.replit](/replit-app/configuration#replit-file) file. ### Python package managers When you create a Python Replit App, your package manager will be **poetry** by default. This means that you will not be able to use `pip install` to manage dependencies manually. Instead of running `pip install `, you can instead run `poetry add ` or `upm add `, which will do the same thing. `pip` is one of the earliest, and consequently most popular, package managers for Python. You can use `pip` as your Replit App's package manager instead of `poetry`. Follow the steps below: 1. In the Tools pane, select the **Shell** tab to add the common `requirements.txt` file using the following command: ```bash theme={null} touch requirements.txt ``` 2. Delete the `poetry.lock` file. 3. Move your dependencies from `[tool.poetry.dependencies]` to `requirements.txt`. Note that the `flask = "^3.0.2"` in `pyproject.toml`'s `[tool.poetry.dependencies]` section would become `flask>=3.0.2,<4` in `requirements.txt`. 4. Finally, delete the other `[tool.poetry...]` sections from `pyproject.toml`. After the above changes, the packaging infrastructure will use `pip` for all future operations. Now, as you add code to your `main.py` file, any time you select **Run**, [upm](https://github.com/replit/upm/) will determine whether there are any missing packages for your imports, find the latest versions of packages that provide those imports, and install them automatically. ## Advanced Configuration Replit supports all programming languages through integration with [Nix](https://nixos.org/). Nix is a tool for managing software packages and system configurations. The **System (Advanced)** tab provides quick access to Nix support for your Replit App. System (Advanced) tab for a project using Node.js and Python ### System Modules Modules combine support for programming languages, formatters, and packagers. These provide the foundation for your Replit App. If you create a Replit App from a template or GitHub repository, we will automatically install the modules that are required for the languages used. If you want to start with a blank Replit App, you will need to install a module under **System Modules** before you can use the **Imports** tab. You can also add more modules to support additional languages. You can further customize modules and other Nix settings using the [.replit](replit-app/configuration#replit-file) file. ### System Dependencies If you need more specific support for a language or other system-level dependencies, you can add [Nix packages](https://search.nixos.org/packages) under **System Dependencies**. These can also be managed in your [replit.nix](/replit-app/configuration#replit-nix-file) file. --- ### Extensions Source: [https://docs.replit.com/replit-workspace/extensions.md](https://docs.replit.com/replit-workspace/extensions.md) # Extensions > Extensions are applications you can develop to enhance the functionality and tools available within the Replit Workspace. Extensions ## What can Extensions do? ### Streamline workflows Extensions are deeply integrated with Replit, so users can automate actions like reading and editing files, formatting or linting code, and more. ### Add custom apps with tools Tool Extensions lets you interact with custom experiences and products in the Replit Workspace, similar to the apps you install on your phone or computer. ### Extend native functionality Extensions can extend and improve the existing functionalities within Replit, like formatting code and editor capabilities. ## Reasons to build an Extension ### Consolidate your tools Developing an Extension allows you to integrate your preferred tools into the Replit environment, serving your specific workflow preferences. ### Personalize your Workspace Extensions empower you to customize Replit to suit your needs, creating a sense of empowerment and productivity. ### Expand your software reach Companies can use Extensions to distribute their products directly to Replit's active Community, accessing a targeted audience within a relevant context. ## Extensions store The Extensions store allows you to view and install from various Workspace Extensions. Extensions store ## Access the store In your Replit App, you can access the Extensions store by navigating to the **Tools** section on the sidebar and selecting **Extensions**. ## Install an Extension In the Extensions store, choose an Extension and select **Activate Extension for your account**. Install Extensions Select **Accept and Activate** to start using the Extension. You'll find installed Extensions in the **Installed** tab alongside the **Store**. You can use the ellipses next to each Extension to manage them, allowing you to uninstall, unlist, un-bless, feature, or delete them from the store. --- ### Keyboard Shortcuts Source: [https://docs.replit.com/replit-workspace/keyboard-shortcuts.md](https://docs.replit.com/replit-workspace/keyboard-shortcuts.md) # Keyboard Shortcuts > Learn how to view, add, and modify keyboard shortcuts that can boost your productivity in Replit. Keyboard shortcuts let you run commands, modify text, and navigate the workspace using configurable key combinations. You can set and use keyboard shortcuts in the Replit.com web app and desktop app. ## Viewing keyboard shortcuts The Replit.com web app and desktop apps keep separate shortcut preferences. Changes in one environment don't affect the other. To view your keyboard shortcut settings, follow these steps: 1. Open a Replit App to navigate to the workspace. 2. Open the gear icon **User Settings** tab from all tools icon **All tools** in the dock. Alternatively, search for "User Settings" using the magnifying glass icon magnifying glass. 3. Select the **Keyboard shortcuts** tab to view the list of commands and their assigned shortcuts. ## Customizing keyboard shortcuts To add or modify a keyboard shortcut, follow these steps: 1. Select plus icon**Add shortcut**, located next to the unassigned command, or the pencil icon pencil icon for assigned commands. 2. When "Recording..." appears next to the command, press the key combination you want to assign. To cancel recording, click an empty area inside the tab. 3. To revert the shortcut, select the rollback icon rollback icon. ## Removing keyboard shortcuts To remove a keyboard shortcut, select the trash icon trash icon next to the command. ## Tab navigation You can use the browser **Tab** key navigation to navigate between the interactive elements on a page. However, the File Editor, Console, and Shell tools capture the **Tab** key as input for purposes including indentation. To continue cycling through page elements while in these tools, follow these steps: 1. Press **Esc** to release focus from the tools 2. Press **Tab** to move to the next element --- ### Ports Source: [https://docs.replit.com/replit-workspace/ports.md](https://docs.replit.com/replit-workspace/ports.md) # Ports > Learn how ports work in Replit's cloud environment, including port forwarding, configuration, and troubleshooting for your web applications. Because Replit runs your projects on a cloud environment, ports work differently on Replit than on your local computer. (If you need a more basic explanation of what TCP ports are, [start here](https://www.reddit.com/r/explainlikeimfive/comments/1t9s5a/eli5_what_are_ports_ex_tcp_port/).) On a computer, you only have one layer of port management: your programs define a port that they listen to, and when traffic hits that port on your computer from the internet, they get routed to the appropriate process. computer The `0.0.0.0` part is the address, or host. If a process is listening on `0.0.0.0`, that means it should listen on every network interface — which means that if another computer (on the internet) sends a request to your computer’s IP address, it will see it. So, listening on 0.0.0.0 means those processes are accessible to the public internet (if your computer is connected.) Most programming frameworks will *not* listen on `0.0.0.0` when you’re developing, because you don’t necessarily want your work exposed to the public while you’re working on it, for privacy & security. Instead, they’ll listen on a different address — `127.0.0.1`, otherwise known as `localhost`. This means only that computer can make requests to that port. Localhost ports are only visible on the computer that is hosting them. On Replit, for a process you’re running to be accessible in the webview or via an external request, it has to have an **external port** defined. This is because the “internal port” that processes typically use is only visible from inside the sandboxed cloud environment that Replit provides. We have to connect that internal port to an externally accessible port to send the right traffic to your programs. Even if your process listens on a port typically available to the public like 0.0.0.0, we still need to bind that port to an external port. External ports forward traffic to internal ports, which programs listen to. We do this by binding external ports to specific internal ports — for example, in the diagram above, the external port `:80` is bound to the internal port `:3000`. That means any traffic that Replit App gets on port 80 will go to the internal port 3000. This configuration is captured in the \[\[ports]] section of the .replit config file. By default, we will bind the first port you open to the default external port 80, which will allow that process to be available at the domain without a port address (e.g. customdomain.com/ instead of customdomain.com:3000/). Additional internal ports that are opened will be bound to other available external ports (see a full list below.) ## Preview In the Preview tool, you can change which external port the webview is rendering by clicking the domain and selecting a different port. You can also open the networking tool from the “gear” icon for more details. Clicking the domain in the webview will let you choose what port to view. ## Default port Port :80 is the “default port” for http traffic, so http traffic sent to the root domain will automatically be routed to port 80. We don’t show the port path in the url for port 80 for that reason. Ports other than :`80` will show up in the domain path (e.g. customdomain.com:4200/). (We provide TLS by default, so it will technically be over port 443, which is the default port for https. For all intents and purposes, you can treat them as interchangeable.) ## Networking tool For more details about port config and networking, you can open the networking tool. It shows the status of ports open in your Replit App, what external port they’re bound to, and lets you add or remove configuration. The networking tool shows your port configuration. ## Publishing Autoscale and Reserved VM deployments only support a single external port being exposed, and for the corresponding internal port not to be using `localhost`. If you expose more ports, or expose a single port on localhost, your published app will fail. An easy way to make sure your Autoscale deployments work as expected is to remove all the `externalPort` entries for the ports in your config *except* the port for the service you want to interact with from the internet. ## Debugging A common reason something might not be working as you’d expect is that while your port config looks right, your program is actually looking at a different port. For example, if your config is: ``` [[ports]] internalPort = 3000 externalPort = 80 ``` Then internet traffic to port 80 will go to internal port 3000. However, if your program is actually not listening on port 3000, but rather something else (like 8080), it will appear as if no traffic is getting through. This can happen if you switch the port in your code without switching the corresponding port in your config, or copy-paste config from one project to another. Programs can change the ports they listen to. Each framework has different default ports it listens to — for example, Flask is 5000, react is 3000, and laravel is 8000. Make sure the right port is configured! ## Preferences We will automatically bind ports that are opened in your Replit App to available external ports when they are opened, and record that binding in the .replit config file. However, we don’t do this by default for internal ports that open on localhost, because services that usually run on localhost typically assume that they will only be accessible on the same computer as the process that’s running (localhost ports are only visible to the same computer running the process.) This means those services are often not as secure as services built under the assumption that they’ll be available to the public internet. You can always override this by setting the `exposeLocalhost` config option to `true` for the port you want to expose. If you want to *always* expose localhost ports by default, you can set your “automatic port forwarding” setting in the User Settings tool to “All ports”. If you want to *never* create config for ports that are opened, and manually control the port config for all your Replit App, you can set that to “never”. ## Supported ports Replit App will define port 80 as the external port by default when the first port opens. A Replit App can expose 3000, 3001, 3002, 3003, 4200, 5000, 5173, 6000, 6800, 8000, 8008, 8080, 8081, as extra external ports. Ports 22 and 8283 are not forwardable, as they are used internally. ## `[[ports]]` .replit config Type: `{localPort, externalPort, exposeLocalhost}` The `[[ports]]` config Allows you to configure which HTTP port to expose for your web output. By default, any exposed HTTP port with host 0.0.0.0 will be exposed as your Replit App's web output. Extra ports can be served without overriding the default port by adding a new \[\[ports]] entry to your .replit file. You are required to specify both a localPort and externalPort entry. You can add multiple extra ports by adding multiple \[\[ports]] entries to your .replit file as defined below. ### localPort Determines which port Replit will bind to an external port. ### externalPort Determines which port should be exposed for that local port’s publicly accessible port. ```toml theme={null} [[ports]] localPort = 3000 externalPort = 80 ``` If you want to *never* expose a particular port, you can leave the `localPort` config but just not add an `externalPort`: ```toml theme={null} [[ports]] localPort = 3000 ``` ### exposeLocalhost Determines whether an internal port using `localhost` can be bound to an external port. Can be `true`, `false`, or null. ```toml theme={null} [[ports]] localPort = 3000 externalPort = 80 exposeLocalhost = true ``` --- ### Replit Auth Source: [https://docs.replit.com/replit-workspace/replit-auth.md](https://docs.replit.com/replit-workspace/replit-auth.md) # Replit Auth > Add user accounts, personalized experiences, and secure access control to your app. Enterprise-grade authentication that works with a single Agent prompt. Replit Auth lets you create personalized user experiences in your app. With user accounts, you can save user preferences, create custom dashboards, build social features, control access to premium content, and track user activity—all the features that make apps engaging and valuable. Instead of spending months building authentication from scratch, Replit Auth gives you enterprise-grade capabilities with a single Agent prompt. Powered by the same infrastructure as Fortune 500 companies—Firebase, Google Cloud Identity Platform, reCAPTCHA, Stytch, and Clearout—you get professional-level security, fraud prevention, and global scale built in. Auth configuration ## Why use Replit Auth Authentication is a challenging problem that entire companies dedicate themselves to solving. Your app's primary purpose likely isn't authentication - it's whatever unique idea or solution you're building. Replit Auth offers: * **Zero setup** - Add authentication with a single prompt in Agent * **Built-in security** - Uses Replit's infrastructure with protections against common attacks * **User management** - Simplified user administration through the Auth pane * **Database integration** - Automatic user entries in your database * **Customizable login page** - Personalize the login experience for your app * **Password reset** - Replit sends password reset emails for you, so you don't need to set up your own email delivery provider * **Development and Published Apps** - Replit Auth works seamlessly across development (replit.dev), and published apps (replit.app, and custom domains) ## Enterprise-grade infrastructure Replit Auth is more than simple user management—it's a fully managed authentication solution built on enterprise-grade infrastructure. This powerful combination gives your app the same authentication capabilities used by Fortune 500 companies: * **Firebase & Google Cloud Identity Platform** - Enterprise-tier SLA with Google's battle-tested authentication infrastructure * **Advanced security scanning** - Automatic protection against bots and malicious actors with reCAPTCHA integration * **Fraud prevention** - Email verification and validation powered by Clearout to prevent fake accounts * **Multi-factor authentication** - Secure login options backed by Stytch's enterprise authentication platform * **Global scale** - Built to handle millions of users with automatic scaling and reliability This enterprise foundation means you can focus on building your app's unique features while knowing your authentication is powered by the same infrastructure that secures billion-dollar companies. Instead of spending months integrating multiple services, you get all these capabilities with a single Agent prompt. ## Getting started with Replit Auth The only way to implement Replit Auth is by using Agent. Simply include a request for Replit Auth in your prompt: ``` Help me create an app that [your app idea] and should feature Replit Auth. ``` Agent will set up all the necessary code and configurations for authentication. Manual implementation is not supported, as Agent handles all the complexity for you. ; }; It is a reusable, customizable sequence of steps that can be executed within your replit app. They can be as simple as running `python main.py` or as complex as executing a multi-step procedure. image Example Use Cases: * Run multiple services in parallel (e.g., frontend + backend) * Execute files or commands sequentially (e.g., run linter → run tests, compile → execute code) To start [creating workflows](#creating-workflows), go to the Workflows pane by using the tools sidebar menu, or search for the Workflows pane using `Command + K`. ## Available Task Types There are current 3 type of tasks available, `Execute Shell Command`, `Install Packages`, and `Run Workflow`. ### Execute Shell Command `Execute Shell Command` stores a shell command and executes it using the same environment as the Shell pane. This task type offers a wide range of use-cases, from running individual files: ```text theme={null} python main.py ``` to executing complex stored database query commands: ```text theme={null} psql -h 0.0.0.0 -U your_username -d your_database -c "SELECT * FROM your_table;" ``` Example use case: image ### Install Packages `Install Packages` utilizes Replit's built-in dependency management system, automatically detecting your project dependencies and installing the necessary packages for your project. See [Dependency Management](../replit-workspace/dependency-management.md#the-universal-package-manager) for more details on how UPM guesses packages to install for your project under the hood. Example use case: image ### Run Workflow `Run Workflow` allows you to run another workflow from the current workflow. This allows for reusing workflows and combining them to create more complex workflows. Example use case: image By using this task type for creating dependencies between workflows, you can edit one workflow and have other workflows referencing it automatically use the latest changes. Note that there is a depth limit placed on deeply nested workflow calls. ## Workflow Execution Mode Workflows offer two different modes of execution: sequential and parallel. ### Sequential Sequential execution will run each task in the defined order, waiting for each task to finish before moving on to the next step, and stopping execution of the sequence if a task within the workflow failed. An example of using this mode is for defining commands that are logically connected, such as git commands for fetching the latest changes from your main branch, then rebasing your current branch on the main branch: image ### Parallel Parallel execution will run each task in parallel, such that each task is started and runs independently of other tasks within the workflow. One task failing does not stop the execution of other tasks. An example of using this mode is running a fullstack project that needs to start both the frontend and the backend server: image ## Creating Workflows Workflows can be created using the workflows pane by clicking on the `+ New Workflow` button. Start by giving your workflow a descriptive name, chose a suitable mode of execution, and start adding tasks. Tasks can be re-ordered by dragging and dropping them into the desired order. image ## Assign Workflow to Run Button A workflow can also be assigned to the run button to replace the default run button behavior (see [Configure a Replit App](/replit-app/configuration)). To keep the default run command configured within `.replit`, select the default "Run Replit App" option within the dropdown. The selected workflow within the dropdown menu next to the run button will be run when the run button is clicked. Click on your desired workflow within the dropdown menu to change which workflow should be run by the run button. image ## Viewing Workflow Outputs Workflow outputs will be displayed in the `Console` pane. You can toggle the display to only display latest outputs and clear the console altogether. image --- ### Console Source: [https://docs.replit.com/replit-workspace/workspace-features/console.md](https://docs.replit.com/replit-workspace/workspace-features/console.md) # Console > Console shows the output of running your Replit App code, informing you of activity and errors. Console lets you monitor and review logs printed by your running Replit App in real time. You can use information from current and past runs to understand your app's behavior, troubleshoot errors, and optimize performance. When debugging using Agent, include console logs in your prompt to provide context. screenshot of the Console workspace tool ## Features Console provides the following tools to help you understand your app's behavior: * **Real time logging**: View your app's output as it happens * **AI assistance**: Receive suggestions to fix errors reported in the logs * **Run history**: Show logs from prior runs to track changes ## Usage You can access the Console tool directly in your Replit App workspace. From the left **Tool dock**: 1. Select All tools icon **All tools** to see a list of workspace tools. 2. Select Console icon **Console**. From the **Search bar**: 1. Select the magnifying glass icon magnifying glass at the top to open the search tool 2. Type "Console" to locate the tool and select it from the results. Each time you use the **Run** button in your Replit App, Console displays a new entry that includes the following information: * The Command that executed your code * Timestamp information * Standard output and error logs The following screenshot shows the `npm run dev` command used to start the app and log messages from the run: Console log entry showing the command run Client-side logs, such as those generated from HTML, CSS, and JS code, appear only in the Developer tools in the [Preview](/replit-workspace/workspace-features/preview) tool. ### AI-powered debugging When you encounter errors or other information in the logs that you want to understand, select the **Ask Assistant** button at the top of the entry. This automatically opens the **Assistant** tab and submits the log content to Assistant for analysis. ### Log entry commands Console provides the following tools to manage your logs: * **Show Only Latest**: Toggle this control to the **on** position to display only the most recent run. * **Collapse entry**: Select the downward arrow icon downward arrow to the left of the command name to hide the logs. * **Clear past runs**: Select this to delete logs of prior runs. This action is irreversible. ### Network availability You can control the development version of your app's availability online. To stop serving requests to the development URL, select the network off icon globe with slash icon on the right side of the network information line. To enable it, select the network on icon globe icon. To view your development URL, select the `{...}.replit.dev` text in the location bar. Preview development URL location Your app remains accessible in the Preview tool even when set to stop serving requests to the development URL. ### Stop a workflow command You can stop a running workflow command from the Console workspace tool. Select the square button on the right side of the line that contains your Replit App run command to terminate it. To restart your app, use the workflow **Run** button at the top of your workspace. ## Next steps To learn more about related Workspace tools see the following resources: * [Preview](/replit-workspace/workspace-features/preview/): Explore the Preview tool for testing your application and viewing console output * [Assistant](/replitai/assistant/): Learn about Assistant for code help and error resolution * [Shell](/replit-workspace/workspace-features/shell/): Learn how to use the command-line interface in your workspace. --- ### File History Source: [https://docs.replit.com/replit-workspace/workspace-features/file-history.md](https://docs.replit.com/replit-workspace/workspace-features/file-history.md) # File History > To make sure you never lose any of your work, Replit auto-saves your code as you write. If you ever lose an edit to your code that you'd like to recover, rewind back in time with File History. Get started by opening a text file in the Workspace and pressing the **History** button in the bottom-right corner. opening history ## Viewing previous versions of a file Once you've opened up File History, you can view previous versions of a file by using the scroll bar, the arrow buttons, or the **left** and **right** arrow keys. scroll bar demo ## Comparing previous versions to the current file Press the Compare Latest toggle in the bottom left hand of the File History pane to see in-line comparisons of your file at that point in time and the latest version. compare latest image ## Restoring a previous version of a file If you want to restore a file to a previous version, just press the `Restore` button, which will restore. Don't worry, you won't erase any history. When you restore to a previous version, it is added as a new version to the file's history. restore history image ## Viewing File History playback You can use the playback feature of File History to watch your file change over time like a movie. This can be useful for creating videos of your programming sessions. replay history video --- ### Using the Git pane Source: [https://docs.replit.com/replit-workspace/workspace-features/git-interface.md](https://docs.replit.com/replit-workspace/workspace-features/git-interface.md) # Using the Git pane > The Git pane streamlines version control directly in your workspace, making code tracking, branch management, and collaboration seamless. The Git pane in Replit provides a visual interface for Git operations, eliminating the need to use command-line Git commands. This feature makes version control accessible for beginners while remaining powerful for experienced developers. ## Features The Git pane offers comprehensive version control capabilities directly in your workspace, with a user-friendly interface that simplifies complex Git operations. * **Repository management**: Initialize, connect, and manage Git repositories with GitHub integration * **Commit tracking**: Stage, commit, and view changes across all your files * **Branch operations**: Create, switch between, and merge branches visually * **Conflict resolution**: Identify and resolve merge conflicts with visual assistance * **Shell integration**: Synchronization between Git commands run in Shell and the Git pane ## Usage ### Repository setup 1. Navigate to the Tools section in your Replit App 2. Select the **+** sign to add new tools 3. Select **Git** from the list of available tools The Git pane helps you set up and connect your repository: * **Initialize repository**: Create a new Git repository for your Replit App * **Connect to GitHub**: Link your repository to GitHub for backup and collaboration * **Configure remote**: Set up and manage the connection to your GitHub repository Git pane showing the initialize repository button ### Change management 1. Make changes to any files in your Replit App 2. Open the Git pane from the Tools section 3. Review changes in the **Review Changes** section The Git pane provides tools to manage your code changes: * **Review changes**: See modified files with additions and deletions highlighted * **Stage files**: Select specific files to include in your next commit * **Commit changes**: Save your changes with descriptive messages * **Push updates**: Send your commits to GitHub with a single click Git pane showing commit message field and stage options You can use Replit AI to help generate commit messages that accurately describe your changes. ### Branch management 1. Open the Git pane from the Tools section 2. Select the branch dropdown next to the branch name 3. Create a new branch or select an existing one The Git pane simplifies working with multiple versions of your code: * **Create branches**: Make new branches to develop features separately * **Switch branches**: Move between different versions of your code * **Publish branches**: Share your branches to GitHub * **Pull changes**: Sync with remote updates from collaborators Git pane showing branch creation interface ### Merge conflict resolution 1. Attempt to pull changes when conflicts exist 2. The Git pane will highlight conflicting files 3. Open each conflicted file to see and resolve the conflicts 4. Save the files after resolving conflicts 5. Complete the merge by selecting **Pull** When code from different sources conflicts, the Git pane helps you: * **Identify conflicts**: See exactly which files contain conflicts * **Visualize differences**: Review both versions of the conflicting code * **Resolve issues**: Choose which code to keep or manually edit conflicts * **Finalize merges**: Complete the merge process after resolving conflicts Code editor showing merge conflict markers After resolving a conflicted file, you can remove the conflict markers by removing the lines starting with conflict symbols and save the file. ### Using Git commands in Shell 1. Select **All tools** from the left Tool dock 2. Select **Shell** from the available tools While the Git pane provides a user-friendly interface, power users can use standard Git commands in the Shell for more complex operations. Changes made through either method will be reflected in both places. If you prefer using Git through the command line: * **Command synchronization**: Any Git commands executed in the Shell will automatically sync with the Git pane * **Full Git functionality**: Access advanced Git features not available in the Git pane * **Seamless switching**: Switch between using Shell commands and Git pane as needed **GitHub and GitLab CLI Support**: In addition to standard Git commands, you can also use the [GitHub CLI (`gh`)](https://docs.github.com/en/github-cli) and [GitLab CLI (`glab`)](https://docs.gitlab.com/ee/editor_extensions/gitlab_cli/) in the Shell to manage and connect to external Git repositories. These tools provide enhanced functionality for working with GitHub and GitLab repositories, including pull requests, issues, and other platform-specific features. #### Repository operations * **Clone repository**: `git clone ` * **Initialize repository**: `git init` * **Add remote**: `git remote add origin ` #### Making changes * **Check status**: `git status` (shows modified, added, and deleted files) * **Stage files**: `git add ` or `git add .` (for all files) * **Commit changes**: `git commit -m "your commit message"` * **Push changes**: `git push origin ` * **Pull changes**: `git pull origin ` #### Authentication When working with private repositories, you'll need to authenticate: * For GitHub repositories, use a personal access token instead of your password * To avoid re-entering credentials, you can store them using Replit Secrets: 1. Create a new secret with key `GIT_URL` 2. Set the value to `https://:@github.com//` 3. Use `git push $GIT_URL` to push without typing credentials When using credential secrets, anyone with access to your Replit App can potentially access your Git credentials. For sensitive repositories, consider manually entering credentials each time. --- ### Multiplayer Source: [https://docs.replit.com/replit-workspace/workspace-features/multiplayer.md](https://docs.replit.com/replit-workspace/workspace-features/multiplayer.md) # Multiplayer > Multiplayer lets you collaborate in real time with other users on your Replit App. Multiplayer transforms your Replit workspace into a collaborative environment where up to four users can create and update apps together in real time. This shared experience provides collaborators the same workspace tools and environment to create a seamless team development experience. Multiplayer overview ## Features Multiplayer includes the following features: * **Real-time collaboration**: Work on the same Replit App and instantly view changes and workspace runs * **Shared workspace**: Experience full workspace sharing including Shell and Console output in real time * **Observation mode**: See collaborators' code changes and file navigation as they happen ## Usage To start collaborating, open your Replit App and invite collaborators. The following sections show how to access and use the Multiplayer tool's features. ### Invite collaborators To invite users by email address or Replit username: 1. Select person with plus icon **Invite** to open the Multiplayers popup dialog 2. Enter a username or email in the text field and select **Invite** to send an email invitation To invite users using the private link: 1. Select person with plus icon **Invite** to open the Multiplayers popup dialog 2. Toggle the Private join link option to the **on** position 3. Select **Copy join link** to copy the URL to your clipboard 4. Send the link to your collaborators Multiplayers popup dialog When you invite collaborators: * Replit sends a notification email with a join link when you invite someone by their email address or username * Collaborators can follow the link to open the Replit App in the shared workspace * You see a list of collaborators in the Multiplayers popup menu * The workspace displays online collaborators as icons to the left of the **Invite** button ### Remove collaborators 1. Select person with plus icon **Invite** to open the Multiplayers popup dialog 2. Select the **X** next to the collaborator's username When you remove a collaborator, they instantly lose access to the Replit App workspace. When you enable **Private join link**, removing collaborators does not prevent them from rejoining using the private join link. To prevent collaborators from joining using this link, change it by selecting **Generate a new link**. ### Toggle observation mode To **turn on** observation mode, select the collaborator's profile icon. To **exit** observation mode, select any area in the workspace. As a collaborator, you can view the following without enabling observation mode: * Text input location and real-time edits in the file editor * Shell input and output when viewing the same shell instance * Console output * Whether the workflow is running or stopped * Any online collaborators, indicated by a profile icon next to the person with plus icon **Invite** button. When you enter observation mode: * File editor automatically switches to the file that contains the active user cursor * View which collaborators are observing you in the status bar ## Next steps To learn more about collaboration, see the following resources: * [Teams](/category/teams): Learn about the enterprise solution for creating and publishing apps with your organization * [Secrets](/replit-workspace/workspace-features/secrets): Understand the visibility of your sensitive data in shared apps --- ### Preview Source: [https://docs.replit.com/replit-workspace/workspace-features/preview.md](https://docs.replit.com/replit-workspace/workspace-features/preview.md) # Preview > The Preview workspace tool lets you instantly view and interact with your web app. Preview shows your web app output and offers browser developer tools and debugging capabilities. When you launch your web app using the **Run** button, Replit assigns it a temporary URL that's reachable on the internet. The Preview tool renders the page just as you would see in a browser. It also includes developer tools with functionality similar to what you find in popular browsers. Preview is the new name for Webview. screenshot of the Preview tool ## Features Preview includes the following functionality to let you seamlessly test and debug your web apps: * **Live web view**: See your app and interact with it without leaving your browser tab * **Developer tools**: Use built-in tools to diagnose problems quickly * **Responsive testing**: View your app in different mobile device screen sizes ## Usage The Preview tool automatically opens when you run a web app. You can toggle this behavior in the **User Settings** tool under the **Automatic Preview** setting. The following instructions explain how to open Preview. From the left **Tool dock**: 1. Select All tools icon **All tools** to see a list of workspace tools. 2. Select Preview icon **Preview**. From the **Search bar**: 1. Select the magnifying glass icon magnifying glass at the top to open the search tool 2. Type "Preview" to locate the tool and select it from the results. ## Location bar The location bar at the top of the **Preview** tab includes the following tools: * **Back button**: Navigate to the previous page in the browsing history * **Forward button**: Navigate to the next page in the browsing history * **App domain**: View information about your Replit App's temporary URL by selecting `{...}.replit.dev` * **Address field**: View the current URL path or enter a new path ## Browser tools The browser tools on the right side of the location bar include the following functions: * **Screen size**: Select from different device screen size presets to test responsive designs * **Devtools**: Toggle the [developer tools](#Developer_tools) pane * **New tab**: Open your web app URL in a new browser tab ## Developer tools Developer tools, powered by the Eruda open source project, help you perform the following tasks: * View and interact with the JavaScript console in the context of your app * Inspect DOM elements * Monitor network requests * Configure display and behavior preferences To access the developer tools, select the wrench icon **Devtools** button at the top of the **Preview** tab to toggle them. The following sections describe the actions you can perform in each developer tools tab. ### Console The **Console** tab displays JavaScript logs generated by your application. In this tab, you can perform the following actions: * **Clear output**: Remove all console output by selecting the clear icon circle with slash icon. * **Filter output**: View console output filtered by type (All, Info, Warning, or Error). * **Filter matching text**: Show output that matches by selecting the filter icon filter icon and entering the text. * **Copy output**: Copy selected console messages by selecting the copy icon copy button. * **Run JavaScript code**: Run JavaScript code in your app's context by selecting the right arrow icon right angle brace. Enter the expression and select **Execute**. ### Elements The **Elements** tab lets you inspect and modify the DOM structure of the web page. * **View element details**: View details about the DOM element and the location in the HTML code * **Copy output**: Copy selected console messages by selecting the copy icon copy button. Use the select icon arrow selection to toggle selection mode. After entering selection mode, select an element on the web page. The HTML and CSS for that element should appear in the Elements tab. ### Network The **Network** tab monitors requests initiated by the web page. In this tab, you can perform the following actions: * **Track requests**: View all network requests initiated by your app. Select a request to view details. * **Filter**: View matching results by selecting the filter icon funnel icon to show results that match your text. Enter an empty filter to clear it. * **Copy**: Copy storage information by selecting the copy icon copy button. ### Resources The **Resources** tab shows assets loaded by the page and browser storage, such as cookies and local storage. You can view and refresh lists for the following asset types: * JavaScript files * Stylesheets * Iframes * Images In this tab, you can perform the following actions: * **View storage**: Review local storage, session storage, and cookies. * **Filter**: View matching results by selecting the filter icon funnel icon to show results that match your text. Enter an empty filter to clear it. * **Clear**: Delete all data for that storage type by selecting the clear icon clear button. * **Delete selected**: Remove storage items by selecting the delete icon "X" icon. * **Copy**: Copy storage information by selecting the copy icon copy button. ### Settings The **Settings** tab allows you to customize the developer tools' appearance and behavior. This tab includes customization options for the following: * **Tool settings**: Customize options that apply to each tool tab * **JavaScript controls**: Specify JavaScript behavior options, such as turning it off to test how your app behaves * **Display preferences**: Change the theme, panel size, transparency, and other behavior of the developer tools --- ### Secrets Source: [https://docs.replit.com/replit-workspace/workspace-features/secrets.md](https://docs.replit.com/replit-workspace/workspace-features/secrets.md) # Secrets > The Secrets workspace tool lets you securely store sensitive information your app needs as encrypted environment variables. The Secrets tool stores and encrypts **secrets**, your Replit App's sensitive information, such as API keys, authentication tokens, and database connection strings. When you add a secret, the tool automatically encrypts the data and makes it available to your Replit App as an environment variable. This approach lets you eliminate hard-coding secrets in your code and reduce the risk of exposing them. ; }; Replit AI transforms how you build software with Agent, our AI-powered development assistant. Agent allows you to build entire applications in minutes, without knowing how to code. **New with Agent 3** - Extended autonomous builds with minimal supervision, App Testing for self-validation, two ways to start an app (design-first vs. full app first), and Agents & Automations for building your own autonomous systems. ## What you can build With Agent, you can: * **Transform ideas into apps:** Describe your vision in plain language and watch Agent build a complete application * **Accelerate development:** Get instant code explanations, intelligent autocomplete, and contextual help * **Debug efficiently:** Identify and fix issues with AI-powered analysis and suggestions * **Learn as you build:** Receive detailed explanations and best practice recommendations Learn more about Agent in the following video: ## Getting started The fastest way to experience Replit AI is to create your first app with Agent: 1. **Start with Agent**: Follow the [Create with AI](/getting-started/quickstarts/ask-ai/) quickstart to build an app from scratch 2. **Choose how to start**: Try "Design & Iterate" for rapid prototyping or "Build Full App" to get a functional MVP on the first run 3. **Experience Agent 3's autonomy**: Customize Agent's **[Autonomy Level](/replitai/autonomy-level)** while it tests itself with **App Testing** 4. **Set up billing**: Configure [usage alerts and budgets](/billing/managing-spend) to control your AI spending Agent and Advanced Assistant are premium features that charge your Replit account based on usage. For pricing information and billing policies, see [Replit AI Billing](/billing/ai-billing/). ### Accessing Agent You can access Agent from any Replit App: * **Tools dock**: Find Agent in the left sidebar of your Workspace * **Create new app**: Start with Agent directly from the "Create a new App" screen Agent is now available on all projects. Use [General Agent](/replitai/general-agent) to work with any framework or project type, including existing apps and Developer Framework templates. ### Key capabilities Agent offers powerful features that revolutionize your development workflow: **Complete app generation** * Natural language descriptions become functional applications * Intelligent architecture decisions and best practices * Automatic environment setup and dependency management * Seamless integration of databases, file storage, and third-party services **Interactive development** * Chat-based interface for complex requests * File attachments and web content integration * Rollback capabilities for safe experimentation * Real-time progress tracking and feedback **Autonomous development (New in Agent 3)** * **App Testing**: Automated computer use testing for the Agent to spin up a browser and test its own work, just like a real user * **Autonomy Level**: Customize how independently Agent works and reviews code, from hands-on control to extended autonomous development * **Agents & Automations**: for building your own autonomous systems ## Use cases ### Build a complete app with Agent Describe your app idea in natural language and let Agent handle the implementation: Agent creating an app from a text description ### Add complex integrations Integrate payment processing, APIs, or advanced features using natural language: ## Pricing and billing Agent uses transparent, effort-based pricing designed to provide value at every level: **Agent**: Effort-based pricing that charges based on the complexity and scope of your requests * Simple changes cost less than complex builds * One meaningful checkpoint per request * Extended autonomous builds with less supervision and self-testing capabilities * Advanced capabilities like Dynamic Intelligence (Extended Thinking and High Power) * Agent 3 features: App Testing, build modes, and Agents & Automations Learn more about [AI billing](/billing/ai-billing) and how to [manage your spend](/billing/managing-spend). ## Next steps Ready to start building with Agent? Choose your path: Experience Agent 3's autonomous development with extended builds and less supervision Understand costs and set up billing controls Build your first autonomous AI-powered app in minutes Explore advanced Agent capabilities and features --- ### Replit Agent Source: [https://docs.replit.com/replitai/agent.md](https://docs.replit.com/replitai/agent.md) # Replit Agent > Replit Agent uses AI to set up and create apps from scratch. Describe your app in everyday language, and it can set up and create your Replit App in minutes. export const YouTubeEmbed = ({videoId, title = "YouTube video", startAt}) => { if (!videoId) { return null; } let url = "https://www.youtube.com/embed/" + videoId; if (startAt) { url = url + "?start=" + startAt; } return ; }; export const TeamsCredits = '$40'; export const CoreCredits = '$25'; export const AssistantCheckpointCost = '$0.05'; Agent uses powerful AI technology to transform your ideas into applications and seamlessly add new features by describing what you want. **New with Agent 3** - Extended autonomous builds with minimal supervision, App Testing for self-validation, two ways to start an app (design-first vs. full app first), and Agents & Automations for building your own autonomous systems. ## Features Agent uses powerful AI technology to create your apps, leveraging industry-leading models to deliver the best results. Chat with Agent in your Replit App to receive the following support: * Create full-stack apps from scratch * Add advanced features and integrate complex APIs * Design, create, and modify database structures * Streamline environment setup and dependency management ## Build Modes **New in Agent 3**: Choose between two distinct build approaches to match your development style and project needs. When you submit your initial prompt to create an app, Agent creates a feature list based on your request. You'll then see the question "How do you want to continue?" with two build options: Agent build mode selection interface showing 'Build the full app' and 'Start with a design' options You can also choose to "continue planning" if you want to refine the feature list before building begins. ### Start with a design Perfect for seeing visual results first: * **Quick design phase**: Agent creates a clickable front-end prototype in \~3 minutes * **Visual-first approach**: See how your app will look and feel before building functionality * **Flexible continuation**: Press "Build functionality" to have Agent complete a full working version of your app * **User-controlled pacing**: You decide when to move from visual prototyping to a finished application After the design phase, you'll see options to continue: Interface showing 'Keep iterating on design' and 'Build functionality' options after design phase ### Build the full app Ideal for comprehensive application development: * **Complete functionality**: Agent builds out the full functionality of your app from the start * **Initial build**: Agent creates an initial working application in \~10 minutes * **Comprehensive scope**: Full-stack development with frontend, backend, and integrations After the initial build phase, you can: * **Review the full task list**: See exactly what Agent plans to build next * **Accept or modify**: Approve the plan or request changes before full implementation * **Complete the build** (New in Agent 3): Let Agent finish the comprehensive development (can run for up to 200 minutes) After creating an MVP, you'll see options to continue building: Interface showing 'Dismiss' and 'Continue building' options after MVP creation ## Autonomous Features (New in Agent 3) Agent 3 introduces powerful autonomous capabilities that enable extended, self-supervised development with minimal human intervention. ### App Testing **Automated browser testing** - Agent tests itself using an actual browser, navigating through your application like a real user would. **Key capabilities:** * **Real user simulation**: Agent clicks through your app, testing functionality and user workflows * **Automatic issue detection**: Identifies problems and fixes them during development * **Visual feedback**: Provides video replays of testing sessions for review * **Intelligent timing**: Agent decides when testing would be most valuable **Usage**: Toggle "App testing" in the Agent Tools panel. When enabled, Agent intelligently decides when testing adds the most value. Agent Tools interface showing App testing toggle enabled with description Learn more about [App Testing](/replitai/app-testing) capabilities and troubleshooting. ### Max Autonomy (Beta) **Extended autonomous development** - Agent works for much longer periods with minimal supervision. Learn more about [Autonomy Level settings](/replitai/autonomy-level) and how to choose the right level for your project. **Key benefits:** * **Extended work sessions**: Agent can work much longer without requiring input * **Longer-tasklist handling**: Creates much longer task lists to complete more functionality * **Reduced supervision**: Agent will supervise itself, so you don't have to (runs up to 200 minutes) **Usage**: Turn on "Max autonomy" in the Agent Tools panel under the Autonomy Level based on your comfort level with autonomous development. This feature is currently in Beta. Agent Tools interface showing Max autonomy toggle enabled with Beta label ### Agents & Automations **Beyond traditional apps** - Build intelligent agents, chatbots, and automated workflows that interact with external services. Agents & Automations is currently in beta. Your automation must be deployed to function with external triggers like Slack or Telegram. **Supported use cases:** * **Slack Agents**: Intelligent Slackbots for research, Q\&A, and task automation * **Telegram Bots**: Customer service, scheduling, and entertainment bots * **Timed Automations**: Scheduled workflows for reports, summaries, and monitoring **Getting started**: Select "Agents & Automations" from the Replit homepage app type selector to begin building automated systems. Replit homepage showing Agents & Automations selection with Beta label and prompt input area Learn more about [Agents & Automations](/replitai/agents-and-automations) use cases and setup. ## Usage You can access Agent in your Replit App workspace by selecting the Agent tool. From the **Create a new App** screen, select the **Replit Agent** tab to enter a description of the app you want as shown in the following animation: animation showing Agent in the Create a new App screen If viewing a Replit App started by Agent, you can locate the Agent tool in your workspace in one of the following locations: From the left tool dock, select Agent icon **Agent** as shown in the following animation: animation showing Agent selection from the dock From the **Search bar**: 1. Select the magnifying glass icon magnifying glass at the top to open the search tool 2. Type "Agent" to locate the Agent tool and select it from the results From the Agent tool, you can perform the following actions: * **Chat**: Describe your app or feature in the text area and respond to Agent's follow-up questions * **Add detailed requests**: Upload files or import content from URLs to give Agent more information * **Manage conversations**: Select **New chat** or select previous conversations from the menu icon menu icon to start or resume a conversation * **Track usage**: Select the usage icon usage icon at the top right to view your billing page * **Reverse changes**: Undo changes made by Agent by selecting rollback icon **Rollback to here** ### Chat prompts Agent chat interface with Make, test, iterate header and build options To communicate your request to Agent, enter a **prompt** in the text area. A prompt is a natural language instruction that describes the task you want Agent to perform. In addition to text, you can include the following data in your prompt: * **File attachments**: Drag a file into the text area or select the Paperclip icon paperclip icon * **Web content**: Include text data from a webpage by entering a URL and selecting **Copy page content** * **Webpage screenshots**: Include a screenshot of a webpage by entering a URL and selecting **Take screenshot** Agent operates in three distinct modes to support different types of work: * **Build mode** (default): Agent writes code, modifies files, and implements features directly in your project * **Plan mode**: Brainstorm ideas, plan development work, and collaborate on project architecture without modifying code. Learn more about [Plan mode](/replitai/plan-mode) * **Edit mode**: Make targeted changes to specific files or code sections with precise control **All Agent interactions are billable** - whether Agent responds with text guidance or makes code changes, there is always a charge, though smaller requests cost less. ### Checkpoints Agent checkpoint with interactive map and rollback options A **checkpoint** is a comprehensive snapshot of your Replit App that captures completed work from Agent, including workspace contents, AI conversation context, and connected databases. Agent creates checkpoints when it finishes implementing your request, ensuring you only pay for completed functionality. #### How checkpoints work with effort-based pricing Agent's new effort-based pricing creates checkpoints that reflect the actual work performed: * **One checkpoint per request**: Agent bundles all work for your request into a single, meaningful checkpoint * **Variable pricing**: Simple changes cost less, while complex builds cost more based on the effort required * **Transparent costs**: Each checkpoint shows exactly what you're paying for that completed work * **No intermediate billing**: You're not charged for Agent's thinking or planning process Each checkpoint lets you perform the following actions: * **Rollback**: Undo changes made by Agent and return to the state of the previous checkpoint, including workspace contents and AI memory; connected databases can also be restored when selected * **Track usage**: Hover over the usage icon usage icon in a checkpoint to view the amount billed for that checkpoint For comprehensive details about what checkpoints capture and how rollbacks work across your entire development environment, see [Checkpoints and Rollbacks](/replitai/checkpoints-and-rollbacks). Agent uses effort-based pricing where you pay based on the complexity and scope of your request. Simple changes typically cost less than complex builds. Initial planning and proposal stages are free - you only pay when Agent implements approved changes. Learn more about [Agent billing](/billing/ai-billing#agent-billing). ### Advanced capabilities For complex projects, you can enable additional Agent capabilities through toggles in the chat toolbar: **Extended Thinking**: Instructs Agent to analyze your request more thoroughly, considering multiple approaches and edge cases. Best for architectural decisions or when you need comprehensive solutions. **High Power mode**: Uses more sophisticated AI models for advanced problem-solving. Ideal for complex integrations, performance optimizations, or unfamiliar technologies. Learn more about when and how to use these advanced features in the [Dynamic Intelligence documentation](/replitai/dynamic-intelligence). ### Progress tab The **Progress** tab shows a record of Agent's actions in real-time. Access it through the Tools dock or search bar to monitor Agent's progress and navigate directly to relevant files. **Key features:** * **Real-time updates**: Monitor Agent's progress with live activity feed * **Chronological history**: Review Agent's activities to understand changes and troubleshoot issues * **File navigation**: Click links to jump directly to files Agent is working on ## Getting the most from Agent ### Best practices for prompts * **Be specific**: Describe exactly what you want your app to do * **Provide context**: Include relevant files, URLs, or examples * **Start simple**: Begin with basic functionality and add complexity gradually * **Use examples**: Show Agent similar apps or features you want to emulate * **Choose your mode thoughtfully**: Consider your timeline, certainty about requirements, and development style ### Managing costs effectively * **Start with free planning**: Review Agent's implementation plan before approving work * **Use simple requests**: Break complex projects into smaller, focused tasks * **Set spending limits**: Configure [usage alerts and budgets](/billing/managing-spend) to control costs * **Monitor usage**: Track checkpoint costs to understand pricing patterns ## Next steps Ready to start building with Agent? Here's how to begin: 1. **Create your first app**: Use the [Create with AI quickstart](/getting-started/quickstarts/ask-ai/) 2. **Choose your build mode**: Start with a design for visual-first development or build the full app for comprehensive functionality 3. **Learn effective prompting**: Follow our [vibe coding guide](/tutorials/how-to-vibe-code) 4. **Set up billing controls**: Configure [spending management](/billing/managing-spend) 5. **Explore Agent 3 features**: Try [App Testing](/replitai/app-testing) for self-validation, [Autonomy Level](/replitai/autonomy-level) for customized workflows, and [Agents & Automations](/replitai/agents-and-automations) for building intelligent systems Learn more about [Agent pricing](/billing/ai-billing#agent-billing) or explore other [Replit AI tools](/category/replit-ai). --- ### Agents & Automations Source: [https://docs.replit.com/replitai/agents-and-automations.md](https://docs.replit.com/replitai/agents-and-automations.md) # Agents & Automations > Build intelligent agents, chatbots, and automated workflows using Replit Agent. Create Slackbots, Telegram bots, scheduled automations, and more. export const AiPrompt = ({children}) => { return
{children}
; }; Replit homepage showing Agents & Automations selection with Beta label and prompt input area **Beta Feature**: Agents & Automations is currently in beta. Features and functionality may change. Some limitations apply, and not all use cases are fully supported yet. ## Features ### Supported use cases **Currently available:** * **Slack Agent** - Create intelligent Slackbots that can answer questions, integrate with APIs, and automate tasks * **Telegram Agent** - Build Telegram bots for customer service, scheduling, entertainment, and more * **Timed Automation** - Set up scheduled workflows that run automatically at specified times **Coming soon:** * **Custom webhook triggers**: Respond to any external event or API call using a webhook URL * **Additional pre-built triggers**: Discord, WhatsApp, and more ### Additional functionality * **Rich integrations**: Connect with Outlook, Spotify, Notion, Linear, GitHub, and more * **Testing environment**: Test your agents and visualize workflows before deployment * **Cloud deployment**: Automatically configured for 24/7 availability with Autoscale or Scheduled deployments ## How to get started ### Step 1: Select Agents & Automations From the Replit homepage after logging in, **select "Agents & Automations"** from the app type selector on the homepage. Replit homepage showing Agents & Automations selection with Beta label and prompt input area ### Step 2: Choose your trigger type Next, you'll see a trigger type selector. Choose from the supported options: * **Slack** - Create intelligent Slackbots that integrate with your workspace * **Telegram** - Build Telegram bots for various use cases * **Timed Automation** - Set up scheduled workflows that run automatically ### Step 3: Enter your prompt **Enter your prompt** describing what you want your agent to do. ### Step 4: Let Agent build your automation Agent will create your automation based on your prompt and selected trigger type, including all necessary integrations and deployment configuration. Agent testing environment showing a StockReporter automation with workflow visualization and testing interface Once your project is created, you'll find a dedicated **Agents & Automations pane** in your workspace: * **Location**: Opens under the preview area in your workspace * **Functions**: * View and interact with your agent * Test chatbot functionality before deployment * Visualize automation workflows * Monitor logs and debug issues * **Testing**: Chat with your agent directly in the pane to test responses and behavior ### Deployment Requirement **Deployment Required**: Your agent or automation must be deployed to function with external triggers like Slack, Telegram, or scheduled automations. The testing pane works for development and testing, but live triggers require deployment. Agent will automatically prompt you to deploy your project when it's ready. Choose the appropriate deployment type: * **Autoscale deployments** - For chatbots and event-driven workflows * **Scheduled deployments** - For time-based automations ## Supported use cases and examples ### Slack Agent examples **Research assistant with Perplexity integration** Create an AI Slackbot assistant that can answer research questions using the Perplexity API. When someone asks a question in the #research channel, it should search for current information and provide comprehensive answers with sources. **Codebase Q\&A with GitHub integration** Create an AI Slackbot that can answer questions about my codebase using a GitHub integration. It should be able to explain functions, find files, and help with debugging by analyzing our repository. **Email assistant with Outlook integration** Create an AI Slackbot that can answer questions about my Outlook emails. It should help me find specific emails, summarize conversations, and provide quick responses to common email queries. ### Telegram Agent examples **Business assistant with calendar scheduling** Create an AI business assistant that can schedule emails on my Outlook calendar. Users should be able to request meeting times and the bot will find available slots and send calendar invites. **Music recommendation bot with Spotify** Make a fun AI chatbot that can return a Spotify song for any message I send describing the vibe I want. It should understand mood descriptions and suggest perfect tracks. **Fictional character bot** Make an AI bot that is a fictional character - specifically Sherlock Holmes. It should respond to messages in character, solve puzzles, and engage in detective-style conversations. ### Timed Automation examples **Daily Linear task summary** Send me an email every morning summarizing my new tasks from Linear. Include task priorities, due dates, and project context to help me plan my day. **Email digest automation** Send me an email every 6hrs with a summary of all my emails. Group them by importance and highlight any urgent messages that need immediate attention. **Weekly competitor analysis** Every week at 8am on Monday, send me a summary of any news about my competitors using web search. Focus on product updates, funding news, and market developments. ## Next steps **Quick start ideas:** * **Slack**: Build a research assistant or codebase Q\&A bot * **Telegram**: Create a scheduling assistant or entertainment bot * **Timed**: Set up daily summaries or weekly reports Want to be notified when new triggers become available? Follow [@Replit](https://twitter.com/replit) for the latest updates on Agents & Automations. Learn more about [Replit Agent](/replitai/agent) and other [Agent 3 autonomous features](/replitai/agent#autonomous-features-new-in-agent-3), or explore additional [AI-powered features](/category/replit-ai). --- ### App Testing Source: [https://docs.replit.com/replitai/app-testing.md](https://docs.replit.com/replitai/app-testing.md) # App Testing > Agent's self-testing feature that validates your app's functionality using an actual browser, with visual feedback and automatic issue resolution. **App Testing is a powerful new feature in Agent 3** that allows Agent to test itself using an actual browser. Agent tests the apps it builds by navigating through your application like a real user would, clicking around and validating functionality. This self-testing capability helps ensure your app works correctly and allows Agent to catch and fix issues automatically. **New in Agent 3**: App Testing represents a major advancement in Agent's autonomous capabilities, enabling more reliable and higher-quality app development. ## How App Testing works When App Testing is enabled, Agent will periodically decide to test itself when it thinks enough has changed to deem it necessary. Agent doesn't test after 100% of user messages, but intelligently determines when testing would be most valuable. Watch App Testing in action as Agent navigates through your app: