<commit_before>---
title: Getting Started with Clojure(script)
description: a simple todomvc copycat project
date: 2020-02-10
---

I love writing Clojure, but it took me a long time to get into it, mostly
because of the configuration options.
I got a handle of what I liked and how

Last time we got a basic CLJS app up and running with Leiningen and Shadow-CLJS.
Today, let's implement a simple frontend version of todomvc.

I want to show off how using cljs can help you be more productive and how you
can use simpler tools to write web apps. We're giong to write the classic
todomvc app.  I'm going to start with the client, using shadow-cljs to build our
clojurescript, and then I'm going to create a persistence layer on the backend.

To follow along, you'll just need to install [Leiningen][1].

[1]: https://leiningen.org/



### A word on editor integration

Clojure is meant to be evaluated in a REPL (Read Eval Print Loop), but you're
not meant to type everything in at the prompt to get it working.  You should set
up your editor of choice to support `eval-last-sexp` in order to get the most
out of this tutorial

### Installing the template

Leiningen suports templates, they're like customizable versions of
`create-react-app`.  I created my own for personal use, and that's what I'm
going to assume you're starting with.  Create the project template with

```
lein new bolivier-web todomvc
```

To get a live frontend environment, you'll need to open a terminal and run<commit_msg>Make slight edit to wording to remove bad info<commit_after>---
title: Getting Started with Clojure(script)
description: Let's do some basic frontend work
date: 2020-02-10
---

I love writing Clojure, but it took me a long time to get into it, mostly
because of the configuration options.  I got a handle of what I liked and how to
assemble some pieces of Clojure into a productive dev environment.

I want to show off how using cljs can help you be more productive and how you
can use simpler tools to write web apps. We're giong to write the classic
todomvc app.  I'm going to start with the client, using shadow-cljs to build our
Clojurescript.

To follow along, you'll just need to install [Leiningen][1], a popular Clojure
build tool.

[1]: https://leiningen.org/

### A word on editor integration

Clojure is meant to be evaluated in a REPL (Read Eval Print Loop), but you're
not meant to type everything in at the prompt to get it working.  You should set
up your editor of choice to support `eval-last-sexp` in order to get the most
out of this tutorial

### Installing the template

Leiningen suports templates, they're like customizable versions of
`create-react-app`.  I created my own for personal use, and that's what I'm
going to assume you're starting with.  Create the project template with

```
lein new bolivier-web todomvc
```

To get a live frontend environment, you'll need to open a terminal and run
{'fraction_non_alphanumeric': 0.05622214604045252, 'fraction_numerical': 0.006856359273225917, 'mean_word_length': 4.083623693379791, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2555800', 'n_tokens_mistral': 859, 'n_tokens_neox': 801, 'n_words': 476}