Home > foundation

foundation

Foundation is a project mainly written in JAVASCRIPT and RUBY, based on the MIT license.

Handcrafted's Foundation Application, a clean starting point for every app

h1. Handcrafted Foundation

Handcrafted is a small team of Ruby on Rails developers (mainly "Josh Owens":http://josh.the-owens.com and "Adam Stacoviak":http://adamstacoviak.com/). We focus on creating smart, usable web sites built on a foundation of clean, extensible, handcrafted code. We eat our own dog food, we use Foundation as our core starting point to ensure consistency through-out our applications. We bake all our goodness in here. Once.

Foundation is built with certain specific standards and opinions in mind. We were tired of re-writing and copy & pasting the same code over and over from project to project. Then git came along. Git helped us realize there was a better way.

h2. Key Concepts

  • Make the app extensible by offering smart hooks for engines and plugins to add functionality
  • Keep the code clean. Break repeating code out into partials and re-use as needed
  • Write semantic HTML/Haml. Of course clean, organized CSS/Sass goes with that. And with the help of Compass, we get to ensure that we keep our CSS/Sass DRY
  • Tests, tests, tests. If you aren't testing. You are wrong.

h2. Opinionated Choices

  • "Haml":http://haml-lang.com/, "Sass":http://sass-lang.com/, "Compass":http://wiki.github.com/chriseppstein/compass
  • "JQuery":http://jquery.com/
  • "JQuery Tools":http://flowplayer.org/tools/
  • "qTip":http://craigsworks.com/projects/qtip/
  • Delayed Job
  • AuthLogic
  • NewRelic
  • Hoptoad

h2. Gotchas

  • We try to use "Markers" in key files, such as routes and application.js. We do this to ensure that continued foundation development doesn't trample continued application development
  • Don't annotate the base Foundation application. You should only be annotating the models in your real application

h2. Installation Steps (development)

  1. mkdir My-Foundation-App
  2. cd My-Foundation-App
  3. git init
  4. git remote add foundation git://github.com/handcrafted/foundation.git
  5. git pull foundation master
  6. git remote add origin [email protected]:me/my-foundation-app.git
  7. cp config/database.example.yml config/database.yml
  8. Confirm database setup in config/database.yml
  9. sudo gem sources -a http://gemcutter.org/
  10. sudo gem install chronic
  11. rake gems:install
  12. rake db:create
  13. rake db:migrate
  14. rake db:seed
  15. compass

h2. License

See LICENSE file