Loading repository data…
Loading repository data…
moesaif / repository
Self-hosted AI marketing platform. Like Google Pomelli, but open source, model-agnostic, and actually ships to your social media.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
DNA Studio analyzes any website URL to extract a Brand DNA profile — colors, fonts, tone of voice, target audience, and industry — then uses AI to generate on-brand marketing content across all major social platforms.
Paste a URL. Get a complete marketing campaign. Publish it.
Brand DNA Extraction — Paste any URL. Playwright crawls the site and extracts colors, fonts, tone, audience, industry, and more. AI analyzes the content for deeper insights.
Multi-Platform Campaign Generation — Generate platform-specific content for Instagram, LinkedIn, Facebook, and X/Twitter. Each asset respects platform conventions (character limits, tone, hashtag strategy).
Model-Agnostic AI — Switch between OpenAI (GPT-4o), Anthropic (Claude), Google Gemini, or local models via Ollama. One env var to change.
Direct Social Publishing — Connect your social accounts via OAuth. Publish immediately or schedule posts for later via BullMQ job queue.
Multi-Language Support — Generate campaigns in English, Spanish, French, Arabic, Chinese, Japanese, and more.
Self-Hosted — One docker compose up -d and you're running. Your data stays on your infrastructure. No vendor lock-in. MIT licensed.
AI Photoshoot Studio — Upload a product image, choose from 29 templates across 6 categories (General, Beauty, Fashion, Food, Home, Tech), and generate up to 4 styled product shots in parallel. Sessions are saved and browsable.
AI Image Generation — Supports OpenAI DALL-E, Google Gemini native image generation, Stability AI, and Replicate Flux. Provider-agnostic — switch with one setting.
Smart Campaign Suggestions — AI analyzes your brand DNA and generates tailored campaign ideas. Cached per brand for instant load.
In-App Settings — Configure AI providers, API keys, and image generation from the dashboard. No need to restart the server.
Streaming UX — Real-time progress for brand analysis and content generation. See results as they're produced.
# Clone the repo
git clone https://github.com/moesaif/dna-studio.git
cd dna-studio
# Copy environment config
cp .env.example .env
# Edit .env with your API keys
# Launch everything
docker compose up -d
Open http://localhost:3000 and create your first brand.
# Prerequisites: Node 20+, PostgreSQL, Redis
# Install dependencies
npm install
# Set up database
cp .env.example .env.local
# Edit .env.local with your DATABASE_URL and API keys
npx prisma migrate dev
# Start dev server
npm run dev
# In another terminal, start the worker (for scheduled publishing)
npm run worker
All configuration is done via environment variables. See .env.example for the full list.
| Variable | Description | Required |
|---|---|---|
DATABASE_URL | PostgreSQL connection string | Yes |
REDIS_URL | Redis connection string | Yes |
NEXTAUTH_SECRET | Random secret for session encryption | Yes |
LLM_PROVIDER | AI provider: openai, anthropic, ollama, gemini | Yes |
OPENAI_API_KEY | OpenAI API key (if using OpenAI) | Conditional |
ANTHROPIC_API_KEY | Anthropic API key (if using Anthropic) | Conditional |
GOOGLE_API_KEY | Google API key (if using Gemini) | Conditional |
OLLAMA_BASE_URL | Ollama server URL (if using local models) | Conditional |
| Feature | DNA Studio | Google Pomelli | Canva AI |
|---|---|---|---|
| Self-hosted | Yes | No | No |
| Model-agnostic | Yes | No | No |
| Brand DNA extraction | Yes | Yes | No |
| Multi-platform generation | Yes | Yes | Yes |
| Direct social publishing | Yes | No | Yes |
| Multi-language | Yes | No | Yes |
| Open source | Yes | No | No |
| Free tier | Yes (unlimited) | No | Limited |
dna-studio/
├── src/
│ ├── app/ # Next.js pages and API routes
│ ├── components/ # React components
│ └── lib/
│ ├── brand-dna/ # Brand DNA crawler and extractors
│ ├── llm/ # Unified LLM client + providers
│ ├── image/ # Image generation client + providers
│ ├── campaigns/ # Campaign generator and prompts
│ ├── settings/ # User settings resolution
│ ├── social/ # Social media API integrations
│ └── auth/ # NextAuth configuration
├── prisma/ # Database schema and migrations
├── workers/ # BullMQ background workers
├── docker-compose.yml # One-command deployment
└── Dockerfile
We welcome contributions! See CONTRIBUTING.md for setup instructions, code style guidelines, and how to add new AI providers.
Quick start:
git clone https://github.com/YOUR_USERNAME/dna-studio.git
cd dna-studio && npm install
cp .env.example .env
npx prisma migrate dev
npm run dev
npx prisma studio to browse the databaseLLM_PROVIDER env varMIT License. See LICENSE for details.