diff --git a/fits-parse.cabal b/fits-parse.cabal
--- a/fits-parse.cabal
+++ b/fits-parse.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.12
 name:               fits-parse
-version:            0.3.2
+version:            0.3.3
 license:            BSD2
 license-file:       LICENSE
 copyright:          Copyright (c) 2023 Zac Slade
@@ -16,6 +16,9 @@
 build-type:         Simple
 extra-source-files:
     README.md
+    stack.yaml
+    stack.yaml.lock
+    package.yaml
     docs/Makefile
     docs/make.bat
     docs/conf.py
diff --git a/package.yaml b/package.yaml
new file mode 100644
--- /dev/null
+++ b/package.yaml
@@ -0,0 +1,76 @@
+name:                fits-parse
+version:             0.3.3
+synopsis:            Parse FITS files
+description:         Parse and manipulate FITS data natively in Haskell
+homepage:            https://github.com/krakrjak/fits-parse#readme
+license:             BSD2
+author:              Zac Slade
+maintainer:
+  - Zac Slade <krakrjak@gmail.com>
+  - Sean Hess
+copyright:           Copyright (c) 2023 Zac Slade
+category:            Science
+extra-source-files:
+  - README.md
+  - stack.yaml
+  - stack.yaml.lock
+  - package.yaml
+  - docs/Makefile
+  - docs/make.bat
+  - docs/conf.py
+  - docs/index.rst
+  - docs/examples/omnibus.rst
+  - fits_files/*.fits
+  - fits_files/*.txt
+  - fits_files/nonconformant/*.fits
+
+flags:
+  examples:
+    description: Do you want to build the examples?
+    manual: true
+    default: false
+
+dependencies:
+  - base >= 4.7 && < 5
+  - bytestring
+  - microlens
+  - microlens-th
+
+library:
+  source-dirs: src
+  dependencies:
+      - containers
+      - text
+      - megaparsec
+      - text-latin1
+      - binary
+
+executables:
+  omnibus:
+    when:
+      - condition: flag(examples)
+        buildable: true
+    source-dirs: examples/omnibus
+    main: Main.hs
+    dependencies:
+    - fits-parse
+    - optparse-applicative
+    - JuicyPixels
+    - fast-logger
+    - vector
+    - statistics
+
+
+tests:
+  fits-tests:
+    source-dirs: test
+    main: Spec.hs
+    dependencies:
+    - fits-parse
+    - containers
+    - tasty
+    - tasty-hunit
+    - text
+    - megaparsec
+    - mtl
+
diff --git a/stack.yaml b/stack.yaml
new file mode 100644
--- /dev/null
+++ b/stack.yaml
@@ -0,0 +1,11 @@
+resolver: lts-21.6
+pvp-bounds: both
+
+### Uncomment the next three lines to build the examples
+#flags:
+#  fits-parse:
+#    examples: true
+## A one liner `stack build --flag fits-parse:examples`
+
+packages:
+    - .
diff --git a/stack.yaml.lock b/stack.yaml.lock
new file mode 100644
--- /dev/null
+++ b/stack.yaml.lock
@@ -0,0 +1,12 @@
+# This file was autogenerated by Stack.
+# You should not edit this file by hand.
+# For more information, please see the documentation at:
+#   https://docs.haskellstack.org/en/stable/lock_files
+
+packages: []
+snapshots:
+- completed:
+    sha256: 2e7d4a730d8eb5373b2d383fac84efcf7c81e3b7a5fce71b4c2e19a1768f25a6
+    size: 640239
+    url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/21/6.yaml
+  original: lts-21.6
