<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Christoph Frick - ofnir.net - Open Source Consultant, Software Developer and System Administrator (Posts about ClojureScript)</title><link>https://ofnir.net/</link><description></description><atom:link href="https://ofnir.net/categories/clojurescript.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:cf@ofnir.net"&gt;Christoph Frick - ofnir.net&lt;/a&gt; </copyright><lastBuildDate>Tue, 21 Apr 2026 11:44:46 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Media player SPA</title><link>https://ofnir.net/posts/media-player-spa/</link><dc:creator>Christoph Frick - ofnir.net</dc:creator><description>&lt;p&gt;I have put together a media player (listing of media and generating
playlist of it) as an SPA using ClosjureScript.  The server-side only
needs some minimal setup with Nginx (namely to enable listing of
directories as JSON).  The code can be found on &lt;a class="reference external" href="https://github.com/christoph-frick/jukebox-client"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;</description><category>ClojureScript</category><category>Nginx</category><guid>https://ofnir.net/posts/media-player-spa/</guid><pubDate>Wed, 16 Sep 2020 22:00:00 GMT</pubDate></item><item><title>Support for Rum 0.12/Daiquiri added to my Antizer fork</title><link>https://ofnir.net/posts/support-for-rum-012daiquiri-added-to-my-antizer-fork/</link><dc:creator>Christoph Frick - ofnir.net</dc:creator><description>&lt;p&gt;My &lt;a class="reference external" href="https://github.com/christoph-frick/antizer"&gt;Antizer fork&lt;/a&gt; (a
library wrapping &lt;a class="reference external" href="https://ant.design/"&gt;Ant Design&lt;/a&gt;) now supports &lt;a class="reference external" href="https://github.com/tonsky/rum"&gt;Rum
0.12&lt;/a&gt;, which replaced the use of
&lt;a class="reference external" href="https://github.com/r0man/sablono"&gt;Sablono&lt;/a&gt; with their own fork,
"Daiquiri" inside the Rum source.&lt;/p&gt;</description><category>Ant Design</category><category>Antd</category><category>Antizer</category><category>ClojureScript</category><category>Daiquiri</category><category>Rum</category><category>Sablono</category><guid>https://ofnir.net/posts/support-for-rum-012daiquiri-added-to-my-antizer-fork/</guid><pubDate>Thu, 30 Jul 2020 22:00:00 GMT</pubDate></item><item><title>Run Shadow-Cljs via Docker for local development</title><link>https://ofnir.net/posts/run-shadow-cljs-via-docker-for-local-development/</link><dc:creator>Christoph Frick - ofnir.net</dc:creator><description>&lt;p&gt;I have put together an &lt;a class="reference external" href="https://github.com/christoph-frick/try-shadow-cljs"&gt;example repo&lt;/a&gt; (it's my
100th, woohoo!) to show the use of &lt;a class="reference external" href="http://shadow-cljs.org/"&gt;Shadow-Cljs&lt;/a&gt; via Docker.&lt;/p&gt;</description><category>Clojure</category><category>ClojureScript</category><category>Docker</category><category>Shadow-Cljs</category><guid>https://ofnir.net/posts/run-shadow-cljs-via-docker-for-local-development/</guid><pubDate>Mon, 16 Dec 2019 23:00:00 GMT</pubDate></item><item><title>Figwheel with Vim-Fireplace 2.0</title><link>https://ofnir.net/posts/figwheel-with-vim-fireplace-20/</link><dc:creator>Christoph Frick - ofnir.net</dc:creator><description>&lt;p&gt;With recent changes in Cider and the new Vim-Fireplace 2.0 release, let's
update the setup for it.&lt;/p&gt;
&lt;p&gt;In a project created by e.g. &lt;code class="docutils literal"&gt;lein new figwheel &lt;span class="pre"&gt;hello-world&lt;/span&gt;&lt;/code&gt;, add the new
setup for Ciders Piggieback:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code clojure"&gt;&lt;a id="rest_code_f007e19ab53644e698d092b2423bbeb9-1" name="rest_code_f007e19ab53644e698d092b2423bbeb9-1" href="https://ofnir.net/posts/figwheel-with-vim-fireplace-20/#rest_code_f007e19ab53644e698d092b2423bbeb9-1"&gt;&lt;/a&gt;&lt;span class="ss"&gt;:profiles&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:dependencies&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="nv"&gt;cider/piggieback&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"0.4.1"&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;a id="rest_code_f007e19ab53644e698d092b2423bbeb9-2" name="rest_code_f007e19ab53644e698d092b2423bbeb9-2" href="https://ofnir.net/posts/figwheel-with-vim-fireplace-20/#rest_code_f007e19ab53644e698d092b2423bbeb9-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;                 &lt;/span&gt;&lt;span class="ss"&gt;:repl-options&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:nrepl-middleware&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;cider.piggieback/wrap-cljs-repl&lt;/span&gt;&lt;span class="p"&gt;]}}}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Merge this settings with existing code from the template.  Note, that both the
group of the artifact and the namespace for Piggieback changed.&lt;/p&gt;
&lt;p&gt;With the template you can not open Vim, start the REPL, and run &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;(fig-start)&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Now with Vim-Fireplace 2.0 to work via Piggieback, you call:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code vim"&gt;&lt;a id="rest_code_e930aed551db4ccaaa364a661da2a434-1" name="rest_code_e930aed551db4ccaaa364a661da2a434-1" href="https://ofnir.net/posts/figwheel-with-vim-fireplace-20/#rest_code_e930aed551db4ccaaa364a661da2a434-1"&gt;&lt;/a&gt;&lt;span class="p"&gt;:&lt;/span&gt;CljEval &lt;span class="p"&gt;(&lt;/span&gt;cider.piggieback&lt;span class="sr"&gt;/cljs-repl (figwheel-sidecar.repl-api/&lt;/span&gt;repl&lt;span class="p"&gt;-&lt;/span&gt;env&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</description><category>Cider</category><category>Clojure</category><category>ClojureScript</category><category>Figwheel</category><category>Vim</category><category>Vim-Fireplace</category><guid>https://ofnir.net/posts/figwheel-with-vim-fireplace-20/</guid><pubDate>Thu, 01 Aug 2019 22:00:00 GMT</pubDate></item><item><title>Use Vim-Fireplace with Figwheel greater 0.4</title><link>https://ofnir.net/posts/use-vim-fireplace-with-figwheel-greater-04/</link><dc:creator>Christoph Frick - ofnir.net</dc:creator><description>&lt;p&gt;I have put together an &lt;a class="reference external" href="https://github.com/christoph-frick/rum-figwheel-fireplace"&gt;example&lt;/a&gt; repo, how to use
&lt;a class="reference external" href="https://github.com/tpope/vim-fireplace"&gt;vim-fireplace&lt;/a&gt; with &lt;a class="reference external" href="https://github.com/bhauman/lein-figwheel"&gt;figwheel&lt;/a&gt; after the 0.4 release.  This
release removed cider and piggieback, so we have to add them back.&lt;/p&gt;
&lt;p&gt;Add this to the according sections of your &lt;code class="docutils literal"&gt;project.clj&lt;/code&gt;:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code clojure"&gt;&lt;a id="rest_code_19d145ded11a42b8ba1930e449b52173-1" name="rest_code_19d145ded11a42b8ba1930e449b52173-1" href="https://ofnir.net/posts/use-vim-fireplace-with-figwheel-greater-04/#rest_code_19d145ded11a42b8ba1930e449b52173-1"&gt;&lt;/a&gt;&lt;span class="c1"&gt;;; add nrepl middleware for fireplace&lt;/span&gt;
&lt;a id="rest_code_19d145ded11a42b8ba1930e449b52173-2" name="rest_code_19d145ded11a42b8ba1930e449b52173-2" href="https://ofnir.net/posts/use-vim-fireplace-with-figwheel-greater-04/#rest_code_19d145ded11a42b8ba1930e449b52173-2"&gt;&lt;/a&gt;&lt;span class="ss"&gt;:figwheel&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:nrepl-middleware&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"cider.nrepl/cider-middleware"&lt;/span&gt;
&lt;a id="rest_code_19d145ded11a42b8ba1930e449b52173-3" name="rest_code_19d145ded11a42b8ba1930e449b52173-3" href="https://ofnir.net/posts/use-vim-fireplace-with-figwheel-greater-04/#rest_code_19d145ded11a42b8ba1930e449b52173-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;                              &lt;/span&gt;&lt;span class="s"&gt;"cemerick.piggieback/wrap-cljs-repl"&lt;/span&gt;&lt;span class="p"&gt;]}&lt;/span&gt;
&lt;a id="rest_code_19d145ded11a42b8ba1930e449b52173-4" name="rest_code_19d145ded11a42b8ba1930e449b52173-4" href="https://ofnir.net/posts/use-vim-fireplace-with-figwheel-greater-04/#rest_code_19d145ded11a42b8ba1930e449b52173-4"&gt;&lt;/a&gt;&lt;span class="c1"&gt;;; add piggieback for fireplace&lt;/span&gt;
&lt;a id="rest_code_19d145ded11a42b8ba1930e449b52173-5" name="rest_code_19d145ded11a42b8ba1930e449b52173-5" href="https://ofnir.net/posts/use-vim-fireplace-with-figwheel-greater-04/#rest_code_19d145ded11a42b8ba1930e449b52173-5"&gt;&lt;/a&gt;&lt;span class="ss"&gt;:profiles&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:dev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:dependencies&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="nv"&gt;com.cemerick/piggieback&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"0.2.1"&lt;/span&gt;&lt;span class="p"&gt;]]&lt;/span&gt;
&lt;a id="rest_code_19d145ded11a42b8ba1930e449b52173-6" name="rest_code_19d145ded11a42b8ba1930e449b52173-6" href="https://ofnir.net/posts/use-vim-fireplace-with-figwheel-greater-04/#rest_code_19d145ded11a42b8ba1930e449b52173-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;                 &lt;/span&gt;&lt;span class="ss"&gt;:repl-options&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:nrepl-middleware&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;cemerick.piggieback/wrap-cljs-repl&lt;/span&gt;&lt;span class="p"&gt;]}}}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</description><category>Clojure</category><category>ClojureScript</category><category>Figwheel</category><category>Fireplace</category><category>nREPL</category><category>Vim</category><guid>https://ofnir.net/posts/use-vim-fireplace-with-figwheel-greater-04/</guid><pubDate>Sat, 17 Oct 2015 22:00:00 GMT</pubDate></item><item><title>Make the Figwheel REPL work in vim-fireplace</title><link>https://ofnir.net/posts/make-the-figwheel-repl-work-in-vim-fireplace/</link><dc:creator>Christoph Frick - ofnir.net</dc:creator><description>&lt;p&gt;I just have created a &lt;a class="reference external" href="https://github.com/tpope/vim-fireplace/pull/222"&gt;pull request&lt;/a&gt; with Vim-Fireplace, that
allows passing down an expression to &lt;cite&gt;:Piggieback&lt;/cite&gt;.  This allows using the
Figwheel REPL without much hassle.&lt;/p&gt;
&lt;p&gt;First follow the instructions to create a Figwheel project.  E.g. &lt;code class="docutils literal"&gt;lein new
figwheel &lt;span class="pre"&gt;example-project&lt;/span&gt;&lt;/code&gt;.  Check the generated &lt;code class="docutils literal"&gt;project.clj&lt;/code&gt; file and
remove the comment on the line, that sets the nREPL port (&lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;:nrepl-port&lt;/span&gt;
7888&lt;/code&gt;, pick any port number you like).&lt;/p&gt;
&lt;p&gt;To make Vim-Fireplace pick up the nREPL port create an &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;.nrepl-port&lt;/span&gt;&lt;/code&gt; file
containing the port number.  E.g. &lt;code class="docutils literal"&gt;echo 7888 &amp;gt; &lt;span class="pre"&gt;.nrepl-port&lt;/span&gt;&lt;/code&gt;.  Otherwise
connect from the Vim command line with &lt;code class="docutils literal"&gt;:Connect &lt;span class="pre"&gt;nrepl://localhost:7888&lt;/span&gt;&lt;/code&gt; (or
follow the dialog with just &lt;code class="docutils literal"&gt;:Connect&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;In Vim then open any ClojureScript file (e.g. the generated
&lt;code class="docutils literal"&gt;src/example_project/core.cljs&lt;/code&gt;) and then enter at the Vim command prompt:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code clojure"&gt;&lt;a id="rest_code_7ecb5c673ed14a78b546f331b67d0732-1" name="rest_code_7ecb5c673ed14a78b546f331b67d0732-1" href="https://ofnir.net/posts/make-the-figwheel-repl-work-in-vim-fireplace/#rest_code_7ecb5c673ed14a78b546f331b67d0732-1"&gt;&lt;/a&gt;&lt;span class="ss"&gt;:Piggieback!&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;do &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;'figwheel-sidecar.repl-api&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;figwheel-sidecar.repl-api/cljs-repl&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now saving ClojureScript or CSS files will automatically (and statefully)
reload in the browser.  And all the regular things in Vim-Fireplace like
evaluating expressions or requesting the docs work too.&lt;/p&gt;
&lt;p&gt;For repeatability add this alias in your &lt;code class="docutils literal"&gt;.vimrc&lt;/code&gt; (or in an &lt;code class="docutils literal"&gt;after&lt;/code&gt; script
for Clojure or Vim-Fireplace):&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code vim"&gt;&lt;a id="rest_code_f7e06ed6d2ce4b329e8a351fabebed30-1" name="rest_code_f7e06ed6d2ce4b329e8a351fabebed30-1" href="https://ofnir.net/posts/make-the-figwheel-repl-work-in-vim-fireplace/#rest_code_f7e06ed6d2ce4b329e8a351fabebed30-1"&gt;&lt;/a&gt;command&lt;span class="p"&gt;!&lt;/span&gt; Figwheel :Piggieback&lt;span class="p"&gt;!&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;require 'figwheel&lt;span class="p"&gt;-&lt;/span&gt;sidecar.repl&lt;span class="p"&gt;-&lt;/span&gt;api&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;figwheel&lt;span class="p"&gt;-&lt;/span&gt;sidecar.repl&lt;span class="p"&gt;-&lt;/span&gt;api/cljs&lt;span class="p"&gt;-&lt;/span&gt;repl&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</description><category>Clojure</category><category>ClojureScript</category><category>Figwheel</category><category>Vim</category><category>Vim-Fireplace</category><guid>https://ofnir.net/posts/make-the-figwheel-repl-work-in-vim-fireplace/</guid><pubDate>Mon, 08 Jun 2015 22:00:00 GMT</pubDate></item></channel></rss>