A Next.js application that integrates with Pipedream Connect to allow users to configure triggers and actions for various apps.
- Type Selection: Choose between triggers and actions
- App Selection: Browse and select from available Pipedream apps
- Component Configuration: Configure triggers/actions with dynamic forms
- State Persistence: Configured props are maintained across component switches
- Modern UI: Built with shadcn/ui components and Tailwind CSS
Before you begin, you'll need:
- A Pipedream account
- A Pipedream project (create one at pipedream.com/projects)
- Pipedream OAuth client credentials (create at Pipedream API OAuth)
- Install dependencies:
npm install- Set up your environment variables by creating a
.env.localfile in the root directory:
# Pipedream Connect Configuration
# Project ID - Find this in your Pipedream project settings
NEXT_PUBLIC_PIPEDREAM_PROJECT_ID=your_project_id_here
# OAuth Client ID and Secret - Create these at https://pipedream.com/docs/rest-api/auth#creating-an-oauth-client
PIPEDREAM_CLIENT_ID=your_client_id_here
PIPEDREAM_CLIENT_SECRET=your_client_secret_here
# Environment (development or production)
NEXT_PUBLIC_PIPEDREAM_ENVIRONMENT=development
# Allowed Origins - Set this to match your app's origin
# Format: ["http://localhost:3000"] or ["https://example.com", "http://localhost:3000"]
PIPEDREAM_ALLOWED_ORIGINS=["http://localhost:3000"]- Go to pipedream.com/projects
- Create a new project or select an existing one
- Copy the Project ID from your project settings
- Go to your Pipedream account settings
- Navigate to the API section
- Create a new OAuth client
- Copy the Client ID and Client Secret
Make sure to set the PIPEDREAM_ALLOWED_ORIGINS environment variable to include all origins where your app will run (e.g., ["http://localhost:3000"] for development).
Start the development server:
npm run devOpen http://localhost:3000 in your browser.
- Select Type: Choose between "Trigger" or "Action"
- Select App: Choose an app from the dropdown (e.g., Slack, GitHub, Google Sheets)
- Select Component: Pick a specific trigger or action from the list
- Configure: Fill in the required fields in the form
- Switch Components: Navigate between different components - your configurations are saved
- Select "Action" as the type
- Choose "Slack" from the app dropdown
- Select "Send Message to Channel"
- Fill in the required fields (channel, message, etc.)
- Switch to another component - when you return, your previous configuration will be pre-populated
├── app/
│ ├── actions.ts # Server-side token fetching
│ ├── layout.tsx # Root layout with Pipedream provider
│ └── page.tsx # Main integration page
├── components/
│ ├── providers.tsx # Pipedream client provider
│ └── ui/ # shadcn/ui components
│ ├── button.tsx
│ ├── card.tsx
│ ├── label.tsx
│ └── select.tsx
└── lib/
└── utils.ts # Utility functions
- Next.js 15 - React framework with App Router
- TypeScript - Type safety
- Tailwind CSS - Styling
- shadcn/ui - UI component library
- Pipedream Connect React - Pipedream integration components
- Pipedream SDK - API client for Pipedream
The application uses React state to store configured props for each component. When you configure a component and switch to another one, your configuration is preserved in memory. This allows you to:
- Configure multiple components in a single session
- Switch between components without losing your work
- Review previously configured components
The ComponentFormContainer from Pipedream Connect React handles:
- Dynamic form generation based on component requirements
- OAuth app connections
- Field validation
- Prop configuration
The application uses a light theme by default and ensures that Pipedream's ComponentFormContainer styles are not overridden, maintaining a consistent look and feel.
Make sure all dependencies are installed:
npm install- Verify your environment variables are set correctly
- Check that your Project ID, Client ID, and Client Secret are valid
- Ensure
PIPEDREAM_ALLOWED_ORIGINSincludes your app's origin
- Check your network connection
- Verify your Pipedream credentials are correct
- Make sure the selected app has available triggers/actions
To build for production:
npm run build
npm startTo run linting:
npm run lint- The
externalUserIdis currently set to"demo-user". In a production app, this should come from your authentication system and represent your actual user IDs. - OAuth credentials are fetched securely from the backend using Next.js server actions.
- The application uses
--legacy-peer-depsfor installation due to React 19 compatibility. Pipedream Connect React works fine despite the peer dependency warning.
- Pipedream Connect Documentation
- Pipedream API Documentation
- Next.js Documentation
- shadcn/ui Documentation
This project is for demonstration purposes.