Converting Confluence to Markdown can mean several jobs: a one-time migration, an occasional download, or a GitHub repository that stays useful as the source changes. The right tool depends on what you need after the first export.
This comparison comes from Magnascale, the maker of Conf2Git. It compares documented workflows rather than hands-on performance results or an exhaustive market survey.
Choose around the job you need to do
| Tool | Documented strengths | Good fit | What your team still handles |
|---|---|---|---|
| Spenhouet Confluence Markdown Exporter | Open-source CLI; page, subtree, folder, and space exports; skips unchanged pages by default; Docker and CI workflows. | Custom processing, migrations, or destinations beyond GitHub. | Execution, credentials, scheduling, and any Git publication and cleanup logic you add. |
| Narva Markdown Exporter | Single-page, hierarchy, and space exports, with documented attachment and image handling. | Authors who need downloadable Markdown from Confluence. | Moving the export to its destination and reconciling later copies. |
| Atly Export to Markdown | Page and blog downloads, optional comments and HTML fallback, and space ZIP exports. | Portable downloads with export options. | Any recurring repository publication workflow beyond the described download. |
| Conf2Git | One-way GitHub mirror, managed-file reconciliation, manual runs, and daily, weekly, or monthly schedules. | A recurring Confluence Cloud-to-GitHub mirror on a dedicated branch. | Source quality, destination access, run review, and downstream tools. |
These workflows overlap. A CLI can run in hosted CI without a server you administer. Export apps may offer additional capabilities beyond the download workflow covered here. Check the specific product’s current documentation against your requirements.
Use a CLI when control over the workflow matters
Spenhouet’s exporter is a concrete option for teams that want to run exports inside their own tooling. Its documented command flow includes:
cme config edit auth.confluence
cme pages https://example.atlassian.net/wiki/spaces/ENG/pages/123/Guide
cme spaces https://example.atlassian.net/wiki/spaces/ENG
These examples assume installation and appropriate credentials. Follow the project’s authentication and output configuration instructions before running them.
A CLI lets you add custom transformations or publish to a destination you choose. Skipping unchanged pages can avoid unnecessary export work. To maintain a GitHub mirror, also decide where the job runs, how it authenticates, when it commits, and what happens if the export fails.
Check removal behavior carefully. A page missing from one response is not necessarily deleted. Your automation needs a deliberate policy for moves, lost access, and incomplete inventories before it removes repository files.
Use an export app when the deliverable is a download
Narva and Atly put Markdown exports within reach of people working in Confluence. An author can produce a file or archive to hand over, import, or inspect without creating a custom job.
That may be enough for an occasional snapshot or migration. If your destination is a maintained repository, someone or something must still place the files there and reconcile later exports. Evaluate that complete workflow rather than the download alone.
Confluence also has built-in space exports. Atlassian’s Cloud export guide lists PDF, HTML, CSV, and XML options; obtaining Markdown from those formats adds a conversion step.
Use scheduled sync when GitHub is the recurring destination
Conf2Git maintains a space-to-repository mapping with a dedicated non-default branch and folder. Authors continue editing in Confluence. After verifying the first mirror, you can enable a schedule instead of maintaining a custom export-and-commit job.
The documented reconciliation model updates files it can prove it owns, preserves unowned files, and creates no commit when the desired output is unchanged. Human changes to managed files may be replaced. Read the pipeline architecture article for examples of moves and failure handling.
Conf2Git requires Confluence Cloud, GitHub App access, and an active licence or evaluation. Its supported limits include 1,000 pages per mapping and run and 1,500 generated files per run, including images and the ownership manifest. Scheduled sync is periodic, with hourly schedule checks and no exact completion guarantee.
Conversion has a defined scope: supported referenced images can be mirrored, general attachments are excluded, and dynamic macros may degrade. The conversion guide describes those boundaries. Native output uses OKF Markdown with source metadata; the OKF article explains that format.
Compare the same sample pages
Before choosing, export representative documents through your candidates. Include code, internal links, a complex table, essential images, and third-party macros your team relies on.
- Read the result and check that the important meaning survives.
- Rename and move a page, repeat the export, and inspect paths and links.
- For recurring workflows, review failure reporting and the distinction between deletion and inaccessible content.
- For AI use, check the text your agent can actually read; an image or dynamic-report link may need separate handling.
Choose a CLI for custom processing and workflow control, a download-oriented app for portable files on demand, or managed sync for a recurring GitHub mirror. When that last workflow fits, follow the first-sync walkthrough and start a Conf2Git evaluation. Judge the actual output against your documents.