albumsManager
- Needed
Create and manage nested albums hierarchy. Upload images to the albums. Assign cover images to the albums.
- AWS Amplify: Stack Orchestration
- Cognito: User Login
- Appsync: GraphQL Endpoint
- DynamoDB: Data storage
- S3: CMS Hosting, Image storage
- Cloudfront: CDN delivery
- Lambda: Server side files and image manipulations
- Event Bridge: Handles deploy events
- Quasar: VueJS Frontend Framework
- ACM: SSL certificate
- Route53: DNS, certificate validation
imageResize
- Needed
Resizes, crops and stores image variations.
- Serverless.com: Stack Orchestration
- API Gateway: HTTPS Endpoints
- S3: Storage and caching of resized images
- Cloudfront: CDN delivery
- Lambda: Resize Images using Sharp
- ACM: SSL certificate
- Route53: DNS, certificate validation
publicsite-grid
- Optional
Host and serves a public version. It provides the content and layout for the public site.
- Hugo: Static site generator
- S3: Hosting of the site
- Cloudfront: CDN delivery
- CodeBuild: Website building and deploy
- ACM: SSL certificate
- Cloudformation: Manages S3 and Cloudfront
- Route53: DNS, certificate validation
Why Another Web Gallery ?
There a several web galleries services out in the world. Be it branded services like GooglePhotos, flickr or imgur to name a few. Or the endless amount of self hosted services.
All the self hosted services, have a point in common, they need servers to run. And therefore they need servers to be maintained and secured.
The branded services lack functionalities, like hierarchical albums. Not including the fact, that your pictures are no more totally yours once uploaded to them. You are also at the mercy of their marketing strategies. The services can go away as fast as they arrived, just remember Picasa or Panoramio.
Yapawa was born with the above limitations in mind.
Yapawa is serverless
It uses serverless services from AWS which comes with following benefits:
- Pay for what you use, don’t pay for idle time
- Automatically scale for increased requests
- Hardware and network redundancy
More specifically, you don’t pay for a 24/7/365 server for a CMS used a few hours a week or for a public site receiving only a few hits an hour. But in the lucky case, you are feature somewhere and start receiving hundreds of requests a second, the service will scale and cope with the increase.
Static public site
It is classified as optional, since the CMS has a public API and therefore could be easily replaced by an SPA, and other static template or even a PHP site (but why would you do that to yourself).
publicsite-grid is a static site. It is re-generated using the CSM API after a change. CPU is only used once, when generating the pages. To serve them , the resulting HTML is already created and can easily leverage a CDN.