Safsaf: A Fresh Take on Web Development for Guile Scheme
The Guile Web Framework Landscape Gets More Interesting
Scheme programmers have long had options for web development in Guile, but the ecosystem hasn't always been easy to navigate. Enter Safsaf — a newly released web framework that takes a deliberately minimalist approach while delivering some genuinely thoughtful design decisions.
What Makes Safsaf Different?
Safsaf is built around two key technologies: Guile Fibers for lightweight concurrency and Guile Knots as the underlying HTTP server. But the real innovation lies in how it handles routing.
Unlike traditional approaches that rely on pattern matching against HTTP methods and paths, Safsaf treats routes as first-class data. This declarative approach means your application can introspect its own routes — perfect for generating API documentation, building link builders, or creating dynamic navigation.
The framework also implements middleware through handler wrappers, allowing you to apply functionality across specific routes or your entire application. Logging, error handling, and other cross-cutting concerns become elegant and composable.
Philosophy of Restraint
Perhaps the most refreshing aspect of Safsaf is what it deliberately doesn't include. No database integration, no ORM, no MVC structure, no file-based templating. This isn't a limitation — it's a design choice.
For many modern applications, especially those built around microservices or using external APIs, these features often become dead weight. By staying focused, Safsaf lets developers choose their own database clients, template engines, and architectural patterns.
AI-Assisted Development in Practice
One fascinating detail: the author built much of Safsaf using Claude Code, an AI coding assistant. This raises interesting questions about the evolving role of LLMs in software development. Whether you view this as a productivity breakthrough or a concerning trend, Safsaf demonstrates that AI-assisted code can produce functional, usable software.
Getting Started
The project includes example applications — a pastebin and a simple blog — that serve as excellent starting points for developers curious about the framework. With under 2,000 lines of core code, the codebase remains approachable and hackable.
Looking Forward
The roadmap includes potential support for internationalization, Server-Sent Events, and WebSocket connections. These additions would position Safsaf as a serious contender for real-time applications.
For developers working in the Guile ecosystem or those curious about functional web development, Safsaf offers a clean slate with thoughtful defaults. Sometimes the best framework is the one that gets out of your way.
Have you experimented with alternative web frameworks? Share your experiences with functional programming approaches to web development.
Read in other languages: