# 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) [![npm version](https://badge.fury.io/js/jsonmvc.svg)](https://badge.fury.io/js/jsonmvc)

**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.

In general, frameworks require you to use classes, instances, prototype, inheritance, context or functional composition.

**JSONMVC** is strikingly different. It removes all of these from your application and gives you a declarative approach instead.

Status: **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.

## Principles

While most frameworks are busy defining ways of constructing applications, **JSONMVC **is paving a new way towards application modeling.

> Instead of creating and sticking bricks together into components, mould your application just like you would do with 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.

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


