Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node_modules
dist
.astro
.git
.env*
.vercel
24 changes: 24 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Docs
on:
pull_request:
push:
branches: [main, docs/self-hosted]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
cache: npm
- run: npm ci
- run: npm run check
- run: npm run build
- run: npm run verify
- uses: actions/upload-artifact@v4
with:
name: docs-static-site
path: dist
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
node_modules/
dist/
.astro/
.DS_Store
.vercel/
output/
.playwright-cli/
.env
.env.*
!.env.example
12 changes: 12 additions & 0 deletions CONTENT-REVIEW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Content review

## 2026-09-18: signup and billing

Reviewed against `innflow-ai/innflow` origin/main commit `7c55d9e58e9927b9f728a7bdf18054a6a007d7b4` and the public https://innflow.ai/pricing page.

- `src/features/auth/components/register-form.tsx` and `auth-primitives.tsx`: signup uses email verification codes and Google; removed the GitHub signup claim and linked directly to `/signup`.
- `src/config/pricing-tiers.ts`: current paid plans are Pro ($19.99/month, 10,000 credits) and Business ($199.99/month, 140,000 credits). Annual commitments are billed monthly at $16.99/$169.99. The public pricing page agrees.
- Removed obsolete Basic plan sizes and associated seat counts. Current entitlement limits are in `src/features/subscriptions/lib/subscription-limits.ts`.
- Free allowance discrepancy remains unresolved: latest origin/main specifies 500 credits, while the public pricing page advertises 1,200. Docs refer readers to their account allowance instead of choosing an unverified live value. Removed the old $5 and 400-credit claims.

This is a focused review, not an accuracy audit of all documentation. The custom domain was transferred to the replacement on 2026-09-18; Mintlify now tracks the preserved archive/mintlify branch.
13 changes: 13 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM node:24-alpine AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
ARG SITE_URL=https://docs.innflow.ai
ENV SITE_URL=$SITE_URL
RUN npm run build && npm run verify

FROM nginxinc/nginx-unprivileged:stable-alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 8080
49 changes: 35 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,54 @@
# Innflow Docs

This repository contains the public documentation site for Innflow, built with Mintlify.
Innflow's documentation, built with Astro and Starlight. The site produces static HTML, CSS, JavaScript, fonts, and a Pagefind search index. It runs without a Mintlify subscription or a hosted search service.

## Local Development

Install the Mintlify CLI:
Use Node.js 24 LTS and npm:

```bash
npm i -g mint
npm ci
npm run dev
```

Preview the docs from this directory:
Open http://localhost:4321. Edit pages in `src/content/docs/` and sidebar groups in `navigation.json`. The original 37 MDX pages retain their public paths. The homepage is `/`, with `/index` redirected there. The initial migration preserved product prose; subsequent content reviews are recorded in `CONTENT-REVIEW.md`.

Validate and preview the production build:

```bash
mint dev
npm run check
npm run build
npm run verify
npm run preview
```

The local preview runs at `http://localhost:3000`.
`verify` checks every content page, navigation entry, local asset/link, search index, and the 404 output. GitHub Actions builds and uploads `dist/` on pull requests and pushes to main.

## Publishing

Mintlify is connected to this GitHub repository. Updates are deployed automatically after changes are pushed to the default branch.
Publish `dist/` to a static host. Build command: `npm run build && npm run verify`. Output directory: `dist`. Set `SITE_URL` at build time if the canonical hostname differs from `https://docs.innflow.ai`.

### Run on your own server

```bash
docker compose up -d --build
```

The unprivileged Nginx container serves the site on `127.0.0.1:8080`. Put the server's HTTPS reverse proxy in front of that address. It must preserve directory routes and return the provided 404 page with HTTP 404 for unknown paths.

### Production deployment

https://docs.innflow.ai is served by the `flowlabs-inc/innflow-docs` Vercel project. GitHub pushes to `main` publish production; pull requests receive previews. Edit `src/content/docs/`, open a pull request, and merge after the build checks pass.

The custom domain was released from Mintlify on 2026-09-18 and its CNAME now points to `bbc5a1816ac40fb3.vercel-dns-016.com.`. The alternate address is https://innflow-docs.vercel.app.

The previous Mintlify source is preserved on `archive/mintlify` at commit `4afb04a83863782c328882501e15654dc56ff338`. Mintlify tracks that archive branch instead of main. Its account and subscription were not deleted or cancelled. Rolling back the hostname requires releasing it from this Vercel project, attaching it in Mintlify, and restoring Mintlify's DNS target; changing DNS alone is insufficient.

## Structure

- `docs.json` controls navigation, theme, logos, footer links, and global anchors.
- `index.mdx` is the documentation homepage.
- `quickstart.mdx` is the first-run guide.
- `essentials/` covers workflow concepts.
- `tools/` covers workflow action nodes.
- `features/` covers product surfaces such as credentials, billing, teams, tables, and Copilot.
- `api-reference/` contains API documentation.
- `src/content/docs/` contains the MDX documentation.
- `navigation.json` controls the sidebar.
- `src/components/` supports the existing cards, columns, steps, and callouts.
- `src/styles/brand.css` and `src/assets/` contain brand styles and canonical Innflow logos.
- `public/` contains images and the favicon.
- `docs.json` retains the previous Mintlify configuration for migration reference; it does not drive the new site.
29 changes: 29 additions & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
import { readFileSync } from 'node:fs';

const navigation = JSON.parse(readFileSync(new URL('./navigation.json', import.meta.url), 'utf8'));
const editBranch = process.env.VERCEL_GIT_COMMIT_REF || 'main';

export default defineConfig({
site: process.env.SITE_URL || 'https://docs.innflow.ai',
redirects: { '/index': '/' },
integrations: [starlight({
title: 'Innflow Docs',
description: 'Build, connect, and run your workflows with Innflow.',
logo: { light: './src/assets/logo-light.svg', dark: './src/assets/logo-dark.svg', replacesTitle: true },
favicon: '/favicon.svg',
customCss: ['./src/styles/brand.css'],
social: [{ icon: 'github', label: 'GitHub', href: 'https://github.com/innflow-ai/docs' }],
editLink: { baseUrl: `https://github.com/innflow-ai/docs/edit/${editBranch}/` },
credits: false,
sidebar: navigation.tabs.map(tab => ({
label: tab.tab,
items: tab.groups.map(group => ({
label: group.group,
collapsed: !['Getting Started', 'Essentials', 'API Documentation'].includes(group.group),
items: group.pages.map(slug => ({ slug: slug === 'index' ? '' : slug })),
})),
})),
})],
});
6 changes: 6 additions & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
services:
docs:
build: .
ports:
- "127.0.0.1:8080:8080"
restart: unless-stopped
100 changes: 100 additions & 0 deletions navigation.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
{
"tabs": [
{
"tab": "Guides",
"groups": [
{
"group": "Getting Started",
"pages": [
"index",
"quickstart"
]
},
{
"group": "Essentials",
"pages": [
"essentials/workflows",
"essentials/nodes",
"essentials/variables",
"essentials/integrations"
]
},
{
"group": "Triggers",
"pages": [
"triggers"
]
},
{
"group": "Action Nodes",
"pages": [
"tools/ai",
"tools/browser-automation",
"tools/communication",
"tools/forms",
"tools/google-suite",
"tools/microsoft",
"tools/crm-sales",
"tools/project-management",
"tools/search-data",
"tools/storage-commerce",
"tools/social-publishing",
"tools/agents-protocols",
"tools/logic-utility"
]
},
{
"group": "Features",
"pages": [
"features/copilot",
"features/assistant",
"features/knowledge-base",
"features/tables",
"features/files",
"features/scheduled-tasks",
"features/executions-inbox",
"features/templates",
"features/teams"
]
},
{
"group": "Settings",
"pages": [
"features/settings",
"features/credentials",
"features/environment-variables",
"features/advanced-settings",
"features/api-keys",
"features/billing"
]
}
]
},
{
"tab": "API Reference",
"groups": [
{
"group": "API Documentation",
"pages": [
"api-reference/introduction",
"api-reference/cli"
]
}
]
}
],
"global": {
"anchors": [
{
"anchor": "App",
"href": "https://innflow.ai",
"icon": "arrow-up-right-from-square"
},
{
"anchor": "GitHub",
"href": "https://github.com/innflow-ai/innflow",
"icon": "github"
}
]
}
}
11 changes: 11 additions & 0 deletions nginx.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
server {
listen 8080;
server_name _;
root /usr/share/nginx/html;
index index.html;
error_page 404 /404.html;
add_header X-Content-Type-Options nosniff always;
add_header Referrer-Policy strict-origin-when-cross-origin always;
location / { try_files $uri $uri/ =404; }
location /_astro/ { expires 1y; add_header Cache-Control "public, immutable"; }
}
Loading
Loading