A full-stack application for downloading Instagram content and managing cross-platform distribution. Built as a proof of concept for content management workflows.
- Next.js 15 with App Router
- React 19
- Tailwind CSS + Shadcn UI
- TypeScript
- PostgreSQL with Supabase
- Drizzle ORM
- FastAPI Python backend
- Instaloader for Instagram content downloading
- Next.js Server Actions for data mutations
- 🔐 User authentication and authorization
- 📱 Instagram content URL input and validation
- 📥 Automated content downloading with metadata extraction
- 📊 Content library management with stats
- 🔄 Cross-platform posting framework (ready for integration)
- 💳 Subscription-based access control
- 📈 Usage analytics and content tracking
- Node.js 18+
- Python 3.8+
- PostgreSQL (via Supabase)
git clone <repository-url>
cd dumpstr
npm installCopy the environment template:
cp .env.example .env.localFill in your environment variables in .env.local:
# Database
DATABASE_URL=postgresql://postgres:postgres@localhost:54322/postgres
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
CLERK_SECRET_KEY=your_clerk_secret
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/login
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/signup
# Stripe (optional)
STRIPE_SECRET_KEY=your_stripe_key
STRIPE_WEBHOOK_SECRET=your_webhook_secret
# Python Backend
PYTHON_BACKEND_URL=http://localhost:8000Start Supabase locally:
npm run db:localGenerate and run database migrations:
npm run db:generate
npm run db:pushSet up the Python environment:
npm run python:setupThis will create a virtual environment and install required Python packages.
Start both frontend and backend:
npm run backend:devOr start them separately:
# Terminal 1: Next.js frontend
npm run dev
# Terminal 2: Python backend
npm run python:startThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Supabase Studio: http://127.0.0.1:54323
- Sign Up/Login: Create an account using Clerk authentication
- Add Instagram URL: Paste an Instagram post/reel URL into the download form
- Download Content: The system will download the content and extract metadata
- Manage Library: View your downloaded content with engagement stats
- Cross-Post: Use the cross-posting feature to distribute content across platforms
The application uses the following main tables:
customers- User subscription and billing informationdownloaded_content- Instagram content metadata and file pathscross_post_history- Track cross-platform posting attemptsuser_platform_credentials- Store encrypted API credentials for other platforms
POST /api/content/download- Download Instagram contentGET /api/content/list- List user's downloaded contentPOST /api/content/cross-post- Initiate cross-platform posting
POST /download- Process Instagram URL and download contentGET /downloads/{user_id}- List downloaded files for user
npm run dev- Start Next.js development servernpm run python:setup- Set up Python environmentnpm run python:start- Start Python backendnpm run backend:dev- Start both frontend and backendnpm run db:push- Push database schema changesnpm run lint- Run ESLintnpm run types- Check TypeScript types
- Connect your GitHub repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on git push
Deploy the FastAPI backend to platforms like:
- Railway
- Heroku
- DigitalOcean App Platform
- AWS Lambda with Mangum
- Only download content you have permission to use
- Respect Instagram's Terms of Service
- Obtain proper permissions before reposting content
- Consider copyright and intellectual property rights
- Use responsibly and ethically
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
This project is for educational purposes only. Please use responsibly and in compliance with all applicable terms of service and laws.