Skip to content

FreeOps-Tools/postpilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

PostPilot - Open Source Social Media Posting App ๐Ÿš€

PostPilot is a powerful platform that allows you to post content to multiple social media platforms simultaneously. Write once, post everywhere!

โœจ Features

  • Multi-Platform Support: Post to LinkedIn, Twitter/X, Facebook, Instagram, and TikTok
  • Smart Content Validation: Automatically validates and adapts your content for each platform's requirements
  • OAuth Authentication: Secure authentication for all supported platforms
  • Media Support: Upload images and videos with platform-specific handling
  • Content Adaptation:
    • Auto-threading for long Twitter posts
    • Platform-specific media rules (e.g., LinkedIn: video OR images, not both)
    • Character limit validation
  • Beautiful UI: Modern, responsive design

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+ and npm
  • OAuth credentials for the platforms you want to use

Installation

  1. Clone the repository:
git clone git@github.com:FreeOps-Tools/postpilot.git
cd postpilot
  1. Install dependencies:
npm install
  1. Set up environment variables:
cp .env.example .env

Edit .env and add your OAuth credentials for each platform you want to use.

Getting OAuth Credentials

LinkedIn

  1. Go to LinkedIn Developers
  2. Create a new app
  3. Add redirect URI: http://localhost:3001/auth/linkedin/callback
  4. Request permissions: r_liteprofile, r_emailaddress, w_member_social

Twitter/X

  1. Go to Twitter Developer Portal
  2. Create a new app
  3. Set callback URL: http://localhost:3001/auth/twitter/callback
  4. Enable OAuth 2.0

Facebook

  1. Go to Facebook Developers
  2. Create a new app
  3. Add Facebook Login product
  4. Set redirect URI: http://localhost:3001/auth/facebook/callback
  5. Request permissions: pages_manage_posts, pages_read_engagement, instagram_basic, instagram_content_publish

Instagram

  • Uses Facebook OAuth (same app)
  • Requires Instagram Business Account
  • Set redirect URI: http://localhost:3001/auth/instagram/callback

TikTok

  1. Go to TikTok Developers
  2. Create a new app
  3. Set redirect URI: http://localhost:3001/auth/tiktok/callback
  4. Request permissions: user.info.basic, video.upload

Running the Application

Start both frontend and backend:

npm run dev

Or run them separately:

# Backend only
npm run dev:server

# Frontend only
npm run dev:client

Building for Production

npm run build
npm run build:server
npm start

๐Ÿ“ Project Structure

postpilot/
โ”œโ”€โ”€ server/              # Backend server
โ”‚   โ”œโ”€โ”€ routes/          # API routes
โ”‚   โ”œโ”€โ”€ services/        # Platform posting services
โ”‚   โ”œโ”€โ”€ database.ts      # Database setup
โ”‚   โ””โ”€โ”€ index.ts         # Server entry point
โ”œโ”€โ”€ src/                 # Frontend React app
โ”‚   โ”œโ”€โ”€ components/      # React components
โ”‚   โ”œโ”€โ”€ services/        # API client
โ”‚   โ”œโ”€โ”€ utils/           # Utilities
โ”‚   โ””โ”€โ”€ types/           # TypeScript types
โ””โ”€โ”€ data/                # SQLite database (created automatically)

๐Ÿ”ง How It Works

  1. Authenticate: Connect your social media accounts via OAuth
  2. Create Content: Write your post and upload media
  3. Select Platforms: Choose which platforms to post to
  4. Validate: System validates content against platform rules
  5. Post: Content is posted to all selected platforms

๐ŸŽฏ Platform-Specific Rules

LinkedIn

  • โœ… Long text supported
  • โœ… One video OR multiple images (not both)
  • โœ… No character limit

Twitter/X

  • โœ… 280 character limit (free tier)
  • โœ… Auto-threading for long content
  • โœ… Up to 4 images or 1 video

Facebook

  • โœ… Flexible media support
  • โœ… Can combine video and images
  • โœ… No character limit

Instagram

  • โœ… Up to 10 images or 1 video
  • โœ… 2,200 character caption limit
  • โœ… Requires business account

TikTok

  • โœ… Video-only platform
  • โœ… 2,200 character description limit

๐Ÿค Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature
  3. Commit your changes: git commit -m 'Add some feature'
  4. Push to the branch: git push origin feature/your-feature
  5. Submit a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License.

๐Ÿ™ Acknowledgments

We appreciate your contribution to PostPilot. Together, we can make this project even better!

If you have any questions or need assistance, don't hesitate to reach out to rufilboy@gmail.com.

Happy coding! ๐Ÿš€

About

PostPilot - Open Source Social Media Posting App

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages