Motivation
Please read the entire documentation from start to back. It is only 12 pages and will make sure you will have the best experience working with this boilerplate. It is designed to be like a course, read it chapter by chapter. Open the documentation and the repository side-by-side, I will guide you through the code so you will master this techstack and workflow in no time!
I am tired
In a world where you can get a NextJS application up and running with ONE command, we have to fight with Webpack or give up and live with vanilla JavaScript.
Connect your repository to Vercel, and you have a fully managed application running with everything you could ever need. But thats boring, I would rather dockerize my applications, setup my webserver and WSGI, and deploy everything manually to AWS while figuring out which of more than 200 services I need to use. Don’t forget about domains, oh and also … just like …
You see where I am going. While the temptation to switch to JavaScript is high, Python is still my backend of choice. It has giant ecosystem of libraries, is widely supported and can be made very performant through integration of C and simple hardware acceleration. Especially with the wide adoption of AI these aspects are becoming ever more important.
How ShipPil tries to solve this
So what is this? This is all the boilerplate you will ever need for a Product, not just a Project. Besides the development environment which allows you to quickly develop using Flask, ES-build, PostCSS, and a frontend of your choice, it has: a database, authentification, payments, and emails.
Obviosly you don’t want to self-host this application on your laptop. That is why everything is configured so you can quickly and cheaply deploy: (soon) both orchestrated Docker containers and serverless Lambda functions are supported.
Prerequisites
What do you need to know before you start? I expect you to be a Flask developer familiar with modern JavaScript: you need to know how package managers and bundling work. You should also know how Flask, WSGIs and web servers interact under the hood. Thats it, you can choose you own frontend! Throughout this documentation I am going to teach how to:
- use DynamoDB as your NoSQL database
- do authentification using OAuth
- nable payments with Stripe
- deploy to Lambda using the “Serverless Framework”
- manage domains with Route53
- use the AWS Simple Email Service to cheaply send emails
- serve static content on the edge using CloudFront and S3
- protect your application from malicious trafic with AWS WAF
so you can effectively use and customize this boilerplate with confidence. Continue reading to learn how!