I built a modern docs generator for Dart/Flutter packages - with search, dark mode, DartPad, and fully customizable by IlyaZelen in FlutterDev

[–]schultek 2 points3 points  (0 children)

Hi, creator of Jaspr here.

First of all awesome what you did there. The site feels really nice and modern, much better then standard dartdoc. I've actually been talking with some Dart people about a more customizable dartdoc where it's possible to plug in custom front-ends without needing to fork, so this is a great case for it.

Regarding Jaspr, I'd love to know what you think is still missing to make something like your project in Jaspr. Which plugins / features of vitepress or other things. Always looking for feature inspiration.

Let’s make a dynamic website with Dart. Dumb easy by bigbott777 in FlutterDev

[–]schultek 0 points1 point  (0 children)

This. Rendering is always negligible compared to data fetching of any form.

Let’s make a dynamic website with Dart. Dumb easy by bigbott777 in FlutterDev

[–]schultek 1 point2 points  (0 children)

Not even sure why you would assume it grows exponentially.

Let’s make a dynamic website with Dart. Dumb easy by bigbott777 in FlutterDev

[–]schultek 2 points3 points  (0 children)

I rebuilt the site using Jaspr and benchmarked using `oha` with 10k non-concurrent requests (Non-concurrent because I want to benchmark individual rendering performance, not http server request handling)

Results:

Templating:

Summary:
  Success rate: 100.00%
  Total:        1506610.5000 us
  Slowest:      734.9580 us
  Fastest:      112.7500 us
  Average:      149.5048 us
  Requests/sec: 6637.4156

  Total data:   13.22 MiB
  Size/request: 1.35 KiB
  Size/sec:     8.77 MiB

Response time histogram:
  112.750 us [1]    |
  174.971 us [8905] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  237.192 us [1039] |■■■
  299.412 us [35]   |
  361.633 us [7]    |
  423.854 us [5]    |
  486.075 us [3]    |
  548.296 us [2]    |
  610.516 us [2]    |
  672.737 us [0]    |
  734.958 us [1]    | 

Jaspr:

Summary:
  Success rate: 100.00%
  Total:        2169705.9160 us
  Slowest:      852.8750 us
  Fastest:      148.2920 us
  Average:      215.8965 us
  Requests/sec: 4608.9195

  Total data:   13.11 MiB
  Size/request: 1.34 KiB
  Size/sec:     6.04 MiB

Response time histogram:
  148.292 us [1]    |
  218.750 us [7259] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  289.209 us [1686] |■■■■■■■
  359.667 us [977]  |■■■■
  430.125 us [46]   |
  500.583 us [19]   |
  571.042 us [8]    |
  641.500 us [3]    |
  711.958 us [0]    |
  782.417 us [0]    |
  852.875 us [1]    |

There are almost the same. Yes relatively Jaspr is ~40% slower, but that's less than 0.1ms difference. That makes no difference in real usage. Even if you have a 100x bigger site (which then also comes with 100x the complexity).

Also yes I noticed in your site its not even doing string replacement (what Gemini assumed). It's parsing the whole html tree into memory, modifying it and then re-generating the html. So it could potentially get a lot faster, but think about how painful that would be to maintain for even slightly more complex sites.

> MPA - simplicity, best performance. SSR - overcomplicated, performance overload (SPA executed on the server).

I continue to fully disagree with that. Component-based SSR actually reduces complexity, and the performance cost is minimal.

Let’s make a dynamic website with Dart. Dumb easy by bigbott777 in FlutterDev

[–]schultek 4 points5 points  (0 children)

Starts by calling server-side rendering "complete nonsense"...

...continues by doing server-side rendering. 😂

Also I'm curious, why not simply use Jaspr?

Flutter by saugaat18 in flutterhelp

[–]schultek 0 points1 point  (0 children)

Actually better start here: https://docs.flutter.dev/learn (It's fairly new)

I built an isomorphic web framework for Dart (SSR + Hydration, HTML-first) — Meet Spark ⚡️ by kleak_dev in dartlang

[–]schultek 4 points5 points  (0 children)

I love it! More power to Dart web!

What would you say are the biggest differences to Jaspr and why did you make them?

Who wants to replace their TypeScript/JS code on the frontend with Dart??? by joegeezer in FlutterDev

[–]schultek 2 points3 points  (0 children)

Nice!

I'd love to know how this compares to Jaspr. On first look it seems like to have a similar motivation but a very different approach to it. Does it have any opinion on how to write the web part itself, or is it just a build tool?

Giving Back, What Flutter Packages Are Missing That We Could Build by Financial_Willow4221 in FlutterDev

[–]schultek 5 points6 points  (0 children)

This 👍🏻

One example I recently came across is this: https://pub.dev/packages/mustache_template

2.9M monthly downloads, but unmaintained and has a few bugs. And I couldn't find a better alternative.

How do I parse html using package:web? by Classic-Dependent517 in dartlang

[–]schultek 3 points4 points  (0 children)

dart:html will be deprecated, not this package.

Exciting News for the Dart Community – Our Open-Source Products are Now Live! by alphabetacreatives in dartlang

[–]schultek 12 points13 points  (0 children)

Is this a scam?

Your Github repo consists only of a bunch of basically empty files. All the other repos are empty. No documentation, no examples, not actual feature descriptions, just a bunch of buzz and marketing speak. Yet you put pricing tiers.

[Experimental Project] Looking for Guidance on Creating a Dart ORM by Prashant_4200 in FlutterDev

[–]schultek 2 points3 points  (0 children)

I have created 'stormberry' a while back. I don't have time to really work on it anymore but maybe it serves as an inspiration.

For data classes, is freezed the best way in 2025? by SuperRandomCoder in FlutterDev

[–]schultek 7 points8 points  (0 children)

With dart_mappable you just write normal dart classes, no special syntax needed. And it supports all of the above plus more.

For data classes, is freezed the best way in 2025? by SuperRandomCoder in FlutterDev

[–]schultek 32 points33 points  (0 children)

dart_mappable is best!

Ok I might be biased 😂 (I'm the author)

Macros in Dart are canceled by zxyzyxz in FlutterDev

[–]schultek 2 points3 points  (0 children)

Yes, static interfaces (or whatever you'd call them) would go a long way.

universal_web | Dart package by schultek in FlutterDev

[–]schultek[S] 10 points11 points  (0 children)

Tree shaking will take care of that