Skip to content

Commit 2ce0043

Browse files
committed
add rationale to readme
1 parent 025f12c commit 2ce0043

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

README.md

+29-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
![Studio Screenshot](https://repath.studio/assets/images/studio.png)
1717

18+
<!-- sponsors --><!-- sponsors -->
19+
1820
## Main goals
1921

2022
- Create a cross platform / open source vector graphics editor.
@@ -24,7 +26,33 @@
2426
- Advanced undo/redo - maintain a history tree of all actions and never lose your redo stack.
2527
- Implement built-in accessibility testing features.
2628

27-
<!-- sponsors --><!-- sponsors -->
29+
## Rationale
30+
31+
### Why is this implemented as a web application?
32+
33+
- Using the main targeting platform to also create your SVGs, ensures that what you see while editing, is as close as possible to what you are going to get when you load your exported creations.
34+
- Avoid re-implementing complex specifications, like SMIL.
35+
- Access to JavaScript ecosystem.
36+
- Being able to serve this as website is a huge plus.
37+
38+
### Why is the desktop app wrapped with ElectronJS?
39+
40+
- Electron is a mature framework with a rich API.
41+
- Embedded Chromium ensures that web APIs will work consistently across multiple operating systems.
42+
- Using the same rendering engine promotes UI consistency.
43+
- We can use the same language to develop our backend and frontend.
44+
45+
### Why ClojureScript?
46+
47+
- Built-in immutability.
48+
- Easy data manipulation.
49+
- Stability of libraries.
50+
- Interoperability with js and react.
51+
- Clean syntax.
52+
53+
### What about performance?
54+
55+
We are currently trying to optimize for hundreds of elements per document. Editing thousands of nodes on a single document is not within the scope of this project (at least for now).
2856

2957
## How to build it locally
3058

0 commit comments

Comments
 (0)