ajcwebdev
Video cover art for The Jamstack Goes Fullstack | Jamstack Seattle

The Jamstack Goes Fullstack | Jamstack Seattle

Published:

Anthony Campolo discusses the evolution of Jamstack towards full-stack development, highlighting key projects and tools in this emerging ecosystem.

Episode Summary

In this episode, Anthony Campolo explores the concept of “full-stack Jamstack,” which represents an evolution of the traditional Jamstack architecture. He discusses various projects and tools that are shaping this emerging ecosystem, ranging from open-source frameworks to proprietary services. Campolo highlights key players like RedwoodJS, Bison, and Wasp, explaining how they differ in their approaches to full-stack development. He emphasizes the importance of Prisma as an ORM and discusses various database hosting solutions like Fauna, Supabase, and Railway. The talk also covers API meshes and GraphQL tools, including StepZen and GraphQL Mesh, which help developers integrate multiple data sources. Throughout the presentation, Campolo underscores the accessibility and affordability of these technologies for beginners and experienced developers alike, showcasing the potential for creating sophisticated applications with relatively low-cost or free tools.

Chapters

00:00 - Introduction to Full-Stack Jamstack

Anthony Campolo introduces himself and sets the context for his talk on “full-stack Jamstack.” He explains his background as a developer advocate for StepZen and a core team member of RedwoodJS. Campolo discusses his podcast, FS Jam, which explores the emerging space of full-stack Jamstack projects. He acknowledges potential conflicts of interest due to his involvement with some of the projects he’ll be discussing. Campolo emphasizes the novelty of bundling these various tools and frameworks under the umbrella of full-stack Jamstack, highlighting how this concept differs from traditional Jamstack by incorporating databases and servers. He introduces the idea that full-stack Jamstack aims to provide a complete stack similar to Ruby on Rails or Laravel, but built with JavaScript and modern web technologies.

02:54 - Key Projects in Full-Stack Jamstack

This chapter delves into specific projects that exemplify the full-stack Jamstack approach. Campolo starts by discussing RedwoodJS, created by Tom Preston-Werner, which he considers a pioneering framework in this space. He explains how RedwoodJS combines React, GraphQL, and Prisma to create a full-stack JavaScript framework. The discussion then moves to Bison, another project that explicitly labels itself as “full-stack Jamstack in a box.” Campolo compares Bison to RedwoodJS, noting that while Bison provides a more opinionated boilerplate, RedwoodJS offers more flexibility in building out projects. He also mentions Blitz, another full-stack React framework, but explains why it doesn’t fully fit into the full-stack Jamstack paradigm due to its monolithic approach. The chapter concludes with an introduction to Wasp, a newer project that incorporates a configuration language for infrastructure as code, highlighting the evolving nature of full-stack Jamstack tools.

06:36 - Database Solutions and Backend Services

In this section, Campolo explores the crucial role of databases and backend services in the full-stack Jamstack ecosystem. He emphasizes Prisma as a key component used across multiple projects, explaining its importance as an ORM that bridges the gap between application code and databases. The discussion then shifts to various database hosting solutions. Campolo introduces Fauna, which he describes as attempting to create a “backend Netlify” with a user-friendly interface for database deployment. He also covers Supabase, an open-source alternative to Firebase that uses PostgreSQL, highlighting its authentication features. Railway is presented as a more bare-bones option that supports multiple database types. The chapter also touches on Hasura and Nhost, which provide GraphQL APIs on top of databases, demonstrating the diversity of backend solutions available in the full-stack Jamstack space.

13:18 - Containers and Serverless Challenges

This chapter addresses the role of containers in the full-stack Jamstack world and the challenges associated with serverless architectures. Campolo explains that while containers haven’t been a significant part of the full-stack Jamstack ecosystem so far, this is likely to change soon. He discusses the limitations of serverless approaches, particularly the problem of “lambda lift” or monolithic lambda functions, which can lead to slow cold starts. The chapter introduces Fly.io as a platform for hosting Docker containers, presenting it as a solution for developers who need persistent servers. Campolo also mentions AWS App Runner as another option in this space. This section highlights the ongoing evolution of deployment strategies in the full-stack Jamstack ecosystem, as developers seek to balance the benefits of serverless architectures with the need for more traditional server setups.

15:13 - API Meshes and GraphQL Tools

The final chapter focuses on API meshes and GraphQL tools, which are crucial for integrating multiple data sources in full-stack Jamstack applications. Campolo introduces StepZen and Take Shape as services that help developers create API meshes, explaining how they allow for the consolidation of multiple APIs into a single GraphQL endpoint. He briefly compares the two services, noting their different focuses and capabilities. The discussion then moves to GraphQL Mesh, an open-source project from The Guild, which offers extensive capabilities for combining various types of endpoints. Campolo also mentions GraphQL Portal, a hosted service built on GraphQL Mesh. Throughout this section, he emphasizes the importance of these tools in simplifying the process of working with multiple APIs and data sources, a common requirement in modern web development. The chapter concludes with Campolo summarizing the vast array of options available in the full-stack Jamstack ecosystem, highlighting the flexibility and power these tools offer to developers.