# JSONMVC

[![Build Status](https://travis-ci.org/jsonmvc/jsonmvc.svg?branch=master)](https://travis-ci.org/jsonmvc/jsonmvc) [![Coverage Status](https://coveralls.io/repos/github/jsonmvc/jsonmvc/badge.svg?branch=master)](https://coveralls.io/github/jsonmvc/jsonmvc?branch=master)

**JSONMVC** is a JavaScript framework for effortless web application modeling.

It lets you create robust web applications with unprecedented simplicity.
No syntax to learn and no abstractions it gives you more with much less.

Traditional frameworks make use of classes, instances, prototypes, inheritance, context or functional composition.
**JSONMVC** is strikingly different and it takes great pride in removing everything but the essential.

Status: **Official Pre-Alpha release coming soon**

```bash
npm install jsonmvc --save-dev
```

or

```
<script src="cdn"></script>
```

See the [Quick Start guide](/create-your-first-application.md) to **JSONMVC** or see the [Docs](https://jsonmvc.gitbooks.io/jsonmvc/content/).

## See it in action!

\[ Diagram \]

## Getting Started

* [Installation](/installation.md)
* [What is JSONMVC?](/introduction/what-is-jsonmvc.md)
* [Understanding JSON](/understanding-json-patch.md)
* [Understanding MVC](/introduction/what-is-jsonmvc/understanding-jsonmvc-structure.md)
* [Create your first application](/create-your-first-application.md)

## Why?

**JSONMVC** arose from the quest for the absolute minimal application.

> How do you build the absolute minimal application?

To achieve the absolute minimum an application should have:

* Smallest codebase possible
* Fewest computations for any given action
* Maximal data validation with minimum code
* Maximal data traceability with minimum data referencing

Looking at popular frameworks it became obvious that none of the fit the bill.
They value verbosity and abstractions and documenting mental models that fit within those limitations.

The problem that **JSONMVC** is solving is not "How we build applications that are \_\[insert attribute here\]" \_but how can we stop building them entirely and begin modeling them.

> Instead of creating and sticking bricks together into components, mould your application just like clay.
> Change it 10%, 50% or 90% at a time without any friction or constraints.

The clay in our applications is Data. Free data from code and the possibilites are endless.

\[...\]

## Concepts

It converges Object Oriented, Functional and Logic Programming in a single universal concept.

In other words, you get the best of all worlds but without the inherent complexity or know-how

## Demo

Link to demo

## Utils

* [Stream](/utils-reference/stream.md)
* [Observer](/utils-reference/observer.md)

## Modules

* [UI](/modules/ui.md)
* [Time](/modules/time.md)
* [AJAX](/modules/ajax.md)
* [Forms](/modules/forms.md)
* [Firebase](/modules/firebase.md)
* [Framework7](/modules/framework7.md)

## Documentation

Overview paragraph..

Quick links:

* Walkthroughs
* Reference
* FAQ
* Resources
* Cookbooks


