# Free web tutorials

**URL:** https://clojureverse.org/t/free-web-tutorials/8247
**Category:** Courses
**Created:** [October 6, 2021, 5:34am UTC](https://clojureverse.org/t/free-web-tutorials/8247 "2021-10-06T05:34:35Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![RoelofWobben1](https://clojureverse.org/user_avatar/clojureverse.org/roelofwobben1/32/4098_2.png) [@RoelofWobben1](https://clojureverse.org/u/RoelofWobben1)
#### Post date: [October 6, 2021, 5:34am UTC](https://clojureverse.org/t/free-web-tutorials/8247/1 "2021-10-06T05:34:35Z")

</div>

Hello,

Does someone know a good free resource to learn web development with clojure.  
I have a few projects I like to make but I want to learn to make a website with some react parts first.

Regards,

Roelof

---

<div class="post-metadata">

### Author: ![daslu](https://clojureverse.org/user_avatar/clojureverse.org/daslu/32/4173_2.png) [@daslu](https://clojureverse.org/u/daslu)
#### Post date: [October 6, 2021, 7:03am UTC](https://clojureverse.org/t/free-web-tutorials/8247/2 "2021-10-06T07:03:30Z")

</div>

I think the Clojurescript Podcast by @jacekschae is fantastic.

> **[ClojureScript Podcast](https://clojurescriptpodcast.com/)**
>
> ClojureScript Podcast - Join Jacek Schae and explore unusually expressive programming language with Lisp roots.

To me, it has been very helpful, always so careful about making things clear and coherent.

---

<div class="post-metadata">

### Author: ![fatmonky](https://clojureverse.org/user_avatar/clojureverse.org/fatmonky/32/3911_2.png) [@fatmonky](https://clojureverse.org/u/fatmonky)
#### Post date: [October 11, 2021, 2:57am UTC](https://clojureverse.org/t/free-web-tutorials/8247/3 "2021-10-11T02:57:12Z")

</div>

There is also this: [ClojureScript + Reagent Tutorial with Code Examples](https://purelyfunctional.tv/guide/reagent/)

---

<div class="post-metadata">

### Author: ![RoelofWobben1](https://clojureverse.org/user_avatar/clojureverse.org/roelofwobben1/32/4098_2.png) [@RoelofWobben1](https://clojureverse.org/u/RoelofWobben1)
#### Post date: [October 11, 2021, 8:46pm UTC](https://clojureverse.org/t/free-web-tutorials/8247/4 "2021-10-11T20:46:42Z")

</div>

Thanks all

what about this one : [Learn Re-Frame Free](https://www.jacekschae.com/learn-re-frame-free)

---

<div class="post-metadata">

### Author: ![fatmonky](https://clojureverse.org/user_avatar/clojureverse.org/fatmonky/32/3911_2.png) [@fatmonky](https://clojureverse.org/u/fatmonky)
#### Post date: [October 12, 2021, 1:43am UTC](https://clojureverse.org/t/free-web-tutorials/8247/5 "2021-10-12T01:43:32Z")

</div>

The free versions just make up part of the paid courses, and are not complete by themselves, which is why I didn’t mention them in answering your question. 🙂

I am taking the paid courses by Jacek, and I think he does a very good job in demonstrating how he approaches making web apps using Reagent and Re-frame. It can sometimes be a bit advanced (e.g. he doesn’t really explain Hiccup) but there are other resources (esp. [Purelyfunctional.tv](http://Purelyfunctional.tv)) that are free and which explain in detail, and can complement Jacek’s course.

---

<div class="post-metadata">

### Author: ![RoelofWobben1](https://clojureverse.org/user_avatar/clojureverse.org/roelofwobben1/32/4098_2.png) [@RoelofWobben1](https://clojureverse.org/u/RoelofWobben1)
#### Post date: [October 12, 2021, 3:48pm UTC](https://clojureverse.org/t/free-web-tutorials/8247/6 "2021-10-12T15:48:30Z")

</div>

@fatmonky oke but the course you are reffering to has a lot of links to paid courses and does not make a full website.

---

<div class="post-metadata">

### Author: ![fatmonky](https://clojureverse.org/user_avatar/clojureverse.org/fatmonky/32/3911_2.png) [@fatmonky](https://clojureverse.org/u/fatmonky)
#### Post date: [October 12, 2021, 11:57pm UTC](https://clojureverse.org/t/free-web-tutorials/8247/7 "2021-10-12T23:57:03Z")

</div>

The rest of the site has a lot of free material too, eg [a Clojurescript tutorial](https://purelyfunctional.tv/guide/clojurescript-tutorial/)

To clarify, are you talking also about the backend, or just front end?

---

<div class="post-metadata">

### Author: ![ivanpierre](https://clojureverse.org/user_avatar/clojureverse.org/ivanpierre/32/542_2.png) [@ivanpierre](https://clojureverse.org/u/ivanpierre)
#### Post date: [October 15, 2021, 10:49am UTC](https://clojureverse.org/t/free-web-tutorials/8247/8 "2021-10-15T10:49:40Z")

</div>

Seems stupid, but there’s a lot of resources on [clojurescript.org](http://clojurescript.org)… 😉

---

<div class="post-metadata">

### Author: ![ivanpierre](https://clojureverse.org/user_avatar/clojureverse.org/ivanpierre/32/542_2.png) [@ivanpierre](https://clojureverse.org/u/ivanpierre)
#### Post date: [October 15, 2021, 11:09am UTC](https://clojureverse.org/t/free-web-tutorials/8247/9 "2021-10-15T11:09:11Z")

</div>

You can look at the documentation for libraries. Start looking @ GitHub first, generally following the links you find it, else, google or DuckDuckGo 😉  
For example for ReFrame: [re-frame](https://day8.github.io/re-frame/re-frame/)

---

<div class="post-metadata">

### Author: ![ivanpierre](https://clojureverse.org/user_avatar/clojureverse.org/ivanpierre/32/542_2.png) [@ivanpierre](https://clojureverse.org/u/ivanpierre)
#### Post date: [October 16, 2021, 8:35am UTC](https://clojureverse.org/t/free-web-tutorials/8247/10 "2021-10-16T08:35:42Z")

</div>

Another useful source: [GitHub - hantuzun/awesome-clojurescript: A community driven list of ClojureScript frameworks, libraries and wrappers.](https://github.com/hantuzun/awesome-clojurescript)

---

<div class="post-metadata">

### Author: ![fatmonky](https://clojureverse.org/user_avatar/clojureverse.org/fatmonky/32/3911_2.png) [@fatmonky](https://clojureverse.org/u/fatmonky)
#### Post date: [October 18, 2021, 1:45am UTC](https://clojureverse.org/t/free-web-tutorials/8247/11 "2021-10-18T01:45:03Z")

</div>

Thanks! I think it really depends on one’s starting point: if one’s an experienced programmer learning clojure, that’s quite different from someone starting from a much more blank slate (like me hur hur). I think what you describe would work for an experienced programmer who already has mastered another language.

Speaking from personal experience, many of the existing resources can be quite overwhelming for very new learners: it’s just information overload, and there are many underlying assumptions that the reader should already know certain things. [Felienne Hermans’ talk on Strange Loop](https://youtu.be/g1ib43q3uXQ) was quite good at explaining why, from a cognitive science standpoint, that isn’t ideal for learning as it is cognitive overload of the working memory.

So I really appreciate some of the existing work done by Eric Normand and Jacek to break things down into detail, and to show through their video courses. I also appreciate the Clojurescript podcast for breaking things down, helping to make sense of the ecosystem.

---

<div class="post-metadata">

### Author: ![fatmonky](https://clojureverse.org/user_avatar/clojureverse.org/fatmonky/32/3911_2.png) [@fatmonky](https://clojureverse.org/u/fatmonky)
#### Post date: [October 20, 2021, 1:03am UTC](https://clojureverse.org/t/free-web-tutorials/8247/12 "2021-10-20T01:03:02Z")

</div>

@RoelofWobben1 - I forgot about this free resource too:  
[https://betweentwoparens.com/](https://betweentwoparens.com/) (he also has a couple YouTube videos)

---

<div class="post-metadata">

### Author: ![vkr](https://clojureverse.org/user_avatar/clojureverse.org/vkr/32/4133_2.png) [@vkr](https://clojureverse.org/u/vkr)
#### Post date: [October 24, 2021, 6:52am UTC](https://clojureverse.org/t/free-web-tutorials/8247/13 "2021-10-24T06:52:14Z")

</div>

I’m surprised no one has mentioned [Learn ClojureScript](https://www.learn-clojurescript.com) yet, which is a high quality free online book that teaches ClojureScript programming from the very beginning.

---

<div class="post-metadata">

### Author: ![RoelofWobben1](https://clojureverse.org/user_avatar/clojureverse.org/roelofwobben1/32/4098_2.png) [@RoelofWobben1](https://clojureverse.org/u/RoelofWobben1)
#### Post date: [October 24, 2021, 4:29pm UTC](https://clojureverse.org/t/free-web-tutorials/8247/14 "2021-10-24T16:29:06Z")

</div>

first “problem”

I have this in my project :

```auto
{:deps {org.clojure/clojurescript {:mvn/version "1.10.773"}}
 :paths ["src"]}

```

but still I see this error :

```auto
clj -m cljs.main --compile my-cljs-project.core --repl
Please install rlwrap for command editing or use "clojure" instead.

```

im working totally in wsl on windows

---

<div class="post-metadata">

### Author: ![outrovurt](https://clojureverse.org/letter_avatar_proxy/v4/letter/o/f08c70/32.png) [@outrovurt](https://clojureverse.org/u/outrovurt)
#### Post date: [October 25, 2021, 2:42am UTC](https://clojureverse.org/t/free-web-tutorials/8247/15 "2021-10-25T02:42:51Z")

</div>

Hmm, I’m not sure how well CLI tools will run on WSL, or how good WSL is generally. If you have the resources on your computer, I would highly recommend setting up a virtualbox to run you’re preferred flavour of Linux, and these days you can just download a ready to go image from say Vagrant or so many other places.

`rlwrap` is just a program which allows you to scroll backwards/forwards through your command-line history, and is well worth installing as a general tool, it’s very small.

`clj`is just a wrapper for `clojure` which tries to run `clojure` through `rlwrap` if it is installed, so if you don’t want to install `rlwrap` for any reason, then just run `clojure` with the same arguments. If you are on a more recent version of CLI tools, you should probably run it with the `-M` flag rather than `-m`.

---

<div class="post-metadata">

### Author: ![chr15m](https://clojureverse.org/user_avatar/clojureverse.org/chr15m/32/4139_2.png) [@chr15m](https://clojureverse.org/u/chr15m)
#### Post date: [October 25, 2021, 12:43pm UTC](https://clojureverse.org/t/free-web-tutorials/8247/16 "2021-10-25T12:43:48Z")

</div>

@RoelofWobben1 try `sudo apt install rlwrap`.

---

<div class="post-metadata">

### Author: ![RoelofWobben1](https://clojureverse.org/user_avatar/clojureverse.org/roelofwobben1/32/4098_2.png) [@RoelofWobben1](https://clojureverse.org/u/RoelofWobben1)
#### Post date: [October 25, 2021, 12:46pm UTC](https://clojureverse.org/t/free-web-tutorials/8247/17 "2021-10-25T12:46:40Z")

</div>

thanks , that did the job

---

<div class="post-metadata">

### Author: ![seancorfield](https://clojureverse.org/user_avatar/clojureverse.org/seancorfield/32/195_2.png) [@seancorfield](https://clojureverse.org/u/seancorfield)
#### Post date: [October 26, 2021, 2:54am UTC](https://clojureverse.org/t/free-web-tutorials/8247/18 "2021-10-26T02:54:43Z")

</div>

> [@outrovurt](#):
>
> Hmm, I’m not sure how well CLI tools will run on WSL, or how good WSL is generally.

The CLI tools work really well on WSL because you’re running Linux. WSL2 is extremely solid and VS Code on Windows has native integration with WSL2 so you can have all your Clojure code, `git`, REPLs (started via the CLI) and run VC Code on Windows and it is seamless.

If you’re on Windows 10 or Windows 11, running WSL2 is what I would recommend, and you can pick which Linux you prefer to run on WSL2 (I use Ubuntu).

I do all of my Clojure development on Windows this way: running everything on WSL2 except VS Code. I also have Docker for Windows installed with the WSL2 integration and that lets me run `docker-compose up` on Ubuntu/WSL2 and have it bring up my full development environment (two Elastic Search instances, Redis, and Percona).

---

<div class="post-metadata">

### Author: ![outrovurt](https://clojureverse.org/letter_avatar_proxy/v4/letter/o/f08c70/32.png) [@outrovurt](https://clojureverse.org/u/outrovurt)
#### Post date: [October 26, 2021, 3:51am UTC](https://clojureverse.org/t/free-web-tutorials/8247/19 "2021-10-26T03:51:29Z")

</div>

That’s really interesting, I had no idea WSL(2) existed until I saw these posts. For years I was running off a dual-boot setup, then I got a faster laptop and found the VirtualBox setup to be much more convenient, running on a Windows 10 machine.

So my question to you is: how does WSL2 compare to using VirtualBox? What am I losing/gaining by going with a WSL2 setup?

---

<div class="post-metadata">

### Author: ![seancorfield](https://clojureverse.org/user_avatar/clojureverse.org/seancorfield/32/195_2.png) [@seancorfield](https://clojureverse.org/u/seancorfield)
#### Post date: [October 26, 2021, 4:06am UTC](https://clojureverse.org/t/free-web-tutorials/8247/20 "2021-10-26T04:06:29Z")

</div>

> [@outrovurt](#):
>
> So my question to you is: how does WSL2 compare to using VirtualBox? What am I losing/gaining by going with a WSL2 setup?

WSL2 is the native Microsoft solution. So you get updates via the Store, you get a variety of Linux distros via the Store. You get “native” integration into a lot of things – VS Code and Docker, as mentioned already. WSL2 is Microsoft’s focus for supporting developers by providing full user-mode Linux completely integrated with Windows itself. The ability to run Linux apps from Windows and Windows apps from Linux. Linux graphics apps (e.g., X11) are natively supported in Windows via WSL2. This is where you’re going to get all the performance and integration focus going forward.

[Next page](https://clojureverse.org/t/free-web-tutorials/8247.md?page=2)
