BlogNetwork Pro

Frequently Asked Questions

Frequently Asked Questions

Find answers to common questions about Multi-Domain AutoBlogger. Click on any question to expand the answer.

Installation & Setup

What are the system requirements?

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
How do I get started with the installation?

Follow these steps:

  1. Clone or download the repository
  2. Run npm install to install dependencies
  3. Copy .env.example to .env and fill in values
  4. Run npm run db:push to setup the database
  5. Run npm run seed to create the admin user
  6. Run npm run dev to start the development server

For detailed instructions, see the Installation Guide.

How do I set up my database?

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:

DATABASE_URL=postgresql://user:password@host:5432/database
I'm getting a "Database connection refused" error. What should I do?

This error means the application can't connect to your database. Check:

  • Your DATABASE_URL environment 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:

psql postgresql://user:password@host:5432/database
What's the default admin login?

After running npm run seed, the default admin account is:

  • Email: admin@example.com
  • Password: Value of ADMIN_PASSWORD in your .env file
⚠️ Important: Change the password immediately after first login. Default passwords should never be used in production.

Domain Management

What is a "domain" in this context?

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.

How do I add a new domain?
  1. Login to the admin dashboard
  2. Go to "Domains" in the left menu
  3. Click "Add New Domain"
  4. Enter the domain name (e.g., blog1.com)
  5. Select a theme for the domain
  6. Configure SEO settings (optional)
  7. Click "Create Domain"

The domain is now ready to use. You can start creating content immediately.

Can I use multiple domain names pointing to the same site?

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
💡 Note: If you want multiple domains for the same content, you'll need to configure your DNS and hosting to route them appropriately.
How do I customize a domain's theme?
  1. Go to Admin Dashboard → Domains
  2. Click the domain you want to customize
  3. Click "Edit Theme"
  4. Customize colors, fonts, and layout
  5. Preview your changes
  6. Click "Save" to apply the theme

Changes apply immediately to all pages using that domain.

Content Creation

How do I create a blog post?
  1. Go to Admin Dashboard → Posts
  2. Click "Create New Post"
  3. Enter the post title
  4. Write your content using the rich text editor
  5. Configure SEO (slug, meta description, etc.)
  6. Choose categories and tags
  7. Set publishing date (now or scheduled)
  8. Click "Publish" or "Schedule"
Can I use Markdown in the editor?

Yes! The TipTap editor supports Markdown shortcuts:

  • # Heading 1 for H1, ## Heading 2 for H2, etc.
  • **bold** for bold text
  • *italic* or _italic_ for italic
  • - item for lists
  • [link](https://...) for links
  • ![alt](url) for images
Can I schedule posts for future publication?

Yes! You can schedule posts to publish automatically:

  1. Create your post with all content
  2. Scroll to "Publishing Options"
  3. Select "Schedule for later"
  4. Choose the publication date and time
  5. Click "Schedule"

The post will be automatically published at the specified time.

How do I bulk import content?

You can import multiple posts at once using CSV, JSON, or Markdown:

  1. Go to Admin Dashboard → Content Plans
  2. Click "Upload Content Plan"
  3. Choose your file format (CSV, JSON, or Markdown)
  4. Upload your file
  5. Preview the imported content
  6. Click "Import"

See the installation guide for file format examples.

How do I generate content with AI?

The application includes Claude AI integration for content generation:

  1. Set your ANTHROPIC_API_KEY in .env
  2. When creating a post, click "Generate with AI"
  3. Enter your content topic
  4. Choose tone and length preferences
  5. Click "Generate"
  6. Review and edit the generated content
💡 Note: AI generation requires an Anthropic API key with available credits.

AI & Content Generation

How much does the Claude API cost?

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
Can I generate FAQs automatically?

Yes! When creating or editing a post:

  1. Go to the "FAQs" section
  2. Click "Generate FAQs with AI"
  3. The AI will generate Q&As based on your post content
  4. Edit or delete generated FAQs as needed
  5. Save your post
Why does the generation take a long time?

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
Can I edit AI-generated content?

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
⚠️ Important: Always review and verify AI-generated content for accuracy before publishing.

SEO & Performance

How do I optimize my posts for SEO?

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
Is the site automatically indexed by search engines?

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.

How fast are pages loaded?

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

How do I set up Google Analytics?
  1. Create a GA4 property in Google Analytics
  2. Get your Measurement ID (format: G-XXXXXXXXXX)
  3. Go to Admin Dashboard → Domains → Edit Domain
  4. Paste your GA4 Property ID
  5. Save changes

Google Analytics will now track all visitor activity on your blog.

How do I set up Google AdSense?
  1. Sign up for Google AdSense and get approved
  2. Find your Publisher ID (format: pub-XXXXXXXXXXXXXXXX)
  3. Go to Admin Dashboard → Plugins → AdSense
  4. Enter your Publisher ID
  5. Configure ad placement (optional)
  6. Save settings
💡 Note: AdSense approval typically takes 1-2 weeks. Ads won't show until your account is fully approved.
How do I integrate with GoHighLevel?
  1. Go to your GoHighLevel account settings
  2. Create an API key and get your Location ID
  3. Go to Admin Dashboard → Domains → Edit Domain
  4. Scroll to "GoHighLevel Integration"
  5. Paste your Location ID and API Key
  6. Save changes

Email capture forms will now send leads directly to your GoHighLevel CRM.

Can I create custom plugins?

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

Admin login is not working. What should I do?

If you can't log in to the admin dashboard:

  1. Verify your database is running
  2. Check that the seed script ran: npm run seed
  3. Try the default credentials: admin@example.com
  4. Check that NEXTAUTH_SECRET is set in .env
  5. Clear browser cookies and try again
  6. Check browser console for error messages
Images are not uploading. What's wrong?

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
💡 Tip: Images larger than 2MB should be compressed before uploading.
Posts are not showing on the public blog. Why?

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

I'm seeing "Port 3000 is already in use" error

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:

lsof -i :3000
kill -9 <PID>
My changes aren't showing up after deployment

This is usually a caching issue:

  1. Clear the browser cache (Ctrl+Shift+Delete)
  2. Hard refresh the page (Ctrl+Shift+R)
  3. For static content, trigger a rebuild: npm run build
  4. Check that all files were deployed correctly

In production, use ISR revalidation to update static content.

Deployment & Production

How do I deploy to production?

Recommended: Vercel (One-click deployment)

  1. Push code to GitHub
  2. Go to Vercel and import the project
  3. Configure environment variables
  4. Deploy with one click

Alternative: Self-hosted

  1. Set environment variables on your server
  2. Run npm install
  3. Run npm run build
  4. Run npm run start
  5. Use a reverse proxy (nginx) for HTTPS
How do I set up HTTPS/SSL?

On Vercel: Automatic HTTPS included

Self-hosted: Use Let's Encrypt

  1. Install Certbot: sudo apt install certbot python3-certbot-nginx
  2. Generate certificate: sudo certbot certonly --standalone -d yourdomain.com
  3. Configure nginx to use the certificate
  4. Set up auto-renewal: sudo certbot renew --dry-run
How do I backup my database?

Regular backups are essential. Methods depend on your database:

Neon (Recommended): Automatic daily backups included

Local PostgreSQL:

pg_dump postgresql://user:pass@host/db > backup.sql

Restore from backup:

psql postgresql://user:pass@host/db < backup.sql

Getting Help

Where can I find more documentation?
How do I report a bug?

If you find a bug:

  1. Check if it's already reported
  2. Provide detailed steps to reproduce
  3. Include error messages and logs
  4. Specify your setup (Node version, OS, etc.)
  5. Contact support with this information
How do I request a new feature?

We'd love to hear your feature ideas! To request a feature:

  1. Describe what you want and why
  2. Provide use cases or examples
  3. Check if a plugin can solve it
  4. Submit your request to support