AetherPost Developer Onboarding Guide
Welcome to AetherPost! 🚀
AetherPost is an enterprise-grade social media automation platform that helps businesses manage their content across multiple platforms efficiently.
Quick Start (30 seconds)
1. Clone and Setup
``bash
Clone repository
git clone https://github.com/fununnn/aetherpost.git
cd aetherpost
One command setup!
aetherpost init
`
2. Run Your First Command
`bash
Initialize AetherPost
aetherpost init
Check status
aetherpost status
`
Architecture Overview
`
aetherpost/
├── aetherpost/
│ ├── core/ # Core functionality
│ ├── plugins/ # Platform connectors
│ ├── cli/ # Command-line interface
│ └── utils/ # Shared utilities
├── tests/ # Test suite
├── docs/ # Documentation
└── examples/ # Usage examples
`
Core Concepts
1. Campaigns
Organize your content strategy:
`yaml
campaign.yaml
name: "Product Launch"
schedule:
start_date: "2025-01-20"
frequency: "daily"
posts:
- content: "Exciting news coming soon!"
platforms: ["twitter", "reddit", "youtube"]
`
2. Platform Connectors
Each platform has its own connector:
`python
Example: Creating a custom connector
from aetherpost.plugins.base import BaseConnector
class MyPlatformConnector(BaseConnector):
def post(self, content, media=None):
# Your implementation
pass
`
3. Content Generation
AI-powered content creation:
`python
from aetherpost.core.content import ContentGenerator
generator = ContentGenerator()
content = generator.create(
topic="Tech Innovation",
tone="professional",
length=280
)
`
Development Workflow
1. Feature Development
`bash
Create feature branch
git checkout -b feature/new-platform
Make changes
Write tests
Run tests
pytest tests/
Submit PR
git push origin feature/new-platform
`
2. Testing
`bash
Run all tests
pytest
Run specific test
pytest tests/test_connectors.py::test_twitter
Check coverage
pytest --cov=aetherpost
`
3. Code Style
`bash
Format code
black aetherpost/
Lint
flake8 aetherpost/
Type checking
mypy aetherpost/
`
Adding a New Platform
Step 1: Create Connector
`python
aetherpost/plugins/connectors/newplatform/connector.py
from aetherpost.plugins.base import BaseConnector
class NewPlatformConnector(BaseConnector):
def __init__(self, config):
super().__init__(config)
self.api = self._setup_api()
def post(self, content, media=None):
return self.api.create_post(content, media)
def delete(self, post_id):
return self.api.delete_post(post_id)
`
Step 2: Add Configuration
`python
aetherpost/plugins/connectors/newplatform/config.py
from pydantic import BaseModel
class NewPlatformConfig(BaseModel):
api_key: str
api_secret: str
base_url: str = "https://api.newplatform.com"
`
Step 3: Register Plugin
`python
aetherpost/plugins/registry.py
AVAILABLE_PLUGINS = {
"twitter": "aetherpost.plugins.connectors.twitter",
"newplatform": "aetherpost.plugins.connectors.newplatform",
}
`
Common Tasks
Running Locally
`bash
Check configuration
aetherpost doctor
Test authentication
aetherpost auth status
`
Campaign Operations
`bash
Initialize new campaign
aetherpost init
Preview content
aetherpost plan
Execute campaign
aetherpost apply
`
Debugging
`python
Enable debug logging
import logging
logging.basicConfig(level=logging.DEBUG)
Use built-in debugger
import pdb; pdb.set_trace()
`
API Reference Quick Links
Troubleshooting
Common Issues
1. Import Errors
`bash
# Ensure package is installed in development mode
pip install -e .
`
2. API Rate Limits
`python
# Use built-in rate limiting
from aetherpost.utils.rate_limit import RateLimiter
limiter = RateLimiter(calls=100, period=3600)
`
3. Authentication Failures
`bash
# Re-authenticate
aetherpost auth login
``
Getting Help
- 📧 Email: dev@aetherpost.dev
Next Steps
1. ✅ Complete the Tutorial 2. 📚 Read the Architecture Guide 3. 🤝 Review Contributing Guidelines 4. 🎯 Pick a Good First Issue
Welcome aboard! We're excited to have you contributing to AetherPost! 🎉