• Stars
    star
    249
  • Rank 162,951 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 12 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Description

This is the code that runs Percolate Studio's website at http://percolatestudio.com . The site is a Single Page App built in React. It can be run as a node application with server side rendering, from a set of static pages that have been rendered to disk or as a pure client-side app. We run in production as a static site deployed to S3.

We believe this is a very powerful technique for building rich clientside websites that are:

  • Extremely fast (especially if served from a CDN)
  • Completely redundant/fault tolerant
  • Infinitely scalable
  • Very cheap to host
  • Can connect to and use a 'backend as a service' if desired
  • Can be trivially upgraded to a dynamic node application if required in the future

We wrote up our rationale in more detail on our blog.

Usage

First install the dependencies including grunt if you don't have it yet

$ npm install -g grunt-cli
$ npm install

Development

The run the development node server (app/server.js)

$ grunt

This will use nodemon and webpack to watch for changes and restart and rebuild as the app as needed.

Open http://localhost:3000

Production

To build the 'production' version (app/static.js)

$ grunt static

This will build a complete static site in ./static . The best way to test that this is working locally is to install and run a light http server.

$ npm install -g http-server
$ cd static
$ http-server

Open http://localhost:8080

Deployment to S3

  1. Create a bucket, e.g "percolatestudio.com"
  2. Setup bucket policy like
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "AddPerm",
			"Effect": "Allow",
			"Principal": "*",
			"Action": "s3:GetObject",
			"Resource": "arn:aws:s3:::percolatestudio.com/*"
		}
	]
}
  1. Create a Route53 A-Alias record pointing to your S3 bucket.
  2. Create an IAM user with permissions to upload to S3.
  3. Create s3.config.json, it should look something like
{
  "key": "XXX",
  "secret": "XXX",
  "bucket": "percolatestudio.com",
  "region": "us-west-2"
}
  1. Build and deploy the site
$ grunt deploy

License & Copyright

The code in this project is copyright Percolate Studio Ltd., and licensed under the MIT license (see attached license file LICENSE.txt). All images and textual content are copyright Percolate Studio Ltd. or the respective copyright holder and ARE NOT available to be re-used.

Webfonts are copyright and subject to licensing agreements with their respective owners. They ARE NOT available for re-use. Please license them with their owners.

Maintained by Zoltan Olah (@zol).

More Repositories

1

meteor-synced-cron

A simple cron system for Meteor. It supports syncronizing jobs between multiple processes.
JavaScript
501
star
2

meteor-migrations

Simple migration system for Meteor
JavaScript
245
star
3

publish-counts

Meteor package to help you publish the count of a cursor, in real time
JavaScript
200
star
4

ground-control

A next generation blog, built in Meteor.
CSS
183
star
5

meteor-momentum

Reactive animation package for Meteorjs
JavaScript
167
star
6

meteor-famous-demos

Demos from our devshop talk on Meteor+Famous
JavaScript
92
star
7

react-leaderboard

Meteor's leaderboard example app, rewritten in React.
JavaScript
74
star
8

atmosphere

Atmosphere - Meteor Packages
59
star
9

meteor-server-info

Query your Meteor app for diagnostics
JavaScript
59
star
10

meteor-google-api

A simple API encapsulating some common patterns regarding Google's APIs
JavaScript
48
star
11

meteor-segment.io

Basic Segment.io loader snippet Meteor package
JavaScript
29
star
12

famous-blog-examples

The code for the examples on our blog post http://blog.percolatestudio.com/engineering/the-future-of-javascript-animation-with-famous/
JavaScript
29
star
13

momentum-iron-router

JavaScript
27
star
14

league

CSS
26
star
15

development-guide

A set of (best?) practices that we follow at Percolate Studio.
Shell
23
star
16

mdg-localmarket

Recipes example app
17
star
17

cordova-plugin-safe-reload

Cordova plugin to watch and recover after a broken Meteor Hot Code Push.
JavaScript
14
star
18

amble

A proof of concept Apple Watch and Meteor application.
JavaScript
14
star
19

meteor-url-shortener

URL Shortener for a Meteor app.
JavaScript
13
star
20

meteor-wireframing

Wireframing tools for Meteor
JavaScript
13
star
21

safe-reload

Percolate Studio's Safe Reload Package for Meteor / Cordova
JavaScript
11
star
22

percolate-icons

Percolate Studio Icon Set Package
Less
8
star
23

meteor-detective

Snoop into your Meteor app
JavaScript
8
star
24

meteor-velocityjs

Meteor wrapper package for velocity.js
JavaScript
7
star
25

meteor-pack

Random odds and ends we use across our Meteor projects.
JavaScript
7
star
26

cordova-plugin-file-upload

Cordova plugin for non-multipart file uploads.
JavaScript
6
star
27

meteor-mixpanel

Light Mixpanel Loader package for Meteor.
JavaScript
5
star
28

mdg-todos

CSS
3
star
29

safe

Make method calls safely
JavaScript
3
star
30

collection-models

Simple model code for Meteor
JavaScript
3
star
31

meteor-factory-client

JavaScript
2
star
32

contact-form

JavaScript
2
star
33

tooltips

Tooltips for Meteor
JavaScript
2
star
34

collection-models-schemas

JavaScript
2
star
35

amble-victoria

Ruby
1
star
36

mdg-dashboard

JavaScript
1
star
37

cordova-plugin-file-transfer

Non Multipart version of the Cordova FileTransfer plugin
JavaScript
1
star
38

MeteorShower

JavaScript
1
star
39

mdg-leaderboard

Leaderboard example app redesign
1
star
40

mdg-recipes-landing

Landing page for recipes app
CSS
1
star
41

bound-form

A Meteor package for forms bound to their output via a reactive dictionary.
JavaScript
1
star
42

theme-percolate-blog

Percolate Studio blog WP theme
CSS
1
star