Giter VIP home page Giter VIP logo

capsule's People

Contributors

facundovictor avatar grgur avatar ikovic avatar obscurerichard avatar rpigu-i avatar theneverstill avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

capsule's Issues

404 Page.

Now we handle 403 via the Lambda function, we need to ensure when a redirect doesn't exist we display a 404 message.

MVP1 - Update README and create a docs section

We should:

  1. Create a docs folder to contain specific documentation, with categories like:
  • General capsule cli explanation
  • Cloudformation templates explanation including the architecture graph
  • AWS credentials setup, suggestions and links to useful AWS docs.
  • Explanation for capsule config
  • Contribution section:
    • how to create issues
    • how to creat prs
    • how to setup the dev env
    • how to test changes
    • how to release next version
    • "thanks to"
    • others?
  • FAQs
  1. Update README to be the main project presentation and reference docs in under docs/ folder.
  2. Add badges for:
  • codebuild test passing,
  • npm version
  • download count
  • license fossa scan

Password-protect parts of a website

Some projects need to be password-protected, either entirely or specific routes.

Viable authentication methods:

  • basic auth
  • oauth via Google and other services

Pre-compress assets

Prior to upload to S3, we can gzip, brotli, and deflate (and potentially other compressions as well) all assets and upload all of the versions (tack on the compression method as an extension, e.g. image.png.br or image.png.gz). Then, in a pre-cloudfront lambda@edge (yes, this means it is run on EVERY request) we read the Accept-Encoding header and then create a CUSTOM x-compression (or w/e) header with a value of the best compression option the user will accept, tell cloudfront to cache based on our custom header value (and pass it along to the origin), and then in a pre-origin lambda@edge, read that value, and then forward the request to the origin after we update the uri to include the compression extension. (edited)

the lambda@edge pre-origin will only get called when assets of that compression type aren’t cached in cloudfront, but the lambda@edge pre-origin will get called every time. It’ll likely add about 10-20ms to the request and cost $0.60 every million requests, but being able to serve brotli will reduce transfer size by ~20%… so given transfer costs and depending on size of assets, it could end up saving money (and almost guaranteed it’ll reduce transfer times for the user) (edited)
(The pre-cloudfront lambda@edge extra effort is b/c cloudfront strips everything except gzip out of the accept-encoding header. Cloudfront only supports gzip natively. Hopefully one day they’ll stop stripping out the other encoding types and then we could potentially drop that extra lambda.)
Pretty much all evergreen browsers (including mobile) support brotli https://caniuse.com/#feat=brotli

Pre-init configuration

init looks like the command we start with. Here's what I expect from it:

  • Create a configuration file
  • Create any metadata files such as cloudformation templates
  • DO NOT deploy

Then I would expect capsule deploy that does the work.

Does this make sense?

Project name as argument

Without reading the docs I thought I was expected to use capsule init my-project-name

What does the team think of that approach?

Write Unit Tests

  • Chose a Unit testing framework for Capsule
  • Write Unit tests for the bin/capsule.js file

Stylistic Cleanups

Minor stylistic cleanups as per the comments on PR 28:

  1. Check functions are not defined as async when not required

  2. Use ternary operator when setting bucketName based on domain and subdomain

  3. Check anywhere, where params were being used for testing but no longer needed are tidied up.

Branch: stylistic_fixes

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.