Welcome to Genie Framework!

Genie is a full stack web framework for the Julia programming language. Genie's goals are: excellent developer productivity, great run-time performance, and best practices and security by default. Genie web framework follows in the footsteps of mainstream full stack web frameworks like Ruby on Rails and Django, while staying 100% true to its Julia roots.

Genie also follows a "start simple, grow as needed" philosophy, by allowing developers to bootstrap an app in the REPL or in a notebook, or easily create web services and APIs with just a few lines of code.

As the projects grow more complex, Genie allows adding progressively more structure, by exposing a micro-framework which offers features like powerful routing, flexible logging, support for environments, view templates, etc.

Framework overview

Genie Framework has three main components: Genie, Stipple and SearchLight.

Genie.jl provides backend and frontend tools, so that you can build full stack web apps and APIs around your Julia code.

For real-time interactivity and a rich UI, like what's needed in a dashboard, Stipple.jl provides a reactive UI layer.

For database persistence, Genie's ORM, SearchLight.jl, can be added at any time.

Finally, Genie Builder increases your productivity by providing a way to design your UIs visually with drag-and-drop of components.

Getting started

You can install Genie Framework from the Julia REPL by entering Pkg mode with ] and typing

pkg> add GenieFramework

This will install Genie.jl, Stipple.jl along with other accessory packages. To work with databases, you'll need to install SearchLight.jl separately.

To create a basic webpage with dynamic content, see the Adding dynamic pages guide.

To build an interactive dashboard, check out the First dashboard guide.

To build a multipage app, head over to the First multipage app guide.

For more advanced features see the API guide and the Reference section.