GithubHelp home page GithubHelp logo

bigfoot's Introduction

Bigfoot

Bigfoot is a web framework that mimics the recurring architectural design decisions made by the largest online apps.

It is built to scale by enforcing and rewarding the usage of many of the best practices that are typically adopted as an app grows.

Major Features

  • Separate API and UI - There's one git repo for the API and one for the UI. Developers on either side are able to release as independently as possible.
  • Integration through Contract - API developers are responsible for writing up an API schema with exemplary behavior; UI developers test against this and can interact with the examples as mocked responses during development.
  • Service Oriented Ruby API - API developers code Ruby Rack services that in composition make up the production API.
  • Design Oriented Javascript UI - UI developers code up HTML templates and fetch API data using only Javascript.
  • Branched UI - UI developers can release multiple live versions of the UI with git branches, allowing for
    • Easy production demos without the need for multiple environments
    • Different user experiences for different users (pre-release usage, A/B testing, etc.)
    • Phased roll-outs of new UIs to minimize pain
  • Streaming Responses - UI server requests are answered with streamed responses, allowing for the fastest loading of resources.
  • Plain Old Server-Side Rendering for Initial Requests
  • Asynchronous Client-Side Rendering for Subsequent Requests
  • Division of UI into Pagelet-like Views
  • Automatic Versioning and Bundling of UI Assets
  • Single-domain Production Deployment behind HAProxy

How it works

Each Bigfoot app depends on two code repositories, one for the API and one for the UI.

bigfoot create big_example

WHERE'S THE CODE???

Bigfoot is being extracted from our production app, so it may take some time.

Please feel free to periodically harass @foysavas on Twitter for best results.

bigfoot's People

Contributors

foysavas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.