DonutAuto is an automated marketing platform for small to medium-sized businesses, particularly in the food and beverage industry. It combines Canva's design capabilities with AI-driven content generation to streamline the creation of marketing campaigns across digital channels. DonutAuto uses customer data from CRM systems to create personalized marketing materials. This approach helps businesses create targeted content efficiently, improving their digital marketing efforts without requiring extensive design or marketing expertise.
DonutAuto in action: Creating a personalized marketing campaign
- Frontend: Next.js (React) with App Router
- Backend: Convex
- Authentication: Clerk
- Styling: Tailwind CSS with shadcn/ui components
- API Integration: Canva Connect APIs
- Logging: Winston
-
Customer Management:
- CRUD operations for customer data
- Customer list view with pagination
-
Campaign Generation:
- Bulk campaign creation using Canva templates
- Integration with Canva's design capabilities
-
Brand Template Settings:
- Custom template management for various platforms (email, social media)
Customizing brand templates for different marketing channels
-
Canva Integration:
- OAuth flow for connecting Canva accounts
- Automatic token refresh mechanism
-
Analytics Dashboard:
- Overview of campaign performance
- Customer engagement metrics
-
AI-Powered Content Generation:
- Content creation based on CRM data
- Adaptation of messaging to customer preferences
- Clone the repository
- Install dependencies:
npm install
- Set up environment variables:
- Create a
.env
file in the root directory for development environment - Set up environment variables in Convex dashboard
- Create a
- Set up Canva integration:
- Create a Canva integration in the Developer Portal
- Configure scopes and authentication URL
- Configure Convex:
- Set up Convex project
- Run the development servers:
npx convex dev
npm run dev
- CONVEX_DEPLOYMENT
- NEXT_PUBLIC_CONVEX_URL
- NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
- CLERK_SECRET_KEY
- NEXT_PUBLIC_BASE_URL
- NEXT_PUBLIC_BACKEND_HOST
- CANVA_CLIENT_ID
- CANVA_CLIENT_SECRET
- BASE_CANVA_CONNECT_API_URL
- BASE_CANVA_CONNECT_API_URL
- CANVA_CLIENT_ID
- CANVA_CLIENT_SECRET
- CLERK_JWT_ISSUER_DOMAIN
Deployment is managed through Vercel with GitHub integration:
- Push your code to a GitHub repository
- Connect your GitHub account to Vercel
- Import the project from GitHub in Vercel dashboard
- Configure environment variables in Vercel
- Deploy the application
Vercel automatically deploys updates for the main branch, preview branches, and deployment branches, ensuring a smooth CI/CD pipeline.
- Convex and Clerk integration guide: https://docs.convex.dev/auth/clerk
- Canva integration setup guide: https://www.canva.dev/docs/connect/quick-start/