@@ -0,0 +1,57 @@
1++++
2+title = "Clojure Urbit Client"
3+date = "2021-10-07"
4+[taxonomies]
5+grant_type = ["Proposal"]
6+grant_category = ["App Dev - Other"]
7+[extra]
8+image = ""
9+description = "Urbit client baasd on the Clojure programming language"
10+reward = 3
11+assignee = ""
12+id = ""
13+completed = false
14+link = ""
15++++
16+
17+## Clojure Urbit Client
18+
19+Clojure is a functional dynamically typed lisp which runs on the JVM. It lends itself very well to designing correct, situated programs and can easily benefit from the JVM ecosystem. Being functional and immutable by default makes Clojure a good fit for building concurrent event driven systems.
20+
21+### Design
22+
23+With the end goal of an alternative, cross platform desktop client for Urbit, the steps are as follows:
24+
25+- A SSE client in Clojure
26+- An Urbit client library built on top of the SSE client
27+ -- Should at least be able to programmatically communicate with chat app and query graph store
28+ -- The client should also be usable from Java
29+- GUI
30+ -- Why run a browser at all? Urbit is all about APIs
31+ -- Will need to choose between JafaFX and SKIA
32+ _ JafaFX: mature, stable, has cljfx which provides an excellent model
33+ _ SKIA: up and coming framework, has native capabilities, less mature
34+ -- Will run on any platform which can run Java
35+ -- If one day Urbit is ported to Java, imagine the possibilities of running the GUI and server in the same process
36+
37+Regarding the amount of stars below, I believe the first milestone is simple and does not merit a reward at all.
38+
39+The second justifies a star when it allows one to send and receive chat messages
40+
41+The last is a significant achievement (first non js graphical client?), which is worth at least 2 stars when chats work.
42+
43+Further work might justify more stars.
44+
45+## Milestones
46+
47+### Milestone 1 - Create client and send/recieve messages
48+
49+Expected completion:
50+
51+Payment: 1 star
52+
53+### Milestone 2 - Develop and deploy GUI
54+
55+Expected completion:
56+
57+Payment: 2 stars