From 2589bf420232e466c6663c81acc5a0ccf30bc413 Mon Sep 17 00:00:00 2001
From: Pratyush Sharma <56130065+pratyush618@users.noreply.github.com>
Date: Mon, 1 Jun 2026 06:45:17 +0530
Subject: [PATCH 1/2] docs(readme): regroup features, extend comparison table
---
README.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 74 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index 445b2ae..8502019 100644
--- a/README.md
+++ b/README.md
@@ -57,12 +57,78 @@ parallelism on CPU-bound work.
## Features
-- **Reliability** — retries with exponential backoff, dead letter queue with replay, circuit breakers, exception filtering
-- **Scheduling** — priorities, rate limiting, periodic (cron) tasks, delayed execution, job expiration
-- **Workflows** — `chain` / `group` / `chord`, task dependencies with cascade cancel
-- **Control** — cooperative cancellation, soft timeouts, unique/idempotent tasks, queue pause/resume
-- **Observability** — web dashboard, events, HMAC-signed webhooks, structured logging, worker heartbeats
-- **Extensibility** — pluggable serializers, per-task middleware, async API, Postgres/Redis backends
+Grouped by what you're trying to do — each section has a one-line sample and a
+link to its deep-dive guide. New here? Start with
+**[Capabilities at a glance](https://docs.byteveda.org/taskito/docs/capabilities)**.
+
+### Reliability
+
+Retries with exponential backoff, per-exception retry rules, soft timeouts, a
+dead-letter queue with replay, circuit breakers, and idempotent enqueue.
+
+```python
+@queue.task(max_retries=5, retry_backoff=2.0, retry_on=[TimeoutError])
+def fetch_url(url: str) -> str: ...
+```
+
+[→ Reliability guide](https://docs.byteveda.org/taskito/docs/guides/reliability)
+
+### Workflows
+
+Compose tasks with `chain`, fan out with `group`, fan in with `chord` — plus
+task dependency graphs with cascade cancel.
+
+```python
+chain(fetch.s(url), parse.s(), store.s()).apply()
+```
+
+[→ Workflows guide](https://docs.byteveda.org/taskito/docs/guides/workflows/canvas)
+
+### Concurrency
+
+A thread pool by default (ideal for I/O-bound tasks); switch to a **prefork**
+pool of child processes for true CPU parallelism with no GIL contention.
+
+```bash
+taskito worker --pool prefork --app tasks:queue # CPU-bound: real parallelism
+```
+
+[→ Execution & prefork guide](https://docs.byteveda.org/taskito/docs/guides/advanced-execution/prefork)
+
+### Scheduling
+
+Priorities, rate limiting, periodic (cron) tasks, delayed execution, and job
+expiration.
+
+```python
+@queue.task(priority=9, rate_limit="100/m")
+def notify(user_id: int) -> None: ...
+```
+
+[→ Scheduling guide](https://docs.byteveda.org/taskito/docs/guides/core/scheduling)
+
+### Observability
+
+A built-in web dashboard, an events system, HMAC-signed webhooks, Prometheus and
+OpenTelemetry exporters, structured logging, and worker heartbeats.
+
+```bash
+taskito dashboard --app tasks:queue # Flower-style monitoring UI
+```
+
+[→ Dashboard & monitoring guide](https://docs.byteveda.org/taskito/docs/guides/dashboard)
+
+### Extensibility
+
+Pluggable serializers, per-task middleware, a fully async API, and Postgres or
+Redis backends for multi-machine workers.
+
+```python
+@queue.task(middleware=[MyMiddleware()]) # per-task hooks
+def handle(payload: dict) -> None: ...
+```
+
+[→ Extensibility guide](https://docs.byteveda.org/taskito/docs/guides/extensibility)
## Examples
@@ -124,9 +190,11 @@ Coming from Celery? See the **[Migration Guide](https://docs.byteveda.org/taskit
| Rate limiting | **Yes** | Yes | No | Yes | No |
| Dead letter queue | **Yes** | No | Yes | No | No |
| Task dependencies | **Yes** | No | No | No | No |
+| Workflows (chain/group/chord) | **Yes** | Yes | No | Yes | No |
| Built-in dashboard | **Yes** | No | No | No | No |
| FastAPI integration | **Yes** | No | No | No | No |
| Cancel running tasks | **Yes** | Yes | No | No | No |
+| CPU parallelism (prefork pool) | **Yes** | Yes | Yes | Yes | Yes |
| Postgres backend | **Yes** | Yes | No | No | No |
| Setup | **`pip install`** | Broker + backend | Redis | Broker | Redis |
From 84c70394e81dcb23ca847f0186cac9d0249d60f5 Mon Sep 17 00:00:00 2001
From: Pratyush Sharma <56130065+pratyush618@users.noreply.github.com>
Date: Mon, 1 Jun 2026 06:45:17 +0530
Subject: [PATCH 2/2] docs: add Capabilities-at-a-glance overview page
---
docs/content/docs/capabilities.mdx | 91 +++++++++++++++++++
.../docs/getting-started/installation.mdx | 5 +
docs/content/docs/guides/index.mdx | 4 +-
docs/content/docs/meta.json | 1 +
4 files changed, 100 insertions(+), 1 deletion(-)
create mode 100644 docs/content/docs/capabilities.mdx
diff --git a/docs/content/docs/capabilities.mdx b/docs/content/docs/capabilities.mdx
new file mode 100644
index 0000000..4428da7
--- /dev/null
+++ b/docs/content/docs/capabilities.mdx
@@ -0,0 +1,91 @@
+---
+title: Capabilities at a glance
+description: Everything taskito already does, in one place — with a link to the deep-dive guide for each.
+---
+
+import { Cards, Card } from "fumadocs-ui/components/card";
+import {
+ ShieldCheck,
+ Workflow,
+ Cpu,
+ CalendarClock,
+ Activity,
+ Plug,
+} from "lucide-react";
+
+taskito ships a broad feature set out of the box. If you're evaluating it — or
+suspect a capability is missing — scan this page first. Every card links to the
+guide that documents it.
+
+## If you think it's missing, it isn't
+
+These are the capabilities most often assumed absent. They aren't.
+
+| You might assume… | Reality |
+| --- | --- |
+| No canvas / workflows — no chain, group, or chord | [`chain` / `group` / `chord`](/guides/workflows/canvas) are exported from the top-level package, backed by a full workflow DSL. |
+| No Flower-like dashboard | [`taskito dashboard --app myapp:queue`](/guides/dashboard) serves a built-in monitoring UI. |
+| No retry backoff or per-exception retries | [`max_retries`, `retry_backoff`, `retry_on`, `dont_retry_on`](/guides/reliability/retries) are arguments on every task. |
+| No soft timeouts | [`current_job.check_timeout()`](/guides/reliability/error-handling) gives cooperative soft timeouts. |
+| GIL bottleneck with no escape hatch | [`--pool prefork`](/guides/advanced-execution/prefork) runs child processes with independent GILs for true CPU parallelism. |
+
+## By capability
+
+
+ }
+ title="Reliability"
+ href="/guides/reliability"
+ description="Retries with exponential backoff, per-exception rules, soft timeouts, dead-letter replay, circuit breakers, and idempotent enqueue."
+ />
+ }
+ title="Workflows"
+ href="/guides/workflows/canvas"
+ description="Compose with chain, fan out with group, fan in with chord — plus dependency graphs with cascade cancel."
+ />
+ }
+ title="Concurrency"
+ href="/guides/advanced-execution/prefork"
+ description="A thread pool for I/O-bound work and a prefork pool for true CPU parallelism, with a native async API."
+ />
+ }
+ title="Scheduling"
+ href="/guides/core/scheduling"
+ description="Priorities, rate limiting, periodic (cron) tasks, delayed execution, and job expiration."
+ />
+ }
+ title="Observability"
+ href="/guides/dashboard"
+ description="A built-in dashboard, events, HMAC-signed webhooks, Prometheus, OpenTelemetry, and structured logging."
+ />
+ }
+ title="Extensibility"
+ href="/guides/extensibility"
+ description="Pluggable serializers, per-task middleware, a fully async API, and Postgres or Redis backends."
+ />
+
+
+## One-liners
+
+```python
+# Reliability — backoff + per-exception retry rules
+@queue.task(max_retries=5, retry_backoff=2.0, retry_on=[TimeoutError])
+def fetch_url(url: str) -> str: ...
+
+# Workflows — sequential pipeline (group / chord for fan-out / fan-in)
+chain(fetch.s(url), parse.s(), store.s()).apply()
+
+# Scheduling — priority + rate limit
+@queue.task(priority=9, rate_limit="100/m")
+def notify(user_id: int) -> None: ...
+```
+
+```bash
+taskito worker --pool prefork --app tasks:queue # CPU-bound: true parallelism
+taskito dashboard --app tasks:queue # Flower-style monitoring UI
+```
diff --git a/docs/content/docs/getting-started/installation.mdx b/docs/content/docs/getting-started/installation.mdx
index fbccc19..fe3611b 100644
--- a/docs/content/docs/getting-started/installation.mdx
+++ b/docs/content/docs/getting-started/installation.mdx
@@ -5,6 +5,11 @@ description: "Install taskito and prepare your environment."
import { Callout } from "fumadocs-ui/components/callout";
+
+ See [**Capabilities at a glance**](/capabilities) for everything taskito does —
+ workflows, retries, the dashboard, prefork pools — each with a link to its guide.
+
+
## From PyPI
```bash
diff --git a/docs/content/docs/guides/index.mdx b/docs/content/docs/guides/index.mdx
index 995172e..8a2374a 100644
--- a/docs/content/docs/guides/index.mdx
+++ b/docs/content/docs/guides/index.mdx
@@ -17,7 +17,9 @@ import {
} from "lucide-react";
Pick the topic you're working through. Each guide is self-contained, with code
-samples, gotchas, and links to the relevant API reference.
+samples, gotchas, and links to the relevant API reference. For a one-page
+overview of everything taskito does, see
+[**Capabilities at a glance**](/capabilities).