zorbash

zorbash

Kitto: A framework for interactive dashboards

I created Kitto a framework for dashboards inspired by Dashing.

The distributed characteristics of Elixir and the low memory footprint (compared to Ruby/Rails) make it ideal for a dashboard server. It feels familiar to users of Dashing and provides a DSL to define jobs.

# File jobs/random.ex
use Kitto.Job.DSL

job :random, every: :second do
  broadcast! :random, %{value: :rand.uniform * 100 |> Float.round}
end

The front end uses React/Webpack (which are really widespread) so it should be easy to dive in and code widgets without having to learn yet another framework.

Currently i’m expanding the wiki and general documentation so to make it as straightforward as possible to use.

You’re welcome to try it, make suggestions and if you evaluate it positively, help me get it in awesome elixir.

Most Liked

zorbash

zorbash

New Security release for Kitto.

The latest v0.5.2 release contains various security fixes listed below:

3 security vulnerabilities have been disclosed to us by @griffinbyatt

  1. Directory Traversal
  1. XSS in 404 page
  1. DoS from query parameter conversion to Atoms (since they’re not Garbage-Collected)

https://github.com/kittoframework/kitto/commit/5323717e4ac978144bcf89169dce9d79a4c2bdb6

Please mind to upgrade.

Special thanks to @davejlong and @griffinbyatt for the their swift and responsible work.

vfsoraki

vfsoraki

Have you looked at Drab?

With this, you could eliminate React dependency, just clean Elixir code.

Just a thought though :slight_smile:

zorbash

zorbash

I had plans from the beginning to diverge from Dashing/Smashing and that’s why there’s nowhere in the documentation a promise for compatibility between the projects. Building it on some of the conventions of Dashing though can hopefully make people using it more productive and eager to port existing dashboards to Kitto (and even find an excuse to introduce Elixir at work :innocent:)

Concerning your question abou the text widget, you’re right about it having only one dynamic attribute at the moment.
Changing it to have more or all of its attributes dynamic is quite simple and i wouldn’t mind if the default generated text widget
had all of them dynamic (feel free to submit a PR about this).

Keep in mind that even core widgets are generated in any new dashboard app instead of being bundled somehow to allow the user to see the source code, and adapt it accordingly.

zorbash

zorbash

@vfsoraki Thanks for the suggestion, it’s a really interesting project! But has phoenix as a requirement and Kitto is not built on phoenix, it just uses Plug, also uses Server Sent Events instead of WebSockets.

Where Next?

Popular in Libraries Top

mathieuprog
Hello :wave: Allow me to introduce you to Tz, an alternative time zone database support to Tzdata. Why another library? First and fore...
New
josevalim
EDIT: since Ecto 3.0 final version is out, this post was amended to use the final versions in the instructions below. Hi everyone, We a...
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 27727 240
New
tmbb
PhoenixWS - Websockets over Phoenix Channels Source code on Github here: https://github.com/tmbb/phoenix_ws Phoenix channels are a great...
New
Antrater
Hi everyone! I’m thrilled to announce a huge thing. We have been developing Elixir Moon Design System for quite a while. We are finally ...
New
Crowdhailer
Experimenting with this code. OK.try do user <- fetch_user(1) cart <- fetch_cart(1) order = checkout(cart, user) save_or...
New
bryanjos
Hi, I wanted share a small library we at Revelry Labs made for rendering react components from the server side. There are instructions fo...
New
gjaldon
As the title states, EctoEnum has just been updated after some time of hardly any activity in the repo. Here’s the latest release: https:...
New
vic
Expat is a tiny experiment I did for extracting patterns and being able to reuse them (compose and share patterns between elixir librarie...
New
New

Other popular topics Top

chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 30048 115
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
qwerescape
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
beno
I will often find my self writing things similar to: case some_value do nil -> something() "" -> something() _ -> someth...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New

Sub Categories:

We're in Beta

About us Mission Statement