diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml
index 41e3464360..da3939fb81 100644
--- a/.github/workflows/cd.yml
+++ b/.github/workflows/cd.yml
@@ -68,16 +68,16 @@ jobs:
 
     - name: Build Release Mac
       if: matrix.os == 'macos-latest'
-      run: make release-mac
+      run: GITUI_RELEASE=1 make release-mac
     - name: Build Release Linux
       if: matrix.os == 'ubuntu-latest'
-      run: make release-linux-musl
+      run: GITUI_RELEASE=1 make release-linux-musl
     - name: Build Release Win
       if: matrix.os == 'windows-latest'
-      run: make release-win
+      run: GITUI_RELEASE=1 make release-win
     - name: Build Release Linux ARM
       if: matrix.os == 'ubuntu-22.04'
-      run: make release-linux-arm
+      run: GITUI_RELEASE=1 make release-linux-arm
 
     - name: Set SHA
       if: matrix.os == 'macos-latest'
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e653fb26fb..453c8a7909 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -2,7 +2,7 @@ name: CI
 
 on:
   schedule:
-    - cron: '0 2 * * *' # run at 2 AM UTC
+    - cron: '0 2 * * *'
   push:
     branches: [ '*' ]
   pull_request:
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
new file mode 100644
index 0000000000..ed62038f79
--- /dev/null
+++ b/.github/workflows/nightly.yml
@@ -0,0 +1,119 @@
+name: Build Nightly Releases
+
+on: 
+  schedule:
+    - cron: '0 3 * * *'
+  workflow_dispatch:
+
+env:
+  CARGO_TERM_COLOR: always
+  AWS_BUCKET_NAME: s3://gitui/nightly/
+
+jobs:
+  release:
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [
+          ubuntu-latest, macos-latest, windows-latest, ubuntu-22.04
+          ]
+    runs-on: ${{ matrix.os }}
+
+    steps:
+    - uses: actions/checkout@v4
+
+    - name: Restore cargo cache
+      uses: Swatinem/rust-cache@v2
+      env:
+        cache-name: ci
+      with:
+        shared-key: ${{ matrix.os }}-${{ env.cache-name }}-stable
+
+    - name: Install Rust
+      uses: dtolnay/rust-toolchain@stable
+      with:
+        components: clippy
+
+    # ideally we trigger the nightly build/deploy only if the normal nightly CI finished successfully 
+    - name: Run tests
+      if: matrix.os != 'ubuntu-22.04'
+      run: make test
+    - name: Run clippy
+      if: matrix.os != 'ubuntu-22.04'
+      run: |
+        cargo clean
+        make clippy
+
+    - name: Setup MUSL
+      if: matrix.os == 'ubuntu-latest'
+      run: |
+        rustup target add x86_64-unknown-linux-musl
+        sudo apt-get -qq install musl-tools
+
+    - name: Setup ARM toolchain
+      if: matrix.os == 'ubuntu-22.04'
+      run: |
+        rustup target add aarch64-unknown-linux-gnu
+        rustup target add armv7-unknown-linux-gnueabihf
+        rustup target add arm-unknown-linux-gnueabihf
+
+        curl -o $GITHUB_WORKSPACE/aarch64.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu.tar.xz
+        curl -o $GITHUB_WORKSPACE/arm.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.xz
+
+        tar xf $GITHUB_WORKSPACE/aarch64.tar.xz
+        tar xf $GITHUB_WORKSPACE/arm.tar.xz
+
+        echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu/bin" >> $GITHUB_PATH
+        echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin" >> $GITHUB_PATH
+
+    - name: Build Release Mac
+      if: matrix.os == 'macos-latest'
+      run: make release-mac
+    - name: Build Release Linux
+      if: matrix.os == 'ubuntu-latest'
+      run: make release-linux-musl
+    - name: Build Release Win
+      if: matrix.os == 'windows-latest'
+      run: make release-win
+    - name: Build Release Linux ARM
+      if: matrix.os == 'ubuntu-22.04'
+      run: make release-linux-arm
+
+    - name: Ubuntu 22.04 Upload Artifact
+      if: matrix.os == 'ubuntu-22.04'
+      env:
+        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
+        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }}
+        AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }}
+      run: |
+        aws s3 cp ./release/gitui-linux-armv7.tar.gz $AWS_BUCKET_NAME
+        aws s3 cp ./release/gitui-linux-arm.tar.gz $AWS_BUCKET_NAME
+        aws s3 cp ./release/gitui-linux-aarch64.tar.gz $AWS_BUCKET_NAME
+          
+    - name: Ubuntu Latest Upload Artifact
+      if: matrix.os == 'ubuntu-latest'
+      env:
+        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
+        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }}
+        AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }}
+      run: |
+        aws s3 cp ./release/gitui-linux-x86_64.tar.gz $AWS_BUCKET_NAME
+
+    - name: MacOS Upload Artifact
+      if: matrix.os == 'macos-latest'  
+      env:
+        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
+        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }}
+        AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }}
+      run: |
+        aws s3 cp ./release/gitui-mac.tar.gz $AWS_BUCKET_NAME
+
+    - name: Windows Upload Artifact
+      if: matrix.os == 'windows-latest' 
+      env:
+        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
+        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_KEY_SECRET }}
+        AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }}
+      run: |
+        aws s3 cp ./release/gitui.msi $env:AWS_BUCKET_NAME
+        aws s3 cp ./release/gitui-win.tar.gz $env:AWS_BUCKET_NAME
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 45991a09c4..465176b034 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 ## Unreleased
 
 ### Added
+* provide nightly builds (see [NIGHTLIES.md](./NIGHTLIES.md)) ([#2083](https://github.com/extrawurst/gitui/issues/2083))
 * sign commits using openpgp [[@hendrikmaus](https://github.com/hendrikmaus)] ([#97](https://github.com/extrawurst/gitui/issues/97))
 
 ### Changed
diff --git a/Makefile b/Makefile
index 02aedfe3fb..73e69822ea 100644
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@ debug:
 	RUST_BACKTRACE=true cargo run --features=timing -- ${ARGS}
 
 build-release:
-	GITUI_RELEASE=1 cargo build --release --locked
+	cargo build --release --locked
 
 release-mac: build-release
 	strip target/release/gitui
@@ -42,7 +42,7 @@ build-linux-musl-debug:
 	cargo build --target=x86_64-unknown-linux-musl
 
 build-linux-musl-release:
-	GITUI_RELEASE=1 cargo build --release --target=x86_64-unknown-linux-musl
+	cargo build --release --target=x86_64-unknown-linux-musl
 
 test-linux-musl:
 	cargo test --workspace --target=x86_64-unknown-linux-musl
@@ -64,9 +64,9 @@ build-linux-arm-debug:
 	cargo build --target=arm-unknown-linux-gnueabihf
 
 build-linux-arm-release:
-	GITUI_RELEASE=1 cargo build --release --target=aarch64-unknown-linux-gnu
-	GITUI_RELEASE=1 cargo build --release --target=armv7-unknown-linux-gnueabihf
-	GITUI_RELEASE=1 cargo build --release --target=arm-unknown-linux-gnueabihf
+	cargo build --release --target=aarch64-unknown-linux-gnu
+	cargo build --release --target=armv7-unknown-linux-gnueabihf
+	cargo build --release --target=arm-unknown-linux-gnueabihf
 
 test:
 	cargo test --workspace
diff --git a/NIGHTLIES.md b/NIGHTLIES.md
new file mode 100644
index 0000000000..afe95a9f41
--- /dev/null
+++ b/NIGHTLIES.md
@@ -0,0 +1,14 @@
+# Nightlies
+
+**Use with caution as these binaries are build nightly and might be broken**
+
+When you find problems please report them and always mention the version that you see in the `help popup` or when running `gitui -V`
+
+* [gitui-linux-aarch64.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-linux-aarch64.tar.gz)
+* [gitui-linux-arm.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-linux-arm.tar.gz)
+* [gitui-linux-armv7.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-linux-armv7.tar.gz)
+* [gitui-linux-x86_64.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-linux-x86_64.tar.gz)
+* [gitui-mac.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-mac.tar.gz)
+* [gitui-win.tar.gz](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-mac.tar.gz)
+* [gitui-win.msi](https://gitui.s3.eu-west-1.amazonaws.com/nightly/gitui-mac.tar.gz)
+
diff --git a/README.md b/README.md
index b6b3e15ebd..f0e619b50e 100644
--- a/README.md
+++ b/README.md
@@ -194,7 +194,7 @@ conda install -c conda-forge gitui
 
 Binaries available for:
 
-### Linux
+#### Linux
 
 - gitui-linux-x86_64.tar.gz (linux musl statically linked)
 - gitui-linux-aarch64.tar.gz (linux on 64 bit arm)
@@ -203,16 +203,18 @@ Binaries available for:
 
 All contain a single binary file
 
-### macOS
+#### macOS
 
 - gitui-mac.tar.gz (intel Mac, uses Rosetta on Apple silicon, single binary)
 
-
-### Windows
+#### Windows
 
 - gitui-win.tar.gz (single 64bit binary)
 - gitui-win.msi (64bit Installer package)
 
+### Nightly Builds
+
+see [NIGHTLIES.md](./NIGHTLIES.md)
 
 ## 7.  Build [Top ▲](#table-of-contents)