Settings

Theme

Show HN: Serverpod – The Missing Server for Flutter

serverpod.dev

71 points by rlonn 3 years ago · 47 comments · 1 min read

Reader

We just released Serverpod 1.0

vlidholt 3 years ago

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

  • jgoyvaerts 3 years ago

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

    • vlidholt 3 years ago

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

  • turbobooster 3 years ago

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

    • vlidholt 3 years ago

      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).

      • turbobooster 3 years ago

        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?

        • BrutalCoding 3 years ago

          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).

jmnicolas 3 years ago

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.

  • vlidholt 3 years ago

    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.

    • ushakov 3 years ago

      How will you make money?

      • vlidholt 3 years ago

        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.

        • ushakov 3 years ago

          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

          • vlidholt 3 years ago

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

          • loic-sharma 3 years ago

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

            • ushakov 3 years ago

              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

          • satvikpendem 3 years ago

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

            • ushakov 3 years ago

              Their revenues and market shares are laughable

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

              AWS revenue is $65B

              • ohgodplsno 3 years ago

                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.

              • satvikpendem 3 years ago

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

  • mhoad 3 years ago

    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

    • vlidholt 3 years ago

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

      • throw14082020 3 years ago

        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?

        • vlidholt 3 years ago

          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.

          • satvikpendem 3 years ago

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

creshal 3 years ago

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.

  • vlidholt 3 years ago

    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.

    • creshal 3 years ago

      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?

      • vlidholt 3 years ago

        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.

      • mixmastamyk 3 years ago

        Could you be more condescending?

      • timetraveller26 3 years ago

        yeah, you should use javascript /s

rlonnOP 3 years ago

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!

danpalmer 3 years ago

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

  • vlidholt 3 years ago

    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.

    • danpalmer 3 years ago

      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?

      • vlidholt 3 years ago

        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.

ushakov 3 years ago

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

  • vlidholt 3 years ago

    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.

  • elforce002 3 years ago

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

    • eddieroger 3 years ago

      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.

      • vlidholt 3 years ago

        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.

        • eddieroger 3 years ago

          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?

          • vlidholt 3 years ago

            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.

Alifatisk 3 years ago

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

krimpenrik 3 years ago

How do this compares to the abandoned aquaduct dart backend?

  • vlidholt 3 years ago

    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.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection