This is CtPaint version 2, an image editor that runs in your web browser.
This repo is organized as..
├── Canvas
│ ├── Data
│ │ ├── BackgroundColor.elm
│ │ └── Params.elm
│ ├── Draw
│ │ └── Model.elm
│ ├── Draw.elm
│ ├── Helpers.elm
│ └── Model.elm
├── Canvas.elm
├── Clipboard
│ └── Model.elm
├── Color
│ ├── Data
│ │ └── Colors.elm
│ ├── Model.elm
│ ├── Msg.elm
│ ├── Palette
│ │ ├── Data.elm
│ │ ├── Msg.elm
│ │ ├── Track.elm
│ │ ├── Update.elm
│ │ └── View.elm
│ ├── Picker
│ │ ├── Data
│ │ │ └── Gradient.elm
│ │ ├── Data.elm
│ │ ├── Msg.elm
│ │ ├── Subscriptions.elm
│ │ ├── Track.elm
│ │ ├── Update.elm
│ │ └── View.elm
│ ├── Reply.elm
│ ├── Style.elm
│ ├── Swatches
│ │ ├── Data.elm
│ │ └── View.elm
│ ├── Track.elm
│ ├── Update.elm
│ └── Util.elm
├── Data
│ ├── Config.elm
│ ├── Drawing.elm
│ ├── Flags.elm
│ ├── Position.elm
│ ├── Size.elm
│ ├── Tracking.elm
│ ├── User.elm
│ └── Window.elm
├── Error.elm
├── Helpers
│ ├── Import.elm
│ ├── Keys.elm
│ └── Random.elm
├── History
│ ├── Helpers.elm
│ └── Model.elm
├── Html
│ ├── Custom.elm
│ └── Mouse.elm
├── Incorporate.elm
├── Init.elm
├── Js
│ ├── Allowance.js
│ ├── Drawing.js
│ ├── Flags.js
│ ├── Keys.js
│ ├── Upload.js
│ └── User.js
├── Keys.elm
├── Menu
│ ├── About.elm
│ ├── BugReport.elm
│ ├── Data.elm
│ ├── Download.elm
│ ├── Drawing.elm
│ ├── Import.elm
│ ├── Loaded.elm
│ ├── Loading.elm
│ ├── Login.elm
│ ├── Logout.elm
│ ├── Model.elm
│ ├── Msg.elm
│ ├── New.elm
│ ├── ReplaceColor.elm
│ ├── Reply.elm
│ ├── Resize.elm
│ ├── Save.elm
│ ├── Scale.elm
│ ├── Subscriptions.elm
│ ├── Text.elm
│ ├── Track.elm
│ ├── Update.elm
│ ├── Upload.elm
│ └── View.elm
├── Minimap
│ ├── Constants.elm
│ ├── Model.elm
│ ├── Msg.elm
│ ├── Subscriptions.elm
│ ├── Track.elm
│ ├── Update.elm
│ └── View.elm
├── Model.elm
├── Msg.elm
├── Native
│ └── Canvas.js
├── PaintApp.elm
├── Ports.elm
├── Selection
│ └── Model.elm
├── Style.elm
├── Stylesheets.elm
├── Subscriptions.elm
├── Taskbar
│ ├── Data
│ │ └── Dropdown.elm
│ ├── Msg.elm
│ ├── Track.elm
│ ├── Update.elm
│ └── View.elm
├── Tool
│ ├── Data.elm
│ ├── Eraser
│ │ ├── Model.elm
│ │ ├── Update.elm
│ │ └── View.elm
│ ├── Fill
│ │ └── Update.elm
│ ├── Hand
│ │ ├── Model.elm
│ │ └── Update.elm
│ ├── Line
│ │ ├── Model.elm
│ │ └── Update.elm
│ ├── Msg.elm
│ ├── Pencil
│ │ ├── Model.elm
│ │ └── Update.elm
│ ├── Rectangle
│ │ ├── Model.elm
│ │ └── Update.elm
│ ├── RectangleFilled
│ │ ├── Model.elm
│ │ └── Update.elm
│ ├── Sample
│ │ └── Update.elm
│ ├── Select
│ │ └── Update.elm
│ ├── Subscriptions.elm
│ ├── Update.elm
│ ├── Util.elm
│ ├── View.elm
│ ├── Zoom
│ │ ├── Data
│ │ │ └── Direction.elm
│ │ ├── In
│ │ │ └── Update.elm
│ │ └── Out
│ │ └── Update.elm
│ └── Zoom.elm
├── Toolbar.elm
├── Track.elm
├── Update.elm
├── Util.elm
├── View.elm
└── app.js