finds.dev← search

// the find

schultek/jaspr

★ 2,352 · Dart · MIT · updated Jun 2026

Modern web framework for building websites in Dart. Supports SPAs, SSR and SSG.

Jaspr is a web framework for Dart that renders real HTML/CSS instead of a canvas, targeting Flutter developers who need SEO-friendly sites or things Flutter Web can't do. It supports SPA, SSR, and SSG from a single Dart codebase, and automatically syncs component state between server and client. If you're already writing Flutter and want a proper web presence without switching languages, this is the most credible option in the Dart ecosystem right now.

The state sync between server and client is the standout feature — you write one component tree and Jaspr handles hydration without manual serialization. The package ecosystem is more complete than you'd expect: dedicated router, riverpod port, Serverpod integration, lints, and a test package. The online playground (JasprPad) is a real differentiator for onboarding; most niche frameworks skip this. The jaspr_content package for static/content sites is a practical addition that covers the blog/docs use case without bolting on a separate tool.

The audience ceiling is real — this only makes sense if Dart is already your language; there's no path from JS/TS without learning Dart first, and that's a hard sell in 2026. The code-generation requirement (jaspr_builder) adds build_runner to your workflow, which is one of Dart's most reliable sources of developer friction. Ecosystem depth outside the first-party packages is thin: community packages, UI component libraries, and third-party integrations are sparse compared to any JS framework. SSR deployment requires a running Dart server, so you lose the static-hosting simplicity that makes Next.js or Astro approachable for most content sites.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →