diff --git a/brand/apparel/back-lockup-2400.png b/brand/apparel/back-lockup-2400.png
index cd56c8e..b1fe663 100644
Binary files a/brand/apparel/back-lockup-2400.png and b/brand/apparel/back-lockup-2400.png differ
diff --git a/brand/apparel/chest-mark-1050.png b/brand/apparel/chest-mark-1050.png
index 8f6c6f3..9762528 100644
Binary files a/brand/apparel/chest-mark-1050.png and b/brand/apparel/chest-mark-1050.png differ
diff --git a/brand/build/projects.py b/brand/build/projects.py
index 6005e86..8890dcc 100644
--- a/brand/build/projects.py
+++ b/brand/build/projects.py
@@ -45,6 +45,7 @@
"jwks-client": lambda: sym.key(_CX, _CY, R),
# utilities
"db-retry": lambda: sym.db_retry(_CX, _CY, R),
+ "sqlalchemy-inbox": lambda: sym.inbox(_CX, _CY, R),
"eof-fixer": lambda: sym.eof_fixer(_CX, _CY, R),
"semvertag": lambda: sym.tag(_CX, _CY, R),
"compose2pod": lambda: sym.pod(_CX, _CY, R),
diff --git a/brand/build/symbols.py b/brand/build/symbols.py
index 55e9b57..b2a6c06 100644
--- a/brand/build/symbols.py
+++ b/brand/build/symbols.py
@@ -379,6 +379,26 @@ def outbox(cx: float, cy: float, r: float) -> str:
return base + out
+def inbox(cx: float, cy: float, r: float) -> str:
+ """sqlalchemy-inbox: an arrow dropping into a database cylinder marked with a check."""
+ cyl_cy = cy + 0.3 * r
+ h = 0.9
+ base = _cyl(cx, cyl_cy, r * 1.05, h)
+ top = cyl_cy - h / 2 * r * 1.05
+ shaft = (
+ f''
+ )
+ head = _ah(cx, top - 0.16 * r, math.pi / 2, r * 0.44)
+ by = cyl_cy + 0.12 * r
+ check = (
+ f''
+ )
+ return base + shaft + head + check
+
+
def db_retry(cx: float, cy: float, r: float) -> str:
"""db-retry: a database cylinder inside a two-head clockwise retry circle."""
rad = 0.92 * r
diff --git a/brand/org/apple-touch-icon-180.png b/brand/org/apple-touch-icon-180.png
index 5d18f40..ed8a1b4 100644
Binary files a/brand/org/apple-touch-icon-180.png and b/brand/org/apple-touch-icon-180.png differ
diff --git a/brand/org/avatar-1024.png b/brand/org/avatar-1024.png
index 2722b4b..e4afcd9 100644
Binary files a/brand/org/avatar-1024.png and b/brand/org/avatar-1024.png differ
diff --git a/brand/org/avatar-circle-1024.png b/brand/org/avatar-circle-1024.png
index 20c39aa..9162765 100644
Binary files a/brand/org/avatar-circle-1024.png and b/brand/org/avatar-circle-1024.png differ
diff --git a/brand/org/boosty-cover.png b/brand/org/boosty-cover.png
index 12c0de2..51f950e 100644
Binary files a/brand/org/boosty-cover.png and b/brand/org/boosty-cover.png differ
diff --git a/brand/org/social-card-green.png b/brand/org/social-card-green.png
index 0d23f93..7049cb5 100644
Binary files a/brand/org/social-card-green.png and b/brand/org/social-card-green.png differ
diff --git a/brand/org/social-card.png b/brand/org/social-card.png
index 869874c..79a58f6 100644
Binary files a/brand/org/social-card.png and b/brand/org/social-card.png differ
diff --git a/brand/org/social-square-green.png b/brand/org/social-square-green.png
index 75b5563..78c919a 100644
Binary files a/brand/org/social-square-green.png and b/brand/org/social-square-green.png differ
diff --git a/brand/org/social-square.png b/brand/org/social-square.png
index 454a294..405dbb4 100644
Binary files a/brand/org/social-square.png and b/brand/org/social-square.png differ
diff --git a/brand/projects/chat-app/lockup.png b/brand/projects/chat-app/lockup.png
index 4d3498d..c571ea0 100644
Binary files a/brand/projects/chat-app/lockup.png and b/brand/projects/chat-app/lockup.png differ
diff --git a/brand/projects/chat-app/mark-1024.png b/brand/projects/chat-app/mark-1024.png
index a75ec99..6424c44 100644
Binary files a/brand/projects/chat-app/mark-1024.png and b/brand/projects/chat-app/mark-1024.png differ
diff --git a/brand/projects/chat-app/mark-512.png b/brand/projects/chat-app/mark-512.png
index b77e90c..3d36f85 100644
Binary files a/brand/projects/chat-app/mark-512.png and b/brand/projects/chat-app/mark-512.png differ
diff --git a/brand/projects/compose2pod/lockup.png b/brand/projects/compose2pod/lockup.png
index 43b5e2c..4e017ed 100644
Binary files a/brand/projects/compose2pod/lockup.png and b/brand/projects/compose2pod/lockup.png differ
diff --git a/brand/projects/compose2pod/mark-1024.png b/brand/projects/compose2pod/mark-1024.png
index 90d53fe..8c5967f 100644
Binary files a/brand/projects/compose2pod/mark-1024.png and b/brand/projects/compose2pod/mark-1024.png differ
diff --git a/brand/projects/compose2pod/mark-512.png b/brand/projects/compose2pod/mark-512.png
index 2e83db4..70a9ad4 100644
Binary files a/brand/projects/compose2pod/mark-512.png and b/brand/projects/compose2pod/mark-512.png differ
diff --git a/brand/projects/db-retry/lockup.png b/brand/projects/db-retry/lockup.png
index eda26a3..c1db45b 100644
Binary files a/brand/projects/db-retry/lockup.png and b/brand/projects/db-retry/lockup.png differ
diff --git a/brand/projects/db-retry/mark-1024.png b/brand/projects/db-retry/mark-1024.png
index d5d4e8b..cd44d23 100644
Binary files a/brand/projects/db-retry/mark-1024.png and b/brand/projects/db-retry/mark-1024.png differ
diff --git a/brand/projects/db-retry/mark-512.png b/brand/projects/db-retry/mark-512.png
index c7dc8eb..8350b71 100644
Binary files a/brand/projects/db-retry/mark-512.png and b/brand/projects/db-retry/mark-512.png differ
diff --git a/brand/projects/eof-fixer/lockup.png b/brand/projects/eof-fixer/lockup.png
index 008209b..16e269c 100644
Binary files a/brand/projects/eof-fixer/lockup.png and b/brand/projects/eof-fixer/lockup.png differ
diff --git a/brand/projects/eof-fixer/mark-1024.png b/brand/projects/eof-fixer/mark-1024.png
index 567dcb9..6aed8b3 100644
Binary files a/brand/projects/eof-fixer/mark-1024.png and b/brand/projects/eof-fixer/mark-1024.png differ
diff --git a/brand/projects/eof-fixer/mark-512.png b/brand/projects/eof-fixer/mark-512.png
index f2db0e3..1bd297d 100644
Binary files a/brand/projects/eof-fixer/mark-512.png and b/brand/projects/eof-fixer/mark-512.png differ
diff --git a/brand/projects/fastapi-sqlalchemy-template/lockup.png b/brand/projects/fastapi-sqlalchemy-template/lockup.png
index 8103918..5c81cbd 100644
Binary files a/brand/projects/fastapi-sqlalchemy-template/lockup.png and b/brand/projects/fastapi-sqlalchemy-template/lockup.png differ
diff --git a/brand/projects/fastapi-sqlalchemy-template/mark-1024.png b/brand/projects/fastapi-sqlalchemy-template/mark-1024.png
index a75ec99..6424c44 100644
Binary files a/brand/projects/fastapi-sqlalchemy-template/mark-1024.png and b/brand/projects/fastapi-sqlalchemy-template/mark-1024.png differ
diff --git a/brand/projects/fastapi-sqlalchemy-template/mark-512.png b/brand/projects/fastapi-sqlalchemy-template/mark-512.png
index b77e90c..3d36f85 100644
Binary files a/brand/projects/fastapi-sqlalchemy-template/mark-512.png and b/brand/projects/fastapi-sqlalchemy-template/mark-512.png differ
diff --git a/brand/projects/faststream-concurrent-aiokafka/lockup.png b/brand/projects/faststream-concurrent-aiokafka/lockup.png
index fbc590b..f5bf796 100644
Binary files a/brand/projects/faststream-concurrent-aiokafka/lockup.png and b/brand/projects/faststream-concurrent-aiokafka/lockup.png differ
diff --git a/brand/projects/faststream-concurrent-aiokafka/mark-1024.png b/brand/projects/faststream-concurrent-aiokafka/mark-1024.png
index 2bf50c3..8edf5f2 100644
Binary files a/brand/projects/faststream-concurrent-aiokafka/mark-1024.png and b/brand/projects/faststream-concurrent-aiokafka/mark-1024.png differ
diff --git a/brand/projects/faststream-concurrent-aiokafka/mark-512.png b/brand/projects/faststream-concurrent-aiokafka/mark-512.png
index 79fe26e..ff99e26 100644
Binary files a/brand/projects/faststream-concurrent-aiokafka/mark-512.png and b/brand/projects/faststream-concurrent-aiokafka/mark-512.png differ
diff --git a/brand/projects/faststream-outbox/lockup.png b/brand/projects/faststream-outbox/lockup.png
index caf9e7e..fad3ec1 100644
Binary files a/brand/projects/faststream-outbox/lockup.png and b/brand/projects/faststream-outbox/lockup.png differ
diff --git a/brand/projects/faststream-outbox/mark-1024.png b/brand/projects/faststream-outbox/mark-1024.png
index 0a6c3a4..7908b30 100644
Binary files a/brand/projects/faststream-outbox/mark-1024.png and b/brand/projects/faststream-outbox/mark-1024.png differ
diff --git a/brand/projects/faststream-outbox/mark-512.png b/brand/projects/faststream-outbox/mark-512.png
index 68c6c23..5795186 100644
Binary files a/brand/projects/faststream-outbox/mark-512.png and b/brand/projects/faststream-outbox/mark-512.png differ
diff --git a/brand/projects/faststream-outbox/social-card.png b/brand/projects/faststream-outbox/social-card.png
index 700edf3..acb84eb 100644
Binary files a/brand/projects/faststream-outbox/social-card.png and b/brand/projects/faststream-outbox/social-card.png differ
diff --git a/brand/projects/faststream-redis-timers/lockup.png b/brand/projects/faststream-redis-timers/lockup.png
index 1a549c2..7e0449f 100644
Binary files a/brand/projects/faststream-redis-timers/lockup.png and b/brand/projects/faststream-redis-timers/lockup.png differ
diff --git a/brand/projects/faststream-redis-timers/mark-1024.png b/brand/projects/faststream-redis-timers/mark-1024.png
index 1227fe8..1c35829 100644
Binary files a/brand/projects/faststream-redis-timers/mark-1024.png and b/brand/projects/faststream-redis-timers/mark-1024.png differ
diff --git a/brand/projects/faststream-redis-timers/mark-512.png b/brand/projects/faststream-redis-timers/mark-512.png
index c189425..1d5522e 100644
Binary files a/brand/projects/faststream-redis-timers/mark-512.png and b/brand/projects/faststream-redis-timers/mark-512.png differ
diff --git a/brand/projects/faststream-redis-timers/social-card.png b/brand/projects/faststream-redis-timers/social-card.png
index 56e50d4..33db2c6 100644
Binary files a/brand/projects/faststream-redis-timers/social-card.png and b/brand/projects/faststream-redis-timers/social-card.png differ
diff --git a/brand/projects/httpware/lockup.png b/brand/projects/httpware/lockup.png
index 276cf56..336bbe6 100644
Binary files a/brand/projects/httpware/lockup.png and b/brand/projects/httpware/lockup.png differ
diff --git a/brand/projects/httpware/mark-1024.png b/brand/projects/httpware/mark-1024.png
index 9d644ce..529799d 100644
Binary files a/brand/projects/httpware/mark-1024.png and b/brand/projects/httpware/mark-1024.png differ
diff --git a/brand/projects/httpware/mark-512.png b/brand/projects/httpware/mark-512.png
index 8333f05..7d506ae 100644
Binary files a/brand/projects/httpware/mark-512.png and b/brand/projects/httpware/mark-512.png differ
diff --git a/brand/projects/httpware/social-card.png b/brand/projects/httpware/social-card.png
index a824b53..6c3a048 100644
Binary files a/brand/projects/httpware/social-card.png and b/brand/projects/httpware/social-card.png differ
diff --git a/brand/projects/jwks-client/lockup.png b/brand/projects/jwks-client/lockup.png
index 9bacd1b..ed684cf 100644
Binary files a/brand/projects/jwks-client/lockup.png and b/brand/projects/jwks-client/lockup.png differ
diff --git a/brand/projects/jwks-client/mark-1024.png b/brand/projects/jwks-client/mark-1024.png
index 888b0f7..f6e1db6 100644
Binary files a/brand/projects/jwks-client/mark-1024.png and b/brand/projects/jwks-client/mark-1024.png differ
diff --git a/brand/projects/jwks-client/mark-512.png b/brand/projects/jwks-client/mark-512.png
index d4911c7..3db7912 100644
Binary files a/brand/projects/jwks-client/mark-512.png and b/brand/projects/jwks-client/mark-512.png differ
diff --git a/brand/projects/lite-bootstrap/lockup.png b/brand/projects/lite-bootstrap/lockup.png
index e816ab8..1a487e2 100644
Binary files a/brand/projects/lite-bootstrap/lockup.png and b/brand/projects/lite-bootstrap/lockup.png differ
diff --git a/brand/projects/lite-bootstrap/mark-1024.png b/brand/projects/lite-bootstrap/mark-1024.png
index ec497b0..a5996d9 100644
Binary files a/brand/projects/lite-bootstrap/mark-1024.png and b/brand/projects/lite-bootstrap/mark-1024.png differ
diff --git a/brand/projects/lite-bootstrap/mark-512.png b/brand/projects/lite-bootstrap/mark-512.png
index 8666bf2..a8b0946 100644
Binary files a/brand/projects/lite-bootstrap/mark-512.png and b/brand/projects/lite-bootstrap/mark-512.png differ
diff --git a/brand/projects/lite-bootstrap/social-card.png b/brand/projects/lite-bootstrap/social-card.png
index 425cb1b..1326c91 100644
Binary files a/brand/projects/lite-bootstrap/social-card.png and b/brand/projects/lite-bootstrap/social-card.png differ
diff --git a/brand/projects/litestar-sqlalchemy-template/lockup.png b/brand/projects/litestar-sqlalchemy-template/lockup.png
index 88e40be..9832187 100644
Binary files a/brand/projects/litestar-sqlalchemy-template/lockup.png and b/brand/projects/litestar-sqlalchemy-template/lockup.png differ
diff --git a/brand/projects/litestar-sqlalchemy-template/mark-1024.png b/brand/projects/litestar-sqlalchemy-template/mark-1024.png
index a75ec99..6424c44 100644
Binary files a/brand/projects/litestar-sqlalchemy-template/mark-1024.png and b/brand/projects/litestar-sqlalchemy-template/mark-1024.png differ
diff --git a/brand/projects/litestar-sqlalchemy-template/mark-512.png b/brand/projects/litestar-sqlalchemy-template/mark-512.png
index b77e90c..3d36f85 100644
Binary files a/brand/projects/litestar-sqlalchemy-template/mark-512.png and b/brand/projects/litestar-sqlalchemy-template/mark-512.png differ
diff --git a/brand/projects/modern-di-aiogram/lockup.png b/brand/projects/modern-di-aiogram/lockup.png
index bb07cbb..255e264 100644
Binary files a/brand/projects/modern-di-aiogram/lockup.png and b/brand/projects/modern-di-aiogram/lockup.png differ
diff --git a/brand/projects/modern-di-aiogram/mark-1024.png b/brand/projects/modern-di-aiogram/mark-1024.png
index 9f7e5df..3d50d59 100644
Binary files a/brand/projects/modern-di-aiogram/mark-1024.png and b/brand/projects/modern-di-aiogram/mark-1024.png differ
diff --git a/brand/projects/modern-di-aiogram/mark-512.png b/brand/projects/modern-di-aiogram/mark-512.png
index 60bba14..15ae7b3 100644
Binary files a/brand/projects/modern-di-aiogram/mark-512.png and b/brand/projects/modern-di-aiogram/mark-512.png differ
diff --git a/brand/projects/modern-di-aiohttp/lockup.png b/brand/projects/modern-di-aiohttp/lockup.png
index 495d324..e8f88ec 100644
Binary files a/brand/projects/modern-di-aiohttp/lockup.png and b/brand/projects/modern-di-aiohttp/lockup.png differ
diff --git a/brand/projects/modern-di-aiohttp/mark-1024.png b/brand/projects/modern-di-aiohttp/mark-1024.png
index 553d645..272fc56 100644
Binary files a/brand/projects/modern-di-aiohttp/mark-1024.png and b/brand/projects/modern-di-aiohttp/mark-1024.png differ
diff --git a/brand/projects/modern-di-aiohttp/mark-512.png b/brand/projects/modern-di-aiohttp/mark-512.png
index 860ed4b..5fabdc2 100644
Binary files a/brand/projects/modern-di-aiohttp/mark-512.png and b/brand/projects/modern-di-aiohttp/mark-512.png differ
diff --git a/brand/projects/modern-di-arq/lockup.png b/brand/projects/modern-di-arq/lockup.png
index 695098f..487c6e2 100644
Binary files a/brand/projects/modern-di-arq/lockup.png and b/brand/projects/modern-di-arq/lockup.png differ
diff --git a/brand/projects/modern-di-arq/mark-1024.png b/brand/projects/modern-di-arq/mark-1024.png
index b18edc9..6cf2b58 100644
Binary files a/brand/projects/modern-di-arq/mark-1024.png and b/brand/projects/modern-di-arq/mark-1024.png differ
diff --git a/brand/projects/modern-di-arq/mark-512.png b/brand/projects/modern-di-arq/mark-512.png
index bdc64f8..c185caa 100644
Binary files a/brand/projects/modern-di-arq/mark-512.png and b/brand/projects/modern-di-arq/mark-512.png differ
diff --git a/brand/projects/modern-di-celery/lockup.png b/brand/projects/modern-di-celery/lockup.png
index 2dc93cb..31da466 100644
Binary files a/brand/projects/modern-di-celery/lockup.png and b/brand/projects/modern-di-celery/lockup.png differ
diff --git a/brand/projects/modern-di-celery/mark-1024.png b/brand/projects/modern-di-celery/mark-1024.png
index 438161e..d985fa0 100644
Binary files a/brand/projects/modern-di-celery/mark-1024.png and b/brand/projects/modern-di-celery/mark-1024.png differ
diff --git a/brand/projects/modern-di-celery/mark-512.png b/brand/projects/modern-di-celery/mark-512.png
index 0859af7..499be13 100644
Binary files a/brand/projects/modern-di-celery/mark-512.png and b/brand/projects/modern-di-celery/mark-512.png differ
diff --git a/brand/projects/modern-di-fastapi/lockup.png b/brand/projects/modern-di-fastapi/lockup.png
index a15fb83..c9d937e 100644
Binary files a/brand/projects/modern-di-fastapi/lockup.png and b/brand/projects/modern-di-fastapi/lockup.png differ
diff --git a/brand/projects/modern-di-fastapi/mark-1024.png b/brand/projects/modern-di-fastapi/mark-1024.png
index c10b950..743a356 100644
Binary files a/brand/projects/modern-di-fastapi/mark-1024.png and b/brand/projects/modern-di-fastapi/mark-1024.png differ
diff --git a/brand/projects/modern-di-fastapi/mark-512.png b/brand/projects/modern-di-fastapi/mark-512.png
index 18da078..cf2dc61 100644
Binary files a/brand/projects/modern-di-fastapi/mark-512.png and b/brand/projects/modern-di-fastapi/mark-512.png differ
diff --git a/brand/projects/modern-di-faststream/lockup.png b/brand/projects/modern-di-faststream/lockup.png
index a7b8ee8..56b80a1 100644
Binary files a/brand/projects/modern-di-faststream/lockup.png and b/brand/projects/modern-di-faststream/lockup.png differ
diff --git a/brand/projects/modern-di-faststream/mark-1024.png b/brand/projects/modern-di-faststream/mark-1024.png
index dc415a2..43c40c6 100644
Binary files a/brand/projects/modern-di-faststream/mark-1024.png and b/brand/projects/modern-di-faststream/mark-1024.png differ
diff --git a/brand/projects/modern-di-faststream/mark-512.png b/brand/projects/modern-di-faststream/mark-512.png
index 7cf2e62..3138b0d 100644
Binary files a/brand/projects/modern-di-faststream/mark-512.png and b/brand/projects/modern-di-faststream/mark-512.png differ
diff --git a/brand/projects/modern-di-flask/lockup.png b/brand/projects/modern-di-flask/lockup.png
index 3582433..a960ca4 100644
Binary files a/brand/projects/modern-di-flask/lockup.png and b/brand/projects/modern-di-flask/lockup.png differ
diff --git a/brand/projects/modern-di-flask/mark-1024.png b/brand/projects/modern-di-flask/mark-1024.png
index f062d59..b7a9e45 100644
Binary files a/brand/projects/modern-di-flask/mark-1024.png and b/brand/projects/modern-di-flask/mark-1024.png differ
diff --git a/brand/projects/modern-di-flask/mark-512.png b/brand/projects/modern-di-flask/mark-512.png
index fd191dc..1dde4ee 100644
Binary files a/brand/projects/modern-di-flask/mark-512.png and b/brand/projects/modern-di-flask/mark-512.png differ
diff --git a/brand/projects/modern-di-grpc/lockup.png b/brand/projects/modern-di-grpc/lockup.png
index 8d6f3b1..a96def6 100644
Binary files a/brand/projects/modern-di-grpc/lockup.png and b/brand/projects/modern-di-grpc/lockup.png differ
diff --git a/brand/projects/modern-di-grpc/mark-1024.png b/brand/projects/modern-di-grpc/mark-1024.png
index 3397b71..fbe4591 100644
Binary files a/brand/projects/modern-di-grpc/mark-1024.png and b/brand/projects/modern-di-grpc/mark-1024.png differ
diff --git a/brand/projects/modern-di-grpc/mark-512.png b/brand/projects/modern-di-grpc/mark-512.png
index 50e2b5b..b99ff4a 100644
Binary files a/brand/projects/modern-di-grpc/mark-512.png and b/brand/projects/modern-di-grpc/mark-512.png differ
diff --git a/brand/projects/modern-di-litestar/lockup.png b/brand/projects/modern-di-litestar/lockup.png
index 93bc9e0..ff75e0f 100644
Binary files a/brand/projects/modern-di-litestar/lockup.png and b/brand/projects/modern-di-litestar/lockup.png differ
diff --git a/brand/projects/modern-di-litestar/mark-1024.png b/brand/projects/modern-di-litestar/mark-1024.png
index 1e4049a..fc88939 100644
Binary files a/brand/projects/modern-di-litestar/mark-1024.png and b/brand/projects/modern-di-litestar/mark-1024.png differ
diff --git a/brand/projects/modern-di-litestar/mark-512.png b/brand/projects/modern-di-litestar/mark-512.png
index ae87c4f..e4b84e1 100644
Binary files a/brand/projects/modern-di-litestar/mark-512.png and b/brand/projects/modern-di-litestar/mark-512.png differ
diff --git a/brand/projects/modern-di-pytest/lockup.png b/brand/projects/modern-di-pytest/lockup.png
index ae04de7..37ad331 100644
Binary files a/brand/projects/modern-di-pytest/lockup.png and b/brand/projects/modern-di-pytest/lockup.png differ
diff --git a/brand/projects/modern-di-pytest/mark-1024.png b/brand/projects/modern-di-pytest/mark-1024.png
index 848af04..92e4365 100644
Binary files a/brand/projects/modern-di-pytest/mark-1024.png and b/brand/projects/modern-di-pytest/mark-1024.png differ
diff --git a/brand/projects/modern-di-pytest/mark-512.png b/brand/projects/modern-di-pytest/mark-512.png
index 836c1e4..67ae50d 100644
Binary files a/brand/projects/modern-di-pytest/mark-512.png and b/brand/projects/modern-di-pytest/mark-512.png differ
diff --git a/brand/projects/modern-di-starlette/lockup.png b/brand/projects/modern-di-starlette/lockup.png
index 1b92deb..ace12de 100644
Binary files a/brand/projects/modern-di-starlette/lockup.png and b/brand/projects/modern-di-starlette/lockup.png differ
diff --git a/brand/projects/modern-di-starlette/mark-1024.png b/brand/projects/modern-di-starlette/mark-1024.png
index 25040de..e765cda 100644
Binary files a/brand/projects/modern-di-starlette/mark-1024.png and b/brand/projects/modern-di-starlette/mark-1024.png differ
diff --git a/brand/projects/modern-di-starlette/mark-512.png b/brand/projects/modern-di-starlette/mark-512.png
index eafd980..7ccf4e3 100644
Binary files a/brand/projects/modern-di-starlette/mark-512.png and b/brand/projects/modern-di-starlette/mark-512.png differ
diff --git a/brand/projects/modern-di-taskiq/lockup.png b/brand/projects/modern-di-taskiq/lockup.png
index 72f1c50..83e07df 100644
Binary files a/brand/projects/modern-di-taskiq/lockup.png and b/brand/projects/modern-di-taskiq/lockup.png differ
diff --git a/brand/projects/modern-di-taskiq/mark-1024.png b/brand/projects/modern-di-taskiq/mark-1024.png
index 09520ec..4401159 100644
Binary files a/brand/projects/modern-di-taskiq/mark-1024.png and b/brand/projects/modern-di-taskiq/mark-1024.png differ
diff --git a/brand/projects/modern-di-taskiq/mark-512.png b/brand/projects/modern-di-taskiq/mark-512.png
index 93d453d..96416f1 100644
Binary files a/brand/projects/modern-di-taskiq/mark-512.png and b/brand/projects/modern-di-taskiq/mark-512.png differ
diff --git a/brand/projects/modern-di-typer/lockup.png b/brand/projects/modern-di-typer/lockup.png
index 1c43b00..ab83137 100644
Binary files a/brand/projects/modern-di-typer/lockup.png and b/brand/projects/modern-di-typer/lockup.png differ
diff --git a/brand/projects/modern-di-typer/mark-1024.png b/brand/projects/modern-di-typer/mark-1024.png
index 4aac8a1..e82b6b8 100644
Binary files a/brand/projects/modern-di-typer/mark-1024.png and b/brand/projects/modern-di-typer/mark-1024.png differ
diff --git a/brand/projects/modern-di-typer/mark-512.png b/brand/projects/modern-di-typer/mark-512.png
index 1019eda..7c8acf6 100644
Binary files a/brand/projects/modern-di-typer/mark-512.png and b/brand/projects/modern-di-typer/mark-512.png differ
diff --git a/brand/projects/modern-di/lockup.png b/brand/projects/modern-di/lockup.png
index d7dbf03..e54a3c1 100644
Binary files a/brand/projects/modern-di/lockup.png and b/brand/projects/modern-di/lockup.png differ
diff --git a/brand/projects/modern-di/mark-1024.png b/brand/projects/modern-di/mark-1024.png
index a00538b..d059dc1 100644
Binary files a/brand/projects/modern-di/mark-1024.png and b/brand/projects/modern-di/mark-1024.png differ
diff --git a/brand/projects/modern-di/mark-512.png b/brand/projects/modern-di/mark-512.png
index 9d726d2..2137d83 100644
Binary files a/brand/projects/modern-di/mark-512.png and b/brand/projects/modern-di/mark-512.png differ
diff --git a/brand/projects/modern-di/social-card.png b/brand/projects/modern-di/social-card.png
index 5771970..0e3585a 100644
Binary files a/brand/projects/modern-di/social-card.png and b/brand/projects/modern-di/social-card.png differ
diff --git a/brand/projects/release-scope/lockup.png b/brand/projects/release-scope/lockup.png
index ab2e7ed..3c2bc5e 100644
Binary files a/brand/projects/release-scope/lockup.png and b/brand/projects/release-scope/lockup.png differ
diff --git a/brand/projects/release-scope/mark-1024.png b/brand/projects/release-scope/mark-1024.png
index b3d6946..c3f3e57 100644
Binary files a/brand/projects/release-scope/mark-1024.png and b/brand/projects/release-scope/mark-1024.png differ
diff --git a/brand/projects/release-scope/mark-512.png b/brand/projects/release-scope/mark-512.png
index 9eafeff..65558f9 100644
Binary files a/brand/projects/release-scope/mark-512.png and b/brand/projects/release-scope/mark-512.png differ
diff --git a/brand/projects/semvertag/lockup.png b/brand/projects/semvertag/lockup.png
index 0963f8e..1f28d9e 100644
Binary files a/brand/projects/semvertag/lockup.png and b/brand/projects/semvertag/lockup.png differ
diff --git a/brand/projects/semvertag/mark-1024.png b/brand/projects/semvertag/mark-1024.png
index 445dcbd..8aadada 100644
Binary files a/brand/projects/semvertag/mark-1024.png and b/brand/projects/semvertag/mark-1024.png differ
diff --git a/brand/projects/semvertag/mark-512.png b/brand/projects/semvertag/mark-512.png
index 3636027..d34d566 100644
Binary files a/brand/projects/semvertag/mark-512.png and b/brand/projects/semvertag/mark-512.png differ
diff --git a/brand/projects/semvertag/social-card.png b/brand/projects/semvertag/social-card.png
index 11c9c84..75be50b 100644
Binary files a/brand/projects/semvertag/social-card.png and b/brand/projects/semvertag/social-card.png differ
diff --git a/brand/projects/sqlalchemy-inbox/lockup-dark.svg b/brand/projects/sqlalchemy-inbox/lockup-dark.svg
new file mode 100644
index 0000000..7fe52fd
--- /dev/null
+++ b/brand/projects/sqlalchemy-inbox/lockup-dark.svg
@@ -0,0 +1 @@
+
diff --git a/brand/projects/sqlalchemy-inbox/lockup-light.svg b/brand/projects/sqlalchemy-inbox/lockup-light.svg
new file mode 100644
index 0000000..1acac42
--- /dev/null
+++ b/brand/projects/sqlalchemy-inbox/lockup-light.svg
@@ -0,0 +1 @@
+
diff --git a/brand/projects/sqlalchemy-inbox/lockup.png b/brand/projects/sqlalchemy-inbox/lockup.png
new file mode 100644
index 0000000..b2d508f
Binary files /dev/null and b/brand/projects/sqlalchemy-inbox/lockup.png differ
diff --git a/brand/projects/sqlalchemy-inbox/mark-1024.png b/brand/projects/sqlalchemy-inbox/mark-1024.png
new file mode 100644
index 0000000..d727f60
Binary files /dev/null and b/brand/projects/sqlalchemy-inbox/mark-1024.png differ
diff --git a/brand/projects/sqlalchemy-inbox/mark-512.png b/brand/projects/sqlalchemy-inbox/mark-512.png
new file mode 100644
index 0000000..14269d7
Binary files /dev/null and b/brand/projects/sqlalchemy-inbox/mark-512.png differ
diff --git a/brand/projects/sqlalchemy-inbox/mark.svg b/brand/projects/sqlalchemy-inbox/mark.svg
new file mode 100644
index 0000000..b560d80
--- /dev/null
+++ b/brand/projects/sqlalchemy-inbox/mark.svg
@@ -0,0 +1 @@
+
diff --git a/brand/projects/that-depends/lockup.png b/brand/projects/that-depends/lockup.png
index 45aacc4..f971db9 100644
Binary files a/brand/projects/that-depends/lockup.png and b/brand/projects/that-depends/lockup.png differ
diff --git a/brand/projects/that-depends/mark-1024.png b/brand/projects/that-depends/mark-1024.png
index 9861838..3f0ed7f 100644
Binary files a/brand/projects/that-depends/mark-1024.png and b/brand/projects/that-depends/mark-1024.png differ
diff --git a/brand/projects/that-depends/mark-512.png b/brand/projects/that-depends/mark-512.png
index 6c1752b..6897aa6 100644
Binary files a/brand/projects/that-depends/mark-512.png and b/brand/projects/that-depends/mark-512.png differ
diff --git a/brand/projects/that-depends/social-card.png b/brand/projects/that-depends/social-card.png
index 9569337..7abb061 100644
Binary files a/brand/projects/that-depends/social-card.png and b/brand/projects/that-depends/social-card.png differ
diff --git a/docs/index.md b/docs/index.md
index 570c738..d417ba6 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -128,6 +128,7 @@ If you'd like help applying this stack to your own services, see [services](serv
- [`db-retry`](https://github.com/modern-python/db-retry): Retry helpers for PostgreSQL / SQLAlchemy database operations
- [`eof-fixer`](https://github.com/modern-python/eof-fixer): CLI tool that ensures text files end with exactly one newline
- [`release-scope`](https://github.com/modern-python/release-scope): Collect what sits between production and the default branch across GitLab services: tags, MRs, Jira keys, failed jobs
+- [`sqlalchemy-inbox`](https://github.com/modern-python/sqlalchemy-inbox): Transactional inbox ledger for SQLAlchemy asyncio on PostgreSQL
- [`semvertag`](https://github.com/modern-python/semvertag): Auto-tag GitHub & GitLab repos with semantic version tags from CI
Built with uv,
diff --git a/profile/README.md b/profile/README.md
index c270188..b87d421 100644
--- a/profile/README.md
+++ b/profile/README.md
@@ -49,6 +49,7 @@ Start new projects on [`modern-di`](https://github.com/modern-python/modern-di).
| [`db-retry`](https://github.com/modern-python/db-retry) | Retry helpers for PostgreSQL / SQLAlchemy database operations | [](https://github.com/modern-python/db-retry/stargazers) | [](https://pepy.tech/projects/db-retry) |
| [`eof-fixer`](https://github.com/modern-python/eof-fixer) | CLI tool that ensures text files end with exactly one newline | [](https://github.com/modern-python/eof-fixer/stargazers) | [](https://pepy.tech/projects/eof-fixer) |
| [`release-scope`](https://github.com/modern-python/release-scope) | Collect what sits between production and the default branch across GitLab services: tags, MRs, Jira keys, failed jobs | [](https://github.com/modern-python/release-scope/stargazers) | [](https://pepy.tech/projects/release-scope) |
+| [`sqlalchemy-inbox`](https://github.com/modern-python/sqlalchemy-inbox) | Transactional inbox ledger for SQLAlchemy asyncio on PostgreSQL | [](https://github.com/modern-python/sqlalchemy-inbox/stargazers) | [](https://pepy.tech/projects/sqlalchemy-inbox) |
| [`semvertag`](https://github.com/modern-python/semvertag) | Auto-tag GitHub & GitLab repos with semantic version tags from CI | [](https://github.com/modern-python/semvertag/stargazers) | [](https://pepy.tech/projects/semvertag) |
### Support
diff --git a/tests/test_projects.py b/tests/test_projects.py
index 83c4e0b..5c1b506 100644
--- a/tests/test_projects.py
+++ b/tests/test_projects.py
@@ -38,6 +38,7 @@ def test_project_frame_parses_and_uses_tokens() -> None:
"faststream-concurrent-aiokafka",
"faststream-outbox",
"db-retry",
+ "sqlalchemy-inbox",
"eof-fixer",
"semvertag",
"modern-di-arq",