- AWS SAM
- Architect Serverless
- A full local AWS sandbox
- Easily shared code between routes
- Easly create AWS infrastructure - the
arc
in package.json creates the AWS SAMsam.yaml
file for you! - Types are provided for the Arc
Request
andResponse
objects - Pure ES2017
await
style code with no callbacks for routes or middleware - Arc lambdas simply return HTTP responses, and middleware can be chained together by returning a response (ending processing) or a modified request (passing to the next step in middleware)
- Svelte using TypeScript, for fast, simple and small code without the overhead of a virtual DOM.
- eslint using TypeScript
- Tests using TS jest (and a ready to go config for Circle CI)
- An
.env
for secrets, which isn't committed for security reasons - keep it in your password manager. - Users and passwords using bcrypt
- A neat HTML5 page layout with CSS grid by default.
- Live Reloading
npx degit mikemaccana/serverless-starter-kit my-new-app
cd my-new-app
npm install
Install MongoDB, then cp .env.example .env
to make an env file. Then start MongoDB.
Just run:
npm start
The Architect sandbox is now running on http://localhost:3333
npm test
Or to run a single test suite or test:
npm test-filter "Auth"
Set up your ~/.aws/credentials
and run:
npm run deploy
See the docs for Architect Serverless and Svelte
- Frontend code, including Svelte components, is in
src/frontend
- Images and global CSS is in
public/images
andpublic/css
- Backend code is in
src/http
,src/ws
, code shared between all routes is insrc/shared
andsrc/views
. If you make changes tosrc/shared
andnpm run update-shared-and-views
will update the necessary symlinks for you. - Infrastructure is in package.json under the
arc
key. Arc organises these by familiar concepts - so eachhttp
route, for example, results in an API gateway with a Lambda attached when you deploy to AWS.
Please don't just spam me asking for features!
See CHANGELOG.md