# Luminus + Calva = Smooth Getting Started w/ Clojure development

**URL:** https://clojureverse.org/t/luminus-calva-smooth-getting-started-w-clojure-development/5623
**Category:** Your Projects and Libraries
**Created:** [March 16, 2020, 11:35pm UTC](https://clojureverse.org/t/luminus-calva-smooth-getting-started-w-clojure-development/5623 "2020-03-16T23:35:24Z")
**Posts on this page:** 1
**Showing post:** 6

<div class="post-metadata">

### Author: ![PEZ](https://clojureverse.org/user_avatar/clojureverse.org/pez/32/1187_2.png) [@PEZ](https://clojureverse.org/u/PEZ)
#### Post date: [March 20, 2020, 8:34am UTC](https://clojureverse.org/t/luminus-calva-smooth-getting-started-w-clojure-development/5623/6 "2020-03-20T08:34:30Z")

</div>

> [@roger](#):
>
> I’m also looking at Duct - any plans to do a similar getting-started guide for Duct?

I’ll write a guide about using Calva with Duct, as well as file a PR on the Duct template so that things are as streamlined as they are with Calva+Luminus.

Until then. These are the steps for using Calva with a fresh Duct project w/ ClojureScript frontend _adding the custom cljs settings yourself_ (w/o frontend, it is not much to write about 😄):

1. Create the project:

```sh
lein new duct my-duct-cljs +site +example +cljs

```

2. Open the project in VS Code:

```sh
code my-duct-cljs/

```

3. Create a VS Code project folder settings file `.vscode/settings.json`, and paste this:

```json
{
    "calva.replConnectSequences": [
        {
            "name": "Server only",
            "projectType": "Leiningen",
            "afterCLJReplJackInCode": "(do (dev) (go))",
            "cljsType": "none"
        },
        {
            "name": "Server + Client",
            "projectType": "Leiningen",
            "cljsType": {
                "dependsOn": "lein-figwheel",
                "connectCode": "(do (dev) (go) (println \"Server started\") (cljs-repl))",
                "isReadyToStartRegExp": "Server started",
                "printThisLineRegExp": ":duct.server.http.jetty/starting-server"
            },
            "menuSelections": {
                "leinProfiles": [
                    "dev",
                    "repl"
                ]
            }
        }
    ]
}

```

See [Calva docs about Custom Connect Sequences](https://calva.readthedocs.io/en/latest/connect-sequences.html) if you are curious about the settings.
4. Issue the command **Start a Project REPL and Connect (aka Jack-in)**,  
`ctrl+alt+c ctrl+alt+j`
5. Wait for the **Calva says** output channel to say **CLJS REPL ready to connect. Please, start your ClojureScript app.**
6. Open your web browser, pointing it to [127.0.0.1:3000/example](http://127.0.0.1:3000/example).
7. Hack away on your project!

If anyone tries this, please let me know how the instructions worked. It’ll help me get the Calva docs right. ❤

---

_[View the full topic](https://clojureverse.org/t/luminus-calva-smooth-getting-started-w-clojure-development/5623)._
