# Understanding the Decoder type

**URL:** <https://discourse.elm-lang.org/t/understanding-the-decoder-type/1188>\
**Category:** Learn\
**Created:** [April 28, 2018, 8:51pm UTC](https://discourse.elm-lang.org/t/understanding-the-decoder-type/1188 "2018-04-28T20:51:48Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![mattpiz](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/mattpiz/32/860_2.png) [@mattpiz](https://discourse.elm-lang.org/u/mattpiz)\
**Post date:** [April 29, 2018, 4:37am UTC](https://discourse.elm-lang.org/t/understanding-the-decoder-type/1188/7 "2018-04-29T04:37:18Z")

</div>

I must link this fantastic article explaining how you could have created the Json.Decode library and the Decoder type step by step:

> [@New blog post: You could have designed the Json.Decode library!](https://discourse.elm-lang.org/t/new-blog-post-you-could-have-designed-the-json-decode-library/120):
>
> At elm-conf I had a weird idea about writing a universal JSON decoder that decoded JSON into a generic JsonValue type. I noodled with it for a while and realized that my experimentation didn’t yield any crazy new tech but did help me understand why Json.Decoder works the way it does better than anything I’d seen previously. I just published a blog post that explains what I learned: [https://dev.to/matthewsj/you-could-have-designed-the-jsondecode-library-2d8](https://dev.to/matthewsj/you-could-have-designed-the-jsondecode-library-2d8) I’d love to hear what you think about i…

---

_[View the full topic](https://discourse.elm-lang.org/t/understanding-the-decoder-type/1188)._
