DEV Community

Cover image for freeCodeCamp's Markdown Previewer project built in Elm
Dwayne Crooks
Dwayne Crooks

Posted on • Edited on

freeCodeCamp's Markdown Previewer project built in Elm

Last week I completed the Markdown Previewer project in Elm.

Here's my demo and the source code.

Whether you choose to just read the code or to build the project you will learn the following:

  1. How to use elm-explorations/markdown to render GitHub flavored Markdown.
  2. How to edit and preview the Markdown in real-time.
  3. How to maximize and minimize the editor and the previewer.

I'm curious. What are you building in Elm?

Top comments (3)

Collapse
 
ssimontis profile image
Scott Simontis

Thank you for sharing this! I have been learning F# for several years, so Elm feels very natural. But Elm has been incredibly frustrating because the documentation is lacking, the community is small, and the development process seems very immature.

To give an example, I saw last week where a feature had been removed because a developer thought it wasn't elegant, but he offered no workaround. Now someone was left with broken code and the only response he could get was something along the lines of "I bet someone on our Discord channel will be able to figure it out!"

It made me sad to see this, because my instinct was telling me I can't use Elm professionally for quite some time. I love PureScript and ReasonML too, but they all seem to be lacking a coherent community + tooling + documentation trifecta that would allow me to take advantage of them.

It sounds like you're pretty comfortable with Elm and doing great things with it. How did you overcome these fears? What resources helped you get a grasp on Elm?

Collapse
 
dwayne profile image
Dwayne Crooks

Thank you for sharing this!

You're welcome!

But Elm has been incredibly frustrating because the documentation is lacking, the community is small, and the development process seems very immature.

Evan is rethinking front-end web development by designing a better language. That's a huge non-trivial thankless task and it will take time for it to improve to your standards. Elm is Evan's baby that he decided to share with us and he didn't need to. I take a long term view with Elm because I believe it is fundamentally better than the alternatives and though the community is small it has a high concentration of skilled thoughtful professional developers.

It sounds like you're pretty comfortable with Elm...

Yes.

...and doing great things with it.

No, I wouldn't say that. I'm just working on insignificant side-projects where I get to write Elm and learn to think in a typed functional language. I don't know if I'd ever get to write Elm professionally but the ideas have improved the way I write software in general.

What resources helped you get a grasp on Elm?

Good question. I've been programming for quite a while so most of the knowledge that helped me grasp Elm didn't come solely from Elm specific resources.

Non-Elm specific resources that shaped my thinking include:

And more recently,

The Elm specific content that I've used include:

Other than that I just try to build stuff with Elm.

Collapse
 
ssimontis profile image
Scott Simontis

I admire your perspective and approach a lot. I was so caught up with the "production or bust" approach from my last job that I needed a reminder to step back and appreciate the greater context of Evan's work.

Thanks for reminding me to be grateful for what we have so far instead of focusing on where I wish we were. It is amazing that he shared Elm with the world instead of worrying what others would think about it or how many stars it would receive on GitHub, and sharing his passion for Elm with us.

You have me a lot of resources t study, I have been meaning to go through SICP for years but never have done so. I have been so caught up with work and have been unable to get out of that mindset. Even if I wasn't working, I would be adopting the same mindset so that I could get hired faster and market myself in the way that recruiters wanted me to project so that their life would be easier.

I need to spend some time studying for myself without worrying about what is commercially viable or what I can convince an entire team at work to adopt. While I try to get my freelance career set up, I think I am going to make learning for myself a daily goal.

I appreciate your article and your response a lot. I needed to hear this. Just looking through the Elm source code a little, there is so much to learn. I have always had an interest in parsers and there is some absolute gold within the Elm language when it comes to that.