diff --git a/json-spec-openapi.cabal b/json-spec-openapi.cabal
--- a/json-spec-openapi.cabal
+++ b/json-spec-openapi.cabal
@@ -1,6 +1,6 @@
 cabal-version:       3.0
 name:                json-spec-openapi
-version:             0.2.0.0
+version:             0.2.1.0
 synopsis:            json-spec-openapi
 description:
   This package provides a way to produce
@@ -64,7 +64,7 @@
   build-depends:
     , aeson                     >= 2.2.1.0  && < 2.3
     , base                      >= 4.19.0.0 && < 4.20
-    , insert-ordered-containers >= 0.2.5    && < 0.3
+    , insert-ordered-containers >= 0.2.5.3 && < 0.3
     , json-spec                 >= 0.2.1.3  && < 0.3
     , lens                      >= 5.2.3    && < 5.3
     , openapi3                  >= 3.2.4    && < 3.3
diff --git a/src/Data/JsonSpec/OpenApi.hs b/src/Data/JsonSpec/OpenApi.hs
--- a/src/Data/JsonSpec/OpenApi.hs
+++ b/src/Data/JsonSpec/OpenApi.hs
@@ -104,16 +104,17 @@
 import Data.Functor.Identity (Identity(runIdentity))
 import Data.JsonSpec (HasJsonDecodingSpec(DecodingSpec),
   HasJsonEncodingSpec(EncodingSpec), Specification(JsonArray, JsonBool,
-  JsonDateTime, JsonEither, JsonInt, JsonLet, JsonNum, JsonObject,
-  JsonRef, JsonString, JsonTag))
+  JsonDateTime, JsonEither, JsonInt, JsonLet, JsonNullable, JsonNum,
+  JsonObject, JsonRef, JsonString, JsonTag))
 import Data.OpenApi (AdditionalProperties(AdditionalPropertiesAllowed),
   HasAdditionalProperties(additionalProperties), HasEnum(enum_),
   HasFormat(format), HasItems(items), HasOneOf(oneOf),
   HasProperties(properties), HasRequired(required), HasType(type_),
   NamedSchema(NamedSchema), OpenApiItems(OpenApiItemsObject),
-  OpenApiType(OpenApiArray, OpenApiBoolean, OpenApiInteger, OpenApiNumber,
-  OpenApiObject, OpenApiString), Reference(Reference), Referenced(Inline,
-  Ref), ToSchema(declareNamedSchema), Definitions, Schema)
+  OpenApiType(OpenApiArray, OpenApiBoolean, OpenApiInteger, OpenApiNull,
+  OpenApiNumber, OpenApiObject, OpenApiString), Reference(Reference),
+  Referenced(Inline, Ref), ToSchema(declareNamedSchema), Definitions,
+  Schema)
 import Data.OpenApi.Declare (DeclareT(runDeclareT), MonadDeclare(declare))
 import Data.String (IsString(fromString))
 import Data.Text (Text)
@@ -314,7 +315,7 @@
       mempty
         & set type_ (Just OpenApiString)
         & set format (Just "date-time")
-instance
+instance {- Undefined Let -}
     Unsatisfiable (
       T "`JsonRef \"" :<>: T target :<>: T "\"` is not defined.\n"
       :$$: T "You are trying to use a JsonRef as the \"top level\" "
@@ -364,6 +365,16 @@
     schemaable Proxy = do
       mkDefs (Proxy @defs)
       schemaable (Proxy @spec)
+instance (Schemaable spec) => Schemaable (JsonNullable spec) where
+  schemaable Proxy = do
+    schema <- schemaable (Proxy @spec)
+    pure $
+      mempty
+        & set oneOf (Just
+            [ Inline (mempty & set type_ (Just OpenApiNull))
+            , Inline schema
+            ]
+        )
 
 
 {-| Go through and make a declaration for each item in a JsonLet.  -}
diff --git a/test/test.hs b/test/test.hs
--- a/test/test.hs
+++ b/test/test.hs
@@ -16,7 +16,8 @@
 import Data.JsonSpec (Field(Field), HasJsonDecodingSpec(DecodingSpec,
   fromJSONStructure), HasJsonEncodingSpec(EncodingSpec, toJSONStructure),
   SpecJSON(SpecJSON), Specification(JsonArray, JsonBool, JsonDateTime,
-  JsonEither, JsonLet, JsonNum, JsonObject, JsonRef, JsonString, JsonTag))
+  JsonEither, JsonInt, JsonLet, JsonNullable, JsonNum, JsonObject,
+  JsonRef, JsonString, JsonTag))
 import Data.JsonSpec.OpenApi (EncodingSchema, toOpenApiSchema)
 import Data.OpenApi (Definitions, ToSchema)
 import Data.Proxy (Proxy(Proxy))
@@ -190,6 +191,27 @@
           expected = (mempty, boolSchema)
         in
           actual `shouldBe` expected
+
+      it "nullable" $
+        let
+          actual :: (Definitions OA.Schema, OA.Schema)
+          actual =
+            toOpenApiSchema (Proxy @(JsonNullable JsonInt))
+
+          expected :: (Definitions OA.Schema, OA.Schema)
+          expected =
+            ( mempty
+            , mempty
+                & set OA.oneOf (Just
+                  [ OA.Inline $
+                      mempty & set OA.type_ (Just OA.OpenApiNull)
+                  , OA.Inline $
+                      mempty & set OA.type_ (Just OA.OpenApiInteger)
+                  ]
+                )
+            )
+        in
+          encode actual `shouldBe` encode expected
 
       it "date-time" $
         let
