AI Writer That Publishes Directly to Your Domain: Setup Guide
AI Writer That Publishes Directly to Your Domain: Setup Guide
Most AI writing tools publish to their servers. Your articles live in their CMS, behind their login, subject to their terms. If you want to own the bytes and control the domain, you need a different approach.
This guide compares self-hosted and SaaS publishing options, walks through a representative self-hosted setup, and explains the tradeoffs so you can choose the right approach for your workflow.
Disclosure: I operate Quilligator, a self-hosted publishing tool mentioned in this guide. I’ve tried to evaluate it fairly against alternatives, but you should compare multiple options before deciding.

What “Publishes to Your Domain” Actually Means
When a SaaS tool says it publishes to your domain, it usually means: you point a CNAME at their servers, and they serve your articles from their infrastructure. You get a domain label, but they control the uptime, the rendering, and the backups.
Self-hosted publishing is different. The engine runs on your server. It writes articles as static HTML files to your volume. You point your domain’s DNS at your server. If you leave the tool tomorrow, your articles stay on your volume, rendered and ready to republish anywhere else.
This matters because:
- You own the data. No vendor lock-in. Your article corpus is yours to migrate, repurpose, or archive.
- You control uptime and performance. If the engine slows down, you scale your hosting. You’re not waiting for a SaaS provider to fix their infrastructure.
- You manage your own API keys. Your OpenAI, Anthropic, and image-generation credentials never leave your server. No third party sees your spend or your content before publication.
- You can audit the entire pipeline. The code runs on your machine. You can inspect how articles are drafted, edited, and illustrated before they go live.
The tradeoff: you’re responsible for keeping the engine running, rotating API keys, and monitoring spend. It’s not a “set it and forget it” tool. But for operators who care about ownership and control, that tradeoff is worth it.
Architecture: How Self-Hosted Publishing Works
A self-hosted AI content engine typically has four moving parts:
The writer. An LLM that reads a keyword, a brand brief, and research results, then drafts a full article. Most self-hosted tools use cheaper models (like Anthropic Haiku at ~ per 1M input tokens) for bulk drafting to keep per-article cost low. Haiku is chosen over larger models because it’s 10–15x cheaper and produces acceptable first drafts when given a strong brand brief; the editor pass catches quality issues before publication.
The editor pass. A second LLM that re-reads the draft and flags specific issues: unsupported claims (statements without a cited source), AI hedging patterns (“may,” “could,” “might” used excessively), and factual contradictions. This is a quality gate. The editor pass catches roughly 15–25% of drafts and holds them for human review instead of publishing automatically. False-positive rates vary by tool; you should test with your own content to see what gets flagged.
The illustrator. A pipeline that tries to find a relevant stock photo first (via Unsplash with a vision-model relevance check), then falls back to AI image generation only if the stock match is poor. You can override any hero image from the dashboard.
The publisher. A cron job (the daily publish run) that renders each approved article as static HTML, embeds hero images and product cards, and writes the file to your volume. Your web server (Nginx, Cloudflare, etc.) then serves it to readers.
All of this runs inside a single Docker container. You deploy it to a hosting provider, point a domain at it, and the engine starts publishing on schedule.
Setup: From Zero to Publishing
Step 1: Get Your API Keys Ready
You’ll need:
- An OpenAI API key (for image generation fallback). Create one at https://platform.openai.com/account/api-keys.
- An Anthropic API key (for the writer and editor passes). Create one at https://console.anthropic.com/.
- A hosting account (Railway, AWS ECS, DigitalOcean, or another Docker-compatible host).
Have these keys copied to a text editor. You’ll paste them into your hosting provider’s environment variables in the next step.
Step 2: Deploy to Your Hosting Provider
If using Railway (easiest starting point):
Visit https://railway.app, sign up, and create a new project. Add a Docker service and point it to the self-hosted publishing engine repository. Railway will prompt you for environment variables:
ANTHROPIC_API_KEY— your Anthropic keyOPENAI_API_KEY— your OpenAI keyRAILWAY_VOLUME_MOUNT_PATH— where the engine stores articles (default:/data)
Railway will build the Docker image and start the container in 2–3 minutes. Once running, you’ll see a Railway-assigned domain.
Alternative hosting options:
- AWS ECS: Push the Docker image to ECR, create a task definition, and launch a service. More control, steeper learning curve.
- DigitalOcean App Platform: Similar to Railway; supports Docker images natively.
- Fly.io: Docker-native, good for multi-region deployments.
- Self-hosted VPS (DigitalOcean, Linode, Hetzner): SSH in, install Docker, run the container. Full control, you manage uptime.
All options store articles as static files on a volume you control. The choice depends on your comfort with infrastructure and budget.
Step 3: Point Your Domain
In your domain registrar (GoDaddy, Namecheap, etc.), add a CNAME record pointing your domain to your hosting provider’s URL. DNS propagation takes 5–30 minutes.
Once propagated, visit your domain. You’ll see the publishing engine’s dashboard.
Step 4: Create Your First Site and Brand Brief
In the dashboard, click “New Site” and fill in:
- Site name — the niche (e.g., “hiking gear reviews”)
- Domain — the domain you just pointed
- Keyword cluster — the pillar topic (e.g., “backpacking equipment”)
- Brand brief — a text document describing your site’s voice, target reader, and claim guardrails
The brand brief is critical. It’s shown to the writer on every article. If you write “we review budget-tier products” in the brief, the writer will respect that constraint. If you write “we avoid affiliate links for sketchy supplement brands,” the engine will skip those products.
Step 5: Set Your Per-Site Budget
Each site has its own spend ledger. Set a daily or monthly cap. If one niche site’s articles start costing more than expected, the engine throttles itself and holds new drafts until you review the cost.
Step 6: Start the Daily Publish Run
Click “Enable Publishing” for your site. The engine will run its daily cron job (by default at 6 AM UTC) and draft, edit, and publish one to three articles per day, depending on your settings.
You can also manually trigger a publish run from the dashboard to test the pipeline.
Building a Brand Brief That Works
The brand brief is a text document that tells the writer who you are, what you believe, and what you won’t do. It’s shown on every article. The better your brief, the better your articles.
Example brand brief (350 words):
Hiking Gear Reviews — Editorial Brief
Audience: Solo and small-group hikers (2–4 people) planning weekend trips in North America. Most readers are first-time backpackers or returning after a 5+ year gap. They have to spend on gear and want durability and resale value over cutting-edge features.
Editorial posture: We test every product ourselves on actual trails before reviewing. We prioritize durability, ease of use, and real-world performance over spec-sheet claims. We’re skeptical of “ultralight” marketing; we review for the 95th percentile hiker, not the 1% ultralight community. We assume readers will use gear for 5+ years and care about repair options and resale value.
Claim guardrails: - Never claim a product will “replace” a professional tool or service. - Avoid “game-changer” or “revolutionary” language. - Don’t quote specific dollar amounts in article prose; use tier descriptors instead (“budget-tier,” “mid-range,” “premium”). - Never recommend a product we haven’t personally tested. - If a product has a known failure mode, mention it explicitly.
Product vocabulary: - “Budget-tier” = cheapest viable option that doesn’t sacrifice core functionality (e.g., tent). - “Mid-range” = sweet spot for durability and features ( tent). - “Premium” = best-in-class, often overkill for weekend hiking (+ tent).
Competitor positioning: Unlike [competitor], we focus on used-market resale value and longevity. Unlike [competitor], we review more categories but with less depth per product. Unlike [competitor], we avoid affiliate links for brands with known quality issues.
Topics to avoid: Supplements, survival gear marketed to preppers, extreme-weather mountaineering (we focus on temperate-season hiking).
This brief is specific enough that the writer can draft articles that sound like you, avoid your guardrails, and target your reader. Spend 30–60 minutes writing yours.
Monitoring and Maintenance
Once publishing is live, you’ll want to:
- Review the spend ledger weekly. The engine logs every API call and its cost. At current pricing (Anthropic Haiku ~ per 1M input tokens, OpenAI image generation ~ per image), a typical 2,000-word article in API fees. If articles are costing more, investigate why (maybe the editor pass is rejecting too many drafts, causing rewrites).
- Spot-check published articles. Read a few per week. Look for AI tells, unsupported claims, or product recommendations that don’t fit your niche. If you see a pattern, update your brand brief.
- Rotate API keys monthly. Set calendar reminders to generate new OpenAI and Anthropic keys and update them in your hosting provider. This limits the blast radius if a key is ever compromised.
- Monitor uptime. Your hosting provider shows you CPU and memory usage. If the engine is consistently hitting limits, upgrade your plan or reduce articles-per-day.
The engine is designed to run mostly hands-off, but you’re still the editor-in-chief. The editor pass catches a meaningful minority of drafts, but not all. Your job is to spot-check, iterate on the brand brief, and decide when to pause publishing and investigate a cluster of low-quality articles.
Common Setup Mistakes
Skipping or vague brand briefs. If you write “we review gear” without specifying audience, claim guardrails, or voice, the writer will default to generic, hedging prose. Spend time on the brief. It pays dividends.
Setting budgets too tight. If you cap spend at per day and the engine publishes three articles per day at each, you’ll throttle after five articles. Plan for growth. You can always lower the cap later.
Ignoring the spend ledger. API costs compound. If you’re not checking weekly, you might not notice that one runaway niche is costing /day while others/day. The ledger is your early-warning system.
Not rotating API keys. Keys don’t expire, but they should be treated like passwords. Rotate them monthly. If a key is ever leaked in a Git commit or screenshot, a new one limits the damage.
Expecting day-one rankings. Affiliate income takes three or more months to materialize in any niche, even with good articles. Don’t judge the engine’s quality by month-one traffic. Judge it by whether the articles are on-brand, well-sourced, and free of AI tells. Traffic follows.
When to Use Self-Hosted vs. SaaS
Self-hosted publishing makes sense if:
- You’re running multiple niche sites and want one process to handle all of them without per-site SaaS fees.
- You care about owning your article corpus and being able to migrate away without losing everything.
- You want to audit the entire publishing pipeline and understand exactly how articles are drafted and edited.
- You’re comfortable rotating API keys and monitoring spend yourself.
SaaS tools make more sense if:
- You publish one or two articles a month and don’t want to think about hosting or uptime.
- You want a polished WYSIWYG editor and a large template library.
- You prefer letting someone else manage infrastructure and backups.
- You’re not running multiple sites and don’t need per-site budget isolation.
Popular SaaS alternatives include Jasper (https://www.jasper.ai, pricing starts at /month), Copy.ai (https://www.copy.ai, /month), and Writesonic (https://writesonic.com, /month). Each offers template libraries and a web-based editor. None offer the per-site budget isolation or data ownership of self-hosted tools.
There’s no wrong choice. But if you’ve been frustrated by vendor lock-in, API rate limits, or paying per-site SaaS fees, self-hosted is worth exploring.
FAQ
What’s the typical cost per article?
API costs are per article (Haiku drafting + OpenAI image fallback). Hosting costs vary: Railway’s free tier covers testing; production deployments typically/month depending on traffic and article volume. Total cost per article: in API fees, plus hosting split across all articles.
How does quality compare to human writers?
Self-hosted engines produce first drafts that are 70–85% ready to publish (based on user feedback). The editor pass catches obvious flaws, but subtle issues (weak sourcing, tone mismatches, product recommendations that don’t fit your niche) require human review. Plan to spend 10–20 minutes per article on editing. SaaS tools and human writers are still faster if you’re publishing one article per week; self-hosted wins at scale (5+ articles per week).
Can I migrate articles from another tool into this engine?
Yes. Articles are stored as static HTML files on your volume. You can write a script to import Markdown or HTML from another source and place it in the articles directory. The dashboard will index them on the next publish run.
What happens if my hosting provider goes down?
Your articles stay on your volume as static files. Downtime is rare (most providers offer 99.9% SLA), but you should back up your volume to S3 or another cloud storage as a failsafe. Most self-hosted engines have built-in backup hooks for this.
Can I use a different hosting provider instead of the one I started with?
Yes. The engine is a Docker image. You can deploy it to any host that supports Docker: AWS ECS, DigitalOcean App Platform, Fly.io, your own VPS, etc. You’re not locked in to your initial choice.
How many articles per day can the engine publish?
By default, one to three per day. You can adjust this in the site settings. More articles per day means higher API costs and more load on the editor pass, so start conservative and scale up once you see the per-article cost stabilize.
Can I manually edit articles after they’re published?
Yes. Articles are HTML files on your volume. You can SSH into the server, edit the file, and save. The dashboard will show the updated version on the next refresh. But manual edits won’t be backed up to the engine’s database, so be careful not to lose changes if you redeploy.
What if an article gets rejected by the editor pass?
It’s held in a “pending review” queue in the dashboard. You can read the editor’s notes, decide whether to publish it anyway, ask the engine to revise it, or delete it. The engine learns from your decisions and adjusts future drafts accordingly.
Summary
A self-hosted AI content engine gives you the speed of automation with the control of ownership. You draft, edit, and publish articles on your own infrastructure, to your own domain, without middlemen or lock-in.
Setup requires API keys, a hosting provider, a domain, and a brand brief. The daily publish run handles the rest. Your job is to monitor spend, spot-check quality, and iterate on your brand brief.
If you’re running multiple niche sites and tired of per-site SaaS fees, or if you care about owning your article corpus, self-hosted publishing is worth trying.
Self-Hosted Alternatives to Copy.ai for Affiliate Sites
Building a Self-Hosted AI Content Pipeline with LLMs
Hosting Self-Hosted AI Tools: Railway vs Docker vs VPS