diff --git a/src/app/blog/futures-thoughts/page.mdx b/src/app/blog/futures-thoughts/page.mdx
new file mode 100644
index 00000000..69e99872
--- /dev/null
+++ b/src/app/blog/futures-thoughts/page.mdx
@@ -0,0 +1,160 @@
+import { BlogPostLayout } from '@/components/BlogPostLayout'
+import {ThemeImage} from '@/components/ThemeImage'
+
+export const post = {
+ draft: false,
+ author: 'RĂ¼diger Klaehn',
+ date: '2024-11-27',
+ title: 'Own your future!',
+ description:
+ 'How to write somewhat ergonomic async callbacks with current async rust',
+}
+
+export const metadata = {
+ title: post.title,
+ description: post.description,
+}
+
+export default (props) =>
+
+# Futures thoughts
+
+Futures want to be owned. This is not strictly speaking necessary, but the ergonomics of non-owned futures are horrible. People have been thinking about improving ergonomics for a while, and there are some [interesting proposals](https://smallcultfollowing.com/babysteps/blog/2024/06/26/claim-followup-1/) to improve things. But we will have to live with the current state for a while and possibly forever.
+
+Let's say you have a place you want to be able to customize using some sort of async callback. Here is a very simple version. Usually you got some boxing in there as well, but let's just use this.
+
+```rust
+async fn use_cb(f: F) -> T
+where
+ F: Fn() -> Fut,
+ Fut: Future