diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,15 @@
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Haskell Package Versioning Policy](https://pvp.haskell.org/).
 
+## [0.2.0] - 2020-11-02
+### Added
+
+- Using [hakyll-process](https://hackage.haskell.org/package/hakyll-process) to call the ts compiler.
+
+### Changed
+
+- Widened `hakyll` version bounds.
+
 ## [0.1.0] - 2019-09-29
 ### Added
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
 # hakyll-typescript
 
+[![Hackage Badge](https://img.shields.io/hackage/v/hakyll-typescript)](http://hackage.haskell.org/package/hakyll-typescript)
+
 A simple [`hakyll`](http://hackage.haskell.org/package/hakyll)
 typescript compiler for typescript and javascript resources. Uses
 [`hjsmin`](http://hackage.haskell.org/package/hjsmin) for compression.
@@ -16,7 +18,7 @@
 import Hakyll.Typescript.TS
 
 main = hakyll $ do
-  -- Matches any file inside a the directory ./scripts
+  -- Matches any file inside the directory ./scripts
   match "scripts/**" $ do
     route   $ setExtension "js"
     -- compiles all typescript and javascript to the js target
diff --git a/hakyll-typescript.cabal b/hakyll-typescript.cabal
--- a/hakyll-typescript.cabal
+++ b/hakyll-typescript.cabal
@@ -1,5 +1,5 @@
 name:                hakyll-typescript
-version:             0.0.1.0
+version:             0.0.2.0
 synopsis:            Typescript and javascript hakyll compilers.
 description:         Provides typescript to javascript hakyll compilers and a
                      js minifying hakyll compiler. This is a simple wrapper
@@ -23,11 +23,11 @@
   exposed-modules:     Hakyll.Typescript.JS
                      , Hakyll.Typescript.TS
   other-modules:       Hakyll.Typescript.Internal
-  build-depends:       base          >= 4.7      && < 5
-                     , bytestring    >= 0.10.8.2 && < 0.11
-                     , hakyll        >= 4.12.4.0 && < 4.13
-                     , hjsmin        >= 0.2.0.2  && < 0.3 
-                     , typed-process >= 0.2.3.0  && < 0.3
+  build-depends:       base           >= 4.7      && < 5
+                     , bytestring     >= 0.10.8.2 && < 0.11
+                     , hakyll         >= 4.12.0.0 && < 4.14
+                     , hakyll-process >= 0.0.2.0  && < 0.0.3
+                     , hjsmin         >= 0.2.0.2  && < 0.3
   default-language:    Haskell2010
 
 test-suite test-hakyll-typescript
diff --git a/src/Hakyll/Typescript/TS.hs b/src/Hakyll/Typescript/TS.hs
--- a/src/Hakyll/Typescript/TS.hs
+++ b/src/Hakyll/Typescript/TS.hs
@@ -30,10 +30,9 @@
   where
 
 import           Data.ByteString.Lazy.Char8 (ByteString)
-import           GHC.Conc                   (atomically)
 import           Hakyll.Core.Item
 import           Hakyll.Core.Compiler
-import           System.Process.Typed
+import           Hakyll.Process             (execName, execCompilerWith, ExecutableArg(..), CompilerOut(CStdOut))
 
 import           Hakyll.Typescript.Internal
 
@@ -76,21 +75,8 @@
 -- |Compiles the typescript 'Hakyll.Core.Item.Item' to javascript.
 -- Passes the provided 'TSArgs' to the typescript compiler.
 tsCompilerWith :: TSArgs -> Compiler (Item ByteString)
-tsCompilerWith args = do
+tsCompilerWith args = execCompilerWith (execName "tsc") allArgs CStdOut
+  where
   -- this won't work on Windows, but that's probably fine
-  let defaultArgs = ["--outFile", "/dev/stdout"]
-  tsPath <- getResourceFilePath
-  let fullArgs = defaultArgs <> args <> [tsPath]
-  jsBody <- unsafeCompiler $ tsc fullArgs
-  -- just using this to get at the item
-  oldTsBody <- getResourceString
-  pure $ itemSetBody jsBody oldTsBody
-
-tsc :: TSArgs -> IO ByteString
-tsc args = withProcess procConf waitJsOutput where
-  procConf = setStdout byteStringOutput . proc "tsc" $ args
-  waitJsOutput process = do
-    let stmJs = getStdout process
-    js <- atomically stmJs
-    checkExitCode process
-    pure js
+  defaultArgs = [ProcArg "--outFile", ProcArg "/dev/stdout"]
+  allArgs     = defaultArgs <> fmap ProcArg args <> [HakFilePath]
