diff --git a/couchdb/frontend-stats/.couchappignore b/couchdb/frontend-stats/.couchappignore
new file mode 100644
index 0000000000000000000000000000000000000000..8b9f9dd9d17808fc00f746b9c2767ab41ff1449f
--- /dev/null
+++ b/couchdb/frontend-stats/.couchappignore
@@ -0,0 +1,7 @@
+[
+  // filenames matching these regexps will not be pushed to the database
+  // uncomment to activate; separate entries with ","
+  // ".*~$"
+  // ".*\\.swp$"
+  // ".*\\.bak$"
+]
\ No newline at end of file
diff --git a/couchdb/frontend-stats/.couchapprc b/couchdb/frontend-stats/.couchapprc
new file mode 100644
index 0000000000000000000000000000000000000000..d35f20bede2b2319a5f3a28a2c99f39657fc7fe2
--- /dev/null
+++ b/couchdb/frontend-stats/.couchapprc
@@ -0,0 +1,7 @@
+{
+    "env" : {
+        "default" : {
+            "db" : "http://localhost:5984/nighlies-reduced"
+        }
+    }
+}
\ No newline at end of file
diff --git a/couchdb/frontend-stats/README.md b/couchdb/frontend-stats/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..83b0641fac240f3ee3712d4837d1119bf7ce412f
--- /dev/null
+++ b/couchdb/frontend-stats/README.md
@@ -0,0 +1,33 @@
+## Generated CouchApp
+
+This is meant to be an example CouchApp and to ship with most of the CouchApp goodies.
+
+Clone with git:
+
+    git clone git://github.com/couchapp/example.git
+    cd example
+
+Install with 
+    
+    couchapp push . http://localhost:5984/example
+
+or (if you have security turned on)
+
+    couchapp push . http://adminname:adminpass@localhost:5984/example
+  
+You can also create this app by running
+
+    couchapp generate example && cd example
+    couchapp push . http://localhost:5984/example
+
+Deprecated: *couchapp generate proto && cd proto*
+
+
+## Todo
+
+* factor CouchApp Commonjs to jquery.couch.require.js
+* use $.couch.app in app.js
+
+## License
+
+Apache 2.0
diff --git a/couchdb/frontend-stats/_id b/couchdb/frontend-stats/_id
new file mode 100644
index 0000000000000000000000000000000000000000..212dd81316fd826eee46d0f3157ad1deddb66638
--- /dev/null
+++ b/couchdb/frontend-stats/_id
@@ -0,0 +1 @@
+_design/frontend-stats
\ No newline at end of file
diff --git a/couchdb/frontend-stats/couchapp.json b/couchdb/frontend-stats/couchapp.json
new file mode 100644
index 0000000000000000000000000000000000000000..982756c501d31ca75e6ff678d475dd3297c0f534
--- /dev/null
+++ b/couchdb/frontend-stats/couchapp.json
@@ -0,0 +1,4 @@
+{
+    "name": "Fronend-stats",
+    "description": "View for fron-end statistics"
+}
\ No newline at end of file
diff --git a/couchdb/frontend-stats/language b/couchdb/frontend-stats/language
new file mode 100644
index 0000000000000000000000000000000000000000..f504a95f90c40efefda8c0c7e16cd9ef86f723d2
--- /dev/null
+++ b/couchdb/frontend-stats/language
@@ -0,0 +1 @@
+javascript
\ No newline at end of file
diff --git a/couchdb/frontend-stats/views/byDate/map.js b/couchdb/frontend-stats/views/byDate/map.js
new file mode 100644
index 0000000000000000000000000000000000000000..9ba7961e098e084f2343c64d306d0cf58a5f9863
--- /dev/null
+++ b/couchdb/frontend-stats/views/byDate/map.js
@@ -0,0 +1,58 @@
+function(doc) {
+    if (doc.type == "slot-info") {
+        if(doc.date != null){
+           to_emit = {};
+           to_emit['slot'] = doc['slot'];
+           to_emit['build_id'] = doc['build_id'];
+           to_emit['platforms'] = {}
+           for(c_platform in doc['config']['platforms']){
+                platform = doc['config']['platforms'][c_platform]
+                to_emit['platforms'][platform] = {}
+                for(c in doc['config']['projects']){
+                    build_errors = 0
+                    build_warnings = 0
+                    test_errors = 0
+                    test_passed = 0
+                    test_failed = 0
+                    test_untested = 0
+                    if(doc['config']['projects'][c]['disabled'])
+                        continue
+                    project = doc['config']['projects'][c]['name']
+                    build = doc['builds']
+                    if (build && build[platform] && build[platform][project]){
+                        build_errors = build[platform][project]['errors'];
+                        build_warnings = build[platform][project]['warnings'];
+                    }
+                    tests = doc['tests']
+                    if (tests && tests[platform] && tests[platform][project]){
+                        tmp = tests[platform][project]['results'];
+                        if(tmp){
+                            if(tmp['FAIL']){
+                                test_failed = tmp['FAIL'].length 
+                            }
+                            if(tmp['PASS']){
+                                test_passed = tmp['PASS'].length 
+                            }
+                            if(tmp['UNTESTED']){
+                                test_untested = tmp['UNTESTED'].length 
+                            }
+                            if(tmp['ERROR']){
+                                test_errors = tmp['ERROR'].length 
+                            }
+                        }
+                    }
+
+                    to_emit['platforms'][platform][project] = {
+                        'build_errors': build_errors,
+                        'build_warnings': build_warnings,
+                        'test_errors': test_errors,
+                        'test_passed': test_passed,
+                        'test_failed': test_failed,
+                        'test_untested': test_untested
+                    }
+                }
+           }
+           emit(doc.date, to_emit);
+        }   
+    }
+}
\ No newline at end of file