<commit_before>---
layout: main.html
---

# Tutorials
Seneca tutorials offer a deep dive into a particular concept or feature. We also have a number of sample projects, small and large
that demonstrate how to use Seneca in a number of different ways and with different complimentary technologies.

## Guides

- [Logging with Seneca][]
- [How to write a plugin][]
- [Understanding data entities][]
- [Understanding query syntax][]
- [Understanding prior actions][]
- [Seneca with promises][]

## Sample projects
Sample projects are awesome. At Seneca, we have a good chunk of them available to study and extend. Seneca examples contains
multiple small, singularly focused sample projects. Both _Well!_ and _nodezoo_ are examples of larger-scale projects which are
closer to production ready apps than trivial examples.

### Seneca examples
For convenience, we have a number of sample apps in a single repository. This repository covers single concepts
as well as popular plugins. See the repo at [Seneca samples][].

### Well!
Well! is a simple networking game implemented as a mobile web app. Its purpose is to serve as an example of a real app, built with Node.js, Sencha Touch, and Seneca. See the repo at [Well!][].

### nodezoo
nodezoo is a search engine for Node.js modules. The nodezoo search engine is an example of a real-world service built using Node.js microservices. Each microservice is published in its own GitHub repository. The code base is intended to be used as a larger-scale example and as a starting point for your own projects. See the repo at [nodezoo][].

## Seneca Articles

- [Seneca 1.0.0: A microservices framework for Node.js](http://www.richardrodger.com/seneca-microservices-nodejs#.VqjAZRiLT-k)
- [Monolithic Node.js](http://www.richardrodger.com/monolithic-nodejs#.VqjAixiLT-k)

## Seneca Talks

Here are some talks about Seneca and Microservices:

<!--
- [The proof is in the pudding - seneca+hapi - <NAME> (Nodevember 2015)][]
- [Pattern matching is awesome! - <NAME> (Node.js Dublin 2015)][]
- [How Microservices fail and what to do about it - <NAME> (Microservices Dublin 2015)][]
-->
- [We are not Object-Oriented anymore - <NAME> (FullStack London 2015)](https://skillsmatter.com/skillscasts/6819-we-are-not-object-oriented-anymore-or-why-the-node-callback-style-is-awesome#showModal?modal-signup-complete)
- [Measuring Microservices - <NAME> (microxchg.io Berlin 2015)](http://www.infoq.com/presentations/measuring-microservices)
- [Microservices - <NAME> (NodeConf EU 2014)](https://www.youtube.com/watch?v=fVfWuked2qE)

<!--
- [Introducing the Seneca MVP framework for Node.js - <NAME> (Node.js Dublin 2012)][]
- [How to build big apps - <NAME> (Node Dublin 2012)][]
-->

[Logging with Seneca]: /tutorials/logging-with-seneca.html
[Seneca with promises]: /tutorials/seneca-with-promises.html
[How to write a plugin]: /tutorials/how-to-write-a-plugin.html
[Understanding data entities]: /tutorials/understanding-data-entities.html
[Understanding query syntax]: /tutorials/understanding-query-syntax.html
[Understanding prior actions]: /tutorials/understanding-prior-actions.html
[Seneca samples]: https://github.com/rjrodger/seneca-examples
[Well!]: https://github.com/nearform/well
[nodezoo]: https://github.com/rjrodger/nodezoo


[How to build big apps - <NAME> (Node Dublin 2012)]: https://www.youtube.com/watch?v=Qv0VQf7iJGQ
[Microservices - <NAME> (NodeConf EU 2014)]: https://www.youtube.com/watch?v=fVfWuked2qE
[Measuring Microservices - <NAME> (Microservices Dublin 2015)]: https://www.youtube.com/watch?v=ZRBKfyykEw8
[Measuring Microservices - <NAME> (Codemotion Rome 2015)]: https://www.youtube.com/watch?v=SQYCzAWlrHU
[How Microservices fail and what to do about it - <NAME> (Microservices Dublin 2015)]: https://www.youtube.com/watch?v=f40EybJwgBo
[Pattern matching is awesome! - <NAME> (Node.js Dublin 2015)]: http://pattern-matching-is-awesome.mcdonnelldean.me/
[Introducing the Seneca MVP framework for Node.js - <NAME> (Node.js Dublin 2012)]: http://www.slideshare.net/rjrodger/introducing-the-seneca-mvp-framework-for-nodejs
[We are not Object-Oriented anymore - <NAME> (FullStack London 2015)]: http://thenewstack.io/microservices-node-js/
[The proof is in the pudding - seneca+hapi - <NAME> (Nodevember 2015)]: https://www.youtube.com/watch?v=l7zFZcgAFzg<commit_msg>Tidied up the tutorials section<commit_after>---
layout: main.html
---

# Tutorials
Seneca tutorials offer a deep dive into a particular concept or feature. We also have a number
of sample projects, small and large that demonstrate how to use Seneca in a number of different
ways and with different complimentary technologies.

## Guides

- [Logging with Seneca][]
- [How to write a plugin][]
- [Understanding data entities][]
- [Understanding query syntax][]
- [Understanding prior actions][]
- [Seneca with promises][]

## Sample projects
Sample projects are awesome. At Seneca, we have a good chunk of them available to study and
extend. Seneca examples contains multiple small, singularly focused sample projects. NodeZoo
is an example of a larger-scale project which is closer to a production ready system.

### Seneca examples
For convenience, we have a number of sample apps in a single repository. This repository
covers single concepts as well as popular plugins. See the repo at [Seneca examples][Sample02].

### NodeZoo
NodeZoo is a search engine for Node.js modules. The complete system is an example of a real-
world service built using Node.js microservices. Each microservice is published in its
own GitHub repository. The code base is intended to be used as a larger-scale example and as a
starting point for your own projects. See the system at [NodeZoo][Sample02].

## Seneca Articles

- [Seneca 1.0.0: A microservices framework for Node.js][Article01]
- [Monolithic Node.js][Article02]

## Seneca Talks

Here are some talks about Seneca and Microservices:

- [We are not Object-Oriented anymore][Talk01] - _<NAME> (FullStack London 2015)_
- [Measuring Microservices][Talk02] - _<NAME> (microxchg.io Berlin 2015)_
- [Microservices][Talk03] - _<NAME> (NodeConf EU 2014)_



[Logging with Seneca]: /tutorials/logging-with-seneca.html
[Seneca with promises]: /tutorials/seneca-with-promises.html
[How to write a plugin]: /tutorials/how-to-write-a-plugin.html
[Understanding data entities]: /tutorials/understanding-data-entities.html
[Understanding query syntax]: /tutorials/understanding-query-syntax.html
[Understanding prior actions]: /tutorials/understanding-prior-actions.html

[Sample01]: https://github.com/rjrodger/seneca-examples
[Sample02]: https://github.com/nodezoo/nodezoo-system

[Article01]: http://www.richardrodger.com/seneca-microservices-nodejs#.VqjAZRiLT-k
[Article02]: http://www.richardrodger.com/monolithic-nodejs#.VqjAixiLT-k

[Talk01]: https://skillsmatter.com/skillscasts/6819-we-are-not-object-oriented-anymore-or-why-the-node-callback-style-is-awesome
[Talk02]: http://www.infoq.com/presentations/measuring-microservices
[Talk03]: https://www.youtube.com/watch?v=fVfWuked2qE
{'fraction_non_alphanumeric': 0.11316200482748828, 'fraction_numerical': 0.018600028396989918, 'mean_word_length': 4.788003286770747, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 15, 'lorem ipsum': 0, 'www.': 15, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3282257', 'n_tokens_mistral': 2354, 'n_tokens_neox': 2159, 'n_words': 735}