diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,12 @@
 # Revision history for mmzk-env
 
 
+## 0.2.1.1 -- 2026-03-22
+
+* Added `DefaultBool` for `Bool` fields with a type-level default value.
+* Added `DataKinds` to default extensions.
+
+
 ## 0.2.1.0 -- 2025-11-30
 
 * Add the missing `validateEnvW` and `validateEnvWWith` functions for validating environment variables with witness types.
@@ -16,7 +22,7 @@
   * Add `RecordParserW` for witnessed record parsing.
   * Add `TypeParserW` for witnessed type parsing.
   * Add `DefaultNum` witness type for providing default numeric values.
-  
+
 * Add convenient `Maybe` result variants for parsers.
 
 * Add runnable example executables in `app/`:
diff --git a/mmzk-env.cabal b/mmzk-env.cabal
--- a/mmzk-env.cabal
+++ b/mmzk-env.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               mmzk-env
-version:            0.2.1.0
+version:            0.2.1.1
 
 synopsis:           Read environment variables into a user-defined data type
 description:
@@ -51,6 +51,7 @@
     import:           settings
     exposed-modules:
         Data.Env
+        Data.Env.DefaultBool
         Data.Env.EnumParser
         Data.Env.ExtractFields
         Data.Env.RecordParser
@@ -70,13 +71,14 @@
 test-suite test
     import:           settings
     main-is:          Spec.hs
+    type:             exitcode-stdio-1.0
     other-modules:
         BasicTypeParserSpec
+        DefaultBoolSpec
         DefaultWitnessSpec
         EnumParserSpec
         RecordParserSpec
         RecordParserWSpec
-    type:             exitcode-stdio-1.0
     build-depends:
         base >=4.16 && <5,
         containers,
diff --git a/src/Data/Env/DefaultBool.hs b/src/Data/Env/DefaultBool.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Env/DefaultBool.hs
@@ -0,0 +1,43 @@
+-- |
+-- Module: Data.Env.DefaultBool
+-- Description: A helper type for Bool fields with a type-level default value.
+--
+-- This module provides 'DefaultBool', a newtype wrapping 'Bool' whose
+-- 'TypeParser' instance returns a type-level default when the input is empty.
+--
+-- Example usage:
+--
+-- > data Config = Config
+-- >   { debug   :: DefaultBool 'False
+-- >   , verbose :: DefaultBool 'True
+-- >   } deriving (Show, Generic, EnvSchema)
+-- >
+-- > -- DEBUG unset → DefaultBool False
+-- > -- DEBUG=True  → DefaultBool True
+-- > -- DEBUG=False → DefaultBool False
+module Data.Env.DefaultBool where
+
+import Data.Env.TypeParser (TypeParser(..))
+import Data.Proxy          (Proxy(..))
+
+-- | A 'Bool' field with a type-level default.
+--
+-- When the environment variable is absent (empty string) the field takes the
+-- value @def@; otherwise the string is parsed as a regular 'Bool'.
+newtype DefaultBool (def :: Bool) = DefaultBool Bool
+  deriving (Show, Eq, Ord)
+
+-- | Reflect a type-level 'Bool' to a value-level 'Bool'.
+class BoolDefault (b :: Bool) where
+  boolDefault :: Proxy b -> Bool
+
+instance BoolDefault 'True where
+  boolDefault _ = True
+
+instance BoolDefault 'False where
+  boolDefault _ = False
+
+instance BoolDefault def => TypeParser (DefaultBool def) where
+  parseType "" = Right (DefaultBool (boolDefault (Proxy :: Proxy def)))
+  parseType s  = DefaultBool <$> parseType s
+  {-# INLINE parseType #-}
diff --git a/test/DefaultBoolSpec.hs b/test/DefaultBoolSpec.hs
new file mode 100644
--- /dev/null
+++ b/test/DefaultBoolSpec.hs
@@ -0,0 +1,23 @@
+module DefaultBoolSpec ( spec ) where
+
+import Data.Either ( isLeft )
+import Data.Env.DefaultBool
+import Data.Env.TypeParser
+import Test.Hspec
+
+spec :: Spec
+spec = describe "DefaultBool" do
+  it "parses True" do
+    parseType @(DefaultBool 'False) "True" `shouldBe` Right (DefaultBool True)
+    parseType @(DefaultBool 'True)  "True" `shouldBe` Right (DefaultBool True)
+  it "parses False" do
+    parseType @(DefaultBool 'False) "False" `shouldBe` Right (DefaultBool False)
+    parseType @(DefaultBool 'True)  "False" `shouldBe` Right (DefaultBool False)
+  it "defaults to False when empty" do
+    parseType @(DefaultBool 'False) "" `shouldBe` Right (DefaultBool False)
+  it "defaults to True when empty" do
+    parseType @(DefaultBool 'True) "" `shouldBe` Right (DefaultBool True)
+  it "fails to parse other values" do
+    parseType @(DefaultBool 'False) "1"     `shouldSatisfy` isLeft
+    parseType @(DefaultBool 'False) "true"  `shouldSatisfy` isLeft
+    parseType @(DefaultBool 'False) "false" `shouldSatisfy` isLeft
