Parima: An Open Source Stack for Launching Static Sites and JavaScript Frameworks

As part of our mission to bring Serverless Architecture Stacks to the forefront of cloud computing, we have launched a simple open source project for launching static sites and javascript frameworks like Angular, React, or Vue. It's named Parima, and it's available now on GitHub: https://github.com/formkiq/parima.

From the README:

Parima is a free, open source project that has been created to allow easy publishing of static web sites and JavaScript web applications (like Angular or React apps) using Amazon Web Services. It's ideal for designers and front end developers who want to launch a new web site without having to worry about hosting outside of creating an AWS Account.

Parima creates a simple, serverless architecture for your web site, using Amazon S3 to store the markup, code, and asset files, and AWS CloudFront to distribute the site using HTTPS. It can be installed with or without a custom domain (for custom domain requires domain DNS to be using Route53).

So why did we build it? Quite simply, deployment and distribution are extremely important steps in the process of creating and launching front end websites. And while there are several services and products that launch and/or host front end sites, none of them match all of the criteria we wanted to see:

  • Installation and updates that don't require front end developers to master infrastructure, DNS, and SSL certficates: It's possible to do everything Parima does on your own, using the AWS Console, but it'll take time to understand it and then some more time to set it up. And for many websites and the people who develop them, that time may be better spent on other things.
  • A scaleable serverless website distribution that does not include an extra third-party layer: Services like Netlify often offer a free tier (their loss leader), but adding extra functionality beyond the basics often requires upgrading to paid plans, with the full feature set not being available unless you're paying a significant monthly amount. While this may make sense in some situations, it's nice to have an option that allows you full control over the individual cloud products you want to use. (And since these middle-layer companies are often built on top of one or more cloud providers, the cost billed to you for advanced features will generally include costs and profit for that third-party, above and beyond the usage costs of those cloud providers.)
  • Availability in the majority of AWS regions: Most CloudFormation templates, Terraform modules, and AWS Amplify cannot set up Custom Domains outside of us-east-1, so setting up sites for audiences in South America, Europe, Africa, Asia, or Australia/Oceania with Amplify, CloudFormation, or Terraform modules will create extra latency that using Parima will not.

Our goal with Parima is to give all of the power to the website or appliation developer, and that doesn't just mean a simple set up for deployment and distribution, but also a serverless architecture foundation that will work well with other AWS products.

Here's an example of why that's important: for most JavaScript developers, their experience on the front end can lead them to creating NodeJS backends as well. AWS Serverless Application Model (SAM) CLI is a great way to build and deploy code NodeJS (or other languages) to use API Gateway and AWS Lambda. By launching your site with Parima, you have the option of easily consuming your new serverless API. Using a third-party service may restrict your ability to use SAM CLI, or may just complicate using it. And if you want to connect that API to a datastore like DynamoDB or Amazon Aurora, you may run into more barriers. We want to remove barriers to serverless, and we think Parima is a great step toward that.

If you're interested, check Parima out for yourself, and see if you think we're onto something.