HackerTrans
TopNewTrendsCommentsPastAskShowJobs

dillonnys

no profile record

Submissions

Show HN: Embedding Explorer – compare text embedding models in your browser

github.com
1 points·by dillonnys·10 mesi fa·0 comments

Why I'm Betting on Dart

dillonnys.com
10 points·by dillonnys·2 anni fa·4 comments

Show HN: Celest – Flutter Cloud Platform

celest.dev
124 points·by dillonnys·2 anni fa·47 comments

NoAuth

noauth.lol
2 points·by dillonnys·3 anni fa·0 comments

comments

dillonnys
·2 anni fa·discuss
That's very cool :-)
dillonnys
·2 anni fa·discuss
This looks awesome! Thanks for making it open source.

We are currently using SQLite heavily in our stack and DuckDB has been on my list of things to explore for a while. What's been your primary use case at TigerEye?

Will definitely dive into this more. Embedded DBs are a breath of fresh air when you're building full-stack.
dillonnys
·2 anni fa·discuss
The ecosystem support is improving, and still needs help. I think we can drive both in parallel so that the framework feeds use cases to the ecosystem which then lead to more complex backends. It's hard to put one before the other, but can be a really powerful flywheel.

Although it's not listed on my landing, it is absolutely a goal of Celest to be a funnel for these use cases and partner with the community as we go to fill the gaps.
dillonnys
·2 anni fa·discuss
These are reasonable concerns.

Having seen the development of Flutter and its ecosystem over the past 7 years, I've come to really believe in the framework and its mission. There have been lots of companies which have found success building with Flutter [1] and it very often speaks to their bottom lines [2].

I'm hopeful for its continued success, but more importantly, I believe that having more companies building enterprise solutions makes the technology more attractive and practical to adopt. The founder of Flutter has started Shorebird [3] and the FlutterFlow team recently closed a $25M Series A [4]. These are great investments to have into Flutter.

Another cool stat: Dart was the fastest growing programming language among all languages last year at 33%! [5]

All that to say, I believe the business value of Flutter is becoming clear and I think having more companies building on top will reduce adoption risk and create a very rich ecosystem for further progress.

[1] https://flutter.dev/showcase

[2] https://assets-global.website-files.com/5ee12d8e99cde2e20255...

[3] https://shorebird.dev/

[4] https://techcrunch.com/2024/01/11/flutterflow-attracts-cash-...

[5] https://www.developernation.net/resources/reports/state-of-t...
dillonnys
·2 anni fa·discuss
Flutter is currently required for the parent app, but I'll be lifting that requirement very soon. Stay tuned!
dillonnys
·2 anni fa·discuss
Ah, gotcha! The choice to use Flutter Web in the demo was just for presentational effect. Celest is built to work with all of the Flutter platforms equally.
dillonnys
·2 anni fa·discuss
Right now, we're using Docusaurus, which has been working well: https://github.com/celest-dev/website

Though, Flutter Web has come a long ways recently, especially with the WASM work that's underway [1][2]. Flutter is very well positioned, I think, for web applications requiring a lot of interactivity and complex layouts--the DX is phenomenal. For static sites, it's very hard to beat a pure HTML/CSS/JS stack in terms of speed and optimization potential.

That being said, I think there's a good chance we'll see more work on Dart web frameworks going forward. Projects like Zap[3] and Jaspr[4] and doing great work in this area already. And it's safe to say we may see a Celest Web framework one day!

[1] https://flutter.dev/wasm

[2] https://flutterweb-wasm.web.app

[3] https://pub.dev/packages/zap

[4] https://pub.dev/packages/jaspr
dillonnys
·2 anni fa·discuss
Nice! Glad to hear it :-)
dillonnys
·2 anni fa·discuss
> It could be part of the service contract.

Agreed. I'll look into how we can add that.
dillonnys
·2 anni fa·discuss
Cheers!
dillonnys
·2 anni fa·discuss
> How do you handle versioning? Are there any guidelines/rules one must abide by?

Versioning is not fully fleshed out yet, but we have an open issue for it here: https://github.com/celest-dev/celest/issues/4

It's a problem I want to tackle correctly, so that you'd need to put as little thought into it as possible. It should "just work". Vercel's skew protection [1] stands out as a recent example of doing this well.

> It looks like you using Flutter's Dart<=>JSON serialization; do you recommend using built_value for immutable data structures?

JSON was chosen as the primary serialization format for the reasons mentioned here [2]. Primarily, familiarity to Flutter developers, availability of JSON-compatible types in the wild, and integration with non-Dart clients.

The JSON structure is outlined here (working on a full spec): https://celest.dev/docs/functions/http-requests

built_value types can be used in Celest currently by giving the class `fromJson`/`toJson` methods. I haven't implemented auto-serialization for them, yet, but it should be straightforward. I've used built_value heavily in the past and agree there's no better alternative for some use cases.

> Do you support protobuf/cap'n'proto?

In the future, I plan to support more serialization formats, including protobuf and binary protocols. I will check out cap'n'proto, it was not yet on my radar.

[1] https://vercel.com/docs/deployments/skew-protection

[2] https://x.com/dillonthedev/status/1749806407510381054
dillonnys
·2 anni fa·discuss
Great points.

My immediate plan for reducing lock-in is to provide the option to deploy into a cloud account you manage. This has the upside of making your deployed infrastructure independent of Celest and letting you use your cloud credits.

Self-hosting is another option I'm considering, but I don't have a good sense yet of what that could look like. Any thoughts? Is spitting out a binary/Dockerfile sufficient to alleviate risk?

If I get shut down, I'll be open-sourcing all my code. And regardless, I plan to open source more and more of the platform over time.
dillonnys
·2 anni fa·discuss
Glad to hear you ran a successful deploy!

Currently we just have the CLI to manage your account, although I'm working on a web-based dashboard for better accessibility.

The result of a deployment is just a URL, which is automatically placed in your generated client (see `celest/lib/client.dart`). To switch to this new environment, pass the production arg to your `celest.init` call like this:

    void main() {
      celest.init(environment: CelestEnvironment.production);
      runApp(MyApp());
    }
Let me know if you face any issues! We have a Discord (https://celest.dev/discord) server, and you're more than welcome to open a GitHub issue if you experience problems: https://github.com/celest-dev/celest
dillonnys
·2 anni fa·discuss
Per project, per month, yes. Felt like a mouthful to write, but I'll make that more clear.

Celest's biggest strength with cloud functions is its integration with the Dart language. The CLI generates a strongly-typed API client for you which matches the declaration of your function, and handles all serialization out-of-the-box.

So, if you write a top-level Dart function like this

    // In `celest/functions/my_api.dart`
    Future<String> sayHello(String name) async => 'Hello, name!';
and save the file, you'll get a Flutter client which you can call as

    celest.functions.myApi.sayHello(name: 'Celest'); // Hello, Celest
You can pass just about any Dart class between the frontend and backend, and it will just work. We're going for an RPC-style interface which means your types/parameters can never get out of sync.
dillonnys
·2 anni fa·discuss
Thanks! I started working on it in November, but most of the effort has been over the past three months.
dillonnys
·2 anni fa·discuss
Interesting! I don't know much about using Closure and Dart together. Any projects you could point me to? Sounds like a cool use case.
dillonnys
·2 anni fa·discuss
Yes, I definitely want to at some point. In the short term, I've implemented a `celest upgrade` method in the CLI, so it's just a one-time manual install.
dillonnys
·2 anni fa·discuss
Yes, absolutely. The main differences are

1. Celest is fully managed and does not require any knowledge of the cloud. With Serverpod, you must have a cloud account and manage your own infrastructure.

2. In Celest, all of your backend and infrastructure logic is defined solely in Dart. This differs from Serverpod which incorporates technologies like Docker, Terraform, and YAML to define your backend.

There are similarities too. Celest will auto-generate a client library for you like Serverpod and provides a local development environment. Uniquely, though, Celest supports hot reload for your backend ;-)
dillonnys
·2 anni fa·discuss
Much appreciated!
dillonnys
·4 anni fa·discuss
Dart+Flutter should do the trick

https://dart.dev/server https://flutter.dev/multi-platform/desktop