Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Serverpod – The Missing Server for Flutter (serverpod.dev)
71 points by rlonn on Feb 2, 2023 | hide | past | favorite | 46 comments
We just released Serverpod 1.0

Hi! I'm Viktor, the lead developer of Serverpod. Feel free to ask me any questions, and I'll try to answer.

You can also watch the Serverpod 1.0 release keynote on Youtube here: https://youtu.be/QN6juNWW3js

I've applied twice to one of your open positions but never even received a reply, how come?

We recently received funding, so we are looking at the applications now. Sorry for the delay!

I dont understand why or when I would need this? What is an app server is the first place?

If you are an app developer using Flutter, then Serverpod is a great match. An app server is obviously a server specifically tailored to the needs of apps (e.g. as opposed to being made for the web).

I use flutter and I also do web development. Flutter apps run locally....so why does it need to be served? Why not just make a web app then?

You're misunderstanding the project, Serverpod basically creates the following artifacts with their own CLI:

1. Creates a Flutter folder for you, similar to what 'Flutter create' does. It's pre-configured to be able to connect to your local Serverpod server.

2. Creates a server folder where you'd write your API's in Dart. Since Flutter is written in Dart too, this opens up the possibility to share code such as domain models.

3. Creates a client folder with auto-generated code. No manual code changes should be done here, that's the magic trick of this project. This project contains the methods that calls your API's, no need to write redundant code anymore in your Flutter project for each API you just made in your server (backend) project.

It comes with more interesting bells and whistles such as using Docker (compose) to bootstrap every service and also leveraging AWS with Redis, Postgres etc which is setup with Terraform. It goes against the Flutter mass where most of the devs are working with Firebase.

So to answer your question, the Flutter app does not need to be served. It can be, as you said yourself, a local running app that (e.g. phone or desktop). However, the server folder is the one needing to be served for obvious reasons (authentication, safe CRUD operations etc).

AFAIK most of the Dart server projects have been abandoned so I'm weary to try new ones. Let's hope this one will stick, it looks cool.

Thank you! The previous Dart backend attempts were predating Flutter, so the conditions are very different now. Serverpod is also a funded company, and not a side or hobby project like earlier Dart servers.

How will you make money?

The main plan is to provide hosting for Serverpod. It's still an open-source project, so you can always host it yourself or on the cloud platform of your choice.

I have not seen any niche companies having success with that business model

Our own surveys show, that enterprise users want to host on a platform of their choice. They are not too eager to switch providers and are more unlikely to use your software if it doesn’t run on AWS

Knowing that, if you want to capture enterprise users, you should offer a managed version of your product on AWS or GCP

Thank you! We are definitely exploring more avenues than just regular server hosting.

The Laravel framework makes money by its hosting business, Forge.

Forge only confirms my assumptions. From their website:

> Forge links to your account on one of our supported cloud providers

They help you deploy PHP applications to your AWS/DigitalOcean/Linode account

Vercel, Netlify etc are big ones in the webdev world.

Their revenues and market shares are laughable

Netlify revenue is approximately $20M, Vercel’s $25M

AWS revenue is $65B

A company does not need to reach Amazon size to be viable, despite what all the VCs try to hammer in your mind. A 20M revenue company is perfectly fine. So is a 2M one, or even a 200k one.

They're both in the VC phase and are getting more enterprise clients, so I wouldn't take their current revenues prima facie.

The original creator of Flutter actually left Google rather recently and is in the process of building a Dart server project as his next thing. It’s not even at alpha stage yet however it’s VERY new https://github.com/shorebirdtech

I know him, we used to work together at Google. :)

I hope you don't mind me asking this personal question:

I noticed you worked on Flutter at Google for roughly 1 year and then left. What was your motivation? Was there a problem in the Flutter organisation?

Working for Google is awesome in many ways and the people at the Flutter team at the time I worked there were nothing less than outstanding.

For me personally, working at Google wasn't my first choice as I ended up there when the startup I worked at before was acquired. I just felt done with the whole Silicon Valley thing and ended up moving back to Sweden. If I'd pick one big company to work for, it would probably be Google.

How is the VC scene in Sweden? Or is the company funded by American VCs but you just live in Sweden now?

Not entirely sure what's "revolutionary" about the ORM, although the lack of joins, M2M relationships, migrations, and other basic features certainly is revolting.

The entire API/serialization/… part also seems extremely primitive, what with it being only capable of either exposing data or not, with no easy way to filter or transform data.

Let's hope it survives long enough to be competitive with mature frameworks.

It's revolutionary to Dart in the sense that you can use strict typing when communicating with the database. This is very helpful as you get much more help with autocomplete and other language tooling.

Granted there are still lots of gaps to fill, but we are surely getting there. The biggest new feature we are working on is database migrations.

I don't really get the whole "if I have to learn more than one programming language my head will explode" thing that junior frontend devs seem to be insisting on for the past few years, why use an immature framework in Dart when I can use a mature framework in an easily learned language and be much more productive after a few weeks?

Learning a new language takes time, which translates to money for companies hiring developers. Also, even many more senior developers prefer working in a single language due to the context switch otherwise involved.

Mature is a matter of definition. There are several apps in production already that are using Serverpod and are very happy with it. But, of course, it is a new framework and there are many improvements to come. It's always important to do your research before choosing any type of framework so you know it will support the features that you will need.

Could you be more condescending?

yeah, you should use javascript /s

This is a project I've been involved with lately, that I think is very exciting if you're into Flutter or Dart development. We just released version 1.0 so Serverpod is (hopefully) ready for production now!

What about this is Flutter specific, other than being a Dart web framework?

It's not so much a web framework as it is an app backend. So it's not great (yet) at rendering web pages, but it is great for doing remote method calls and streaming data. That being said, Serverpod is not limited to Flutter, you can use it for any Dart app.

Thanks, that makes sense. Does it necessitate a Dart frontend? It looks like the client-side is code-generated, but is the API usable without code-generation, does it present a nice API model, or is it heavily dependent on the assumption that a first-party code-generated client is being used?

Yes, it is using well-formed JSON and/or web sockets. Serialization is following the Dart standard, and you can use it together with popular Dart serialization packages, such as Freezed.

However, we are still working on making the documentation for APIs. That is on the roadmap as well as providing code generation for other languages.

Gives me the same vibe as Vapor for Swift. I'm happy that this technology exists, but doesn't make sense for me to use, unless I'm also a Flutter or Apple developer

Yes, it is obviously the most useful if you are a Flutter developer. According to Google, over 20% of new apps on Google Play are now made with Flutter so it's a large segment in itself.

Not even that. I'd use Nodejs, Go, C#, etc... which are battle tested, have strong communities, and plenty of support.

Once upon a time, NodeJS, Go and C# weren't battle tested or with support either. "Because we already have one" isn't a great reason not to do something. What this does need is a differentiator over those other languages. Vapor is nice if you already write Swift, which itself is an adopted and heavily used language. Dart isn't, and while Flutter is popular, it's "barely so" relative to the rest of the world. Someone will appreciate this, hopefully enough people to make it viable, but I remain skeptical that will happen, not because of alternatives but because of current entrenchment.

Flutter is becoming very popular for building apps. It is likely to have surpassed React Native, and according to Google more than 20% of new apps are created with Flutter today.

I hear that every year around I/O, but I never see stats to back that up. Have you got any? Flutter has been becoming very popular for years, but I don't know anyone who uses it. More than 20% is a neat stat, but how many of the top 10 or 100 apps are Flutter? How many of those 20% roll out to large audiences? How many don't get rewritten?

I don't have any exact metrics. GitHub stars are one measure, though I'm not sure how well that is reflecting real-world use: https://star-history.com/#flutter/flutter&facebook/react-nat...

Anecdotally, I'm running a Flutter Meetup with over a thousand members in Stockholm, so I feel like I have the ear on the ground. From what I see, the use of Flutter has been picking up steadily. For instance, one of Sweden's major banks has recently moved its apps to Flutter (including its web app). To their customers, it still looks exactly the same, so moves like that aren't always visible. Also, it seems like a very large proportion of startups are using Flutter too.

Very cool, I’ll give it a spin in my next project

Thank you! :)

How do this compares to the abandoned aquaduct dart backend?

Aqueduct was built before Flutter, it is more like a regular web server written in Dart. Serverpod is build specifically with Flutter developers in mind, making it very easy to build APIs. Serverpod will actually analyze your server code and automatically generate your client side APIs. You call a method on the server just like you would call a local method in your app.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact