cd /news/ai-tools/ai-content-generation-the-automated-… · home › topics › ai-tools › article
[ARTICLE · art-152431] src=dev.to ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

AI content generation: the automated blog draft feature

DoAide Pulse has added a "Create from documents" feature that lets indie developers upload a Markdown or plain-text file, optionally supply their own LLM API key, and queue a background generation job that produces a publishable blog draft. The FastAPI endpoint stores the request in a drafts table and hands off to a Celery task that calls the LLM and marks the draft ready, after which it can be published via the dev.to API. The platform says generated drafts pass automatic SEO preflight checks and reuse the same stack as its scheduling, publishing, and analytics.

by read2 min views1 publishedOct 18, 2026

DoAide Pulse gives indie developers a way to turn project documentation into publishable content without writing a line of copy. The Create from documents feature is the core of that promise. It lets a developer upload a Markdown or plain‑text file, optionally supply an LLM API key, and then queues a generation job that produces a ready‑to‑publish draft.

Writing marketing copy for a side project is a recurring pain point. A developer spends hours turning a README into a blog post, then re‑writes for social. The process is manual, error‑prone, and hard to schedule. On top of that, many developers use a custom LLM or a hosted model; the platform must respect that choice instead of forcing a single provider.

The feature is built on a stack that mirrors the rest of DoAide Pulse:

llm_key field. The request is authenticated via a JWT issued by the dashboard.drafts table with columns for project_id, source_path, llm_provider, llm_key_hash, and status.

from fastapi import APIRouter, File, Form, UploadFile, Depends
from sqlalchemy.orm import Session
from app.db import get_db
from app.models import Draft

router = APIRouter()

@router.post("/drafts/", status_code=202)
async def create_draft(
    file: UploadFile = File(...),
    llm_key: str = Form(None),
    db: Session = Depends(get_db),
    user: User = Depends(get_current_user),
):
    content = await file.read()
    draft = Draft(
        project_id=user.project_id,
        source_path=file.filename,
        llm_provider="custom",
        llm_key_hash=hash_key(llm_key),
        status="queued",
    )
    db.add(draft)
    db.commit()
    celery_app.send_task("tasks.generate_draft", args=[draft.id])
    return {"detail": "Draft queued for generation"}

This is where marketing automation pays off in practice.

from celery import shared_task
from app.db import get_db
from app.models import Draft
from app.llm import generate_from_docs

@shared_task
def generate_draft(draft_id: int):
    db = get_db()
    draft = db.query(Draft).filter(Draft.id == draft_id).one()
    llm_key = decrypt_key(draft.llm_key_hash)
    result = generate_from_docs(draft.source_path, llm_key)
    draft.generated_content = result
    draft.status = "ready"
    db.commit()

Getting marketing automation right early saves rework later.

The entire flow takes a few seconds for the API call, a few minutes for generation (depending on the LLM), and then instant posting. No manual copy‑paste or external tooling is required. Good marketing automation keeps the rest of the workflow predictable.

CHECK constraint to ensure devto Python package (or raw requests) with OAuth scopes for publishing. The commit log shows recent fixes that directly benefit this feature: automatic SEO preflight fixes, dashboard bug patches, and analytics pipeline health checks. These improvements mean that every generated draft is already SEO‑ready and that the UI remains stable even under load. Treat marketing automation as a habit rather than a one-off task.

By turning raw documentation into polished blog posts, the Create from documents feature removes the friction that typically deters indie developers from marketing their work. It leverages the same core stack that powers DoAide Pulse’s scheduling, publishing, and analytics, ensuring a consistent developer experience across the platform.

── more in #ai-tools 4 stories · sorted by recency
── more on @doaide pulse 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/ai-content-generatio…] indexed:0 read:2min 2026-10-18 · —