16 ms·
Show HN: Serverpod – The Missing Server for Flutter
We just released Serverpod 1.0
- vlidholt 4y agoHi! 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 https://youtu.be/QN6juNWW3js
- jgoyvaerts 4y agoI've applied twice to one of your open positions but never even received a reply, how come?
- vlidholt 4y agoWe recently received funding, so we are looking at the applications now. Sorry for the delay!
- turbobooster 4y agoI dont understand why or when I would need this? What is an app server is the first place?
- vlidholt 4y agoIf 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 4y agoI 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 4y agoYou'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).
- rlonn 4y agoThis 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!
- krimpenrik 4y agoHow do this compares to the abandoned aquaduct dart backend?
- vlidholt 4y agoAqueduct 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.
- jmnicolas 4y agoAFAIK 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 4y agoThank 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 4y agoHow will you make money?
- vlidholt 4y agoThe 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 4y agoI 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
- loic-sharma 4y agoThe Laravel framework makes money by its hosting business, Forge.
- ushakov 4y ago
- ushakov 4y agoGives 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 4y agoYes, 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 4y agoNot even that. I'd use Nodejs, Go, C#, etc... which are battle tested, have strong communities, and plenty of support.
- eddieroger 4y agoOnce 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 4y agoFlutter 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 4y agoI 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?
- danpalmer 4y agoWhat about this is Flutter specific, other than being a Dart web framework?
- vlidholt 4y agoIt'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 4y agoThanks, 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 4y agoYes, 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.
- creshal 4y agoNot 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 4y agoIt'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 4y agoI 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 4y agoLearning 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 4y agoCould you be more condescending?
- Alifatisk 4y agoVery cool, I’ll give it a spin in my next project
- vlidholt 4y agoThank you! :)