Not static! HTML is rendered on-demand
Completely required for building an API
Database backed (full stack!)
Model
View
Controller
Model
View
Controller
3 tier logical architecture is not the same as the physical infra
Difficult to deploy when infra is not versioned
Slow rolling deployment
Servers are difficult to scale horizontally
Slow to render HTML because traditional databases are slow
Maintenance cost is huge and not fun (patching, updating, debugging, etc)
Background jobs are required for performance but a clunky bolt on
pub/sub, queues, cron
⭐⭐⭐⭐⭐
Pre-rendering HTML and served via CDN. Dynamic functionality initiated by JavaScript at runtime.
Authortime build of all presentation/business logic delivered as static assets
Empowers the frontend web developers
Slow build
Dynamic is a second class citizen
Complex ecosystem of libraries, tooling and services need glue
In conservation and energy economics, the rebound effect (or take-back effect) is the reduction in expected gains from new technologies that increase the efficiency of resource use, because of behavioral or other systemic responses. These responses diminish the beneficial effects of the new technology or other measures taken.
The expected gains from a new JavaScript framework is always less because of the amount of JavaScript being deployed on the client. This additional JavaScript diminishes the beneficial effects of the new technology and in some cases makes things worse.
HTML first (dynamic personalization and a11y is the priority)
Cloud function centric mode
On-demand database
Declarative deployment (explicitly defined Infra as Code)
Power: build with a full-stack
Way more fun! Less maintaining, more shipping
Inclusive, fast, and accessible web consumer experience
Coldstart *
Database story still emergent (DynamoDB, Cosmos, Planetscale, FaunaDB)
Declarative Infra-as-Code solutions are oft complex
All-in with managed services means all-in with a cloud vendor
* there are two solutions to coldstart for AWS Lambda: write small functions or pre-provision capacity
AWS SAM
Azure Functions
Begin
Cloudflare
Deno Deploy
GCP
A modern architectural pattern for dynamic apps:
HTML-first progressive enhancement
Cloud functions centered development model
Managed database built-in
Explicit declarative deployment (aka Infra-as-Code or IaC)
Check out https://github.com/architect/architect
Build your first app on https://begin.com
Read https://fwa.dev
Tell me how wrong I am