Skip to main content

Overview

Argument Cartographer provides powerful export capabilities, allowing you to save and share your analyses in multiple formats. Whether you need a high-resolution image for a presentation, a vector graphic for editing, or raw JSON data for programmatic use, we’ve got you covered.
Exports preserve the exact visual state of your current view mode - what you see is what you export.

Export Formats

PNG

Raster image format
  • Best for: Presentations, social media, documents
  • Resolution: 1x, 2x, or 3x
  • File size: Medium (500KB - 2MB)

SVG

Vector graphics format
  • Best for: Design tools, infinite scaling
  • Resolution: Infinite (vector)
  • File size: Small (50-200KB)

JSON

Raw data format
  • Best for: Developers, data analysis
  • Resolution: N/A (data only)
  • File size: Tiny (10-50KB)

Opening the Export Modal

1

Complete Analysis

Ensure your analysis has fully generated and you’ve selected your preferred visualization mode
2

Click Export Button

Find the Export button (download icon) in the analysis toolbar
3

Configure Options

Export modal opens with format and style options
<AnalysisToolbar>
  {/* Other buttons */}
  <Button onClick={() => setExportModalOpen(true)}>
    <Download className="h-4 w-4 mr-2" />
    Export
  </Button>
</AnalysisToolbar>

PNG Export

Raster image format with configurable resolution.

Resolution Options

Use case: Web sharing, email attachments, quick previewsDimensions: Native browser resolution (typically 1920x1080)File size: ~500KBPros: Fast generation, small fileCons: May look pixelated on high-DPI screens

Color Mode

Choose theme for exported image:
  • Light Mode: White/cream background, dark text
    • Best for: Printing, light-themed presentations
    • Background: hsl(40, 50%, 98%)
  • Dark Mode: Dark slate background, light text
    • Best for: Screens, modern presentations
    • Background: hsl(217, 14%, 10%)
Transparent Background: Uncheck “Include Background” to export with transparent background (PNG only). Perfect for overlaying on custom backgrounds.

Export Process

import * as htmlToImage from 'html-to-image';

const exportToPNG = async (element: HTMLElement, options) => {
  const dataUrl = await htmlToImage.toPng(element, {
    pixelRatio: options.resolution, // 1, 2, or 3
    backgroundColor: options.includeBackground 
      ? (options.theme === 'dark' ? 'hsl(217, 14%, 10%)' : 'hsl(40, 50%, 98%)')
      : 'transparent',
    style: {
      // Force theme colors
      backgroundColor: options.theme === 'dark' ? '...' : '...',
      color: options.theme === 'dark' ? '...' : '...',
    },
  });
  
  // Download
  const link = document.createElement('a');
  link.download = 'argument-atlas-export.png';
  link.href = dataUrl;
  link.click();
};

SVG Export

Vector format for infinite scalability.

Advantages of SVG

Infinite Scaling

Zoom in forever without pixelation - perfect for large displays or print

Small File Size

Text-based format compresses well, typically 50-200KB

Editable

Open in Adobe Illustrator, Figma, Inkscape to modify

Web Native

Can be embedded directly in HTML with CSS styling

When to Use SVG

Scenario: You want to modify the visualization in a design toolWorkflow:
  1. Export as SVG
  2. Open in Figma/Illustrator
  3. Customize colors, fonts, layout
  4. Export final version as PNG/PDF

Limitations

SVG Export Limitations:
  • Fonts may not embed due to browser CORS restrictions (falls back to system fonts)
  • Some 3D transforms (Circular view flip cards) are flattened
  • Complex shadows/gradients may not export perfectly
  • File size can grow with very complex visualizations (50+ nodes)

JSON Export

Raw data export for developers and researchers.

Data Structure

{
  "blueprint": [
    {
      "id": "thesis-1",
      "parentId": null,
      "type": "thesis",
      "side": "for",
      "content": "Universal Basic Income should be implemented...",
      "sourceText": "User query",
      "source": "https://user-input.local",
      "fallacies": [],
      "logicalRole": "Central contention"
    },
    {
      "id": "claim-1",
      "parentId": "thesis-1",
      "type": "claim",
      "side": "for",
      "content": "UBI reduces poverty by providing income floor",
      "sourceText": "A 2023 study found that UBI pilot programs...",
      "source": "https://bbc.com/ubi-study",
      "fallacies": [],
      "logicalRole": "Primary economic argument"
    }
  ],
  "summary": "The debate over Universal Basic Income...",
  "analysis": "This analysis reveals...",
  "credibilityScore": 7,
  "brutalHonestTake": "UBI sounds great in theory but...",
  "keyPoints": [
    "Strong evidence for poverty reduction",
    "Cost concerns remain unresolved"
  ],
  "socialPulse": "Public opinion is divided...",
  "tweets": [...],
  "fallacies": [...]
}

Use Cases for JSON

Import into Python/R for statistical analysis:
import json
import pandas as pd

with open('analysis.json') as f:
    data = json.load(f)

# Analyze fallacy distribution
fallacies_df = pd.DataFrame(data['fallacies'])
print(fallacies_df.groupby('severity').size())

# Analyze claim balance
claims = [n for n in data['blueprint'] if n['type'] == 'claim']
for_count = sum(1 for c in claims if c['side'] == 'for')
against_count = len(claims) - for_count
Build your own visualization with D3.js, Plotly, etc:
fetch('analysis.json')
  .then(r => r.json())
  .then(data => {
    // Custom D3 force-directed graph
    const nodes = data.blueprint;
    const links = nodes.filter(n => n.parentId).map(n => ({
      source: n.parentId,
      target: n.id
    }));
    
    // Render with D3...
  });
Store multiple versions to track evolution:
# Save with timestamp
analysis-2024-03-08-v1.json
analysis-2024-03-15-v2.json

# Compare with diff tool
diff analysis-v1.json analysis-v2.json
Feed data into other systems:
// Post to your backend
await fetch('/api/save-analysis', {
  method: 'POST',
  body: JSON.stringify(analysisData),
  headers: { 'Content-Type': 'application/json' },
});

Copy to Clipboard

Quick sharing without saving files.

Image Copy

1

Configure Export

Set format (PNG/SVG), resolution, and theme
2

Click Copy Button

Instead of Download, click Copy button
3

Paste Anywhere

Paste directly into:
  • Google Docs / Microsoft Word
  • Slack / Discord / Teams
  • Email clients
  • Image editors
Clipboard API: Modern browsers support copying images to clipboard. On older browsers, the Copy button may not appear.

JSON Copy

Copies raw JSON text to clipboard:
const copyJSON = async (data: any) => {
  const jsonString = JSON.stringify(data, null, 2); // Pretty-printed
  await navigator.clipboard.writeText(jsonString);
  
  toast({
    title: "Copied to Clipboard",
    description: "JSON data is ready to paste",
  });
};

Social Sharing

Direct sharing to social platforms.

Supported Platforms

Share link with pre-filled text:
const shareToTwitter = (topic: string) => {
  const text = `Check out this argument analysis I created with Argument Cartographer: "${topic}" #ArgumentAtlas`;
  const url = `https://twitter.com/intent/tweet?text=${encodeURIComponent(text)}`;
  window.open(url, '_blank');
};
Social sharing posts a link to your analysis (if published) plus generated text. It does NOT upload the visualization image automatically.

Best Practices

Choose Right Format

  • PNG for general use
  • SVG for design/print
  • JSON for data analysis

Optimize Resolution

  • 2x for screens
  • 3x for printing
  • 1x for quick sharing

Match Theme

  • Light for printing
  • Dark for screens
  • Transparent for custom backgrounds

Test Before Sharing

  • Preview export before sending
  • Check text readability
  • Verify no content cut off

Troubleshooting

Causes:
  • 3D transforms not flattened (Circular view)
  • CSS animations mid-transition
  • Browser extension interference
Solutions:
  • Try different visualization mode (Flow/Balanced)
  • Disable browser extensions temporarily
  • Try different format (SVG instead of PNG)
Cause: Using 1x resolution on high-DPI screenSolution: Increase to 2x or 3x resolution
Causes:
  • 3x resolution PNG
  • Complex visualization with many nodes
Solutions:
  • Reduce to 2x or 1x
  • Use SVG instead (much smaller)
  • Simplify view mode (Pillar instead of Circular)
Causes:
  • Unsupported browser (Safari < 13.1)
  • Site not served over HTTPS
  • Browser permissions denied
Solutions:
  • Use Download instead
  • Update browser
  • Check site is HTTPS

Next Steps

Visualization Modes

Master all 6 view modes for better exports

Creating Analysis

Generate high-quality analyses worth exporting

Build docs developers (and LLMs) love