This is the comprehensive documentation website for EmailEngine, built with Docusaurus 3.9.
This documentation site includes:
- Getting Started Guide - Introduction and quick start guides
- Installation Instructions - Multiple deployment options
- Configuration Documentation - Configuration Reference
- Usage Guides - How to use EmailEngine features
- API Reference - Auto-generated from OpenAPI specification (74 endpoints)
- Integration Guides - Gmail, Outlook, and other providers
- Blog - 49+ tutorials, use cases, and updates
emailengine-docu/
├── docs/ # Documentation content
│ ├── getting-started/ # Introduction and overview
│ ├── installation/ # Installation guides
│ ├── configuration/ # Configuration options
│ ├── usage/ # Feature guides
│ ├── integrations/ # Provider integrations
│ ├── troubleshooting/ # Common issues
│ ├── support/ # Support and legal
│ └── api/ # Auto-generated API docs (74 endpoints)
├── blog/ # Blog posts (49+ articles)
├── sources/ # Source content
│ ├── swagger.json # OpenAPI specification
│ ├── openapi/ # Split OpenAPI files
│ ├── website/ # Original HTML docs
│ └── blog/ # Original blog posts
├── src/ # React components
├── static/ # Static assets
├── docusaurus.config.ts # Site configuration
└── sidebars.ts # Sidebar configuration
npm installStart the development server:
npm startThe site will be available at http://localhost:3000/
Features in development mode:
- Hot reload for instant preview
- Fast refresh
- Error overlay
- Live editing
Build the static site for production:
npm run buildThe build automatically:
- Downloads the latest OpenAPI spec from https://emailengine.dev/swagger.json
- Updates
sources/swagger.json - Builds the static site
The build output will be in the build/ directory.
Test the production build locally:
npm run serveTo update the OpenAPI specification without building:
npm run update-swaggerThis downloads the latest swagger.json from EmailEngine production.
The API documentation is automatically generated from the OpenAPI specification using docusaurus-plugin-openapi-docs.
# Clean existing API docs
npm run docusaurus clean-api-docs emailengine
# Generate fresh API docs
npm run docusaurus gen-api-docs emailengine- Source:
sources/swagger.json - Output:
docs/api/ - Endpoints: 74 API endpoints organized by 17 categories
- Categories: Account, Mailbox, Message, Submit, Outbox, Delivery Test, Access Tokens, Settings, Templates, Logs, Stats, License, Webhooks, OAuth2 Applications, SMTP Gateway, Blocklists, Multi Message Actions
- Getting Started - Introduction to EmailEngine
- Installation - Installation and deployment guides
- Configuration - Configuration options and settings
- Usage Guide - Feature guides (webhooks, sending, authentication, etc.)
- Integrations - Gmail, Outlook, MS365 integrations
- Troubleshooting - Common issues and solutions
- Support & Legal - Support information and privacy policy
- API Reference - Complete API documentation (separate sidebar)
49+ articles covering tutorials, use cases, integration guides, and best practices.
Authors are defined in blog/authors.yml:
- andris - Andris Reinman (Creator of EmailEngine)
- emailengine - EmailEngine Team
The site can be deployed to any static hosting provider:
npm install -g vercel
vercel --prodnpm install -g netlify-cli
netlify deploy --prod --dir=buildGIT_USER=<username> npm run deploynpm run build
# Copy build/ directory to your web server- Create a new
.mdfile in the appropriatedocs/subdirectory - Add frontmatter:
--- title: Your Page Title sidebar_position: 10 ---
- Preview with
npm start - Build to verify:
npm run build
- Create a file in
blog/with format:YYYY-MM-DD-slug.md - Add frontmatter:
--- title: Post Title date: 2025-10-13 authors: [andris] tags: [EmailEngine, Tutorial] description: Brief description ---
- Write content below frontmatter
Edit docusaurus.config.ts for site configuration:
- Title, tagline, URL
- Navigation items
- Footer links
- Theme configuration
- Search configuration (Algolia)
Edit src/css/custom.css for custom styles.
Customize React components in src/components/:
HomepageFeatures/- Landing page features- Additional components can be swizzled from the theme
If build fails:
- Clear cache:
npm run clear - Reinstall dependencies:
rm -rf node_modules && npm install - Check for syntax errors in markdown files
- Ensure all referenced images exist
- Check port 3000 is not in use
- Clear cache:
rm -rf .docusaurus - Restart:
npm start
- Validate OpenAPI spec:
npx swagger-cli validate sources/swagger.json - Regenerate API docs (see commands above)
npm start- Start development servernpm run build- Build production site (auto-updates swagger.json)npm run serve- Serve production build locallynpm run clear- Clear cachenpm run update-swagger- Download latest OpenAPI spec from productionnpm run swizzle- Customize theme componentsnpm run deploy- Deploy to GitHub Pages
The following blog posts were moved to blog-backup/ due to MDX parsing issues:
2023-03-10-packaging-and-selling-a-node-js-app.md2025-03-27-data-compliance.md2023-03-14-making-email-html-webpage-compatible-with-emailengine.md2024-02-27-how-i-turned-my-open-source-project-into.md2022-10-12-tracking-bounces.md2022-05-28-mining-email-data-for-fun-and-profit.md
These can be fixed by escaping JSX-like syntax or converting to proper fenced code blocks.
Some blog posts reference images with __GHOST_URL__ placeholders. These should be:
- Downloaded from the original Ghost blog
- Placed in
static/img/blog/ - Referenced with proper paths in the markdown
@docusaurus/core: ^3.9.1@docusaurus/preset-classic: ^3.9.1react: ^19.2.0react-dom: ^19.2.0
docusaurus-plugin-openapi-docs: ^4.5.1docusaurus-theme-openapi-docs: ^4.5.1
jsdom: ^25.0.1turndown: ^7.2.0js-yaml: ^4.1.0
Copyright © 2025 Postal Systems OÜ
- Documentation: https://emailengine.app
- GitHub: https://github.com/postalsys/emailengine
- License: https://postalsys.com/plans
Built with Docusaurus 3.9.1