--- a
+++ b/.github/workflows/ammr-doc.yaml
@@ -0,0 +1,112 @@
+
+name: Documentation build and deploy
+
+on:
+  push:
+     branches: [ master ]
+     tags: ['*']
+  pull_request:
+     branches: [ master ]
+  workflow_dispatch:
+
+concurrency: 
+  group: ci-docs-${{ github.ref }}
+  cancel-in-progress: true
+
+
+jobs:
+  build-latest:
+    runs-on: ubuntu-latest
+    if: github.repository == 'anybody/ammr' || github.event_name != 'push'
+  
+    steps:
+      - uses: actions/checkout@v4
+        
+      - uses: prefix-dev/setup-pixi@v0.8.7
+        with:
+          environments: docs
+          cache-write: ${{ github.event_name == 'push' && github.ref_name == 'master' }}
+          activate-environment: docs
+  
+      - name: Link check
+        run: |
+          cd Docs
+          sphinx-build -M linkcheck . _build -W --keep-going -a -q 
+                            
+      - name: Build Documentation
+        run: |
+          cd Docs
+          rm -rf _build
+          sphinx-build -M html . _build -W --keep-going -a -t draft
+
+      - uses: actions/upload-artifact@v4
+        with:
+          name: beta-version
+          path: Docs/_build/html
+
+    
+  build-tagged:
+    runs-on: ubuntu-latest
+    if: (github.repository == 'anybody/ammr' || github.event_name != 'push') && github.ref == 'refs/heads/master'
+  
+    steps:
+      - uses: actions/checkout@v4
+        with: 
+          fetch-depth: 0
+          
+
+      - name: Checkout last tagged version
+        run: |
+          git checkout $(git describe --tags `git rev-list --tags=ammr* --max-count=1`);
+      
+      - uses: prefix-dev/setup-pixi@v0.8.7
+        with:
+            environments: docs
+            cache-write: ${{ github.event_name == 'push' && github.ref_name == 'master' }}
+            activate-environment: docs
+  
+      - name: Build Documentation
+        run: |
+          cd Docs
+          sphinx-build -M html . _build -a
+
+      - uses: actions/upload-artifact@v4
+        with:
+          name: tagged-version
+          path: Docs/_build/html
+
+
+  prepare-pages:
+    needs: [build-latest, build-tagged]
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/download-artifact@v4
+        with:
+          name: tagged-version
+          path: public
+      - uses: actions/download-artifact@v4
+        with:
+          name: beta-version
+          path: public/beta
+      - uses: actions/upload-pages-artifact@v3
+        with: 
+          path: public
+
+
+  deploy:
+    needs: prepare-pages
+    if: github.ref == 'refs/heads/master'
+    runs-on: ubuntu-latest
+    permissions:
+      pages: write    
+      id-token: write 
+
+    environment:
+      name: github-pages
+      url: ${{ steps.deployment.outputs.page_url }}
+
+    steps:
+      - name: Deploy to GitHub Pages
+        id: deployment
+        uses: actions/deploy-pages@v4
+