Complete LinkedIn automation platform with AI content generation, scheduling, analytics, workspace collaboration, and more.
- AI Content Generation - Generate engaging LinkedIn posts with Google Gemini AI
- AI Image Generation - Create professional images for your posts
- Viral Predictor - AI analysis to predict post performance
- Content Ideas - Get AI-suggested topics and ideas
- Calendar View - Visual scheduling interface
- Auto-Publishing - Automatic posting to LinkedIn
- Draft Management - Save and edit drafts
- Template System - Reusable content templates
- Real-time Analytics - Track post performance
- LinkedIn Sync - Automatic analytics synchronization
- Engagement Metrics - Likes, comments, shares, impressions
- Performance Trends - Historical data and insights
- Team Workspaces - Collaborate with your team
- Role-Based Access - Owner, Admin, Editor, Viewer roles
- Member Invitations - Invite team members via email
- Workspace Management - Manage multiple workspaces
- Real-time Notifications - Stay updated on important events
- Email Notifications - Workspace invitations and updates
- Notification Preferences - Customize what you receive
- Email/Password - Traditional authentication
- Google OAuth - Sign in with Google
- LinkedIn OAuth - Sign in with LinkedIn
- Secure Sessions - Supabase Auth integration
- Node.js 18+ installed
- Supabase account
- Google AI API key
- LinkedIn Developer account (optional)
- Resend account (optional, for emails)
git clone https://github.com/piyush06singhal/linkedin-auto.git
cd linkedin-auto
npm installCopy .env.local.example to .env.local and fill in your credentials:
# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# Google Gemini AI
GOOGLE_AI_API_KEY=your_google_ai_api_key
# LinkedIn (Optional)
LINKEDIN_CLIENT_ID=your_linkedin_client_id
LINKEDIN_CLIENT_SECRET=your_linkedin_client_secret
LINKEDIN_REDIRECT_URI=http://localhost:3000/api/auth/linkedin/callback
# Email Service (Optional)
RESEND_API_KEY=your_resend_api_key
RESEND_FROM_EMAIL=LinkedAI <noreply@yourdomain.com>
# App URL
NEXT_PUBLIC_APP_URL=http://localhost:3000- Go to your Supabase project SQL editor
- Run the schemas in order:
supabase/schema.sql supabase/notifications_schema.sql supabase/workspaces_schema.sql
npm run devlinkedin-auto/
βββ app/ # Next.js 15 App Router
β βββ (auth)/ # Authentication pages
β βββ api/ # API routes
β βββ dashboard/ # Dashboard pages
β βββ page.tsx # Landing page
βββ components/ # React components
β βββ DashboardLayout.tsx # Main layout
β βββ Sidebar.tsx # Navigation sidebar
β βββ NotificationDropdown.tsx
βββ lib/ # Utilities & services
β βββ ai/ # AI services
β βββ email/ # Email services
β βββ linkedin/ # LinkedIn API
β βββ notifications/ # Notification system
β βββ supabase/ # Supabase client
βββ supabase/ # Database schemas
βββ types/ # TypeScript types
βββ docs/ # Documentation
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Database: Supabase (PostgreSQL)
- Authentication: Supabase Auth
- AI: Google Gemini AI
- Email: Resend
- Deployment: Vercel
- LinkedIn API: OAuth 2.0
- Email Troubleshooting - Fix email delivery issues
- API Documentation - API endpoints reference (coming soon)
- Deployment Guide - Production deployment (coming soon)
- Create app at LinkedIn Developers
- Add redirect URI:
http://localhost:3000/api/auth/linkedin/callback - Request permissions:
openid,profile,email,w_member_social - Add credentials to
.env.local
- Sign up at Resend
- Get API key from dashboard
- For production: Verify your domain
- For testing: Use
delivered@resend.dev
See Email Troubleshooting Guide for detailed setup.
- Get API key from Google AI Studio
- Add to
.env.localasGOOGLE_AI_API_KEY
Manual Deployment:
- Push code to GitHub
- Import project in Vercel
- Add environment variables
- Deploy
Environment Variables for Production:
- Update
NEXT_PUBLIC_APP_URLto your domain - Update
LINKEDIN_REDIRECT_URIto production URL - Verify domain in Resend for email delivery
users- User accounts and profilesposts- LinkedIn posts and draftsscheduled_posts- Scheduled contenttemplates- Content templatesworkspaces- Team workspacesworkspace_members- Workspace membershipworkspace_invitations- Pending invitationsnotifications- User notificationsnotification_preferences- Notification settings
- β Row Level Security (RLS) enabled on all tables
- β Secure authentication with Supabase
- β API route protection
- β Environment variable validation
- β CORS configuration
- β Rate limiting on API routes
See Email Troubleshooting Guide
- Check redirect URI matches exactly
- Verify app permissions in LinkedIn Developer Portal
- Check API credentials in
.env.local
- Verify all schemas are applied
- Check RLS policies are enabled
- Confirm service role key is correct
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
Piyush Singhal
- GitHub: @piyush06singhal
- Repository: linkedin-auto
- Google Gemini AI for content generation
- Supabase for backend infrastructure
- Resend for email delivery
- LinkedIn API for social integration
- Vercel for hosting
Status: β Production Ready | Version: 1.0.0 | Last Updated: December 2024