Overview
InsertContent is an AI-powered content generation platform that creates high-quality blog posts and automatically delivers them to your databases and websites. It uses Google Gemini AI with search grounding to ensure content is accurate and up-to-date.
AI Generation
Gemini-powered content with real-time search grounding for accuracy
Auto Delivery
Push to PostgreSQL, Supabase, Neon, or any database
Multi-Platform
WordPress, webhooks, and custom integrations
Quick Start
Create a Project
Set up your product/website details and configure AI settings
Add Topics
Queue topics for content generation manually or via API
Configure Delivery
Connect your PostgreSQL database or other delivery targets
Generate Content
AI creates and delivers your content automatically
Projects
Projects organize your content around a specific product, website, or brand. Each project has:
- Product Info - Name, URL, description for context
- Target Audience - Who you're writing for
- AI Settings - Model selection, quality thresholds
- Delivery Targets - Where content gets published
Managing Topics
Topics are the subjects for content generation. Add topics manually or via the API.
// Add a topic via API
POST /api/projects/{projectId}/topics
{
"title": "Best AI Writing Tools in 2026",
"keywords": ["ai writing", "content tools"],
"priority": "high"
}Content Generation
Content is generated using Google Gemini AI with search grounding for accuracy. Each piece of content includes:
- SEO-optimized title and meta description
- Structured content with headings
- Internal linking suggestions
- Quality score (0-100)
- Auto-approval based on quality threshold
Custom Prompts
Customize AI behavior with project-specific prompts for different content types:
- Blog Posts - Long-form educational content
- Product Reviews - Comparison and review articles
- How-To Guides - Step-by-step tutorials
- News Updates - Timely industry news
PostgreSQL Integration
Deliver content directly to any PostgreSQL database (Neon, Supabase, self-hosted).
Setup
- Go to Settings → Integrations → PostgreSQL
- Enter your connection string
- Select your target table
- Map content fields to your table columns
- Test the connection
Column Mapping
Map InsertContent fields to your database schema:
Content Field → Your Column ───────────────────────────────── title → post_title content → body_html slug → url_slug metaDescription → seo_description publishedAt → created_at
Example Table Schema
CREATE TABLE blog_posts ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), title VARCHAR(500) NOT NULL, slug VARCHAR(500) UNIQUE NOT NULL, content TEXT NOT NULL, meta_description TEXT, featured_image VARCHAR(2000), status VARCHAR(50) DEFAULT 'draft', created_at TIMESTAMPTZ DEFAULT NOW(), published_at TIMESTAMPTZ );
WordPress Integration
Publish content directly to WordPress using the REST API.
Setup
- Enable the WordPress REST API on your site
- Create an Application Password in WordPress
- Add your WordPress URL and credentials in Integrations
- Select post status (draft/publish) and categories
Required WordPress Settings
WordPress URL: https://your-site.com Username: your_username Application Password: xxxx xxxx xxxx xxxx Post Status: draft | publish Default Category: Blog
Frontend Integration Guide
Display your AI-generated content beautifully on any website. Choose the integration method that matches your technical comfort level.
Recommended for Non-Technical Users
If you're not comfortable with code, use WordPress Direct Publishing below. It requires zero coding — just connect and your content auto-publishes!
WordPress Direct Publishing
Easiest • 5 min setup
Content auto-publishes directly to your WordPress site. No coding, no copying — it just works.
WordPress Theme Customization
Custom styling • PHP knowledge helpful
Add a shortcode to display AI content with your theme's styling. Perfect for custom layouts.
function display_insertcontent_posts($atts) {
$atts = shortcode_atts(['limit' => 5], $atts);
$posts = get_posts([
'posts_per_page' => $atts['limit'],
'meta_key' => '_insertcontent_generated',
'meta_value' => 'true'
]);
$output = '<div class="ic-posts">';
foreach ($posts as $post) {
$output .= '<article class="ic-post">';
$output .= '<h2>' . esc_html($post->post_title) . '</h2>';
$output .= wp_kses_post($post->post_content);
$output .= '</article>';
}
return $output . '</div>';
}
add_shortcode('insertcontent', 'display_insertcontent_posts');Usage: Add [insertcontent limit="10"] to any page or post
PostgreSQL + Next.js / React
Full control • TypeScript ready
Query your PostgreSQL database directly for complete control over how content is displayed.
import { sql } from '@vercel/postgres';
export default async function BlogPage() {
const { rows } = await sql`
SELECT id, title, slug, content, meta_description
FROM blog_posts WHERE status = 'published'
ORDER BY created_at DESC LIMIT 20
`;
return (
<main className="max-w-4xl mx-auto py-12">
<h1 className="text-4xl font-bold mb-8">Blog</h1>
{rows.map(post => (
<article key={post.id} className="mb-8 p-6 border rounded-xl">
<a href={`/blog/${post.slug}`}>
<h2 className="text-2xl font-semibold">{post.title}</h2>
</a>
<p className="text-gray-600">{post.meta_description}</p>
</article>
))}
</main>
);
}Simple HTML / JavaScript
Any website • Copy & paste
Fetch content via API and display it on any static website. Works everywhere.
<div id="blog-posts"></div>
<script>
fetch('YOUR_API/api/projects/PROJECT_ID/posts', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
})
.then(res => res.json())
.then(({ posts }) => {
document.getElementById('blog-posts').innerHTML = posts.map(p => `
<article>
<h2>${p.title}</h2>
<p>${p.metaDescription}</p>
<div>${p.content}</div>
</article>
`).join('');
});
</script>Webflow / Squarespace / Wix
Via Zapier • No-code automation
Connect through Zapier to automatically create content in your favorite website builder.
Set up Zapier
Create a webhook trigger in Zapier
Connect InsertContent
Send content to your Zapier webhook
Add destination
Create content in Webflow/Squarespace/Wix
Webhooks
Send content to any endpoint via webhook for custom integrations.
// Webhook payload
POST https://your-endpoint.com/webhook
{
"event": "content.generated",
"data": {
"id": "uuid",
"title": "Article Title",
"content": "Full HTML content...",
"slug": "article-slug",
"metaDescription": "SEO description",
"qualityScore": 85,
"keywords": ["keyword1", "keyword2"]
}
}API Keys
Create API keys to access InsertContent programmatically.
Key Types
ic_user_*- User-level keys for creating projectsic_live_*- Project-level production keysic_test_*- Project-level test keys
Authentication
// Using Bearer token Authorization: Bearer ic_live_xxxxxxxxxxxx // Or using X-API-Key header X-API-Key: ic_live_xxxxxxxxxxxx
MCP Integration
Use InsertContent with Claude Desktop via the Model Context Protocol (MCP).
Claude Desktop Configuration
// claude_desktop_config.json
{
"mcpServers": {
"insertcontent": {
"command": "npx",
"args": ["insertcontent-mcp"],
"env": {
"INSERTCONTENT_API_KEY": "ic_user_xxxx"
}
}
}
}API Endpoints
Projects
GET /api/projects # List projects POST /api/projects # Create project GET /api/projects/:id # Get project PUT /api/projects/:id # Update project
Topics
GET /api/projects/:id/topics # List topics POST /api/projects/:id/topics # Add topic DELETE /api/projects/:id/topics/:topicId # Delete topic
Content
GET /api/projects/:id/posts # List posts GET /api/projects/:id/posts/:postId # Get post POST /api/projects/:id/posts/:postId/approve # Approve POST /api/projects/:id/posts/:postId/reject # Reject
Delivery
POST /api/projects/:id/delivery/postgres # Configure POST /api/projects/:id/delivery/postgres/test # Test connection