diff --git a/recipes/backends/cairo/recipe.sh b/recipes/backends/cairo/recipe.sh
deleted file mode 100755
index 9116f701f59d004a2e97a8b783e69dff2225ed73..0000000000000000000000000000000000000000
--- a/recipes/backends/cairo/recipe.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-VERSION="1.16.0"
-TAR=https://www.cairographics.org/releases/cairo-$VERSION.tar.xz
-BUILD_DEPENDS=(expat freetype2 fontconfig libpng pixman zlib)
-
-function recipe_version {
-	echo "$VERSION"
-	skip=1
-}
-
-function recipe_build {
-	#Workaround to disable the not redox compatible tests
-	printf "all:\n\ninstall:\n" > ./test/Makefile.in
-	printf "all:\n\ninstall:\n" > ./perf/Makefile.in
-
-	sysroot="$(realpath ../sysroot)"
-	export LDFLAGS="-L$sysroot/lib"
-	export CPPFLAGS="-I$sysroot/include"
-	CFLAGS="-DCAIRO_NO_MUTEX=1" ./configure \
-	    --build=${BUILD} \
-	    --host=${HOST} \
-	    --prefix=/ \
-	    --enable-xlib=no \
-	    --enable-script=no \
-	    --enable-interpreter=no
-	"$REDOX_MAKE" -j"$($NPROC)"
-    	skip=1
-}
-
-function recipe_clean {
-	"$REDOX_MAKE" clean
-	skip=1
-}
-
-function recipe_stage {
-	dest="$(realpath $1)"
-	"$REDOX_MAKE" DESTDIR="$dest" install
-	rm -f "$dest/lib/"*.la
-	skip=1
-}
diff --git a/recipes/backends/cairo/recipe.toml b/recipes/backends/cairo/recipe.toml
new file mode 100755
index 0000000000000000000000000000000000000000..5c8188388f18576599b5191f3ce2252971bfa8a4
--- /dev/null
+++ b/recipes/backends/cairo/recipe.toml
@@ -0,0 +1,28 @@
+[source]
+tar = "https://www.cairographics.org/releases/cairo-1.16.0.tar.xz"
+blake3 = "33e88a21de1fa52405f3952647b3bfd21d5d9d394e1abbc9ddb050a8ca09e35a"
+script = """
+#Workaround to disable the not redox compatible tests
+printf "all:\n\ninstall:\n" > ./test/Makefile.in
+printf "all:\n\ninstall:\n" > ./perf/Makefile.in
+"""
+
+[build]
+dependencies = [
+	"expat",
+	"freetype2",
+	"fontconfig",
+	"libpng",
+	"pixman",
+	"zlib",
+]
+template = "custom"
+script = """
+export CFLAGS="-DCAIRO_NO_MUTEX=1"
+COOKBOOK_CONFIGURE_FLAGS+=(
+    --enable-xlib=no
+    --enable-script=no
+    --enable-interpreter=no
+)
+cookbook_configure
+"""