Light Weight Web Application Framework using node.js, mongo, sockets, ember.js, ...
## What microscratch is - first day in school
What is the microscratch?
microscratch is minimalistic opionated modern web application framework.
For clarification of words and term used please see glossary.
What are the principles?
- Being idiomatic - All code in any code-base should look like a single person typed it, no matter how many people contributed.
- Asking smart questions.
Why is called microscratch?
It is smaller brother of "the scratch". Google for it.
Is it really so micro?
It depends. Compared with what? Reports will be added soon...
Why should I choose microscratch?
- It's open-source and will be!
- It's quite small
- It's quite modular
- It's quite easy to understand
- It's tested
- It's continuously integrated
- It's under the code QA
- It's up-to-date
Will the microscratch fit me?
It depends. What are your needs? There is no silver bullet.
Is it production ready?
It depends. If is the node.js, mongo and/or ember are production ready for you then microscratch is ready too...
Is the installation difficult?
No. It will take you only few seconds, lets try...
What are the prerequisites?
If you have following, you should be ready to go.
Git is a free and open source distributed version control system.
MongoDB (from "humongous") is an open-source document database.
What is the easiest way to try?
If you have stuff mentioned above installed try this.
# Install grunt and bower
sudo npm install -g bower mocha mocha-phantomjs phantomjs grunt grunt-cli forever firstname.lastname@example.org
# Clone repository
git clone http://github.com/korczis/microscratch.git
# Install required node modules
sudo npm install
# Install required bower modules
# Compile assets
# Run application
Mac OS X
If you run
grunt server you may get an error:
Running "watch" task
Waiting...Warning: EMFILE, too many open files
This is because default
ulimit on Mac OS X is 256. Increate number of possibly open files to 10000 by:
ulimit -n 10000
- What is happening during the boot sequence?
- What are the main configs?
- Can I add my own initializers?
- What are the steps in bootstrap process?
- How can I override option from CLI?
- What is CLI?
- How to use CLI?
- Are there any CLI examples?
- How can I communicate?
- How can I communicate horizontally?
- How can I communicate vertically?
- How can I communicate between modules?
- How can I communicate between apps?
- How can I communicate between clients?
- How can I communicate between servers?
Technologies - Under the hood
- What technologies do you use?
- What is the usage of technology 'XYZ' ?
- Why was the technology 'XYZ' chosen instead of 'ABC' ?
- Can I replace technology 'XYZ' with ... ?
- Is the technology 'XYZ' needed? I can no use it? Do you have fallback?
DIY - Do It Yourself
- How can I add my own environment?
- How can I add my own module?
- How can I add my own application?
Deploy and monitor - Going wild
- How can I deploy microscratch application?
- How can I monitor my microscratch application?
Hacking - Under the hood
- How can I hook to module events?
- How can I hook to application events?
- How can I hook to client events?
- How can I hook to server events?
Film about film making
- What was the inspiration for modules layer?
- What was the inspiration for applications layer?
- What was the inspiration for clients layer?
- What was the inspiration for servers layer?
- How can I report issue?
- How can I propose feature?
- How can I help as developer?
To Be Done