---
title: "Contributing · Docs · SourceAnt"
description: "Documentation: Architecture, commands, and queue modes for contributing to SourceAnt, and the storage-neutral core interfaces it is built on."
url: "https://sourceant.ai/docs/developer/"
---

# Developer Documentation

This section provides resources for developers who want to contribute to the SourceAnt project or understand its inner workings.

## Contributing

We welcome contributions! Here's how you can help:

1.  Fork the repository.
2.  Create a new branch: `git checkout -b feature/your-feature`
3.  Make your changes and commit them: `git commit -m 'Add some feature'`
4.  Push to the branch: `git push origin feature/your-feature`
5.  Submit a pull request.

## SourceAnt Commands

The `sourceant` command provides subcommands for managing the application:

-   `docker compose exec app sourceant db upgrade head`: Set up database tables.
-   `docker compose exec app sourceant db --help`: See more database commands.

## Queue Modes

The application supports different backend modes for processing background jobs, controlled by the `QUEUE_MODE` environment variable.

-   **redis**: The recommended mode for production. It uses a persistent Redis queue (`rq`).
-   **redislite**: A self-contained, file-based Redis queue, ideal for local development.
-   **request**: Uses FastAPI's `BackgroundTasks` for simple, in-process job handling. Not for production.

## Plugin System

SourceAnt has a powerful plugin system for extending functionality. See the [Building a Plugin](https://sourceant.ai/docs/plugins) guide for complete documentation on creating your own plugins.
