MCPSERV.CLUB
docassemble

docassemble

Self-Hosted

Automated guided interviews and document assembly

Active(96)
889stars
0views
Updated 15 days ago
docassemble screenshot

Overview

Discover what makes docassemble powerful

Docassemble is a **Python‑centric** expert system designed for guided interviews and dynamic document assembly. At its core, the platform exposes a web interface that orchestrates conversational flows defined in YAML/Markdown. The interview logic is compiled into lightweight Python objects, enabling developers to embed business rules, conditional branching, and external API calls directly within a declarative schema. When an interview completes, Docassemble renders output files (PDF, RTF, DOCX) using the Jinja templating engine and the *docx* or *reportlab* libraries, automatically populating placeholders with user data.

Python 3.10+

SQLite

Gunicorn

Celery

Overview

Docassemble is a Python‑centric expert system designed for guided interviews and dynamic document assembly. At its core, the platform exposes a web interface that orchestrates conversational flows defined in YAML/Markdown. The interview logic is compiled into lightweight Python objects, enabling developers to embed business rules, conditional branching, and external API calls directly within a declarative schema. When an interview completes, Docassemble renders output files (PDF, RTF, DOCX) using the Jinja templating engine and the docx or reportlab libraries, automatically populating placeholders with user data.

Architecture

Docassemble follows a monolithic Django‑like architecture but deliberately separates concerns through modular packages. The stack includes:

  • Python 3.10+ as the runtime, with extensive use of pydantic for data validation.
  • SQLite as the default datastore, with support for PostgreSQL or MySQL via SQLAlchemy.
  • Gunicorn + Nginx for production deployment, but it can run under any WSGI server.
  • Celery + Redis for background tasks such as email, SMS, or OpenAI API calls.
  • WebSocket support for live chat and real‑time interactions.

The interview engine parses YAML files, converts them into a state machine, and stores session data in the database. Templates are rendered server‑side; client‑side JavaScript handles form validation and progress tracking.

Core Capabilities

  • Declarative Interview Design: Define questions, logic branches, and output templates in a single YAML/Markdown file.
  • Template Engine: Use Jinja syntax to interpolate data into DOCX, PDF, or RTF files.
  • External API Integration: Call REST services from within an interview using http blocks or custom Python modules.
  • Webhooks & Events: Trigger external services (e.g., Slack, Zapier) on interview completion.
  • Signature Capture: Store SVG or base64 signatures and embed them in generated documents.
  • Multichannel Delivery: Email, SMS (via Twilio or other gateways), and even push notifications.

Deployment & Infrastructure

Docassemble is self‑hosted by design. A single docker-compose.yml can spin up the entire stack, making it ideal for CI/CD pipelines or Kubernetes deployments. The application scales horizontally by adding more web workers; the database layer must be shared (PostgreSQL) for true concurrency. For high‑availability, configure Nginx as a reverse proxy with SSL termination and use Redis in cluster mode for Celery.

Integration & Extensibility

Developers can extend Docassemble by:

  • Creating Python packages that expose new interview blocks or helper functions.
  • Writing custom Jinja filters for complex data transformations.
  • Subscribing to the event bus (docassemble.core.event module) to hook into interview lifecycle events.
  • Leveraging the REST API (/api/v1) for programmatic interview initiation and result retrieval.

The platform also offers a Word Add‑in that syncs DOCX templates to the server, simplifying template maintenance across teams.

Developer Experience

Docassemble’s documentation is thorough, with examples for every feature. The community is active on Slack and GitHub, providing quick support for integration questions. Configuration is largely YAML‑based, reducing boilerplate code. The platform’s open‑source license (GPLv3) ensures freedom to modify and redistribute, which is attractive for law firms or NGOs needing custom workflows.

Use Cases

  • Legal Document Automation: Automate intake forms, generate NDAs or lease agreements on the fly.
  • Healthcare Intake: Collect patient data via guided interviews and produce consent PDFs.
  • Survey & Feedback Systems: Deploy dynamic questionnaires that adapt based on prior answers and send results to analytics dashboards.
  • Compliance Checks: Run procedural checks (e.g., GDPR consent) and generate compliance reports.

Advantages

  • Performance: Lightweight Python engine with minimal runtime overhead; caching and background workers keep response times low.
  • Flexibility: Declarative YAML allows non‑technical staff to edit interview flows while developers focus on backend logic.
  • Licensing: GPLv3 encourages community contributions and ensures no hidden costs.
  • Ecosystem: Built‑in support for major document formats, signatures, and multichannel communication reduces the need for external services.

In summary, Docassemble offers a robust, extensible framework that lets developers build sophisticated guided‑interview applications with minimal friction while maintaining full control over deployment and data privacy.

Open SourceReady to get started?

Join the community and start self-hosting docassemble today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
MIT
Stars
889
Technical Specs
Pricing
Open Source
Database
PostgreSQL
Docker
Official
Supported OS
LinuxDocker
Author
jhpyle
jhpyle
Last Updated
15 days ago