Frequently Asked Questions
Find answers to common questions about Multi-Domain AutoBlogger. Click on any question to expand the answer.
Installation & Setup
Minimum Requirements:
- Node.js 18.0.0 or higher
- PostgreSQL 12.0 or higher
- 512 MB RAM
- 1 GB disk space
Recommended:
- Node.js 20.x or higher
- PostgreSQL 15.x or higher
- 1 GB+ RAM
- 5+ GB disk space for content
Follow these steps:
- Clone or download the repository
- Run
npm installto install dependencies - Copy
.env.exampleto.envand fill in values - Run
npm run db:pushto setup the database - Run
npm run seedto create the admin user - Run
npm run devto start the development server
For detailed instructions, see the Installation Guide.
Multi-Domain AutoBlogger uses PostgreSQL. You have several options:
- Local Installation: Install PostgreSQL locally
- Neon (Recommended): Use Neon serverless PostgreSQL (free tier available)
- Vercel Postgres: Managed PostgreSQL for Vercel deployments
- Other Providers: Any PostgreSQL 12+ database works
Add your database URL to .env:
This error means the application can't connect to your database. Check:
- Your
DATABASE_URLenvironment variable is correct - PostgreSQL is running
- The database host is reachable
- Username and password are correct
- Firewall allows connections (if using remote database)
Test your connection with:
After running npm run seed, the default admin account is:
- Email: admin@example.com
- Password: Value of
ADMIN_PASSWORDin your .env file
Domain Management
A "domain" represents an independent blog site. Each domain has:
- Its own content (posts, categories, tags)
- Its own configuration and settings
- Its own theme and customization
- Its own plugin configuration
- Completely isolated data from other domains
You can run unlimited domains from a single installation, making this perfect for agencies or multi-brand operations.
- Login to the admin dashboard
- Go to "Domains" in the left menu
- Click "Add New Domain"
- Enter the domain name (e.g., blog1.com)
- Select a theme for the domain
- Configure SEO settings (optional)
- Click "Create Domain"
The domain is now ready to use. You can start creating content immediately.
The application is designed for multiple separate domains, each with independent content. To use multiple domain names for the same content:
- Configure DNS to point both domains to your server
- Use DNS rewrites or load balancer configuration
- The application handles domain routing automatically
- Go to Admin Dashboard → Domains
- Click the domain you want to customize
- Click "Edit Theme"
- Customize colors, fonts, and layout
- Preview your changes
- Click "Save" to apply the theme
Changes apply immediately to all pages using that domain.
Content Creation
- Go to Admin Dashboard → Posts
- Click "Create New Post"
- Enter the post title
- Write your content using the rich text editor
- Configure SEO (slug, meta description, etc.)
- Choose categories and tags
- Set publishing date (now or scheduled)
- Click "Publish" or "Schedule"
Yes! The TipTap editor supports Markdown shortcuts:
# Heading 1for H1,## Heading 2for H2, etc.**bold**for bold text*italic*or_italic_for italic- itemfor lists[link](https://...)for linksfor images
Yes! You can schedule posts to publish automatically:
- Create your post with all content
- Scroll to "Publishing Options"
- Select "Schedule for later"
- Choose the publication date and time
- Click "Schedule"
The post will be automatically published at the specified time.
You can import multiple posts at once using CSV, JSON, or Markdown:
- Go to Admin Dashboard → Content Plans
- Click "Upload Content Plan"
- Choose your file format (CSV, JSON, or Markdown)
- Upload your file
- Preview the imported content
- Click "Import"
See the installation guide for file format examples.
The application includes Claude AI integration for content generation:
- Set your
ANTHROPIC_API_KEYin .env - When creating a post, click "Generate with AI"
- Enter your content topic
- Choose tone and length preferences
- Click "Generate"
- Review and edit the generated content
AI & Content Generation
Claude API pricing is usage-based. Check Anthropic's pricing page for current rates. Generally:
- Claude Haiku (used here): ~$0.25 per 1M input tokens
- Average blog post: ~$0.01-0.05
- Free tier available for testing
Yes! When creating or editing a post:
- Go to the "FAQs" section
- Click "Generate FAQs with AI"
- The AI will generate Q&As based on your post content
- Edit or delete generated FAQs as needed
- Save your post
AI content generation uses asynchronous processing:
- Your request is queued immediately
- Generation happens in the background
- You can continue working while generating
- Check the job status to see progress
- Typically takes 10-30 seconds per post
Absolutely! AI-generated content is just a starting point:
- Edit any generated content freely
- Fact-check all generated information
- Adjust tone and style to match your brand
- Add your personal insights and experiences
SEO & Performance
When creating a post, optimize these SEO fields:
- Slug: URL-friendly post identifier
- Meta Description: 155-160 chars, shown in search results
- Featured Image: Used in social sharing
- Categories & Tags: Help with content organization
The platform automatically generates:
- Sitemaps for search engines
- JSON-LD structured data
- Open Graph tags for social sharing
- Canonical URLs
The platform includes features to help with indexing:
- Automatic sitemap generation at
/sitemap.xml - RSS feed at
/rss.xml - Robots.txt at
/robots.txt - Proper meta tags and structured data
To ensure indexing, submit your sitemap to Google Search Console.
The platform is optimized for speed:
- Homepage: <1 second (static cached)
- Blog posts: <2 seconds (pre-rendered)
- Admin: <3 seconds
Speed is achieved through:
- Next.js static site generation
- Image optimization
- CDN-friendly architecture
- Database query optimization
Integrations & Plugins
- Create a GA4 property in Google Analytics
- Get your Measurement ID (format: G-XXXXXXXXXX)
- Go to Admin Dashboard → Domains → Edit Domain
- Paste your GA4 Property ID
- Save changes
Google Analytics will now track all visitor activity on your blog.
- Sign up for Google AdSense and get approved
- Find your Publisher ID (format: pub-XXXXXXXXXXXXXXXX)
- Go to Admin Dashboard → Plugins → AdSense
- Enter your Publisher ID
- Configure ad placement (optional)
- Save settings
- Go to your GoHighLevel account settings
- Create an API key and get your Location ID
- Go to Admin Dashboard → Domains → Edit Domain
- Scroll to "GoHighLevel Integration"
- Paste your Location ID and API Key
- Save changes
Email capture forms will now send leads directly to your GoHighLevel CRM.
Yes! The plugin system is extensible. You can create custom plugins for:
- AI content generation (custom models)
- Marketing integrations (CRMs, email services)
- Analytics (custom tracking)
- Advertising (custom ad networks)
See the Plugin Development Guide for detailed instructions.
Troubleshooting
If you can't log in to the admin dashboard:
- Verify your database is running
- Check that the seed script ran:
npm run seed - Try the default credentials: admin@example.com
- Check that
NEXTAUTH_SECRETis set in .env - Clear browser cookies and try again
- Check browser console for error messages
If image uploads fail:
- Check the image file size (should be <10MB)
- Verify the image format (JPEG, PNG, WebP, GIF)
- Ensure write permissions on the server
- Check disk space availability
- Check browser console for specific error messages
Check these common issues:
- Status: Is the post published? (not in draft)
- Date: Is the publishing date in the past?
- Domain: Is the post assigned to the correct domain?
- Cache: Try clearing the browser cache
- Build: For production, ensure the build succeeded
Try rebuilding the site: npm run build
Another process is using port 3000. Solutions:
- Kill the process on port 3000
- Use a different port:
npm run dev -- -p 3001 - Wait a moment and try again
On macOS/Linux, find and kill the process:
kill -9 <PID>
This is usually a caching issue:
- Clear the browser cache (Ctrl+Shift+Delete)
- Hard refresh the page (Ctrl+Shift+R)
- For static content, trigger a rebuild:
npm run build - Check that all files were deployed correctly
In production, use ISR revalidation to update static content.
Deployment & Production
Recommended: Vercel (One-click deployment)
- Push code to GitHub
- Go to Vercel and import the project
- Configure environment variables
- Deploy with one click
Alternative: Self-hosted
- Set environment variables on your server
- Run
npm install - Run
npm run build - Run
npm run start - Use a reverse proxy (nginx) for HTTPS
On Vercel: Automatic HTTPS included
Self-hosted: Use Let's Encrypt
- Install Certbot:
sudo apt install certbot python3-certbot-nginx - Generate certificate:
sudo certbot certonly --standalone -d yourdomain.com - Configure nginx to use the certificate
- Set up auto-renewal:
sudo certbot renew --dry-run
Regular backups are essential. Methods depend on your database:
Neon (Recommended): Automatic daily backups included
Local PostgreSQL:
Restore from backup:
Getting Help
- Installation Guide - Step-by-step setup
- Customization Guide - Feature usage
- API Documentation - API endpoints
- Plugin Development - Custom plugins
- File Structure - Project organization
If you find a bug:
- Check if it's already reported
- Provide detailed steps to reproduce
- Include error messages and logs
- Specify your setup (Node version, OS, etc.)
- Contact support with this information
We'd love to hear your feature ideas! To request a feature:
- Describe what you want and why
- Provide use cases or examples
- Check if a plugin can solve it
- Submit your request to support