-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathjamstack.theory.txt
46 lines (41 loc) · 1.56 KB
/
jamstack.theory.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
┏━━━━━━━━━━━━━━┓
┃ JAMSTACK ┃
┗━━━━━━━━━━━━━━┛
Acronym:
- JavaScript (client-first)
- APIs (microservices APIs)
- Markup (build time over runtime)
Client-first:
- no central API: client communicates to several microservices API
- i.e. looser coupling
- including BaaS/SaaS
- including serverless functions
- client stores as much state as possible
- i.e. decentralized
- e.g. authentication with JWT and OAuth
- client performs as much logic as possible
- using web APIs
Build time instead of runtime:
- perform any API logic build time:
- such as templating dynamic data -> static data
- including using static site generators
- CI/CD
- including automatically on data change
- deploy assets to CDN
- immutable deploy: namespacing each deploy instead of incrementally adding|modifying previous one. I.e. can revert.
- atomic deploy: making each deploy available all at once.
- goals:
- less coupling with client
- performance
- more secure
- easier to scale
- more reliable / less downtime
Headless CMS:
- simple to manage data (as opposed to databases):
- admin dashboard / web UI
- filesystem / IDE
- API calls
- not coupled with front-end (as opposed to traditional CMS)
- Git-based, i.e. version controlled
- unless very dynamic data
- big files should just store link in Git