On this page
Devflair Docs
Devflair is an AI-powered marketing toolkit built for indie developers and small teams. Draft posts with AI, publish to X, Bluesky, and LinkedIn, repurpose long-form content into a week of posts, manage an engagement inbox with AI-drafted replies, schedule content, generate videos and diagrams, and import/export your data freely.

Write & Publish
AI-drafted posts to X and Bluesky in seconds.
Schedule & Queue
Research-backed optimal times. Auto-published every 5 min.
Ship in public
GitHub releases auto-drafted. Diagrams from plain text.
Quick Start#
Get from zero to your first AI-drafted post in under 5 minutes.
- 1
Create your account
Sign up at devflair.xyz. Email + password — no OAuth required. You'll be dropped directly into the app.
- 2
Connect a social account
Go to Settings → Social Accounts. Add your X credentials (API key + secrets from X Developer Portal) or your Bluesky identifier and password.
- 3
Add an AI key (or use included)
Basic and Premium plans include Claude Haiku. To BYOK, go to Settings → AI Keys and paste your Anthropic, OpenAI, or Google key.
- 4
Create your first project
Go to Projects → New Project. Paste your app's URL to auto-fill name, tagline, audience, hashtags, and context in one click.
- 5
Draft your first post
Go to Compose. Type a short note about what you want to share, select your project, and click "Draft with AI". Edit, then hit Post.

Connecting Social Accounts#
Devflair posts directly using your own credentials. Your tokens are encrypted with AES-256 before storage — we never store them in plain text.
Connecting X (Twitter)#
Devflair uses the X API v2 with OAuth 1.0a. You need to create an X Developer App at developer.x.com .
- 1
Create a free X Developer App
Log into developer.x.com → Projects & Apps → New App. App permissions must be set to "Read and Write".
- 2
Copy your 4 credentials
API Key, API Key Secret, Access Token, and Access Token Secret. These are only shown once — copy them immediately.
- 3
Paste into Devflair
Go to Settings → Social Accounts, fill in all four fields plus your X handle (e.g. @yourhandle), and click Save.
X requires your app to have Read + Write permissions. Read-only apps cannot post. If you see a permission error, check your app settings in the X Developer Portal.
Connecting Bluesky#
Bluesky uses the AT Protocol. You connect with your Bluesky account email and password (or an App Password from Bluesky Settings — recommended).
- 1
Get an App Password (recommended)
In Bluesky → Settings → App Passwords → Add App Password. Name it "Devflair" and copy the generated password.
- 2
Add to Devflair
Settings → Social Accounts → Bluesky section. Enter your identifier (the email you registered with or your handle), paste the app password, and save.
Using a Bluesky App Password is safer than your main account password — it can be revoked at any time without changing your login credentials.

Connecting LinkedIn#
LinkedIn uses OAuth 2.0. Devflair redirects you to LinkedIn to authorize, then stores an encrypted access token.
- 1
Click "Connect LinkedIn"
In Settings → Social Accounts, click the LinkedIn connect button.
- 2
Authorize on LinkedIn
You'll be redirected to LinkedIn. Approve the permissions (posting and profile access).
- 3
You're connected
LinkedIn redirects you back to Devflair. Your name appears in the LinkedIn section of Settings.
LinkedIn posts are text-only for now. Media attachments are not yet supported on LinkedIn — they will be posted as text with the media URL appended.
Free plan users can connect one platform (X, Bluesky, or LinkedIn). Upgrade to Basic to connect all three.
AI Keys & Model Selection#
Devflair is BYOK-first (Bring Your Own Key). You can use Anthropic (Claude), OpenAI (GPT), or Google (Gemini). Basic and Premium plans include Claude Haiku so you can start immediately — no key required.
Anthropic
RecommendedModels: claude-haiku-4-5, claude-sonnet-4-6, opus 4.6
ANTHROPIC_API_KEY
OpenAI
BYOK onlyModels: gpt-4o, gpt-4o-mini, gpt-4-turbo
sk-...
Models: gemini-1.5-flash, gemini-1.5-pro
AIza...
Adding a key#
- 1
Go to Settings → AI Keys
Click the provider tab you want to add (Anthropic, OpenAI, or Google).
- 2
Paste your API key
The key field is masked. Paste your key and click Save. It is encrypted before being stored.
- 3
Select a model (optional)
After saving, a "Choose model" button appears. Click it to fetch available models and select your preferred one. Defaults work fine out of the box.
Your BYOK key always takes priority over the platform-included key. If you want to use the included Claude Haiku, simply leave the Anthropic key field empty.

Projects#
Projects give Devflair context about what you're building. When you associate a post with a project, the AI uses that context to write more relevant, on-brand copy automatically.
Creating a project#
- 1
Click "New Project"
From the Projects page, click the New Project button in the top right.
- 2
Auto-fill from URL (recommended)
Paste your app or product URL into the Website field and click the ✨ magic button. Devflair scrapes the page via Jina AI and pre-fills name, tagline, audience, hashtags, and context.
- 3
Review and save
Edit any auto-filled fields, add hashtags, choose an accent color, and upload screenshots if you have them.

Project context & AI quality#
The Context field is the most important field for AI quality. It's passed to the AI as background knowledge every time you draft a post.
Good context example
"Devflair is a social media toolkit for indie devs. Users are solo founders, indie hackers, and developer advocates. Key differentiators: BYOK AI, posts to X+Bluesky simultaneously, GitHub release webhooks auto-draft announcements. Tone: technical but accessible, direct, no fluff. Avoid: buzzwords, excessive emoji."
Include your target audience, your tone of voice, what makes your product different, and any words/phrases to avoid. The more specific, the better the drafts.
Project images#
Upload screenshots and mockups to a project. When composing, you can quickly select a project image as the post's media without re-uploading. These images are also available to the AI as visual context for video generation.
Compose & Post#
The Compose page is the core of Devflair. It's a resizable two-panel layout: editor on the left, live preview on the right.
Selecting a platform#
Use the platform selector at the top of the compose panel:
280 chars max
300 chars max
Both at once
2000 chars, no posting
Drafting with AI#
- 1
Select a project (optional but recommended)
Choose a project from the dropdown. This injects your project context into the AI prompt, producing much more relevant drafts.
- 2
Write a note
In the Notes field, describe what you want to post about. It can be as short as "just shipped dark mode" or a full paragraph. The AI uses this as the starting point.
- 3
Click "Draft with AI"
The AI generates a post optimized for your selected platform's character limit. It will use your project context, tone, and any selected hashtags.
- 4
Edit the draft
The generated text populates the post textarea. Edit freely — the character counter updates in real time.
Try different notes. Short notes ("shipped feature X") often produce cleaner, punchier drafts than long descriptions. You can re-click Draft with AI multiple times to get variations.
Link enrichment#
When your notes contain a URL, Devflair automatically fetches the page's OpenGraph metadata (title, description, site name) and injects it as context for the AI. This means the AI writes more informed, accurate copy without you needing to describe the link.
Link enrichment is automatic and free on all plans. Up to 3 URLs per draft are enriched.
Adding media#
Paste a URL into the Media URL field. Devflair supports:
- YouTube / Vimeo / TikTok — Appended as a link. The platform renders a preview card automatically.
- Image URLs (.jpg, .png, .gif, .webp) — Attached directly to the post as media.
- Project images — Click the image gallery icon next to the media field to pick from your project's uploaded screenshots.
Hashtags#
Hashtags are prepended to your post text before publishing.
- Project hashtags: auto-populated from your project settings. Toggle individual tags on/off.
- Custom hashtags: type a tag and press Enter to add. Click × to remove.
- Hashtags count toward your character limit.
Saving & loading drafts#
- 1
Save a draft
Press Cmd/Ctrl + Shift + S or click "Save Draft". Give it a name. Devflair saves the complete compose state: platform, text parts, hashtags, media, notes, and project.
- 2
Load a draft
Click "Drafts" in the compose sidebar to see all saved drafts. Click a draft to restore the full state.
- 3
Delete a draft
Hover any draft in the list and click the trash icon.

Threads#
Thread mode lets you write multi-part posts that publish as a native reply chain on X and/or Bluesky. Each part has its own character counter.
- 1
Enable Thread mode
Click the "Thread" toggle in the compose toolbar. The single textarea becomes a list of parts.
- 2
Write each part
Each part is a separate textarea with its own character counter. Press Tab to move between parts.
- 3
Add and remove parts
Click "+ Add part" to append a new section. Click the × on any part to remove it (minimum 2 parts).
- 4
Post the thread
Click "Post thread". Devflair publishes Part 1 first, then replies to each subsequent part in the chain.
Threads work on both X and Bluesky. When posting to X+Bluesky simultaneously, the thread is posted to both platforms independently using their respective reply-chain mechanisms.
Use the AI's Thread Split tool (in the AI Tools panel) to automatically break a long block of text into thread-sized parts.
Publishing Wizard#
The Publishing Wizard replaces the old platform selector. Instead of picking a platform before writing, you write freely and then choose where to send it.
- 1
Click "Publish…"
Opens the wizard modal over the compose page.
- 2
Select platforms
Check boxes for direct posting (X, Bluesky, LinkedIn, Mastodon, Threads) and share-via-link (Reddit, HN, Telegram, WhatsApp, Facebook, Email). Only connected platforms are selectable.
- 3
AI validates your post
Character limits, media compatibility, and URL handling are checked for each selected platform. Issues are flagged with specific counts ("312 chars — exceeds X's 280 limit by 32").
- 4
Fix violations
Click "AI rewrite" to have Claude rewrite the post to fit a platform's constraints, or edit it yourself.
- 5
Publish
One click sends to all selected direct platforms simultaneously. Intent links open in new tabs or copy to clipboard.
The wizard only scans platforms you select — no wasted checks for platforms you aren't using.
Meme Generator#
Generate memes with AI-written text from 10 popular templates. Available from the Compose page and Campaign post editor.
- 1
Open the meme generator
Click the 😂 button next to the media URL field in Compose, or the "Generate meme" button in a campaign post editor.
- 2
Pick a template
Choose from Drake, Buzz Lightyear, Roll Safe, Distracted BF, Change My Mind, Always Has Been, This Is Fine, Exit 12, Why Not Both, or Afraid To Ask.
- 3
Describe the vibe
Write a short note like "when your deploy works on the first try" and click the wand button.
- 4
AI generates the text
Claude writes top and bottom text matching the meme format. Edit it if you want, then click "Refresh preview" to update.
- 5
Use the meme
Click "Use this meme" to attach it as the post's media. If a project is selected, the image is automatically saved to your project images for reuse.
Memes are rendered via the Memegen API — no local image processing needed. The generated URL is a permanent public link.
Email Templates#
Create, import, and generate email templates. Paste any email you like and AI recreates it with your branding.
- 1
Generate from an example
Click the wand icon. Paste a newsletter URL, raw HTML, or plain text. Pick a category (launch, changelog, newsletter, etc.) and optionally link a project. AI analyzes the structure and creates your own version.
- 2
Import existing templates
Upload HTML, JSON, or text files. JSON files from other tools auto-extract the template content.
- 3
Edit in the editor
Toggle between Preview mode (rendered HTML in a 600px frame) and Code mode (raw HTML editor). Edit name and subject line inline.
- 4
Export
Download as HTML (email-client ready), JSON (re-importable), or plain text.
The AI generates responsive HTML with inline CSS — compatible with all major email clients. Templates use placeholder text like [Your Product Name] to show where to customize.
Content Repurposer#
Turn any long-form content into a week of social posts. Paste a blog post URL, a README, a changelog, or plain text — Devflair's AI splits it into 5-7 distinct posts, each covering a different angle.
From a URL#
- 1
Paste the URL
Go to the Repurpose page. Select "From URL" and paste any public URL — blog post, product page, GitHub README.
- 2
Select a project (optional)
Associate with a project to inject your brand voice and hashtags.
- 3
Click "Generate posts"
Devflair fetches the page content via Jina Reader and sends it to Claude to generate multiple social posts.
- 4
Review and use
Each post shows its angle (hook, lesson, tip) and character count. Click "Open in Compose" to edit and post, or "Copy" to clipboard.
From pasted text#
Switch to "From text" mode to paste content directly — perfect for drafts, notes, or unpublished content.
The AI varies post types: hooks (provocative questions), lessons learned, build updates, and tips. Each post stands alone — readers don't need to read the source.
Scheduling & Calendar#
Scheduling a post#
- 1
Compose your post as normal
Write your draft, add media and hashtags, select your platform.
- 2
Click "Schedule"
The schedule panel opens below the compose area. Select a date and time.
- 3
Confirm
Click "Schedule Post". The post is added to your queue and automatically published by the background cron job (runs every 5 minutes).
Devflair includes research-backed optimal time slots (typically 9–11 AM or 7–9 PM in your timezone) as quick-pick buttons in the scheduling UI.
Queue management#
The Queue page shows all your upcoming scheduled posts in chronological order.
- →Basic plan: View your queue. See the next post with a countdown.
- →Premium plan: Reorder the queue using ↑/↓ arrows — Devflair swaps the scheduled_at timestamps so posts publish in your preferred order.
Calendar view#
The Calendar page shows a monthly grid of all scheduled posts. Navigate months with the ← → arrows.

Campaign Studio#
Campaign Studio generates a full month of content from a single goal. AI plans your posting strategy, writes the posts, and schedules them — you just review and approve.
- 1
Create a campaign
Go to Campaigns → New Campaign. Set a name, goal (e.g. "launch week for v2"), date range, and optionally link a project.
- 2
Generate a content plan
Click "Generate Plan". AI creates a strategy with post types, timing, and messaging — plus individual posts with suggested copy.
- 3
Review and approve posts
Each generated post has its own card. Edit the copy, change platforms, attach media or videos, adjust dates. Approve posts you want to publish.
- 4
Schedule the campaign
Click "Schedule Campaign". All approved posts are added to your queue and published automatically on their scheduled dates.
Attaching media to campaign posts#
Each campaign post supports image URLs, video attachments (from Video Studio), and diagrams. When a campaign is scheduled, media URLs are carried into the scheduled post and attached at publish time.
You can mix post types within a campaign — single posts, threads, and posts with video attachments all work together.
Idea Inbox#
The Idea Inbox is a lightweight capture tool for post ideas. When inspiration strikes, drop it here — then convert ideas to drafts when you're ready to compose.
- 1
Capture an idea
Go to Ideas. Type a title in the quick-capture bar at the top and press Enter. Add an optional body for more detail.
- 2
Optionally link to a project
Associate the idea with a project to carry context into Compose.
- 3
"Load in Compose"
Click "Load in Compose" on any idea card. Devflair opens the Compose page with the idea title in the Notes field and the project pre-selected — ready to draft.

Engagement Inbox#
The Engagement Inbox pulls real metrics and replies from your recent posts on X and Bluesky, scores them by engagement potential, and drafts AI replies for you to approve.
Post performance#
The top of the page shows aggregate stats from your last 10 posts: total likes, reposts, replies, and impressions. Each post is listed with its platform, content preview, and individual metrics.
Reply scoring & AI responses#
- 1
Replies are fetched automatically
Devflair pulls replies from X (via conversation search) and Bluesky (via thread API) for each of your recent posts.
- 2
Scored by engagement potential
Replies are scored 0-100 based on: questions (+30), length (+20), mentions (+10), positive sentiment (+10). Highest scores appear first.
- 3
AI drafts a response
For the top 5 highest-scored replies, Claude Haiku generates a suggested response — authentic, brief, and technical.
- 4
Edit and send
Edit the suggested reply if needed, then click "Send reply" to post it directly. Or click "Skip" to dismiss.
Engagement is the #1 growth lever for indie builders. The inbox surfaces replies that deserve a response so you don't miss conversations.
GitHub Integration#
Connect GitHub to automatically generate social post drafts whenever you publish a release. No manual copy-paste from changelog — Devflair reads your release notes and writes an announcement post with your AI.

Step 1 — Connect your GitHub account#
- 1
Go to Settings → GitHub tab
You'll see a "Connect GitHub" button if no account is connected.
- 2
Authorize via OAuth
Clicking "Connect GitHub" redirects you to GitHub to authorize Devflair. Devflair requests repo scope to register webhooks.
- 3
Return to settings
After authorization you're redirected back to Settings → GitHub. Your GitHub username is now shown.
Step 2 — Link a repo to a project#
After connecting GitHub, each project shows a repo picker. Devflair loads all your repos (public + private) into a dropdown.
- 1
Select a project
In the GitHub settings tab, each Devflair project has its own repo selector.
- 2
Choose a repo
Click "Load repos", select the matching GitHub repo from the dropdown.
- 3
Click "Connect Repo"
Devflair registers a webhook on the repo (listens for release events). The webhook ID is stored and shown.
You need admin access to the GitHub repo to register webhooks. If you're a collaborator without admin rights, you'll see a GitHub API error.
Step 3 — Releases flow to Drafts#
Whenever you publish a GitHub release on a connected repo:
- 1GitHub sends a webhook to Devflair
- 2Devflair verifies the HMAC-SHA256 signature
- 3Your AI key is fetched and the release notes are passed to the AI
- 4A social post draft is generated using your project context
- 5The draft appears in the Releases inbox (with an amber badge in the nav)

Disconnecting#
Per-repo: click "Disconnect" next to a project. Devflair deletes the webhook from GitHub and clears the repo link.
Full account: click "Disconnect GitHub" at the top of the GitHub settings tab. This removes your GitHub token and clears all project webhooks.
Diagram Studio#
Describe any system in plain language and Devflair generates a Mermaid diagram. Use it to communicate architecture, document flows, or create visuals to include in your posts.
Diagram types#
Architecture
System overview, microservices map
Flow
User onboarding, feature logic
ERD
Database schema, relationships
Sequence
API calls, auth flows
- 1
Select a diagram type
Choose Architecture, Flow, ERD, or Sequence from the type selector.
- 2
Describe your system
In the prompt field, describe what to diagram. "A Next.js app connecting to Supabase, Stripe, and an AI proxy service" is enough to get started.
- 3
Click "Generate"
The AI produces Mermaid diagram XML, which renders instantly in the right panel.
- 4
Save or download
Click Save to add to your diagram library. Click Download to export as PNG or SVG.

Video Generation#
Generate short-form product videos from templates. Devflair builds a script with AI, then dispatches a video render job to Modal.com. Final videos are typically ready in 2–5 minutes.
Templates & formats#
Templates
Product announcement, Feature showcase, Update/changelog, Testimonial, Tutorial teaser, App launch
Formats
Vertical 9:16 (TikTok/Reels), Square 1:1 (social feed), Horizontal 16:9 (YouTube/banner)
- 1
Choose a template and format
Select what kind of video you're making and which aspect ratio fits your platform.
- 2
Fill in the content fields
Each template has specific fields (headline, subtitle, CTA, feature bullets). Fill them in plainly — the AI will polish the copy.
- 3
Upload screenshots (optional)
Upload up to 3 screenshots/mockups to use as visual content in the video.
- 4
Generate the script
Click "Generate Script". The AI writes narration text. Review and edit before rendering.
- 5
Choose fonts and click "Generate Video"
Devflair sends the job to Modal.com. Status updates every 3 seconds. When done, a download link appears.
Video generation typically takes 2–5 minutes. You can navigate away — jobs run in the background and appear in your Job History on the Video page.
Import / Export#
Your data is yours. Devflair lets you export everything and import from anywhere — no lock-in, no proprietary formats.
Exporting your data#
Go to Import/Export → Export tab. Select which sections to include and choose a format:
JSON
Raw structured data. Re-importable into Devflair or any tool that reads JSON.
CSV
Spreadsheet-friendly. Open in Excel, Google Sheets, or any data tool.
Markdown
Human-readable archive. Great for documentation or backup.
Available sections depend on your plan — Free users can export posts, drafts, projects, and ideas. Basic adds scheduled posts and diagrams. Premium adds video jobs.
Importing data#
Import data from any source — Devflair uses AI to map your file's structure to the right schema.
- 1
Upload a file
JSON, CSV, Markdown, or plain text (2MB max). This can be an export from Buffer, Typefully, a spreadsheet, or anything.
- 2
Choose a target
Import as post history, ideas, or projects.
- 3
Add instructions (optional)
Tell the AI how to interpret the file: "the first column is the post text, the third is the date".
- 4
Preview mapping
Click "Preview mapping" to see how the AI mapped each entry before committing. Review the mapping notes and any skipped entries.
- 5
Import
Click "Import" to save the mapped data. Items are inserted into the selected target.
The AI-powered import accepts any format and figures out the structure. Most tools only import their own export format — Devflair accepts everything.
Post History & Analytics#
The History page shows every post you've made through Devflair in reverse chronological order.
Reading your history#
Each entry shows: post content, platforms posted to, hashtags used, date, source (direct / thread / release draft), and linked project.
Engagement analytics#
Premium users can fetch live engagement metrics for any post. Click the platform badge on a history entry to load metrics on demand.
X metrics
Likes, Reposts, Replies, Quotes, Bookmarks, Impressions
Bluesky metrics
Likes, Reposts, Replies, Quotes (Bluesky does not expose impressions)
Metrics are fetched live from the platform API on demand — Devflair does not cache or poll them. Click a platform badge to refresh.
Automated Emails#
Devflair sends two types of automated emails to keep you informed and motivated.
Weekly recap#
Every Sunday, Devflair emails you a summary of your week: how many posts you shipped, your posting streak, a platform breakdown, and your top post. It also nudges you if your streak is about to break.
Weekly recaps are sent to every user who posted at least once during the week. No configuration needed.
Scheduled post failure alerts#
If a scheduled post fails to publish (e.g. expired credentials, API error), Devflair sends an immediate email notification with the error details and a link to your schedule page.
Feedback Engine#
A floating feedback button appears on every page inside the app. Click it to submit feedback — bug reports, feature requests, UX suggestions, or anything else.
- 1
Click the feedback button
The purple button in the bottom-right corner of any page.
- 2
Pick a category
Bug, Feature, UX, or Other.
- 3
Write your message
Describe the issue or idea. The current page URL is captured automatically for context.
- 4
Submit
Click "Send feedback" or press Cmd + Enter. Your feedback is stored and reviewed weekly.
Every Monday, all feedback from the past week is analyzed by AI to generate a prioritized improvement plan. Approved changes are turned into detailed implementation specs — keeping Devflair continuously improving based on real user input.
Plans & Pricing#
No lock-in. Cancel anytime. Export your data freely on every plan.
| Feature | Free $0 | Basic $5/mo | Premium $19/mo |
|---|---|---|---|
| Social platforms | 1 of 5 | All 5 + intent links | All 5 + intent links |
| Included AI model | BYOK only | Claude Haiku | Claude Sonnet |
| AI drafts per day | 15 | 100 | Unlimited |
| Publishing Wizard | ✓ | ✓ | ✓ |
| Content Repurposer | ✓ | ✓ | ✓ |
| Meme Generator | ✓ | ✓ | ✓ |
| Roadmaps | ✓ | Unlimited | Unlimited |
| Post scheduling | — | ✓ | ✓ |
| Diagram Studio | — | ✓ | ✓ |
| GitHub release drafts | — | ✓ | ✓ |
| Email template generator | — | ✓ | ✓ |
| Campaign Studio | — | — | ✓ |
| Video generation | — | — | ✓ |
| Engagement Inbox | ✓ | ✓ | ✓ |
| Import / Export | ✓ | ✓ | ✓ |
| Weekly recap & feedback | ✓ | ✓ | ✓ |
| Link enrichment | ✓ | ✓ | ✓ |
No credit card required · Cancel anytime
Keyboard Shortcuts#
All shortcuts work on the Compose page.