Modern Web Development on the JAMstack
Softwarearchitektur

Modern Web Development on the JAMstack

Mathias Biilmann, Phil Hawksworth, 2019

Inhaltsverzeichnis des Buches

  • Introduction
  • The JAM in JAMstack
  • A Workflow for Productivity and Performance
  • Version Control and Atomic Deploys
  • Contributing on the JAMstack
  • APIs to Process and Personalize
  • Bringing It All Together: A Smashing Magazine Case Study
  • Ready? Time to Get Our JAM Session Started
  • 1. The Challenges of Modern Web Development
  • The Drawbacks of Monolithic Architectures
  • Limited Flexibility
  • Performance Concerns
  • Scaling Challenges
  • Security Woes
  • The Risk of Staying the Same
  • 2. Introducing the JAMstack
  • What’s in a Name?
  • JavaScript
  • APIs
  • Markup
  • Prebuilding Markup
  • Types of JAMstack Projects
  • HTML Content
  • Content from a CMS
  • Web Applications
  • Large Web Properties
  • Hybrid Experiences
  • Summary
  • 3. Advantages of the JAMstack
  • Simplifying Systems and Simplifying Thinking
  • Better Comprehension and Mental Agility
  • You Don’t Need to Be an Expert at Everything
  • Reduce Moving Parts at Runtime
  • Costs
  • Financial Costs
  • Team Efficiency
  • The Price of Innovation
  • Scale
  • Aping Static in Order to Scale
  • Geography
  • Redundancy
  • Performance
  • Where to Focus Optimization Efforts
  • Only Turning the Gears When Necessary
  • Security
  • Reducing Surface Area
  • Reducing Risk with Read-Only
  • Outsourced or Abstracted Services
  • For the Developer; for the Project; for the Win
  • 4. Planning for the JAMstack
  • Setting Up the Project
  • Strategies for Managing Content
  • Text Files
  • Git-Based CMS
  • Headless CMS
  • Self-Hosted CMS
  • Choosing a Site Generator
  • One: The Type of Website
  • Two: The Programming Language Used
  • Three: The Templating Syntax
  • Four: Speed
  • Five: Developer Tooling
  • Adding Automation
  • Using GitHub Pages and GitLab Pages
  • Using Your Own Infrastructure
  • Using a Hosted Deployment Service
  • Selecting a CDN
  • Edge Locations
  • Instant Updates
  • Multiple Providers
  • Providing Functionality: APIs
  • 5. Shifting the Mental Model
  • A Mindset and an Approach
  • One: Get to the CDN
  • Designing for the Best Use of a CDN
  • Two: Design for Immutability and Atomic Deployments
  • Confidence from Immutability
  • The Advantages of Immutable Deployments
  • Positioning for Immutable Deployments
  • Atomic Deployments
  • Three: Employ End-to-End Version Control
  • Reducing the Cost of Onboarding
  • Making Version Control the Backbone of Your Project
  • Four: Automation and Tooling
  • A Powerful Site-Generation Pattern
  • Minimizing the Risk of Human Intervention
  • Five: Embrace the Ecosystem
  • Forms
  • Search
  • Notifications
  • Identity
  • Six: Bridging the Last Gaps with Functions as a Service
  • Being Comfortable with Breaking the Monolith
  • 6. Applying the JAMstack at Scale
  • A Case Study: Smashing Magazine
  • The Challenge
  • Key Considerations
  • Duplicated Templates
  • Performance, Reliability, and Security
  • Membership
  • Picking the Right Tools
  • Static Site Generator
  • Asset Pipeline
  • Frontend Framework
  • Content Migration
  • Utilizing Structured Content
  • Working with Large Sites
  • Building Out the Core
  • Search
  • Content Management
  • Integrating Netlify CMS
  • Listings, Search, and Assets: Customizing the CMS for Large Projects
  • Identity, Users, and Roles
  • JWTs and Stateless Authentication
  • Ecommerce
  • Identity and Orders
  • Membership and Subscriptions
  • Tying It Together: Member Discounts in GoCommerce
  • Job Board and Event Tickets: AWS Lambda and Event-Based Webhooks
  • Workflows and API Gateways
  • Deploying and Managing Microservices
  • Summary
  • 7. Conclusion
  • And One More Thing...