Datastar is run by some principled (and opinionated) guys who are immensely generous with their time and supportive to newcomers.
What’s getting lost in the whole kerfufflw over the Pro version is that this is NOT a monetization strategy. There is no intent to hook you - in fact they go out of their way to tell your you don’t need it. And the company is a registered non-profit.
Based on their own extensive experience they know which tiny set of features are likely to appeal to a very small group of people and at the same time are likely to incur the vast majority of support burden. By keeping these features out of the core they keep the base product simple and universal.
It is in fact an innovative and fair way of (a) signaling that these features are likely footguns, (b) getting just some of their costs covered by the people who either need the most support or are getting so much value from Datastar that they’re paying, (c) thereby freeing up their time to spend on the larger community.
data-animate - Animates element attributes over time.
data-on-resize - Runs an expression on element resize.
data-scroll-into-view - Scrolls an element into view.
If these are footguns then they can't be designed very well. I also don't think you can say that they'd only appeal to a small group.
I don't have any problem with them charging for whatever they want to. But let's not make up excuses.
For those of you who don't think Datastar is good enough for realtime/collaborative/multiplayer and/or think you need any of the PRO features.
These three demos each run on a 5$ VPS and don't use any of the PRO features. They have all survived the front page of HN. Datastar is a fantastic piece of engineering.
On both the checkboxes/cells examples there's adaptive view rendering so you can zoom out a fair bit. There's also back pressure on the virtual scroll.
Sure. You're not wrong. I'd argue Datastar's fat morph model is what lets me write a much simpler backend that's amenable to batching/better compression. It's also fast enough on the client that this immediate mode style rendering of HTML is actually possible.
I'm also not doing anything fancy on the backend, I'm using a dynamic language not known for it's speed (Clojure). Really, most of the work here is being done by SQLITE, batching, and brotli compression, which you can all use from any language.
I will concede that languages with access to real threads (GO, JAVA, C# etc) do better out of the box for this kind of CQRS architecture.
I don't understand what point you're trying to make.
He shared examples of some immensely dynamic apps that are running on a potato and survived HN, showing that this simplifies things greatly and can scale. Hypermedia-first is a very viable, and simplified, approach.
I think my point is pretty straightforward. Datastar is a front end framework. If any frontend framework can’t survive HN traffic it’s doing something wrong in a truly unholy way.
Surviving, or not surviving, a traffic influx is a backend restriction.
Data star is a backend agnostic backend framework that happens to have a 10kb on the frontend. You should probably read the guy before coming to conclusions on what it is
And yet, most frontend frameworks barely on even the simplest of sites. This is not only well documented, but most of them have now moved towards some sort of SSR hybrid - at great complexity cost.
I disagree with “most”. 99% of the sites featured on HN do just fine.
OP is a talented developer that wrote a backend capable of surviving a ton of traffic. Other developers on the internet have written backends that cannot sustain a ton of traffic.
The choice of frontend framework is separate from both. You can write a performant web app that uses React. I’m sure you can write one that falls over immediately with Datastar.
I think for me the key thing is Datastar lets me keep most of my state on the backend, which makes the backend much simpler to write. It also lets me do immediate mode streaming of the HTML, which again is non trivial in something like react without a lot of added complexity.
So it's an enabler in that sense. But, yes it's totally possible to write a backend that falls over with datastar like any technology.
I also agree, that Datastar does benefit from backend experience and if you don't have that experience it can to some extent feel like:
"Draw some circles. Now draw the rest of the Owl".
But I think that the real point that /u/andersmurphy was trying to convey was that hypermedia is VERY performant because immensely talented C++ engineers have optimized precisely this, for decades. The notion that "frontend" devs have that the DOM can and must be managed via JS is simply ridiculous, and is one of the primary things that datastar and hypermedia approaches in general are trying to combat.
In fact, he openly states elsewhere how the sites' backends are actually done in a deliberately dumb, unperformant way, where the backend streams the ENTIRE DOM with each sse message, which gets morphed into the DOM. He could have done something more granular, like streaming only the checkboxes that have changed, but it wasn't at all necessary because the dumb way worked well.
Moreover, the SSE streams benefit from immense compression ratios because somehow the compression window overlaps across messages. Something like 95+%, IIRC.
Its interesting, and telling, that that's the only part of my comment that you replied to...
Anyway, browsers are built specifically to render HTML. And html/hypermedia is specifically meant to manage and transfer state. The web has lost its way. If you want to read more about this, this free book is a great start: https://hypermedia.systems/book/contents/
I don’t feel the rest was really worth engaging with. SSE is a really interesting technology but again, it’s frontend agnostic. You can build a great SSE solution with any other framework.
I read about approaches like this and I still don’t see the reason to do them, beyond “because you can” and “JavaScript is bad”. The separation of data and display logic between server and client is a sensible separation of concerns. It’s the way any non-web solution does it and I don’t really see what would make the web so special that a different approach is worth it.
The entire point of frameworks is so that you dont have to engage with lower level things... D* makes it exceptionally easy to work with SSE and all sorts of web APIs.
that's fine that you dont see any reason to use the web as it was designed to be used. But I dont see any reason for me to engage any further with you.
The problem with JS heavy frontend is you now have TWO applications. The real application, on the backend, which makes all the decisions, and the frontend application.
You have TWO states which are being mutated independently that you now have to sync.
reducing complexity is important but is hardly the fundamental reason to choose between server side or client side rendering or state management. that just depends on the nature of the problem and the context it has to be solved in. sometimes it doesn't matter, then you have a choice.
you guys are furiously arguing (and not really listening) about this or that hammer being good enough to treat every problem as a nail, like ssr was the "holy hammer". well, it isn't and not every problem is a nail, and while datastar looks excellent to me i simply would have no use for it if i needed client side logic or state for whatever reason.
I agree, but the kicker is that most websites can be server side rendered trivially. Most web "apps" are not applications. They are forms and pages.
The client side logic is, usually, just to make the developers happy because developers love complexity.
Obviously there are many exceptions. But not every application is exceptional. We all hate to admit we're working on simple or trivial things but... We are. Often.
interesting! i wasn't aware of that, thanks for pointing it out.
to be clear, my point was that where the state has to be managed is more often than not an architectural decision given by the requirements, and the choice of tools should be a consequence of that, not a precondition.
Sorry, I'm not understanding what relevance some HN comments have to do with the link I shared...?
Though, for the record, I agree with everything that person - and other sibling commenter - wrote. It is quite obvious the people were not reading and replying in good faith.
The whole point of this framework is that a ton of the logic remains on the backend, with live connections to the frontend. At least for me the performance and hosting cost implications of that was the first question that came to my mind when I looked at this, I don’t understand how answering this question isn’t relevant here.
Datastar is one of the few projects in the web ecosystem in years that feels like a paradigm shift for the better.
The author (Delaney Gillilan) has put a lot of thought into how modern web development should be done from first principles, while leveraging core web technologies like SSE, and eschewing complexity as much as possible. His proposed GoNaDs stack[1] enables some truly impressive web applications. I highly recommend watching this talk[2] to get a sense of what's possible.
I wish the best of luck to the core team and contributors, and hope that this framework, or something like it, disrupts the modern ecosystem of popular web frameworks and stacks.
I was just commenting to someone yesterday how it's a testament to how refined this is that he's been working hard for over 2 years to produce such a small amount of code. I can only imagine how many variations he's gone through in order to get to what we see today - a refined, simple, easy, powerful way to do SSR-driven declarative interactivity, etc
And if that isn't enough, he's also on the cusp on releasing a web component framework that puts Lit to shame, AND a css framework that looks equally impressive.
He takes some getting used to, but the guy is a genius and is enormously generous with his time and deep knowledge.
I really do hope that d* gains more traction - the web could be such a better place, just at a time when native apps are literally under assault and censure by app stores and autocratic governments.
> it's a testament to how refined this is that he's been working hard for over 2 years to produce such a small amount of code.
In the words of some famous people:
> Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.
> Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
I think Delaney definitely follows these principles, which is refreshing to see in modern web development. The author of htmx, Carson Gross, also deserves a mention.
> And if that isn't enough, he's also on the cusp on releasing a web component framework that puts Lit to shame, AND a css framework that looks equally impressive.
Ah, I wasn't aware of that. I'll keep an eye out for those. I see they're also opposed to Tailwind, which is an absolute abomination IMO. I don't have experience with Lit, but it seemed like a nice abstraction over core Web Components, which feel like a half-baked solution.
Ideally, I want these things to be part of core web technologies, and for web developers to not need to rely on 3rd-party frameworks. Web browsers should be better. Web servers should be better. The entire web development and user experience should be simpler, more secure, robust, etc. But given that large corporations dictate what that experience is like, I'm glad that we have fresh thinking from people who are not already engrained in this system. While the ecosystem catches up, I would use anything they produce, or build my own[1], over using established and popular technologies any day of the week.
> Ideally, I want these things to be part of core web technologies, and for web developers to not need to rely on 3rd-party frameworks.
This seems to be his prime directive. Everything is standards-based. Moreover, if Datastar evolves at all in the future, it'll probably be because the web has improved and made parts of it redundant.
To clarify, he's a big fan of tailwind as well. But thinks that it is solving a problem that doesnt really exist anymore due to modern css. Im excited to see it, because i also think Tailwind is an abomination.
You can read more about stellar css and rocket web components in their respective channels in their discord https://discord.gg/bnRNgZjgPh There's some VERY cool sneak peeks there. You seem like the sort that would fit in very well there
(ps, stellar and rocket are used on their website already. Just read source to look at it)
Too bad it will only be available as a Pro feature. I’m not against supporting hard work by any means but framing it as an alternative to free options set me up for a bit of disappointment. But I agree with everything else you said that this seems very impressive.
Not sure why the community is being so hostile like use phoenix or it charges or its hostile
Like no its not.
This is a genuinely cool project and most parts of it is open source and it can run on any language and its interesting that they are looking at a way so that they can fund the development of it in the process as well
Its their project and they are the only ones entitled to really push things the way they want.
It looks cool and I might hack with it in golang. Thanks a lot for your work.
One minor feedback I want to share is that although I don't mind having a charge for things, 299$ especially in my country is a seriously lot of money and I think that some of these might be needed by me if I go full in on it but I genuinely can't afford even the single tier one.
Could the non profit atleast have some dynamic pricing for all countries sort of like steam? And/or donating to people.... like I mean genuinely no shade whatsoever at the datastar team but animation etc. are already available in sveltekit for free and I don't want it for free but I just genuinely can't afford it here...
Another suggestion could be to lean very heavily on the entreprise who can afford such things much rather easily or maybe even more and maybe you/team can lower the price for solo so that solo devs can try things out and not be worried for 299$-ish y'know?
Deep respects for the project, Its another tool which is mostly free so the community's reaction is very weird for that...
But if I can be genuinely honest, I am saying this as a guy who has never paid any community/anything online but I would for the first time genuinely sponsor the project for 5-10$ (I know it ain't much but that's all I am comfortable with donating as a teenager right now)
Can you please charge atleast the solo level to atleast be the price of the silksong? I don't know but I will try the project out as it looks super cool
This is the only valid and reasonable criticism I've seen here so far, kudos to you.
299 is, indeed, inaccessible for many people. But, the devs live in places where things cost more, so its also a tiny price compared to the relative value that they provide.
I do think that some sort of geo-relative pricing structure would be worth looking into, but how does one even implement something like that? Is there something that makes it all "just work"? I suspect not. Moreover, the devs have already given away so much of their time - it doesnt make much sense for them to invest even more of it into designing a pricing system like this, from which they are going to possibly earn only a negligible amount from. Perhaps this is a problem that you might like to address yourself?
Anyway, the devs are very clear that most people should never need the Pro license. 95+% of the functionality and value is available for free in the open-source library. Use it, enjoy it, learn from it, profit from it!
What I've done in a project once is use Purchasing Power Parity: basically, there's an index for purchasing power, and you adjust your pricing based on that. It's implemented in some major payment platforms, like Gumroad: https://gumroad.com/help/article/327-purchasing-power-parity
Datastar author here, neat idea. Join the Discord and talk to us about how to implement. We're just a few guys and just don't have the cycles to explore every option for every facet of the project. Some of this is pure overhead
Yeah, something like PPP seems to be the way to do it. But it seems non-trivial to implement in reality. Gumroad consequently charges 10% fees.
I think it is very unlikely that Datastar would implement something like this - but just as a matter of limited time, rather than lack of empathy with the situation.
Still, people are welcome to bring it up in their discord - perhaps they will actually do it!
And i say all of this as someone who lives in central america, and am building a nonprofit project for which i have zero funding assistance. I already bought the pro license (which is 60% of my monthly cost of living...), mostly just because i see huge value in it all and wanted to support them.
Oh wow, glad that somehow my idea of purchasing power is implemented by something like gumroad
I had checked literally everywhere including even thinking what if the devs publish it on steam or epic games but that would be weird and steam for example takes 30% cut
I had forgot to check out on gumroad but today I learnt something new thanks to you so thanks!
It seems that the dev of data-star have also commented on this and it would be lovely to see if they could implement this or any other ideas that I or the community is stated, it is nice to hear that they are taking feedback which is really nice!
> Is there something that makes it all "just work"?
Stripe?
You can geolocate via IP as a first pass for the frontend, check the card’s country code for the order, and then the billing/shipping/account address if it’s really that important (like when your service has different costs depending on locality).
I’m sure there are services that can handle it for you but it’s so simple to implement price discrimination to whatever threshold you want that I’ve never checked. The hard part was always figuring out the false positive/negative rate and the frontend flow when the different steps disagree on location, but those are edge cases that don’t really matter with zero marginal cost digital goods.
I pay for a lot of software eg I used Screen Studio a couple of times, liked it, dropped a couple hundred bucks for it. Good work from a solo dev.
Datastar have basic functionality in the pro license. Basic UX capabilities like animation and copy to clipboard.
The devs aren’t “very clear” that most people should never need the license. That’s just PR. They’ve picked a bunch of features that even a teenage hobbyist might want to use as part of a trivial application. There’s no relationship between the locked features and their value or complexity.
I would avoid any web framework that might get in my face like this, at some random moment working on a pet project to try out a new thing, with an invoice demanding payment if I want to use random features.
“Perhaps this is a problem that you might like to address yourself?”
No I’m good, thanks. The Datastar community needs some work, going by the attitude of their defenders in this thread. Someone else is saying the way they charge money isn’t a monetization strategy. It’s nonsense.
Nothing wrong with charging money. Just be honest about it, take it in the chin when people don’t want to buy, and ideally have a pricing strategy that makes sense.
I cannot speak for other people, but here is where I'm coming from:
- There is no mention of Pro on the home page, I only found out about Pro after flipping through the documentation. This comes off as sleazy, like "Look at our cool open-source project", and then after they have you hooked they go "oh, if you want all all of it you gotta get Pro".
- Pro is locking genuine features, not just support, video tutorials or code examples.
- It is vendor lock-in, if you want to rely on any Pro feature you are now at the mercy of the maintainers.
- What make the vendor lock-in particularly problematic is the fact that without Datastar your website will not work. Sure, it does suck if your CI service, test platform or whatever does not work, but as long as you can compile and deploy the code you will survive, even if you have to do it by hand. Not so with a library.
- There are no examples of what your are buying. At least with the non-Pro features you can try them out for free without any commitment, but when it comes to Pro you are just taking a blind guess as to whether any of them are what you want. Compare that to the Pro examples Alpine has[1], where you can play around with them in the browser.
- I don't know if you get source code, but even if you do you cannot share your improvements with anyone.
Note that I never mentioned the price. The value will vary from person to person, for some it will be unaffordable, for others it will be a great deal (e.g. freelancers who will make the money back within one gig). I got my employer to sponsor Alpine a year ago and they have given more to Alpine than what Datastar are charging for Pro.
For reference, two projects which have non-objectionable Pro versions are Alpine.js[2] and React Flow[3]. React flow even have a link to their Pro page right on the home page.
Is there some middle way that I could use these datastar attributes/paid offerings via lets say 5$ but I wouldn't get support from the team itself.
I think that they might have a discord server as well and so I am more than okay to take support from the community itself if I can be honest...
Simply because like me and others, we simply can't pay 299$ when we don't require support.
Could another tier be created that allows people to use it but just without any official support in the sense that maybe you could create github issues or something about it but don't expect mission critical of sorts...
I hope you can see things from my perspective as well & I know some companies / projects which also do something similar where they offer support seperately / at a higher price but using the product itself doesn't cost you / costs you very little and you can always
use unofficial-ish help.
What are your thoughts? Do you think that datastar could integrate something like this?
There are so many issues with doing something like this that it's almost never going to be financially viable for small companies.
- Some jurisdictions require some level of warranty, extended refund periods, or limit your ability to avoid liability for product defects.
- You need to spend time doing research to set prices for each country or region.
- You need to combat fraud from people trying to buy your product using a VPN from low cost regions.
- This one is a big one. Chargebacks tend to be higher from low cost of living countries. Payment processors will drop you if your chargeback rate gets too high. Risking a $25 chargeback fee and being dropped from your payment processor for $5-10 payments is often not worth it.
- There are only 20 million professional software developers in the world. If you say half of those are web developers and you are phenomenally successful and 1 out of every 1000 web developers in the whole world buys your software. That's 10k sales. At $5 per sale that's $50k revenue across the entire life of the product. $50k for a team of people isn't a financially viable endeavor.
Yeah I was thinking about it and I get it why regional pricing might not make sense for a product like this... Its complicated and well, it would also hurt the developers actively as well of sorts. So I don't really expect them to do such
Now, regarding 5-10$ payment, suppose we do a 20$ payment one time donation, they are a non profit so they can definitely do fiscal foundation but I can get it why you might not want to do that
I was discovering more about chargeback and other things like taxation as well
I found polar.sh could be a decent approach to a lot of these problems, just create a polar.sh set account and they have a github thing as well where you can allow access to any git private repo to anyone who pays and even a discord integration so you could have support through there out of the box
I think the same can be done through patreon or the likes as well from what I know
all I was trying to say was that yes I agree with your comment and I thought about it and the other comments regarding how 5-20$ wouldn't cover support but what if I don't need support, I just want the code and I can take the support through their discord server/like minded people?
I understand, I truly do, currently I read more about datastar, I have come to the conclusion that they are somewhat not necessary in the sense that I can have sse.ExecuteScript(`console.log("Hello from server!")`) and I think that it could be integrated with something like gsap if someone wants to hack through a animation thing without modifying datastar library itself as well
I still believe though that they should atleast give another optional method imo where someone can pay 20$ as an example to get the template of sorts but no support and using something like polar.sh or patreon or stripe with MOR, it should be pretty easy and well they have to realize that there might be people who genuinely can't afford this as well I suppose y'know?
I am genuinely curious what your thoughts are on why/if they can add a 10-20$ tier which just gives access to the code and no (official) support through github sponsors/patreon/polar.sh and the likes?
And maybe if someone needs support but can't afford it, maybe optionally they could ask it into their server so that like minded people could volunteer to help as well in the process?
they do have a discord server, and it is full of excellent conversation. But I expect that you would receive a similar response to what we've given "sorry, but no. But, also, you dont actually need the pro features. Build with the free version and profit from it"
I've been building a frontend with Go, Templ and Datastar for a few months now. I really like the @actions and how the page is updated with the response.
I'm on the fence about signals though. They are fine for simple things like individual text form fields or opening closing a drop-down. But my backend is a Kubernetes style API server. And storing a JSON Kubernetes style resource in a signal does not work because of how Datastar implements parsing the structure into child signals. For me it would be better to just be able to turn this off.
One example where it breaks are K8s labels. They are map[string]string and the key is often hostname prefixed. E.g. example.com/label-key. Datastar can't handle these keys at all and the resulting signals are a mess.
I'm aware that I may be using signals not as intended. But something as simple as data-signals-resource="k8sJson" and then data-bind="resource.metatdata.name" is a great way to work. And it works for metadata name. But it doesn't work if any part of the path needs to be an index in a list or a label key in hostname style.
The other thing I find painful about Datastar signals are the magic about how attributes written something-something in HTML become somethingSomething in JS and all all the snake, camel etc. __modifiers. It's just error prone to work with. Not a great experience.
But overall I still stuck with it so far and am happy with the general idea of HTMX and Alpine functionalities implemented as one and using hypermedia as a general approach. Anything so I can avoid the NodeJS ecosystem really.
When a few RCs back the wire format changed, it was quite a laborious update for me, because using Fiber I can't use the Go SDK and implemented my own. But the wire format clearly changed for the better so it was worth it.
I think the developers are on to something and should keep iterating.
Datastar's ideas look wonderful, and I've thought of adopting it myself, but hobbling the open source version to not compete with pro this early on sounds like a fast ticket to a hard fork. It's not like they command a vast ecosystem that would be reluctant to switch.
[edit: Seems like the model with an open core and some closed plugins could work out fine. If not, everyone's got options. Wishing success for both the D* developers and the users.]
Indeed! Could you do us all a favour and fork the pre-pro plugins and make them compatible with the current iteration of d* pro? They're all like 50 LOC, after all, so should be simple.
Were I so inclined, I'd make them compatible with non-pro. And more likely just take my fork in whatever direction I cared to, just keeping the wire format compatible (and likely negotiable). But it's a project best left for people actually using Datastar, not curious onlookers like me.
Same as my other comment, it seems like you are involved in the project. Stop responding like this is facebook or reddit. Here we offer our expertise with all good intentions. They haven't said it is a simple task, you are assuming that they said that.
If you can't take constructive criticism or even respond to opinions you disagree, then it is better to not respond at all, because it is bad PR.
I understand that maintaining a project like this is hard, that you need to be compensated and that open source corporate usage tends to be disgraceful. But that's not what they are telling you. They are just shating their opinion, which is part of your potential customer opinions.
Share the rationale behind paywalling common features. Give us, if you have to respond, why you hide the pro features off the homepage, etc. Instead of this kind of childish reaction that adds nothing
I'm a user of datastar, nothing more. And I'm defending the developers against all of the baseless slander here.
And now Im forced to defend myself against your baseless slander. If you cared to read, you'd see that I said it was a simple task to update the pre-pro versions of the tiny plugins to be compatible with the current api, because it would be. And they replied on that basis.
The rationale has been shared many times - here and elsewhere. And the pro features are not "hidden" - they're right there in the header. And it's not for any nefarious reason - precisely the opposite, in fact. They don't want to appear to be flogging something. Similarly, they don't advertise any of the pro features as being free, anywhere.
But, I brought this all up with the devs earlier and suggested they add a small link or banner or something to the pro license and they said they would. But not because it's a good or necessary idea, but instead just so all the trolls won't have even the wobbliest leg to stand on in the future on this topic.
Please take some constructive criticism - you have no idea what you're talking about here, in any regard. It is childish. Please inform yourself in the future, especially when you want to try to correct someone.
"Hobbling" is too strong a word. There's a handful of attributes and events that are only available in Pro and none look fundamental to the operation of most sites [1]. In fact they could all probably be replaced with a bit of custom JS sent up from the server.
I have already seen a few of your responses to criticism coming up toxic like this. They don't need to fork it, but some of your potential customers could. They are explaining to you their opinions, and in HN, this is very valuable.
Most of us have some decision at companies, which are your real customers, and criticism like I've seen you respond boldly and badly, is the criticism I think you should review and take into account.
Personally, I like everything of the pro, except the features that you decided to exclude. Doesn't seem pro features, but features you ramdomly decided not to open source them, and that could be ok. But instead of doing it like this, maybe put a restrictive license so that companies with more than 5 people have to pay.
But I think you should focus on premium/pro features that are really a plus, like your debugger, the bundler, etc. And find features that aren't common and give a plus.
And it is an opinion which you may disagree with, but if you respond to me, don't do it like that, because to me, it is not professional and I'll tend to avoid doing business with people that respond like that
Maybe it is because I'm a bit too deep in the React ecosystem at this point, but once you start trying to do any reasonably complex task, this seems like it would be significantly harder to reason about.
Also, unless I'm misunderstanding it, this revolves a lot around the backend returning HTML to do backend-as-frontend, which given my previous experiences with the concept, I wouldn't want to touch with a 10ft pole. When you consider users with extremely bad internet connections (there are still people on dsl/older satellite/2G), having to make more requests to the backend that return larger blobs of html (as opposed to fewer requests that return JSON when it is relevant) will result in a significantly more degraded user experience
In my experience from using react apps on 2g/3g… I would much prefer the html. Usually, you get the content in 1-2 seconds with html, where you could end up with a react apps that never loads at all. Why does it never load? Because enterprising engineers usually invent their own timeouts that make no sense when you are dealing with bytes-per-second. There’s already a one minute timeout on the socket, and it knows if it is still receiving where your application has no sense of progress.
The issue is that if you have to make more requests overall, there is a non-negligible rtt for each of those requests, which on slow connections can add up very fast
If you are truly offline, then of course this won't work.
Though, it is certainly possible to cache pages since most sites do not need persistent state - it's just ephemeral things like toggling a button, linking an input box and another caption, etc...
Though you could run the datastar js sdk from a service worker and if you've synced necessary state to browser storage, you could have your backend there.
Also, for slow connections, compression is very powerful - especially over an sse stream where there's redundant info being sent. Another comment here has links to immense demos and the compression ratios are north of 90%.
Also, slow internet is often also associated with slow devices, which cannot handle the bloat of React, css-in-js etc
Datastar VASTLY simplifies everything while sacrificing essentially nothing in the way of functionality.
Some people write their own websites where they blog (where Wordpress would be enough), some build shops with mostly static content that has to load fast but has no real interactivity, others build full-fledged software like Figma/Discord and for the true masters, the DOM is a prison and only <canvas> coupled with GPU-accelerated computations will do.
Obviously htmx and it's siblings are nice for blogs, docs and shops. You don't build a "software" level website with it.
This pattern isn't new per-se. The industry already went through it when moving from DHTML to XHR, and it was (mostly) abandoned for good reasons. Modern DOM patching techniques gave rise to some newer variations, but they still make the same old trade-offs. They don't really solve engineering issues like tight coupling and brittleness, nor network issues like latency and larger payload volume.
So, to me, this feels more like an effort to offer a more affordable solution (in terms of engineering cost) for small-/mid-sized companies, rather than a push to expand the boundaries of the technology. Not a bad thing, but it's just a bit disappointing to see history kinda looping back on itself.
Datastar author here. Yes nothing is new here, that's kind of the point. You seemingly lost her way with jQuery which was just sprinkle on the page but then spa wasn't interesting approach at reactivity while missing all the points of the back end controlling most the state. I'm not trying to be innovative I'm just trying to get us back to some normalcy
It isn't mentioned on the homepage, but Datastar does charge for the following features:
data-animate - Animates element attributes over time.
data-custom-validity - Adds custom validity to an element.
data-on-raf - Runs an expression on every animation frame.
data-on-resize - Runs an expression on element resize.
data-persist - Persists signals in local storage.
data-query-string - Syncs query string params with signal values.
data-replace-url - Replaces the URL in the browser.
data-scroll-into-view - Scrolls an element into view.
data-view-transition - Sets view-transition-name styles.
Prices are $299 for a solo dev and $999+ for teams
Wanted to include that this is so the development and maintenance of Datastar as a project is sustainable. And that they are a registered 501(c)(3) nonprofit organization.
I tried Datastar and it was great, then I saw this kind of move and it turned me down immediately.
I don't believe it is the right way to play. A Pro support would have been better.
Plus the fact that the licensing prevent to use the Datastar Pro in any kind of open-source project. Very strange move.
So if Mozilla had offered to monetize by asking $299 to use the <blink> and <marquee> tags that would turn you off the rest of the browser? Or do you think you could make text blink another way?
Here's how you replace the URL without a page refresh:
not sure i think this is a good way to fund their work BUT exploring models to make open-source sustainable for the developers does seem like a good thing, no?
I have no problem with anyone charging what they would like, but I do think it should be mentioned on the homepage. It feels intentionally left off which makes me think the developers themselves aren't 100% comfortable with the model.
Yes, it feels scammy. Like you, I've no problem paying for software if it seems worth it. I've payed a few times for Highcharts (different companies) and I did gladly and without hesitation, it also feels that they're being honest about their business model.
Not a scam. It just feels the same as a scam feels.
One time I had a couch delivered. Two guys show up to set it up. One guy says he needs a tool from the truck and walks off, and the other guy starts talking to our dog, and tells us how he used to train pit bulls, and starts doing some weird hand motions and yelling commands to our dog like he’s casting a spell or something.
I think the guy was probably just not all there mentally, like too much former drug use or something. But it was one of those surreal moments where red flags were going off in my head. I went to find the other guy just to make sure he wasn’t robbing us out the back. Because that’s what it felt like: misdirection, social engineering, a performance.
In hindsight, I don’t think there was anything suspicious going on. But the alarm bells in my head were still completely real.
When we see this “everything is an plugin” but “plugin details are internal-only” and “plugin detail is coming” and “1.0 is released” and “but we will have 40 more release candidates before 1.0 final” and “you could support us with pro” and “you dont need pro” and “we don’t recommend pro” and “you can build anything in pro yourself anyway” and “you shouldn’t use this pro feature anyway and should use CSS instead”, and then when people ask a question about any of this inconsistency, we get juvenile responses like “don’t use it then”, “don’t buy it then”, “fork it then”, “my time isn’t free”, and so on. Even though there is no scam, it’s surreal. Like, “is this really happening?” It sets off the same red flags in people’s minds, even when there is no scam.
Datastar seems very cool as a tool, and the developers seem very technically competent. The problems they face don’t seem to be technical problems.
I don't think that's a fair read of their intentions given how they talk about it everywhere [1]. Pro isn't there to paywall great features, but there to support the development of complex and annoying ones. The example of `data-on-signal-patch` that moved from pro to core speaks to how they're thinking about the project.
I think most people are not comfortable with making money or talking about money. Also people who are bad at making money might be bad at marketing/handling this.
Ok, so their homepage design unintentionally omits that pertinent information. I’ve wasted a couple of hours installing a FOSS package for a personal project only to find out one of the most heavily presented features was a paid add-in. Even if it’s bad communication design add not intentional, it feels like a salesey bait-and-switch tactic in that situation, and they probably want to know that.
What is it that you think is the most heavily presented feature that is actually behind a paid addin? Because they're quite vocal about the fact that most people should not ever need the pro license... They actively dissuade people from buying it.
not the OP, but a lot of the referenced functionality looks like I might use it. The problem is I'm not going to bother trying this and investing any effort with even the looming possibility I'll need to pay to keep going. I don't think too many people approach this space with a purchase evaluation mindset like say, "I'm going to test out this grid to see if we should buy it". In that case pay-for advanced functionality is part of the approach from the start.
Also, I can't see this approach working. Getting enterprise adoption of a front end framework is almost impossible outside of React, let alone paying for a niche one, and the "contact us" approach is a non-starter.
If the core of the framework fits what you need, you could write those additional plugins yourself, rather than relying on the official "pro" ones. My understanding so far is the plugin architecture is intentionally designed for this usecase, so you aren't beholden to the official maintainers to add/tweak features for your specific usecase.
This makes the investment in the tool a lot safer, because you can always swap out pieces that don't fit your usecase, rather than start from scratch with a new framework.
In an enterprise setting, I don't believe the cost alone will be the factor that drives the decision. It'd be weighing up the value of the framework (e.g., UI framework/programming language agnostic stack, simpler architectures, delivery speed, performance, cost of using the framework on users) against the license cost.
> Getting enterprise adoption of a front end framework is almost impossible outside of React, let alone paying for a niche one, and the "contact us" approach is a non-starter.
Two questions on this:
1. Why do you think it's impossible to get org buy-in?
2. Why do those same orgs pick frameworks like Next.js, whose full benefits can only be realized with sophisticated and paid infrastructure?
as i've said in many comments and the devs say ad-nauseum, there's very little need for anything in the Pro license. the fully open-source library is sufficient for almost all needs. And it is easily extendable with plugins if you want more functionality than it provides.
i went looking for pricing info and it's the last item in the last menu on the website... it's not exactly up front. i was looking for a "pricing" top-level menu item first, which is pretty standard nowadays.
As ive said in many other comments - YOU DO NOT NEED PRO. The devs are very adamant about this - even aggressively so. 99% of apps will work just fine with the free library. Pro is for some bells and whistles, or just to support people who have invested many thousands of hours into making a genuinely innovative framework, and given it away
OK, then this approach will needlessly discourage adoption AND consume way more resources than it brings in. Under this structure the team needs to deliver the highest level of quality to the smallest paying audience without community support. Further, enterprise is very hesitant to pay for this as a product but are way more receptive to paying for support. Everyone would be much better served without a tiered free/pay product and paid support options.
>> or just to support people who have invested many thousands of hours into making a genuinely innovative framework, and given it away
I've never seen a corporation do this even with projects that don't try and encourage like here.
If an enterprise won't want to pay for the product, what makes you think they're more likely pay for support?
If you're implying they'll only pay when they've seen the value of the product, then the non-pro part of the framework is incredibly feature-rich and can easily do that.
Yeah support model for a lit of projects like this doesn't work. Even companies like the one behind NATS struggle. It's almost contingent on you building a bad product that needs support.
you're stretching the definition of deception here my guy-what do you want them to do? plaster a big sign on the landing page stating that this framework ALSO contains pro features that you have to pay for?
I've commented above that this seems like a bad approach, but it sure feels like a lack of awareness vs. an intentional dark pattern. The internet makes it so easy to assume the worst but I think this is a case where we should start with the most charitable interpretation.
I'm confused. Datastar is a free open source framework that you can choose to use or not.
It's weird to call them out as indecent and deceitful for not actively marketing features that they really don't think you need. Even when you think you need it, they've actively encouraged people to analyze their problems to identify if it's a real need or a gap in hypermedia fundamentals knowledge.
Also, the top nav has a Pro page that has what you're looking for.
I do think this is the most sustainable approach for monetizing open source projects, as long as the developer is fair about it. That is, truly make features that only large and/or enterprise users would have a use for, and only charge for those, instead of arbitrarily deciding to put core features of the software behind a paywall.
In the case of a web framework, that choice is a bit difficult. But if the software is fully functional for the large majority of users, then charging for niche features, or those that are actively discouraged, sounds like a fair approach to me.
I'm skeptical about this business model because it can become worse than proprietary software dependency over time. You get lured in by thinking it's open source and free, and might end up paying as much as the developer wants for essential features a few years later.
Like I said, it's crucial for the developer to be fair about it. Running a sustainable business built on open source is entrepreneurship on hard mode. Some companies do a better job at this than others, and, unfortunately, open source has been abused as a marketing strategy on many occasions.
No matter how you look at it, though, any business model that enables users to use open source software is a much better option for users than any proprietary software. There's no comparison. Given the choice, I'd much rather use OSS that is eventually rugpulled or enshittified than proprietary software, which carries those same risks, while also restricting my freedoms from the get-go, and having additional risks I might not be aware of at all (exploiting my data, security issues, etc.).
They're not even running a business on this - its literally registered as a 501c3 nonprofit. Its a labour of love that theyve shared with the world, and they actively tell people that the pro features are unnecessary for most projects. If you want those features or just want to support the project, the cost is quite fair, and just goes to things like traveling to do conference talks etc... They are not getting rich off of this.
Also, they intend for v1, which will be released soon-ish to be essentially the final version of Datastar. There wont be a need for much further development. So there's minimal risk of "rugpull" or even abandonment.
That's admirable. They just gained another sponsor. :)
I do think that they should be paid for this work, and be able to sustain themselves from it. So I wouldn't be against it being a business, or the project having a subscription model. The idea of open source being gratis, and products in general being "free", has done enough harm to the world.
100% so many projects have died because they didn't have a longterm plan to keep the lights on other than hoping for donations and or offering support that no one needed (the better the project the less likely you need support).
If they are charging for features, those features are a business, even if its a nonprofit business. There is also precedent for the IRS to consider it unrelated business income and to make them pay taxes on it, but that seems to be a huge grey area in US tax law.
See for eaxmple the Mozilla IRS dispute as an example. Mozilla resolved this by putting their money making endeavors into a for profit org, which is in turn owned by the nonprofit, but the for profit org pays tax on their income.
https://www.irs.gov/charities-non-profits/unrelated-business...
See also
Yeah it's a weird one people complain about open source projects having extra features you can pay for. But, then they also complain when you make open source GPL.
I'm sure it would be the same group complaining if it was GPL too.
Except the pro option is not "a few years later" it's available in pre-v1 and is a one-time lifetime purchase, not a subscription.
And the framework and docs are so small and simple, that you can read the entire site in an hour or two, in which time you would have noticed the pro features and pricing many times.
At the risk of repeating myself, I was talking in general terms about the business model and the uncertainty about the licensing it creates concerning possible future features.
I wasn't aware that they are a non-profit organization and agree that my remark doesn't necessarily apply to them since they're not a business. If the pro subscription helps them to maintain the open source project without making any profits, then that seems alright to me.
Looking at https://data-star.dev/reference/datastar_pro#pro-features the features that stood out for me as things I would want to to use (and that don't feel particularly "pro" to me) are the animation features, data-replace-url, data-on-resize, data-scroll-into-view, the @clipboard() mechanism and, most importantly, the debugging tool.
My problem with this business model is that it has a chilling effect on open source contributions to the project, because it incentivizes the core maintainers to not accept community contributions that overlap with the paid features.
Datastar is currently in the Release Candidate phase of v1, which they seem to be certain will be the final form of Datastar. So, they're really not looking for "community contributions" to the core of datastar, other than for feedback to polish it off.
Moreover, ALL of the features are "plugins" - there's nothing stopping anyone from building and sharing their own. It is actually encouraged. In fact, in their next release they'll be releasing and documenting some sort of public API for plugins. Not sure exactly how it will differ from the current form though, since you can already make your own plugins.
They also intend to have some sort of free, open-source "marketplace" for community-built web components, based on their upcoming Rocket web component and Stellar css framework. You would just need to have the Datastar pro license to be able to use any of them.
I can see how this final part might be criticized, but it does seem quite fair to me. Sustainable open source is a big problem - in recent months ive had some important fully-open source dependencies disappear - even ones that were backed by well-funded companies. Moreover, Datastar is registered as a 501c3, and they really don't intend to "make money" from all of this. Its just to pay the bills, travel to conferences etc...
They're very reasonable people and open to all discussion in their discord. Im sure that whatever concerns you still have could be explained quickly if you went there.
In fact, i just posted there about this thread and how its overflowing with nonsensical complaints about how there's no link to or mention of Pro on the homepage - they said sure, we'll add a link.
Also, btw, some of these - specifically data-replace-url - are strongly discouraged by the devs, to avoid footguns. I dont have experience with it, but people have spoken lots in their discord about how things like Hotwire Turbo are too magical and end up causing a lot of issues. Datastar strong recommends just using hypermedia as it was designed (HATEOAS https://htmx.org/essays/hateoas/) and doing full page reloads when you change a page. And for more ephemeral in-page changes, you can use the sse fragments morphing etc
Those prices are for one off lifetime purchase too! That's crazy. I don't know why they bother. They'll never make back the money for the time they put in developing it.
Such a bad move. I told them they should charge more and actually have useful features in pro.
What a weird comment. Why bring this up unless you're just trying to make them look bad in a dishonest way? It is clearly documented on the site in multiple places.
Moreover, they actively dissuade people from even buying the pro license because they are quite emphatic that most people/sites do not need any of these features. If you do need them, then it's a small price to pay for the functionality, as well as to make a modest amount to cover costs for their non-profit org. God forbid someone optionally charge something for years of effort that they have given away for free...
It also comes with an immensely useful "Inspector" that shows all the signals, sse events etc, and will soon come with an immensely streamlined web component framework (Rocket) and css framework (Stellar).
I bought the pro license mostly just to support them, but the inspector is great and I look forward to checking out rocket and stellar.
I opened my HN client and saw multiple posts at the top of the home page about this datastar thing, with comments like yours either very aggressively defending it or praising it as the best thing since bread.
Did you forget one of those "full disclosure" thingies at the top of your comment?
In any case, I didn't see anything interesting about it, even less so after reading OP's useful comment on the pricing, but even if I did I would never intentionally use or give money to a company that does astroturfing campaigns.
This is an example of the entitled subset of people who come out of the woodwork whenever an open source project has any kind of monetization or even just a non-standard license prohibiting billion dollar companies from selling their project as a service.
I guarantee the fact that I referred to a project with an anti Amazon clause as open source will piss some of the off so much that they’ll comment here about it.
There's a such thing as context and intent which are separate from content, and this is directed as much at the people who upvoted this particular content to the top comment as it is to the OP.
The conversation on this post is now centered around the fact that they have some premium features for sale.
Edit: Now there’s another post on the front page of HN accusing the datastar team of being greedy.
Posting documentation from the site != "people expect you to work for them for free."
Really an insane thing to see a comment that informs you of pricing for their pro package and have a horde of people jump in with "How dare you!!!?!?!"
You live in a bubble. 299 is a crazy amount of money for me. I am currently debating whether to pay for copilot at 20/mo or keep using the free version.
Even if I was paying for that, there's no comparison between AI and a web framework that has many free competitors.
You don't need to pay for datastar. As I've said befor I don't use any of the pro plugins (plugins anyone can build themselves for that matter).
Sad to see developers getting ripped off by AI. Copilot is junk. The whole AI bubble is just a tax powered by fear if missing out. Save yourself 20$ a month, learn to touch type, use snippets and download a local copy of the docs.
What a world we're living in - I point out that a hostile comment is hostile, and I'm labeled hostile.
Once again, they aren't charging anything. Pay them if you want some largely-unnecessary features, or if you just want to support years of hard work and innovation. That's what I did.
If you're amenable to feedback, the impression I got from your initial comment was "a hostile comment pointing out another hostile comment". It assumed a negative motivation on OOP based on vibes and you ran with it. Even this comment's parting line:
> But you do you.
- seems like a truism. I get the feeling it's meant to be read as "I give up. You can keep whatever wrong viewpoint you have".
I concede that my original comment here was somewhat hostile, but only really the first line. And it wasn't even all that hostile - especially when the rest of the comment was really just informative and positive about datastar.
And, moreover, is standing up to poor behaviour - even if done in a somewhat hostile/confrontational way - really such a bad thing? It seems quite clear to me that they were not communicating in good faith - they didnt come to discuss features, philosophy about open source sustainability, or actual reality of the messaging on the site and their discord server.
Instead THEY are explicitly saying that Datastar's devs are being dishonest in some way for having a pro license (which, again, they quite clearly say most people should not buy) as a way to bring a modicum of sustainability to something that theyve dedicated years to and given 99% of the value away for free.
They could have said "This looks interesting, but I noticed that there's a pro license if you want to get some features. Are these features necessary? Is this price reasonable? Should we be against there being a 501c3 behind this? etc..."
But they did none of that. I think that all that a reasonable person can really conclude is that they're either the disdainful sort of person who thinks all code should be free for everyone, or that they are just trolling, or perhaps even that they dont like how datastar is challenging the status quo of webdev.
Hence, "you do you" - you interpreted it exactly as I intended.
I'm sorry people didn't immediately take to this financing model as well as you did. The average person is not as invested as you and most people are going to immediately switch off if they hear part of the functionality costs money and this isn't mentioned anywhere on the front page. Doesn't matter how "unnecessary" these features are, it's a bad look.
Plenty of other open source projects make money without attracting this kind of negative feedback. It's curious to me that you suggest everyone is intentionally being negative or malicious here, instead of looking at why the project caused such a response.
People pay for things all the time, why not (almost surely unnecessary) code? Why do you all feel entitled to free access to thousands of hours of very highly skilled devs' efforts (most of which they actually are giving away for free)?
Moreover, it is quite common for there to be pro versions of libraries these days - tailwind, all sorts of component libraries, etc..
> Plenty of other open source projects make money without attracting this kind of negative feedback
We dont seem to be living in the same reality. In mine, maintaining open source projects is a nearly-completely thankless, profit-less endeavour. It is a rare exception that someone can earn a living from it. And datastar's devs have zero expectation that they'll do so, even with this model - hence it is registered as a 501c3, and the funds will cover things like travelling to conferences to talk about it.
I think the pro version and charging stuff is totally fine. It's the lack of transparency that bothers people. I shouldn't have to figure out their profit model from HN comments. If you want to be paid for your work, charge for the whole library or make the free/pro distinction very clear to people. Don't try to hook them in with a free offering while locking features behind a paywall that they discover later.
Or if you want to be altruistic (as you keep referring to nonprofit) make it free and solicit donations/patreon.
The current approach is certainly a new one and I am interested to see if it pays off.
Author of Datastar here. Most people don't need pro and it seems like putting it on the front page is actually marketing it instead of people finding it as the need the features. Not only should most people not use the features we actively push against it. The only thing that's really super valuable is the inspector which is a Dev tool
As someone who actually happily bought Pro, I completely agree with this. Inspector is great, and worth the (nominal) cost of Pro. I might use a couple other of the pro functions. I'm very much looking forward to Stellar CSS and Rocket Web component framework getting released - they'll DEFINITELY make pro worthwhile, and given that they are completely new, there should be no qualms about it being purely pro.
because the implication in this and so many other comments is that they're dishonestly hiding something. There was no other commentary other than a large and prominent comment saying "Watch the fuck out everyone! There be $ hidden in there!"
You can always make your substantive points thoughtfully, so please do that instead.
Edit: two things I realized after posting the above: (1) you're the project creator! well, I can understand how anyone would react negatively given the critical things some commenters have been posting.
But also (2) you've been breaking the site guidelines in other comments too (e.g. https://news.ycombinator.com/item?id=45539942). Ultimately we need you to stick to the rules, regardless of what other commenters are doing, and of course the same applies to them also.
(p.s. in case it's not clear, I'm a mod here and just trying to keep the peace a bit)
happy to abide, didn't read the guidelines so sorry about that @dang. yes it's quite interesting that we are getting slammed for making plugins in a way that literally any user has access to do own their own. hackernews is a wild ride for sure!
the entire point is that the OP - and so many other nonsensical comments here- is implying that Datastar's devs are being sneaky, trying to trick you into getting hooked on datastar only to pull the rug later with some dark marketing patterns.
But, as youve said, the info is right there on the site.
This post and other posts about datastar on the hn frontpage seem unnatural to me. It's like a marketing effort to astroturf this, especially with newly created accounts interacting with this...
If the datastar team was capable of such a coordinated marketing effort I doubt they'd be in the business of running a non profit, or building a niche HTML streaming framework. Or having a one off purchase model for pro.
I mean unless you consider me linking my dumb demos everytime someone accuses hypermedia of not being suitable for realtime/collaborative apps. That I'm 100% guilty of.
I'm using HTMX and had never heard of Datastar until today. I imagine there's a fair few people who saw the first post, looked into it and found other things about Datastar, and decided to post them.
That’s a common HN pattern. Someone posts something about “why I switched to x” and it inspires someone else to link to the the x website, or even to other similar projects websites, and they all make it to the front page. It’s just a common synergistic phenomenon.
I think something I'd love is to see how to adopt some of the more decent frontend practices (e.g. having a component library) but rendering them using a backend that isn't something like NextJS. Can you import a component library and use it in a Flask app, say, or are the worlds just fundamentally too different?
Thanks - interesting! I was more thinking of a workflow where a designer makes a component in Figma, and it's probably polished and made available in a component library by a frontend/UI person, and it's probably a React component or a Web component. I was wondering whether that workflow was at all compatible with any of the non-JS backends that are reclaiming frontend a little.
You can use datastar with ANY backend and templating system that you want - you just have to return html with the appropriate (and standards-compliant) attributes and, optionally, js expressions.
Use php, python, rust, or anything else that you want. They all have various approaches to html templating.
Everything about this seems so bad! The website doesn't look serious at all. The code adds crazy html attributes, even more crazy than other crazy front-end frameworks like `data-on-input__debounce.200ms="@get('/examples/active_search/search')"`... this level of wrong is incredible.
What more do you need than writing something like `data-on-input__debounce.200ms="@get('/examples/active_search/search')"` in the DOM as being crazy and wrong?
The poster provided an example of poor abstraction. HTML for display, JS for client side logic. Combining them is part of the problem with other popular frameworks.
No, it's the entire point of datastar - that you don't need much JavaScript at all because some simple html attributes do most of it for you, and any extra can either go in-line, or you can also just fallback to separate js scripts if needed.
I mean, that seems ugly to me, but... Makes intuitive sense and is fine actually? Is HTML a rich language in which to embed stuff like this? No. Does this clearly get the point across? Yes.
[Edit: this should've actually been attached to the GP comment. I agree with the parent.]
Isn't that the whole point of hypermedia frameworks like Datastar and HTMX? It's to extend the declarativeness of HTML.
If you don't like the syntax, that's your preference. But I'm curious to hear why this is "wrong". Since that's a more objective thing, we can discuss it
But again, the API design woes are subjective and I think it's perfectly fine to iterate on getting this to a nicer state.
"Wrong" to me suggests a gap in the understanding of fundamentals or of how things work. If the ideas of Datastar are fine to all of us, and our issues with it are ergnomics, then that can be a more focused discussion.
We are limited to what is possible in the data dash-* spec. If you have better syntax that's going to work everywhere in every browser please let us know!
This wilful insanity is completely incomprehensible to me (HTMX and lit are also fully infected with it): "Oh no, we are just HTML, we can't do anything" while literally doing tons of things outside of HTML.
> What's your alternative that stay HTML spec compliant?
Again: you literally have a custom Javascript-like DSL in Datastar. Use that.
It's like the "it's just HTML" or "it's HTML-compliant" mantra somehow damages the brain, or something.
Edit: this custom JS-like DSL is so prominent and such a crucial part of Datastar, that it's referenced in the very first paragraph of reference: https://data-star.dev/reference
Oh, look, your HTML-spec-compliant thing in which it is apparently impossible to do anything outside data-* attributes somehow calls external functions, and updates signals, and reads signals, and does all sorts of things:
Both Datastar and HTMX have the same issue: they want to pretend to be HTML. So they force themselves into writing several DSLs like this to pretend that this is still "just HTML".
Since they have a full "Datastar expression" language, I'd just expand that. Then you wouldn't need these weird constructs:
What here has been reinvented? There's nothing out there like datastar. Htmx + alpine is similar, but much heavier and less functional.
And God forbid someone try to make open source sustainable by charging for largely-unnecessary functionality and actively dissuading you from buying it - as the devs do regularly in their discord.
And phoenix doesn't work with ANY backend language or framework.
Simple features? Making those imperative APIs declarative is not very simple for me, but you're welcome to not use those features and write them yourself.
A couple of things on the Phoenix point:
- Requires the adoption of Elixir and Datastar is backend agnostic
- Adopting Phoenix feels more suited to greenfield projects, but Datastar is suited for that and brownfield ones.
- Websockets vs Server Sent Events has been really interesting and nuanced
In what specific areas Phoenix Live View is so far ahead? Do you mind elaborating?
The unfortunate disadvantage of Live View is that you need to write Elixir. A lovely language, but it would be hard to sell in company that use only <SOME_LANGUAGE>. The hypermedia libraries like d* and htmx can be used with any backend.
It amazes that we are a still solving low level problems for CRUD applications. No, you cannot develop highly interactive non CRUD app with Datastar/HTMX/Unpoly.
We need higher level abstractions and solutions. How the client and the server communicate is still low level for developing apps, more so CRUD apps.
HTMX doesn't do any client side interactivity. You need something like alpinejs for that. And alpine doesn't have signals, which are super useful (when used judiciously)
Datastar uses sse rather than websockets, which is simpler and more compatible http,web standards etc. Htmx can use either sse or ws, but both are a separate plugin.
Consequently, datastar does much more than htmx+alpine+ws/sse, in a fraction of the js size.
Htmx (and alpine, I think) introduces it's own html attributes whereas datastar uses spec-compliant data-* attributes (hence the name)
Htmx's api is much more complicated due to all of the extra attributes. Datastar is more concise.
Datastar has backend SDKs for all popular languages, to make it easy to send html fragment and signals updates via sse.
There's lots more as well. Very worth checking out.
Does anyone have a detailed comparison of the functionality you get from Datastar versus HTMX + Alpine.js? My impression was that Datastar was trying to be a lighter weight combination of the other two.
Docs mention absolutely nothing about offline use, service workers, or PWAs. How am I supposed to build a modern web app with that? Rely on always having internet?
I'm extremely interested in this sort of use case and am regularly disappointed to find that very few others are. And even fewer are interested in doing it in a hypermedia-first way.
There's two ways this could be approached.
1. Just cache the backend-generated html that has datastar attributes in it, and serve it from a service worker. Datastar library in the main thread won't know or care whether it came from service worker, edge worker or your backend.
2. If there's a need for dynamic data/templating (eg user-specific into), you can do so in the service worker - if you've stored the templates and data already. But that has little to do with datastar - you'd have to do that in any case.
However, service workers have limitations with regards to things like dynamic script imports, using es modules etc. You can send messages to a dedicated web worker which handles rendering and returns the html, but it does get complicated. Sharedworker would be even better but android chromium still doesn't support it - but they're finally trialing it and hopefully it'll be available in 6 months.
The only datastar-specific consideration is if you want to do something like stream sse events from the "backend" to the datastar library in the main thread/dom. The TypeScript/JavaScript sdk works just fine in the service worker as well, and can maintain a long-lived connection to periodically stream new messages. Of course, service worker lifecycle is somewhat of a black box and out of your control, but that has nothing to do with d*.
So, overall, yes you can use datastar offline. But it comes with all the issues that you'd face with another approach.
- this would mostly work if the sole consumer of your API is the frontend, since it returns HTML, rather than, eg JSON that would be consumed by a CLI, some streaming tools, clients, etc
- this would not really be suited to some Capacitor app?
It can be, but doesn't need to be. It's highly compatible with cqrs and event driven in general, usually done with sowmthing like a pubsub event bus (NATS is most often used). Whether you want to go all the way to event sourcing is up to you - it's completely agnostic as to how you do your backend.
Seems pretty elegant if you are willing to give up on the type safety of TSX. I wonder if this can be combined with it somehow. An example using Fresh would be great.
With Datastar your front end logic (if any) is minimal, and you can use any typesafe (or not) language you want for the backend. If you build webcomponents for your Datastar frontend you can use TS to your heart's content.
Datastar itself is written in TypeScript... And it is completely agnostic as to what language or approach you use in your backend, so long as you render html with the appropriate (web standards-compliant) attributes and expressions. Use ts, rust, lisp, or whatever you want on your server.
I actively look for non-TS frameworks. To me it's always been useless overhead. It really is a outcome of startup/enterprise teams that are so far away from how money goes in and out of a business that they sit around and think TS is a good usage of time. It may hurt their feelings to know plenty of people run successful teams and entire businesses without type safety. It also makes the code look like shit.
I mostly agree with this. TS works great in large enterprises where developers don't trust each other. But if you're working on your own, or in a small team where you can easily agree with each other, TS just becomes unnecessary overhead.
At least, that's my experience and I don't like it when people say that everyone must absolutely use TS when they don't know anything about your situation.
I just think you are wrong. It mostly takes mindshare from rookie developers that are insecure and need to cover all their bases lest they be called bad at being a developer. Many grow out of this insecurity and see things for what they are. TS is OKAY, but it's not worth my time.
Well I'm objectively correct about it preventing bugs. This is one of the few things that has been fairly conclusively shown by studies.
As for productivity, maybe it doesn't matter on tiny projects or short-lived one-man projects, but for anything else I don't see how you can argue it. You basically can't refactor reliably without static types, you can't navigate the codebase quickly without static types, and it makes it more difficult to understand other people's code without static types. Sure it might take slightly longer to write in the first place but that is easily outweighed by all those other benefits. Like, by an order of magnitude.
It sounds like you are one of those "well I don't make mistakes" developers.
You basically can't refactor reliably without static types, you can't navigate the codebase quickly without static types, and it makes it more difficult to understand other people's code without static types.
What a great interview test. I’d absolutely not hire someone that can’t do that. It also doesn’t make any sense. That’s like saying entire codebases without types can’t be worked on. Huh? Those are basic things you can do in any language.
This Typescript anointing has got to die. It’s lame, and most of you overuse it even when it’s appropriate.
I said reliably. Without static types in large codebases you are likely to miss things. E.g. you rename a variable but don't catch everywhere you should have updated it.
If your data model is open and not closed you only need to change the location you are changing. This is how the internet works. Types that don't support this model actively hinder refactoring.
Having followed Data-* from its beginning, it's now fascinating seeing how these threads play out. The troll-y takes from those who took one brief look at the front-page and felt compelled to tear it down in their own 'worthy, hot-take'.
Like T3, the critiques usually compare to JS stacks or how non-HTML it looks(!). It just doesn't make sense to them, so...
"I know what I must do, instead of looking into this more, make sure I have a fuller picture of this thing, HN NEEDS to know now".
You have every right, of course. But you undermine yourselves as soon as you post - you clearly have not taken any time to understand where it came from, why it is what it is. Your responses are not, say, genuine questions for clarification or helpful critiques. For the most part they are straight out judgements: 'This is just wrong'.
Of course in your minds the front-page MUST provide you all that in under 30secs, yes?
Like, the 'hidden', 'real cost' is ON ANOTHER PAGE?! - instead of reading the reasoning behind it and why YOU won't need it.
You don't need to immediately post here - you are not really looking for answers, are you? You could've just read the website and history of Data- for that?
To all the 'clarfiers' here like Delaney, Anders, nchmy, and others, thank you for the comments refuting most of this stuff, it must be tiring.
All the best,
An old, grumpy, ex-HyperCard 'programmer'.
*You don't need to validate your comment by reply to this, many comments here are valid and you know it.
Oh great, yet another front-end framework, but this one is with paid features as well. Are we seriously going to pretend this isn't getting out of hand?
they're a 501c3 non profit and they actively dissuade people from buying the pro license, because YAGNI. If you want those features, or just want to support a genuinely innovative framework that people spent years building, you can get the license. Its not that expensive and is a one-time purchase.
Datastar is run by some principled (and opinionated) guys who are immensely generous with their time and supportive to newcomers.
What’s getting lost in the whole kerfufflw over the Pro version is that this is NOT a monetization strategy. There is no intent to hook you - in fact they go out of their way to tell your you don’t need it. And the company is a registered non-profit.
Based on their own extensive experience they know which tiny set of features are likely to appeal to a very small group of people and at the same time are likely to incur the vast majority of support burden. By keeping these features out of the core they keep the base product simple and universal.
It is in fact an innovative and fair way of (a) signaling that these features are likely footguns, (b) getting just some of their costs covered by the people who either need the most support or are getting so much value from Datastar that they’re paying, (c) thereby freeing up their time to spend on the larger community.
I don't have any problem with them charging for whatever they want to. But let's not make up excuses.
1. You should be using CSS for animations
2. You should be using data-on to listen to the window level resize event (which doesn't require a pro plugin).
3. Scroll element into view can be replicated with data-on-load="el.scrollIntoView()"
The main benefit of pro is supporting the project.
> You should be using CSS for animations
CSS can only animate appearance, not HTML attributes like the `value` of a `<meter>`
> You should be using data-on to listen to the window level resize event
That event is fired when the window is resized, not when an element is resized
Copy-to-clipboard is a support heavy feature?
Do you really think Datastar is of such ridiculously bad quality that even simple features require a lot of support to get working?
Use the Navigator API directly then? Why do _need_ a declarative version of it?
I implemented copy to clipboard in datastar in maybe 1 minutes with an AI agent. What exactly are you providing to the world for free?
Pointed critiques of barely-concealed misdirection.
For those of you who don't think Datastar is good enough for realtime/collaborative/multiplayer and/or think you need any of the PRO features.
These three demos each run on a 5$ VPS and don't use any of the PRO features. They have all survived the front page of HN. Datastar is a fantastic piece of engineering.
- https://checkboxes.andersmurphy.com/
- https://cells.andersmurphy.com/
- https://example.andersmurphy.com/ (game of life multiplayer)
On both the checkboxes/cells examples there's adaptive view rendering so you can zoom out a fair bit. There's also back pressure on the virtual scroll.
> They have all survived the front page of HN
Right but this says “bring your own backend” in big letters on the splash page. So surviving HN isn’t really something Datastar is doing here.
Sure. You're not wrong. I'd argue Datastar's fat morph model is what lets me write a much simpler backend that's amenable to batching/better compression. It's also fast enough on the client that this immediate mode style rendering of HTML is actually possible.
I'm also not doing anything fancy on the backend, I'm using a dynamic language not known for it's speed (Clojure). Really, most of the work here is being done by SQLITE, batching, and brotli compression, which you can all use from any language.
I will concede that languages with access to real threads (GO, JAVA, C# etc) do better out of the box for this kind of CQRS architecture.
I don't understand what point you're trying to make.
He shared examples of some immensely dynamic apps that are running on a potato and survived HN, showing that this simplifies things greatly and can scale. Hypermedia-first is a very viable, and simplified, approach.
I think my point is pretty straightforward. Datastar is a front end framework. If any frontend framework can’t survive HN traffic it’s doing something wrong in a truly unholy way.
Surviving, or not surviving, a traffic influx is a backend restriction.
It's a frontend framework and a backend SDK in multiple languages, for SSE and more.
Data star is a backend agnostic backend framework that happens to have a 10kb on the frontend. You should probably read the guy before coming to conclusions on what it is
And yet, most frontend frameworks barely on even the simplest of sites. This is not only well documented, but most of them have now moved towards some sort of SSR hybrid - at great complexity cost.
I disagree with “most”. 99% of the sites featured on HN do just fine.
OP is a talented developer that wrote a backend capable of surviving a ton of traffic. Other developers on the internet have written backends that cannot sustain a ton of traffic.
The choice of frontend framework is separate from both. You can write a performant web app that uses React. I’m sure you can write one that falls over immediately with Datastar.
Thank you for the kind words.
I think for me the key thing is Datastar lets me keep most of my state on the backend, which makes the backend much simpler to write. It also lets me do immediate mode streaming of the HTML, which again is non trivial in something like react without a lot of added complexity.
So it's an enabler in that sense. But, yes it's totally possible to write a backend that falls over with datastar like any technology.
I also agree, that Datastar does benefit from backend experience and if you don't have that experience it can to some extent feel like:
"Draw some circles. Now draw the rest of the Owl".
That's a fair point.
But I think that the real point that /u/andersmurphy was trying to convey was that hypermedia is VERY performant because immensely talented C++ engineers have optimized precisely this, for decades. The notion that "frontend" devs have that the DOM can and must be managed via JS is simply ridiculous, and is one of the primary things that datastar and hypermedia approaches in general are trying to combat.
In fact, he openly states elsewhere how the sites' backends are actually done in a deliberately dumb, unperformant way, where the backend streams the ENTIRE DOM with each sse message, which gets morphed into the DOM. He could have done something more granular, like streaming only the checkboxes that have changed, but it wasn't at all necessary because the dumb way worked well.
Moreover, the SSE streams benefit from immense compression ratios because somehow the compression window overlaps across messages. Something like 95+%, IIRC.
> The notion that "frontend" devs have that the DOM can and must be managed via JS is simply ridiculous
The idea that UI state should be managed locally is ridiculous now?
Its interesting, and telling, that that's the only part of my comment that you replied to...
Anyway, browsers are built specifically to render HTML. And html/hypermedia is specifically meant to manage and transfer state. The web has lost its way. If you want to read more about this, this free book is a great start: https://hypermedia.systems/book/contents/
Or the essays at HTMX https://htmx.org/essays/
Good luck to you
I don’t feel the rest was really worth engaging with. SSE is a really interesting technology but again, it’s frontend agnostic. You can build a great SSE solution with any other framework.
I read about approaches like this and I still don’t see the reason to do them, beyond “because you can” and “JavaScript is bad”. The separation of data and display logic between server and client is a sensible separation of concerns. It’s the way any non-web solution does it and I don’t really see what would make the web so special that a different approach is worth it.
The entire point of frameworks is so that you dont have to engage with lower level things... D* makes it exceptionally easy to work with SSE and all sorts of web APIs.
that's fine that you dont see any reason to use the web as it was designed to be used. But I dont see any reason for me to engage any further with you.
You do it to reduce complexity.
The problem with JS heavy frontend is you now have TWO applications. The real application, on the backend, which makes all the decisions, and the frontend application.
You have TWO states which are being mutated independently that you now have to sync.
reducing complexity is important but is hardly the fundamental reason to choose between server side or client side rendering or state management. that just depends on the nature of the problem and the context it has to be solved in. sometimes it doesn't matter, then you have a choice.
you guys are furiously arguing (and not really listening) about this or that hammer being good enough to treat every problem as a nail, like ssr was the "holy hammer". well, it isn't and not every problem is a nail, and while datastar looks excellent to me i simply would have no use for it if i needed client side logic or state for whatever reason.
I agree, but the kicker is that most websites can be server side rendered trivially. Most web "apps" are not applications. They are forms and pages.
The client side logic is, usually, just to make the developers happy because developers love complexity.
Obviously there are many exceptions. But not every application is exceptional. We all hate to admit we're working on simple or trivial things but... We are. Often.
Why? What's stopping you putting some state on the client with datastar. Just because it's discouraged doesn't mean you can't.
It has a whole client side signal system.
interesting! i wasn't aware of that, thanks for pointing it out.
to be clear, my point was that where the state has to be managed is more often than not an architectural decision given by the requirements, and the choice of tools should be a consequence of that, not a precondition.
>This is not only well documented
Please, I'm begging you to share this "well documented" fact that most frontend frameworks barely "handle" on the simplest of sites.
Certainly! Here's a good start (React is the main focus, but it extends to many other frameworks)
https://infrequently.org/2024/11/if-not-react-then-what/ (there's MUCH more at this site as well)
https://www.zachleat.com/web/react-criticism/
The HN comments for that first one gave us the worst "advice" that this site has ever seen and might ever see [1]:
> Nothing that is visible "below the fold" should ever run or load until the page is scrolled down by the site visitor.
The commenter septupled down and eventually blamed trolls :D
1. https://news.ycombinator.com/item?id=42285326
Sorry, I'm not understanding what relevance some HN comments have to do with the link I shared...?
Though, for the record, I agree with everything that person - and other sibling commenter - wrote. It is quite obvious the people were not reading and replying in good faith.
Okay! That is a wild thing to admit!
[flagged]
Can you please not post like this here? It's against the site guidelines: https://news.ycombinator.com/newsguidelines.html
You're right. Sorry, can't delete the comment now.
The whole point of this framework is that a ton of the logic remains on the backend, with live connections to the frontend. At least for me the performance and hosting cost implications of that was the first question that came to my mind when I looked at this, I don’t understand how answering this question isn’t relevant here.
It's global multiplayer, you can see everyone changes simultaneously. There's no client side state for the checkboxes they are all on the server.
Datastar is one of the few projects in the web ecosystem in years that feels like a paradigm shift for the better.
The author (Delaney Gillilan) has put a lot of thought into how modern web development should be done from first principles, while leveraging core web technologies like SSE, and eschewing complexity as much as possible. His proposed GoNaDs stack[1] enables some truly impressive web applications. I highly recommend watching this talk[2] to get a sense of what's possible.
I wish the best of luck to the core team and contributors, and hope that this framework, or something like it, disrupts the modern ecosystem of popular web frameworks and stacks.
[1]: https://gonads.net/
[2]: https://www.youtube.com/watch?v=0K71AyAF6E4
I was just commenting to someone yesterday how it's a testament to how refined this is that he's been working hard for over 2 years to produce such a small amount of code. I can only imagine how many variations he's gone through in order to get to what we see today - a refined, simple, easy, powerful way to do SSR-driven declarative interactivity, etc
And if that isn't enough, he's also on the cusp on releasing a web component framework that puts Lit to shame, AND a css framework that looks equally impressive.
He takes some getting used to, but the guy is a genius and is enormously generous with his time and deep knowledge.
I really do hope that d* gains more traction - the web could be such a better place, just at a time when native apps are literally under assault and censure by app stores and autocratic governments.
> it's a testament to how refined this is that he's been working hard for over 2 years to produce such a small amount of code.
In the words of some famous people:
> Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.
> Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
I think Delaney definitely follows these principles, which is refreshing to see in modern web development. The author of htmx, Carson Gross, also deserves a mention.
> And if that isn't enough, he's also on the cusp on releasing a web component framework that puts Lit to shame, AND a css framework that looks equally impressive.
Ah, I wasn't aware of that. I'll keep an eye out for those. I see they're also opposed to Tailwind, which is an absolute abomination IMO. I don't have experience with Lit, but it seemed like a nice abstraction over core Web Components, which feel like a half-baked solution.
Ideally, I want these things to be part of core web technologies, and for web developers to not need to rely on 3rd-party frameworks. Web browsers should be better. Web servers should be better. The entire web development and user experience should be simpler, more secure, robust, etc. But given that large corporations dictate what that experience is like, I'm glad that we have fresh thinking from people who are not already engrained in this system. While the ecosystem catches up, I would use anything they produce, or build my own[1], over using established and popular technologies any day of the week.
[1]: https://github.com/hackfixme/miu
Yeah, i'm a big fan of his/theirs.
> Ideally, I want these things to be part of core web technologies, and for web developers to not need to rely on 3rd-party frameworks.
This seems to be his prime directive. Everything is standards-based. Moreover, if Datastar evolves at all in the future, it'll probably be because the web has improved and made parts of it redundant.
To clarify, he's a big fan of tailwind as well. But thinks that it is solving a problem that doesnt really exist anymore due to modern css. Im excited to see it, because i also think Tailwind is an abomination.
You can read more about stellar css and rocket web components in their respective channels in their discord https://discord.gg/bnRNgZjgPh There's some VERY cool sneak peeks there. You seem like the sort that would fit in very well there
(ps, stellar and rocket are used on their website already. Just read source to look at it)
299usd is simply unaffordable for a lot of people though.
Hey, I'm curious about the web component framework and css framework you mentioned. I was unable to find info about it, could you link me?
THeres not much on the site yet, as he's still baking it. https://data-star.dev/reference/datastar_pro#stellar-css
But theres rocket and stellar channels in their discord where there's sneak peeks. VERY cool stuff https://discord.gg/bnRNgZjgPh
Too bad it will only be available as a Pro feature. I’m not against supporting hard work by any means but framing it as an alternative to free options set me up for a bit of disappointment. But I agree with everything else you said that this seems very impressive.
Sorry, I had no intention to frame it as being free. Fair point though.
Do check it all out though - it's a breath of fresh air.
No worries. I really dig all of this and think D* is a great product. Looking forward to seeing what else comes out.
Thank you for sharing the youtube links in particular! It's nice to get some background info and intent for interesting libraries.
Related ongoing thread: I switched from Htmx to Datastar - https://news.ycombinator.com/item?id=45536000 - Oct 2025 (223 comments)
There is also https://news.ycombinator.com/item?id=45537372, which I'm trying to figure out what to do with (bear with me... edit: ok, I found a place to merge it: https://news.ycombinator.com/item?id=45536535)
Previously:
Datastar: Web Framework for the Future? - https://news.ycombinator.com/item?id=43655914 - April 2025 (155 comments)
Thanks dang!
Question also: do you somehow keep a "mental catalogue" of related articles or do you use some tool to find these?
Mostly I just use HN Search but in a sped-up way that relies on a browser extension.
https://news.ycombinator.com/item?id=44861185 (and the other stuff linked from there) has more details
Not sure why the community is being so hostile like use phoenix or it charges or its hostile
Like no its not.
This is a genuinely cool project and most parts of it is open source and it can run on any language and its interesting that they are looking at a way so that they can fund the development of it in the process as well
Its their project and they are the only ones entitled to really push things the way they want.
It looks cool and I might hack with it in golang. Thanks a lot for your work.
One minor feedback I want to share is that although I don't mind having a charge for things, 299$ especially in my country is a seriously lot of money and I think that some of these might be needed by me if I go full in on it but I genuinely can't afford even the single tier one.
Could the non profit atleast have some dynamic pricing for all countries sort of like steam? And/or donating to people.... like I mean genuinely no shade whatsoever at the datastar team but animation etc. are already available in sveltekit for free and I don't want it for free but I just genuinely can't afford it here...
Another suggestion could be to lean very heavily on the entreprise who can afford such things much rather easily or maybe even more and maybe you/team can lower the price for solo so that solo devs can try things out and not be worried for 299$-ish y'know?
Deep respects for the project, Its another tool which is mostly free so the community's reaction is very weird for that...
But if I can be genuinely honest, I am saying this as a guy who has never paid any community/anything online but I would for the first time genuinely sponsor the project for 5-10$ (I know it ain't much but that's all I am comfortable with donating as a teenager right now)
Can you please charge atleast the solo level to atleast be the price of the silksong? I don't know but I will try the project out as it looks super cool
This is the only valid and reasonable criticism I've seen here so far, kudos to you.
299 is, indeed, inaccessible for many people. But, the devs live in places where things cost more, so its also a tiny price compared to the relative value that they provide.
I do think that some sort of geo-relative pricing structure would be worth looking into, but how does one even implement something like that? Is there something that makes it all "just work"? I suspect not. Moreover, the devs have already given away so much of their time - it doesnt make much sense for them to invest even more of it into designing a pricing system like this, from which they are going to possibly earn only a negligible amount from. Perhaps this is a problem that you might like to address yourself?
Anyway, the devs are very clear that most people should never need the Pro license. 95+% of the functionality and value is available for free in the open-source library. Use it, enjoy it, learn from it, profit from it!
What I've done in a project once is use Purchasing Power Parity: basically, there's an index for purchasing power, and you adjust your pricing based on that. It's implemented in some major payment platforms, like Gumroad: https://gumroad.com/help/article/327-purchasing-power-parity
Datastar author here, neat idea. Join the Discord and talk to us about how to implement. We're just a few guys and just don't have the cycles to explore every option for every facet of the project. Some of this is pure overhead
Yeah, something like PPP seems to be the way to do it. But it seems non-trivial to implement in reality. Gumroad consequently charges 10% fees.
I think it is very unlikely that Datastar would implement something like this - but just as a matter of limited time, rather than lack of empathy with the situation.
Still, people are welcome to bring it up in their discord - perhaps they will actually do it!
And i say all of this as someone who lives in central america, and am building a nonprofit project for which i have zero funding assistance. I already bought the pro license (which is 60% of my monthly cost of living...), mostly just because i see huge value in it all and wanted to support them.
Oh wow, glad that somehow my idea of purchasing power is implemented by something like gumroad
I had checked literally everywhere including even thinking what if the devs publish it on steam or epic games but that would be weird and steam for example takes 30% cut
I had forgot to check out on gumroad but today I learnt something new thanks to you so thanks!
It seems that the dev of data-star have also commented on this and it would be lovely to see if they could implement this or any other ideas that I or the community is stated, it is nice to hear that they are taking feedback which is really nice!
> Is there something that makes it all "just work"?
Stripe?
You can geolocate via IP as a first pass for the frontend, check the card’s country code for the order, and then the billing/shipping/account address if it’s really that important (like when your service has different costs depending on locality).
I’m sure there are services that can handle it for you but it’s so simple to implement price discrimination to whatever threshold you want that I’ve never checked. The hard part was always figuring out the false positive/negative rate and the frontend flow when the different steps disagree on location, but those are edge cases that don’t really matter with zero marginal cost digital goods.
I pay for a lot of software eg I used Screen Studio a couple of times, liked it, dropped a couple hundred bucks for it. Good work from a solo dev.
Datastar have basic functionality in the pro license. Basic UX capabilities like animation and copy to clipboard.
The devs aren’t “very clear” that most people should never need the license. That’s just PR. They’ve picked a bunch of features that even a teenage hobbyist might want to use as part of a trivial application. There’s no relationship between the locked features and their value or complexity.
I would avoid any web framework that might get in my face like this, at some random moment working on a pet project to try out a new thing, with an invoice demanding payment if I want to use random features.
“Perhaps this is a problem that you might like to address yourself?”
No I’m good, thanks. The Datastar community needs some work, going by the attitude of their defenders in this thread. Someone else is saying the way they charge money isn’t a monetization strategy. It’s nonsense.
Nothing wrong with charging money. Just be honest about it, take it in the chin when people don’t want to buy, and ideally have a pricing strategy that makes sense.
They literally don't care if people want to buy it. They tell people not to. So there's nothing to take on the chin.
> Not sure why the community is being so hostile
I cannot speak for other people, but here is where I'm coming from:
- There is no mention of Pro on the home page, I only found out about Pro after flipping through the documentation. This comes off as sleazy, like "Look at our cool open-source project", and then after they have you hooked they go "oh, if you want all all of it you gotta get Pro". - Pro is locking genuine features, not just support, video tutorials or code examples. - It is vendor lock-in, if you want to rely on any Pro feature you are now at the mercy of the maintainers. - What make the vendor lock-in particularly problematic is the fact that without Datastar your website will not work. Sure, it does suck if your CI service, test platform or whatever does not work, but as long as you can compile and deploy the code you will survive, even if you have to do it by hand. Not so with a library. - There are no examples of what your are buying. At least with the non-Pro features you can try them out for free without any commitment, but when it comes to Pro you are just taking a blind guess as to whether any of them are what you want. Compare that to the Pro examples Alpine has[1], where you can play around with them in the browser. - I don't know if you get source code, but even if you do you cannot share your improvements with anyone.
Note that I never mentioned the price. The value will vary from person to person, for some it will be unaffordable, for others it will be a great deal (e.g. freelancers who will make the money back within one gig). I got my employer to sponsor Alpine a year ago and they have given more to Alpine than what Datastar are charging for Pro.
For reference, two projects which have non-objectionable Pro versions are Alpine.js[2] and React Flow[3]. React flow even have a link to their Pro page right on the home page.
[1] https://alpinejs.dev/components [2] https://alpinejs.dev/components [3] https://reactflow.dev/pro
congrats, you have described external dependencies
The problem is that a small company still needs to provide support from their own very high cost of living country.
$5 doesn’t cover the cost of you filing a single support ticket.
I understand it sincerely.
Is there some middle way that I could use these datastar attributes/paid offerings via lets say 5$ but I wouldn't get support from the team itself.
I think that they might have a discord server as well and so I am more than okay to take support from the community itself if I can be honest...
Simply because like me and others, we simply can't pay 299$ when we don't require support.
Could another tier be created that allows people to use it but just without any official support in the sense that maybe you could create github issues or something about it but don't expect mission critical of sorts...
I hope you can see things from my perspective as well & I know some companies / projects which also do something similar where they offer support seperately / at a higher price but using the product itself doesn't cost you / costs you very little and you can always use unofficial-ish help.
What are your thoughts? Do you think that datastar could integrate something like this?
There are so many issues with doing something like this that it's almost never going to be financially viable for small companies.
- Some jurisdictions require some level of warranty, extended refund periods, or limit your ability to avoid liability for product defects.
- You need to spend time doing research to set prices for each country or region.
- You need to combat fraud from people trying to buy your product using a VPN from low cost regions.
- This one is a big one. Chargebacks tend to be higher from low cost of living countries. Payment processors will drop you if your chargeback rate gets too high. Risking a $25 chargeback fee and being dropped from your payment processor for $5-10 payments is often not worth it.
- There are only 20 million professional software developers in the world. If you say half of those are web developers and you are phenomenally successful and 1 out of every 1000 web developers in the whole world buys your software. That's 10k sales. At $5 per sale that's $50k revenue across the entire life of the product. $50k for a team of people isn't a financially viable endeavor.
Yeah I was thinking about it and I get it why regional pricing might not make sense for a product like this... Its complicated and well, it would also hurt the developers actively as well of sorts. So I don't really expect them to do such
Now, regarding 5-10$ payment, suppose we do a 20$ payment one time donation, they are a non profit so they can definitely do fiscal foundation but I can get it why you might not want to do that
I was discovering more about chargeback and other things like taxation as well
I found polar.sh could be a decent approach to a lot of these problems, just create a polar.sh set account and they have a github thing as well where you can allow access to any git private repo to anyone who pays and even a discord integration so you could have support through there out of the box
I think the same can be done through patreon or the likes as well from what I know
all I was trying to say was that yes I agree with your comment and I thought about it and the other comments regarding how 5-20$ wouldn't cover support but what if I don't need support, I just want the code and I can take the support through their discord server/like minded people?
I understand, I truly do, currently I read more about datastar, I have come to the conclusion that they are somewhat not necessary in the sense that I can have sse.ExecuteScript(`console.log("Hello from server!")`) and I think that it could be integrated with something like gsap if someone wants to hack through a animation thing without modifying datastar library itself as well
I still believe though that they should atleast give another optional method imo where someone can pay 20$ as an example to get the template of sorts but no support and using something like polar.sh or patreon or stripe with MOR, it should be pretty easy and well they have to realize that there might be people who genuinely can't afford this as well I suppose y'know?
I am genuinely curious what your thoughts are on why/if they can add a 10-20$ tier which just gives access to the code and no (official) support through github sponsors/patreon/polar.sh and the likes?
And maybe if someone needs support but can't afford it, maybe optionally they could ask it into their server so that like minded people could volunteer to help as well in the process?
What are your thoughts?
they do have a discord server, and it is full of excellent conversation. But I expect that you would receive a similar response to what we've given "sorry, but no. But, also, you dont actually need the pro features. Build with the free version and profit from it"
[dead]
I've been building a frontend with Go, Templ and Datastar for a few months now. I really like the @actions and how the page is updated with the response.
I'm on the fence about signals though. They are fine for simple things like individual text form fields or opening closing a drop-down. But my backend is a Kubernetes style API server. And storing a JSON Kubernetes style resource in a signal does not work because of how Datastar implements parsing the structure into child signals. For me it would be better to just be able to turn this off.
One example where it breaks are K8s labels. They are map[string]string and the key is often hostname prefixed. E.g. example.com/label-key. Datastar can't handle these keys at all and the resulting signals are a mess.
I'm aware that I may be using signals not as intended. But something as simple as data-signals-resource="k8sJson" and then data-bind="resource.metatdata.name" is a great way to work. And it works for metadata name. But it doesn't work if any part of the path needs to be an index in a list or a label key in hostname style.
The other thing I find painful about Datastar signals are the magic about how attributes written something-something in HTML become somethingSomething in JS and all all the snake, camel etc. __modifiers. It's just error prone to work with. Not a great experience.
But overall I still stuck with it so far and am happy with the general idea of HTMX and Alpine functionalities implemented as one and using hypermedia as a general approach. Anything so I can avoid the NodeJS ecosystem really.
When a few RCs back the wire format changed, it was quite a laborious update for me, because using Fiber I can't use the Go SDK and implemented my own. But the wire format clearly changed for the better so it was worth it.
I think the developers are on to something and should keep iterating.
Datastar's ideas look wonderful, and I've thought of adopting it myself, but hobbling the open source version to not compete with pro this early on sounds like a fast ticket to a hard fork. It's not like they command a vast ecosystem that would be reluctant to switch.
[edit: Seems like the model with an open core and some closed plugins could work out fine. If not, everyone's got options. Wishing success for both the D* developers and the users.]
> sounds like a fast ticket to a hard fork.
Indeed! Could you do us all a favour and fork the pre-pro plugins and make them compatible with the current iteration of d* pro? They're all like 50 LOC, after all, so should be simple.
Were I so inclined, I'd make them compatible with non-pro. And more likely just take my fork in whatever direction I cared to, just keeping the wire format compatible (and likely negotiable). But it's a project best left for people actually using Datastar, not curious onlookers like me.
Given the simplicity of doing such a fork, and that no one has done it yet, perhaps this is a non-issue?
Same as my other comment, it seems like you are involved in the project. Stop responding like this is facebook or reddit. Here we offer our expertise with all good intentions. They haven't said it is a simple task, you are assuming that they said that.
If you can't take constructive criticism or even respond to opinions you disagree, then it is better to not respond at all, because it is bad PR.
I understand that maintaining a project like this is hard, that you need to be compensated and that open source corporate usage tends to be disgraceful. But that's not what they are telling you. They are just shating their opinion, which is part of your potential customer opinions.
Share the rationale behind paywalling common features. Give us, if you have to respond, why you hide the pro features off the homepage, etc. Instead of this kind of childish reaction that adds nothing
I'm a user of datastar, nothing more. And I'm defending the developers against all of the baseless slander here.
And now Im forced to defend myself against your baseless slander. If you cared to read, you'd see that I said it was a simple task to update the pre-pro versions of the tiny plugins to be compatible with the current api, because it would be. And they replied on that basis.
The rationale has been shared many times - here and elsewhere. And the pro features are not "hidden" - they're right there in the header. And it's not for any nefarious reason - precisely the opposite, in fact. They don't want to appear to be flogging something. Similarly, they don't advertise any of the pro features as being free, anywhere.
But, I brought this all up with the devs earlier and suggested they add a small link or banner or something to the pro license and they said they would. But not because it's a good or necessary idea, but instead just so all the trolls won't have even the wobbliest leg to stand on in the future on this topic.
Please take some constructive criticism - you have no idea what you're talking about here, in any regard. It is childish. Please inform yourself in the future, especially when you want to try to correct someone.
"Hobbling" is too strong a word. There's a handful of attributes and events that are only available in Pro and none look fundamental to the operation of most sites [1]. In fact they could all probably be replaced with a bit of custom JS sent up from the server.
[1] https://data-star.dev/reference/datastar_pro
Please do! I highly recommend doing that, PLEASE FORK
I have already seen a few of your responses to criticism coming up toxic like this. They don't need to fork it, but some of your potential customers could. They are explaining to you their opinions, and in HN, this is very valuable.
Most of us have some decision at companies, which are your real customers, and criticism like I've seen you respond boldly and badly, is the criticism I think you should review and take into account.
Personally, I like everything of the pro, except the features that you decided to exclude. Doesn't seem pro features, but features you ramdomly decided not to open source them, and that could be ok. But instead of doing it like this, maybe put a restrictive license so that companies with more than 5 people have to pay.
But I think you should focus on premium/pro features that are really a plus, like your debugger, the bundler, etc. And find features that aren't common and give a plus.
And it is an opinion which you may disagree with, but if you respond to me, don't do it like that, because to me, it is not professional and I'll tend to avoid doing business with people that respond like that
Maybe it is because I'm a bit too deep in the React ecosystem at this point, but once you start trying to do any reasonably complex task, this seems like it would be significantly harder to reason about.
Also, unless I'm misunderstanding it, this revolves a lot around the backend returning HTML to do backend-as-frontend, which given my previous experiences with the concept, I wouldn't want to touch with a 10ft pole. When you consider users with extremely bad internet connections (there are still people on dsl/older satellite/2G), having to make more requests to the backend that return larger blobs of html (as opposed to fewer requests that return JSON when it is relevant) will result in a significantly more degraded user experience
In my experience from using react apps on 2g/3g… I would much prefer the html. Usually, you get the content in 1-2 seconds with html, where you could end up with a react apps that never loads at all. Why does it never load? Because enterprising engineers usually invent their own timeouts that make no sense when you are dealing with bytes-per-second. There’s already a one minute timeout on the socket, and it knows if it is still receiving where your application has no sense of progress.
Please don’t reinvent things.
The issue is that if you have to make more requests overall, there is a non-negligible rtt for each of those requests, which on slow connections can add up very fast
Try my demo [1] on 3G slow. It works fine.
Turns out brotli compression does wonders.
[1] https://checkboxes.andersmurphy.com
on real 3g, seems to load in about 5s. As good as hackernews imho
Yup for initial load. But the subsequent interactions which each require a network hop and send down the whole page are lightening fast.
Because once that connection is primed you are off to the races.
"this revolves a lot around the backend returning HTML"
→ This is the way the Web used to work in the era of 56kbps modems (also, with ten levels of "<TABLE>" for layout).
Yeah and it used to be normal to get up and grab a drink between page transitions.
If you are truly offline, then of course this won't work.
Though, it is certainly possible to cache pages since most sites do not need persistent state - it's just ephemeral things like toggling a button, linking an input box and another caption, etc...
Though you could run the datastar js sdk from a service worker and if you've synced necessary state to browser storage, you could have your backend there.
Also, for slow connections, compression is very powerful - especially over an sse stream where there's redundant info being sent. Another comment here has links to immense demos and the compression ratios are north of 90%.
Also, slow internet is often also associated with slow devices, which cannot handle the bloat of React, css-in-js etc
Datastar VASTLY simplifies everything while sacrificing essentially nothing in the way of functionality.
"Frontend" is a huge field.
Some people write their own websites where they blog (where Wordpress would be enough), some build shops with mostly static content that has to load fast but has no real interactivity, others build full-fledged software like Figma/Discord and for the true masters, the DOM is a prison and only <canvas> coupled with GPU-accelerated computations will do.
Obviously htmx and it's siblings are nice for blogs, docs and shops. You don't build a "software" level website with it.
This pattern isn't new per-se. The industry already went through it when moving from DHTML to XHR, and it was (mostly) abandoned for good reasons. Modern DOM patching techniques gave rise to some newer variations, but they still make the same old trade-offs. They don't really solve engineering issues like tight coupling and brittleness, nor network issues like latency and larger payload volume.
So, to me, this feels more like an effort to offer a more affordable solution (in terms of engineering cost) for small-/mid-sized companies, rather than a push to expand the boundaries of the technology. Not a bad thing, but it's just a bit disappointing to see history kinda looping back on itself.
Datastar author here. Yes nothing is new here, that's kind of the point. You seemingly lost her way with jQuery which was just sprinkle on the page but then spa wasn't interesting approach at reactivity while missing all the points of the back end controlling most the state. I'm not trying to be innovative I'm just trying to get us back to some normalcy
Doesn't Astro solve this already?
Not in the slightest
That movie at the bottom makes me want to use it for any next project. Gold. "The planet uncomplicanus" :D
It isn't mentioned on the homepage, but Datastar does charge for the following features:
Prices are $299 for a solo dev and $999+ for teamshttps://data-star.dev/reference/datastar_pro
Wanted to include that this is so the development and maintenance of Datastar as a project is sustainable. And that they are a registered 501(c)(3) nonprofit organization.
https://data-star.dev/star_federation#nonprofit-organization
I tried Datastar and it was great, then I saw this kind of move and it turned me down immediately.
I don't believe it is the right way to play. A Pro support would have been better. Plus the fact that the licensing prevent to use the Datastar Pro in any kind of open-source project. Very strange move.
So if Mozilla had offered to monetize by asking $299 to use the <blink> and <marquee> tags that would turn you off the rest of the browser? Or do you think you could make text blink another way?
Here's how you replace the URL without a page refresh:
Similar snippets for the other few and you have successfully avoided helping fund the framework!> So if Mozilla had offered to monetize by asking $299 to use the <blink> and <marquee> tags that would turn you off the rest of the browser?
I hadn’t thought about it, but yes. I say this as someone who paid for Netscape Navigator.
Then don't buy it, you probably need it
not sure i think this is a good way to fund their work BUT exploring models to make open-source sustainable for the developers does seem like a good thing, no?
I have no problem with anyone charging what they would like, but I do think it should be mentioned on the homepage. It feels intentionally left off which makes me think the developers themselves aren't 100% comfortable with the model.
Yes, it feels scammy. Like you, I've no problem paying for software if it seems worth it. I've payed a few times for Highcharts (different companies) and I did gladly and without hesitation, it also feels that they're being honest about their business model.
This feels incredibly unfair and harsh and is completely unfounded. What's the scam here?
Not a scam. It just feels the same as a scam feels.
One time I had a couch delivered. Two guys show up to set it up. One guy says he needs a tool from the truck and walks off, and the other guy starts talking to our dog, and tells us how he used to train pit bulls, and starts doing some weird hand motions and yelling commands to our dog like he’s casting a spell or something.
I think the guy was probably just not all there mentally, like too much former drug use or something. But it was one of those surreal moments where red flags were going off in my head. I went to find the other guy just to make sure he wasn’t robbing us out the back. Because that’s what it felt like: misdirection, social engineering, a performance.
In hindsight, I don’t think there was anything suspicious going on. But the alarm bells in my head were still completely real.
When we see this “everything is an plugin” but “plugin details are internal-only” and “plugin detail is coming” and “1.0 is released” and “but we will have 40 more release candidates before 1.0 final” and “you could support us with pro” and “you dont need pro” and “we don’t recommend pro” and “you can build anything in pro yourself anyway” and “you shouldn’t use this pro feature anyway and should use CSS instead”, and then when people ask a question about any of this inconsistency, we get juvenile responses like “don’t use it then”, “don’t buy it then”, “fork it then”, “my time isn’t free”, and so on. Even though there is no scam, it’s surreal. Like, “is this really happening?” It sets off the same red flags in people’s minds, even when there is no scam.
Datastar seems very cool as a tool, and the developers seem very technically competent. The problems they face don’t seem to be technical problems.
I don't think that's a fair read of their intentions given how they talk about it everywhere [1]. Pro isn't there to paywall great features, but there to support the development of complex and annoying ones. The example of `data-on-signal-patch` that moved from pro to core speaks to how they're thinking about the project.
[1] Time-stamped it for convenience: https://youtu.be/eMIB4Bkl08U?si=IfTslvZoGXVbou0w&t=1270
I think most people are not comfortable with making money or talking about money. Also people who are bad at making money might be bad at marketing/handling this.
They're completely comfortable with and unapologetic about the model. And they're not hiding anything.
Ok, so their homepage design unintentionally omits that pertinent information. I’ve wasted a couple of hours installing a FOSS package for a personal project only to find out one of the most heavily presented features was a paid add-in. Even if it’s bad communication design add not intentional, it feels like a salesey bait-and-switch tactic in that situation, and they probably want to know that.
Why is pro pertinent info? You probably don't need it. It's just a set of plugins and tools anyone could write if they needed.
What is it that you think is the most heavily presented feature that is actually behind a paid addin? Because they're quite vocal about the fact that most people should not ever need the pro license... They actively dissuade people from buying it.
Which feature are you referring to?
not the OP, but a lot of the referenced functionality looks like I might use it. The problem is I'm not going to bother trying this and investing any effort with even the looming possibility I'll need to pay to keep going. I don't think too many people approach this space with a purchase evaluation mindset like say, "I'm going to test out this grid to see if we should buy it". In that case pay-for advanced functionality is part of the approach from the start.
Also, I can't see this approach working. Getting enterprise adoption of a front end framework is almost impossible outside of React, let alone paying for a niche one, and the "contact us" approach is a non-starter.
Fair enough! That's up to you
If the core of the framework fits what you need, you could write those additional plugins yourself, rather than relying on the official "pro" ones. My understanding so far is the plugin architecture is intentionally designed for this usecase, so you aren't beholden to the official maintainers to add/tweak features for your specific usecase.
This makes the investment in the tool a lot safer, because you can always swap out pieces that don't fit your usecase, rather than start from scratch with a new framework.
In an enterprise setting, I don't believe the cost alone will be the factor that drives the decision. It'd be weighing up the value of the framework (e.g., UI framework/programming language agnostic stack, simpler architectures, delivery speed, performance, cost of using the framework on users) against the license cost.
> Getting enterprise adoption of a front end framework is almost impossible outside of React, let alone paying for a niche one, and the "contact us" approach is a non-starter.
Two questions on this:
1. Why do you think it's impossible to get org buy-in? 2. Why do those same orgs pick frameworks like Next.js, whose full benefits can only be realized with sophisticated and paid infrastructure?
as i've said in many comments and the devs say ad-nauseum, there's very little need for anything in the Pro license. the fully open-source library is sufficient for almost all needs. And it is easily extendable with plugins if you want more functionality than it provides.
i went looking for pricing info and it's the last item in the last menu on the website... it's not exactly up front. i was looking for a "pricing" top-level menu item first, which is pretty standard nowadays.
As ive said in many other comments - YOU DO NOT NEED PRO. The devs are very adamant about this - even aggressively so. 99% of apps will work just fine with the free library. Pro is for some bells and whistles, or just to support people who have invested many thousands of hours into making a genuinely innovative framework, and given it away
OK, then this approach will needlessly discourage adoption AND consume way more resources than it brings in. Under this structure the team needs to deliver the highest level of quality to the smallest paying audience without community support. Further, enterprise is very hesitant to pay for this as a product but are way more receptive to paying for support. Everyone would be much better served without a tiered free/pay product and paid support options.
>> or just to support people who have invested many thousands of hours into making a genuinely innovative framework, and given it away
I've never seen a corporation do this even with projects that don't try and encourage like here.
If an enterprise won't want to pay for the product, what makes you think they're more likely pay for support?
If you're implying they'll only pay when they've seen the value of the product, then the non-pro part of the framework is incredibly feature-rich and can easily do that.
Yeah support model for a lit of projects like this doesn't work. Even companies like the one behind NATS struggle. It's almost contingent on you building a bad product that needs support.
This is irrelevant to my comment. You claimed they're not hiding pricing and I'm simply saying it was a little hard to find ¯\_(ツ)_/¯
> exploring models
This model of using deception to hide costs isn't exactly "exploring". It's tried and tested.
you're stretching the definition of deception here my guy-what do you want them to do? plaster a big sign on the landing page stating that this framework ALSO contains pro features that you have to pay for?
> what do you want them to do?
> plaster a big sign on the landing page stating that this framework ALSO contains pro features that you have to pay for?
Yes.
I for one don't enjoy being on the receiving end of these marketing dark patterns and manipulation tactics.
I've commented above that this seems like a bad approach, but it sure feels like a lack of awareness vs. an intentional dark pattern. The internet makes it so easy to assume the worst but I think this is a case where we should start with the most charitable interpretation.
Dark pattern? Pro plugins are built in the same way as is accessible to any user. What's the real issue?
That you have to go looking, actively, to realise there is a paid option.
[flagged]
> what do you want them to do?
The common thing to do today is put a "pricing" menu item at the top right. That'd be fine.
> plaster a big sign
Yes!! That's table stakes. It's the bare minimum needed to not be considered malice.
Why? What is at stake?
Basic decency of being upfront about your business model, and in general being upfront and not being deceitful in life.
Anyways, constructively, they should add a usual pricing page with a nav for that at the top of the landing page.
It makes it clear that something is priced, right on the landing page.
In the pricing page the cards better make the costs super clear.
I'm confused. Datastar is a free open source framework that you can choose to use or not.
It's weird to call them out as indecent and deceitful for not actively marketing features that they really don't think you need. Even when you think you need it, they've actively encouraged people to analyze their problems to identify if it's a real need or a gap in hypermedia fundamentals knowledge.
Also, the top nav has a Pro page that has what you're looking for.
”Ready for liftoff?” should have a go-pro button. That’s all that is needed.
Why have a call-to-action to something they don't want you to do?
It's only there for Pro users and people who want to support the project [1] and not normal use.
[1] https://data-star.dev/essays/greedy_developer
I do think this is the most sustainable approach for monetizing open source projects, as long as the developer is fair about it. That is, truly make features that only large and/or enterprise users would have a use for, and only charge for those, instead of arbitrarily deciding to put core features of the software behind a paywall.
In the case of a web framework, that choice is a bit difficult. But if the software is fully functional for the large majority of users, then charging for niche features, or those that are actively discouraged, sounds like a fair approach to me.
I'm skeptical about this business model because it can become worse than proprietary software dependency over time. You get lured in by thinking it's open source and free, and might end up paying as much as the developer wants for essential features a few years later.
Like I said, it's crucial for the developer to be fair about it. Running a sustainable business built on open source is entrepreneurship on hard mode. Some companies do a better job at this than others, and, unfortunately, open source has been abused as a marketing strategy on many occasions.
No matter how you look at it, though, any business model that enables users to use open source software is a much better option for users than any proprietary software. There's no comparison. Given the choice, I'd much rather use OSS that is eventually rugpulled or enshittified than proprietary software, which carries those same risks, while also restricting my freedoms from the get-go, and having additional risks I might not be aware of at all (exploiting my data, security issues, etc.).
They're not even running a business on this - its literally registered as a 501c3 nonprofit. Its a labour of love that theyve shared with the world, and they actively tell people that the pro features are unnecessary for most projects. If you want those features or just want to support the project, the cost is quite fair, and just goes to things like traveling to do conference talks etc... They are not getting rich off of this.
Also, they intend for v1, which will be released soon-ish to be essentially the final version of Datastar. There wont be a need for much further development. So there's minimal risk of "rugpull" or even abandonment.
That's admirable. They just gained another sponsor. :)
I do think that they should be paid for this work, and be able to sustain themselves from it. So I wouldn't be against it being a business, or the project having a subscription model. The idea of open source being gratis, and products in general being "free", has done enough harm to the world.
100% so many projects have died because they didn't have a longterm plan to keep the lights on other than hoping for donations and or offering support that no one needed (the better the project the less likely you need support).
If they are charging for features, those features are a business, even if its a nonprofit business. There is also precedent for the IRS to consider it unrelated business income and to make them pay taxes on it, but that seems to be a huge grey area in US tax law.
LOL. What US tax law?
See for eaxmple the Mozilla IRS dispute as an example. Mozilla resolved this by putting their money making endeavors into a for profit org, which is in turn owned by the nonprofit, but the for profit org pays tax on their income. https://www.irs.gov/charities-non-profits/unrelated-business... See also
My point is that this administration isn’t really doing much enforcement.
Yeah it's a weird one people complain about open source projects having extra features you can pay for. But, then they also complain when you make open source GPL.
I'm sure it would be the same group complaining if it was GPL too.
Except the pro option is not "a few years later" it's available in pre-v1 and is a one-time lifetime purchase, not a subscription.
And the framework and docs are so small and simple, that you can read the entire site in an hour or two, in which time you would have noticed the pro features and pricing many times.
At the risk of repeating myself, I was talking in general terms about the business model and the uncertainty about the licensing it creates concerning possible future features.
I wasn't aware that they are a non-profit organization and agree that my remark doesn't necessarily apply to them since they're not a business. If the pro subscription helps them to maintain the open source project without making any profits, then that seems alright to me.
This is exactly what is done here. They're emphatic that most will/should never need the pro features.
Looking at https://data-star.dev/reference/datastar_pro#pro-features the features that stood out for me as things I would want to to use (and that don't feel particularly "pro" to me) are the animation features, data-replace-url, data-on-resize, data-scroll-into-view, the @clipboard() mechanism and, most importantly, the debugging tool.
My problem with this business model is that it has a chilling effect on open source contributions to the project, because it incentivizes the core maintainers to not accept community contributions that overlap with the paid features.
Datastar is currently in the Release Candidate phase of v1, which they seem to be certain will be the final form of Datastar. So, they're really not looking for "community contributions" to the core of datastar, other than for feedback to polish it off.
Moreover, ALL of the features are "plugins" - there's nothing stopping anyone from building and sharing their own. It is actually encouraged. In fact, in their next release they'll be releasing and documenting some sort of public API for plugins. Not sure exactly how it will differ from the current form though, since you can already make your own plugins.
They also intend to have some sort of free, open-source "marketplace" for community-built web components, based on their upcoming Rocket web component and Stellar css framework. You would just need to have the Datastar pro license to be able to use any of them.
I can see how this final part might be criticized, but it does seem quite fair to me. Sustainable open source is a big problem - in recent months ive had some important fully-open source dependencies disappear - even ones that were backed by well-funded companies. Moreover, Datastar is registered as a 501c3, and they really don't intend to "make money" from all of this. Its just to pay the bills, travel to conferences etc...
They're very reasonable people and open to all discussion in their discord. Im sure that whatever concerns you still have could be explained quickly if you went there.
In fact, i just posted there about this thread and how its overflowing with nonsensical complaints about how there's no link to or mention of Pro on the homepage - they said sure, we'll add a link.
Naming things really is hard. I can’t even with these names.
what's wrong with the names? they seem perfectly fine to me...
Also, btw, some of these - specifically data-replace-url - are strongly discouraged by the devs, to avoid footguns. I dont have experience with it, but people have spoken lots in their discord about how things like Hotwire Turbo are too magical and end up causing a lot of issues. Datastar strong recommends just using hypermedia as it was designed (HATEOAS https://htmx.org/essays/hateoas/) and doing full page reloads when you change a page. And for more ephemeral in-page changes, you can use the sse fragments morphing etc
You should probably update your comment to at least let people know this is a one-time lifetime cost. Not a subscription.
Which is priced similar to Tailwind UI, which people are fine paying for.
Yeah, I have no idea why someone would want to consider this over turbo + stimulus
Because turbo stimulus doesn't let you build a multiplayer spreadsheet performantly and realtime in a few hundred lines of code.
Those prices are for one off lifetime purchase too! That's crazy. I don't know why they bother. They'll never make back the money for the time they put in developing it.
Such a bad move. I told them they should charge more and actually have useful features in pro.
What a weird comment. Why bring this up unless you're just trying to make them look bad in a dishonest way? It is clearly documented on the site in multiple places.
Moreover, they actively dissuade people from even buying the pro license because they are quite emphatic that most people/sites do not need any of these features. If you do need them, then it's a small price to pay for the functionality, as well as to make a modest amount to cover costs for their non-profit org. God forbid someone optionally charge something for years of effort that they have given away for free...
It also comes with an immensely useful "Inspector" that shows all the signals, sse events etc, and will soon come with an immensely streamlined web component framework (Rocket) and css framework (Stellar).
I bought the pro license mostly just to support them, but the inspector is great and I look forward to checking out rocket and stellar.
I opened my HN client and saw multiple posts at the top of the home page about this datastar thing, with comments like yours either very aggressively defending it or praising it as the best thing since bread.
Did you forget one of those "full disclosure" thingies at the top of your comment?
In any case, I didn't see anything interesting about it, even less so after reading OP's useful comment on the pricing, but even if I did I would never intentionally use or give money to a company that does astroturfing campaigns.
Full disclosure: I'm a happy and grateful user and purchaser of the datastar pro license.
And it's not a company, it's literally 3 guys who have a 501c3 non profit, and actively dissuade people from buying the pro license because YAGNI.
This is an example of the entitled subset of people who come out of the woodwork whenever an open source project has any kind of monetization or even just a non-standard license prohibiting billion dollar companies from selling their project as a service.
I guarantee the fact that I referred to a project with an anti Amazon clause as open source will piss some of the off so much that they’ll comment here about it.
Same people who complain about GPL and other copy left licenses I imagine.
op: copies information from the website
you: "How dare you!!!!!"
There's a such thing as context and intent which are separate from content, and this is directed as much at the people who upvoted this particular content to the top comment as it is to the OP.
The conversation on this post is now centered around the fact that they have some premium features for sale.
Edit: Now there’s another post on the front page of HN accusing the datastar team of being greedy.
https://news.ycombinator.com/item?id=45537372
> The conversation on this post is now centered around the fact that they have some premium features for sale.
Oh the horror!!!!!!
The open core model is great and entitled buttholes, and open source warriors discouraging people from doing that is pretty horrible.
I mean it’s not war in Ukraine horrible but I think it’s awful that people expect you to work for them for free.
Posting documentation from the site != "people expect you to work for them for free."
Really an insane thing to see a comment that informs you of pricing for their pro package and have a horde of people jump in with "How dare you!!!?!?!"
I appreciated it. If I'm going to consider a framework I want to know if some of it costs money. Especially like 299usd.
Frankly your response seems very hostile and makes me wants to avoid them more.
How much do you pay big tech for your LLM subscriptions monthly? I'm really curious.
299$ lifetime which includes future features seems like a steal. I bought it and don't use it, but I'm excited to see what comes next.
You live in a bubble. 299 is a crazy amount of money for me. I am currently debating whether to pay for copilot at 20/mo or keep using the free version.
Even if I was paying for that, there's no comparison between AI and a web framework that has many free competitors.
You don't need to pay for datastar. As I've said befor I don't use any of the pro plugins (plugins anyone can build themselves for that matter).
Sad to see developers getting ripped off by AI. Copilot is junk. The whole AI bubble is just a tax powered by fear if missing out. Save yourself 20$ a month, learn to touch type, use snippets and download a local copy of the docs.
What a world we're living in - I point out that a hostile comment is hostile, and I'm labeled hostile.
Once again, they aren't charging anything. Pay them if you want some largely-unnecessary features, or if you just want to support years of hard work and innovation. That's what I did.
But you do you.
If you're amenable to feedback, the impression I got from your initial comment was "a hostile comment pointing out another hostile comment". It assumed a negative motivation on OOP based on vibes and you ran with it. Even this comment's parting line:
> But you do you.
- seems like a truism. I get the feeling it's meant to be read as "I give up. You can keep whatever wrong viewpoint you have".
Finally a good-faith reply!
I concede that my original comment here was somewhat hostile, but only really the first line. And it wasn't even all that hostile - especially when the rest of the comment was really just informative and positive about datastar.
And, moreover, is standing up to poor behaviour - even if done in a somewhat hostile/confrontational way - really such a bad thing? It seems quite clear to me that they were not communicating in good faith - they didnt come to discuss features, philosophy about open source sustainability, or actual reality of the messaging on the site and their discord server.
Instead THEY are explicitly saying that Datastar's devs are being dishonest in some way for having a pro license (which, again, they quite clearly say most people should not buy) as a way to bring a modicum of sustainability to something that theyve dedicated years to and given 99% of the value away for free.
They could have said "This looks interesting, but I noticed that there's a pro license if you want to get some features. Are these features necessary? Is this price reasonable? Should we be against there being a 501c3 behind this? etc..."
But they did none of that. I think that all that a reasonable person can really conclude is that they're either the disdainful sort of person who thinks all code should be free for everyone, or that they are just trolling, or perhaps even that they dont like how datastar is challenging the status quo of webdev.
Hence, "you do you" - you interpreted it exactly as I intended.
I'm sorry people didn't immediately take to this financing model as well as you did. The average person is not as invested as you and most people are going to immediately switch off if they hear part of the functionality costs money and this isn't mentioned anywhere on the front page. Doesn't matter how "unnecessary" these features are, it's a bad look.
Plenty of other open source projects make money without attracting this kind of negative feedback. It's curious to me that you suggest everyone is intentionally being negative or malicious here, instead of looking at why the project caused such a response.
People pay for things all the time, why not (almost surely unnecessary) code? Why do you all feel entitled to free access to thousands of hours of very highly skilled devs' efforts (most of which they actually are giving away for free)?
Moreover, it is quite common for there to be pro versions of libraries these days - tailwind, all sorts of component libraries, etc..
> Plenty of other open source projects make money without attracting this kind of negative feedback
We dont seem to be living in the same reality. In mine, maintaining open source projects is a nearly-completely thankless, profit-less endeavour. It is a rare exception that someone can earn a living from it. And datastar's devs have zero expectation that they'll do so, even with this model - hence it is registered as a 501c3, and the funds will cover things like travelling to conferences to talk about it.
I think the pro version and charging stuff is totally fine. It's the lack of transparency that bothers people. I shouldn't have to figure out their profit model from HN comments. If you want to be paid for your work, charge for the whole library or make the free/pro distinction very clear to people. Don't try to hook them in with a free offering while locking features behind a paywall that they discover later.
Or if you want to be altruistic (as you keep referring to nonprofit) make it free and solicit donations/patreon.
The current approach is certainly a new one and I am interested to see if it pays off.
99% is already free. That seems pretty altruistic to me.
And they don't really care if it "pays off" - it's not meant to
[dead]
Didn't find anything about this on the main page.
Author of Datastar here. Most people don't need pro and it seems like putting it on the front page is actually marketing it instead of people finding it as the need the features. Not only should most people not use the features we actively push against it. The only thing that's really super valuable is the inspector which is a Dev tool
As someone who actually happily bought Pro, I completely agree with this. Inspector is great, and worth the (nominal) cost of Pro. I might use a couple other of the pro functions. I'm very much looking forward to Stellar CSS and Rocket Web component framework getting released - they'll DEFINITELY make pro worthwhile, and given that they are completely new, there should be no qualms about it being purely pro.
> It is clearly documented on the site in multiple places.
Hold up, so then why is pasting THEIR documentation into a comment weird?
lol. This is an absolutely insane response to someone simply informing the commentors that there is a price involved in the pro package.
because the implication in this and so many other comments is that they're dishonestly hiding something. There was no other commentary other than a large and prominent comment saying "Watch the fuck out everyone! There be $ hidden in there!"
All they did was post the price of the pro package!!!
[flagged]
Can you please not post in the flamewar style to HN? We're trying for something different here:
https://news.ycombinator.com/newsguidelines.html
You can always make your substantive points thoughtfully, so please do that instead.
Edit: two things I realized after posting the above: (1) you're the project creator! well, I can understand how anyone would react negatively given the critical things some commenters have been posting.
But also (2) you've been breaking the site guidelines in other comments too (e.g. https://news.ycombinator.com/item?id=45539942). Ultimately we need you to stick to the rules, regardless of what other commenters are doing, and of course the same applies to them also.
(p.s. in case it's not clear, I'm a mod here and just trying to keep the peace a bit)
happy to abide, didn't read the guidelines so sorry about that @dang. yes it's quite interesting that we are getting slammed for making plugins in a way that literally any user has access to do own their own. hackernews is a wild ride for sure!
[dead]
the entire point is that the OP - and so many other nonsensical comments here- is implying that Datastar's devs are being sneaky, trying to trick you into getting hooked on datastar only to pull the rug later with some dark marketing patterns.
But, as youve said, the info is right there on the site.
I like what https://www.zjax.dev/ has done
This post and other posts about datastar on the hn frontpage seem unnatural to me. It's like a marketing effort to astroturf this, especially with newly created accounts interacting with this...
I think it was probably the copycat/followup effect rather than anything coordinated, but I haven't looked closely.
Trying to decide whether to merge the threads and/or which of them should 'win'...
If the datastar team was capable of such a coordinated marketing effort I doubt they'd be in the business of running a non profit, or building a niche HTML streaming framework. Or having a one off purchase model for pro.
I mean unless you consider me linking my dumb demos everytime someone accuses hypermedia of not being suitable for realtime/collaborative apps. That I'm 100% guilty of.
I'm using HTMX and had never heard of Datastar until today. I imagine there's a fair few people who saw the first post, looked into it and found other things about Datastar, and decided to post them.
I thought the same before I saw your comment. Several posters are new or have also posted on previous posts about Datastar (and are oddly aggressive.)
Yeah, why does hypermedia attract folks who always sound so aggressive? It's a weird but common theme.
This and other negative, yet argument-free, comments about datastar are what seem unnatural to me...
That’s a common HN pattern. Someone posts something about “why I switched to x” and it inspires someone else to link to the the x website, or even to other similar projects websites, and they all make it to the front page. It’s just a common synergistic phenomenon.
One submitted by me, and this one by others, both accounts are ~2012. Not exactly new account.
I think something I'd love is to see how to adopt some of the more decent frontend practices (e.g. having a component library) but rendering them using a backend that isn't something like NextJS. Can you import a component library and use it in a Flask app, say, or are the worlds just fundamentally too different?
For Go, something like gomponents [0] or Templ [1] would fit that. (Disclaimer: I wrote gomponents.) I even have a Datastar integration now. [2]
[0]: https://www.gomponents.com
[1]: https://templ.guide
[2]: https://www.maragu.dev/gomponents-datastar
Thanks - interesting! I was more thinking of a workflow where a designer makes a component in Figma, and it's probably polished and made available in a component library by a frontend/UI person, and it's probably a React component or a Web component. I was wondering whether that workflow was at all compatible with any of the non-JS backends that are reclaiming frontend a little.
And gomponents is great!
You can use datastar with ANY backend and templating system that you want - you just have to return html with the appropriate (and standards-compliant) attributes and, optionally, js expressions.
Use php, python, rust, or anything else that you want. They all have various approaches to html templating.
Everything about this seems so bad! The website doesn't look serious at all. The code adds crazy html attributes, even more crazy than other crazy front-end frameworks like `data-on-input__debounce.200ms="@get('/examples/active_search/search')"`... this level of wrong is incredible.
Could provide actual arguments for why these aspects of Datastar are "crazy", "even more crazy" and "wrong"?
What more do you need than writing something like `data-on-input__debounce.200ms="@get('/examples/active_search/search')"` in the DOM as being crazy and wrong?
To me, it doesn’t seem any more far-fetched than, say, instantiating a virtual DOM in the browser.
So your answers is no, you cannot provide any arguments.
I think OPs point argues for itself. The example provided is awful developer ergonomics.
Okay but why. Surely if you have auto complete this works just fine.
The poster provided an example of poor abstraction. HTML for display, JS for client side logic. Combining them is part of the problem with other popular frameworks.
No, it's the entire point of datastar - that you don't need much JavaScript at all because some simple html attributes do most of it for you, and any extra can either go in-line, or you can also just fallback to separate js scripts if needed.
I think you, and others, just don't understand what hypermedia is or what the idea is trying to achieve.
Which is weird, because this is (was?) the predominant way to make websites for decades.
You mean like onclick?
I mean, that seems ugly to me, but... Makes intuitive sense and is fine actually? Is HTML a rich language in which to embed stuff like this? No. Does this clearly get the point across? Yes.
[Edit: this should've actually been attached to the GP comment. I agree with the parent.]
Isn't that the whole point of hypermedia frameworks like Datastar and HTMX? It's to extend the declarativeness of HTML.
If you don't like the syntax, that's your preference. But I'm curious to hear why this is "wrong". Since that's a more objective thing, we can discuss it
Because it's a mish-mash of different ad-hoc DSLs.
You have a DSL based on data-* attributes
But then some attributes get this weird syntax-ish extension
Then some of those attributes accept a Datastar expressions DSL: https://data-star.dev/guide/datastar_expressions
So you can have
Which is just bad designI can see what you're saying.
But again, the API design woes are subjective and I think it's perfectly fine to iterate on getting this to a nicer state.
"Wrong" to me suggests a gap in the understanding of fundamentals or of how things work. If the ideas of Datastar are fine to all of us, and our issues with it are ergnomics, then that can be a more focused discussion.
> But again, the API design woes are subjective
They aren't. This is not good API design
> "Wrong" to me suggests a gap in the understanding of fundamentals or of how things work.Snide vaguely dismissive remarks don't make such remarks true.
> If the ideas of Datastar are fine to all of us
Who's us? Are these "us" in the room with us right now?
We are limited to what is possible in the data dash-* spec. If you have better syntax that's going to work everywhere in every browser please let us know!
You literally have a custom Javascript-like DSL already https://data-star.dev/guide/datastar_expressions
This wilful insanity is completely incomprehensible to me (HTMX and lit are also fully infected with it): "Oh no, we are just HTML, we can't do anything" while literally doing tons of things outside of HTML.
What's your alternative that stay HTML spec compliant? Instead of whining show code
> What's your alternative that stay HTML spec compliant?
Again: you literally have a custom Javascript-like DSL in Datastar. Use that.
It's like the "it's just HTML" or "it's HTML-compliant" mantra somehow damages the brain, or something.
Edit: this custom JS-like DSL is so prominent and such a crucial part of Datastar, that it's referenced in the very first paragraph of reference: https://data-star.dev/reference
Oh, look, your HTML-spec-compliant thing in which it is apparently impossible to do anything outside data-* attributes somehow calls external functions, and updates signals, and reads signals, and does all sorts of things:
But no! It's absolutely impossible to do something about data-on-click__window__debounce.500ms.leading> They aren't. This is not good API design
Why isn't it a good API design?
> Snide vaguely dismissive remarks don't make such remarks true.
Agreed! I don't believe I was doing anything of the sort.
> Who's us?
People on this thread.
What design do you think would be better?
Both Datastar and HTMX have the same issue: they want to pretend to be HTML. So they force themselves into writing several DSLs like this to pretend that this is still "just HTML".
Since they have a full "Datastar expression" language, I'd just expand that. Then you wouldn't need these weird constructs:
Well they are both "just HTML", Datastar being better about being spec compliant using the dataset attributes and all.
By expanding the "Datastar expression" language, do you mean a compiled language or moving all the expressions into JS files or something else?
> By expanding the "Datastar expression" language, do you mean a compiled language or moving all the expressions into JS files or something else?
Doesn't matter. They literally already have a Javascript-like DSL: https://data-star.dev/guide/datastar_expressions
Datastar is spec compliant HTML. Please point me to the code that's not HTML spec compliant
Do you dislike Lisp too?
This feels like an interation on Hotwire
Yes, with pay to play for trivial features.
Then fork it, it's MIT
Reinventing the wheel and then charging for simple features?
If this paradigm excites you, just use Phoenix, dawg. It's so far ahead, everything else feels primitive.
What here has been reinvented? There's nothing out there like datastar. Htmx + alpine is similar, but much heavier and less functional.
And God forbid someone try to make open source sustainable by charging for largely-unnecessary functionality and actively dissuading you from buying it - as the devs do regularly in their discord.
And phoenix doesn't work with ANY backend language or framework.
Simple features? Making those imperative APIs declarative is not very simple for me, but you're welcome to not use those features and write them yourself.
A couple of things on the Phoenix point:
- Requires the adoption of Elixir and Datastar is backend agnostic - Adopting Phoenix feels more suited to greenfield projects, but Datastar is suited for that and brownfield ones. - Websockets vs Server Sent Events has been really interesting and nuanced
In what specific areas Phoenix Live View is so far ahead? Do you mind elaborating?
The unfortunate disadvantage of Live View is that you need to write Elixir. A lovely language, but it would be hard to sell in company that use only <SOME_LANGUAGE>. The hypermedia libraries like d* and htmx can be used with any backend.
I can't use Phoenix with Rails now, can I?
It amazes that we are a still solving low level problems for CRUD applications. No, you cannot develop highly interactive non CRUD app with Datastar/HTMX/Unpoly.
We need higher level abstractions and solutions. How the client and the server communicate is still low level for developing apps, more so CRUD apps.
Anything that’s using server side rendering gets my vote.
But isn’t HTMX+Websocket basically the same as datastar?
Not at all, for many reasons.
HTMX doesn't do any client side interactivity. You need something like alpinejs for that. And alpine doesn't have signals, which are super useful (when used judiciously)
Datastar uses sse rather than websockets, which is simpler and more compatible http,web standards etc. Htmx can use either sse or ws, but both are a separate plugin.
Consequently, datastar does much more than htmx+alpine+ws/sse, in a fraction of the js size.
Htmx (and alpine, I think) introduces it's own html attributes whereas datastar uses spec-compliant data-* attributes (hence the name)
Htmx's api is much more complicated due to all of the extra attributes. Datastar is more concise.
Datastar has backend SDKs for all popular languages, to make it easy to send html fragment and signals updates via sse.
There's lots more as well. Very worth checking out.
Mine too. I’ve been playing with this lately
https://www.zjax.dev/
And I like what the author is doing
Does anyone have a detailed comparison of the functionality you get from Datastar versus HTMX + Alpine.js? My impression was that Datastar was trying to be a lighter weight combination of the other two.
I don't know about a detailed comparison, but datastar basically does everything those do combined, but in a smaller, simpler package.
It also sticks to web standards as closely as possible (whereas htmx is trying to propose it's api as web standards).
It also has SSE, idiomorph, and more baked in by default whereas those are optional extensions in htmx.
They're also releasing css and web component frameworks/tools soon that look VERY powerful and simple.
Datastar has the potential to completely change web development.
<input data-on-input__debounce.200ms="@get('/examples/active_search/search')" />
seems a little crazy, why can't we use traditional methods like this?
<input oninput="debounce(0.2).get('/examples/active_search/search')" />
just an idea
Docs mention absolutely nothing about offline use, service workers, or PWAs. How am I supposed to build a modern web app with that? Rely on always having internet?
> Rely on always having internet?
Yes? Very few cases need offline capabilities. Why complicate things unnecessarily?
I'm extremely interested in this sort of use case and am regularly disappointed to find that very few others are. And even fewer are interested in doing it in a hypermedia-first way.
There's two ways this could be approached.
1. Just cache the backend-generated html that has datastar attributes in it, and serve it from a service worker. Datastar library in the main thread won't know or care whether it came from service worker, edge worker or your backend.
2. If there's a need for dynamic data/templating (eg user-specific into), you can do so in the service worker - if you've stored the templates and data already. But that has little to do with datastar - you'd have to do that in any case.
However, service workers have limitations with regards to things like dynamic script imports, using es modules etc. You can send messages to a dedicated web worker which handles rendering and returns the html, but it does get complicated. Sharedworker would be even better but android chromium still doesn't support it - but they're finally trialing it and hopefully it'll be available in 6 months.
The only datastar-specific consideration is if you want to do something like stream sse events from the "backend" to the datastar library in the main thread/dom. The TypeScript/JavaScript sdk works just fine in the service worker as well, and can maintain a long-lived connection to periodically stream new messages. Of course, service worker lifecycle is somewhat of a black box and out of your control, but that has nothing to do with d*.
So, overall, yes you can use datastar offline. But it comes with all the issues that you'd face with another approach.
Interesting, but do I understand correctly that:
- this would mostly work if the sole consumer of your API is the frontend, since it returns HTML, rather than, eg JSON that would be consumed by a CLI, some streaming tools, clients, etc
- this would not really be suited to some Capacitor app?
Yeah it assumes your building a full stack app driven by the backend. So the client and backend are tightly coupled and built for each other.
Is there a good Datastar tutorial creating a small project that shows off Datastar's strengths and how the DX feels like?
I saw the game of life and checkbox examples but I've never used Clojure
datastar is backend agnostic - you generate the html however you want.
you can check out this repo if you want to see a simple golang implementation. https://github.com/zangster300/northstar
And all of the sdks have some simple examples. https://github.com/starfederation
Yeah. That's the real rug pull all my code is in Clojure. Which is rough if you're not familiar with reading lisp.
There's a few examples in typescript and go floating around.
Here's one:
https://github.com/Mortalife/datastar-chat-example-ts
It sounds like some form of Event Sourcing? I didn't get much technical details from the page, and the (otherwise excellent) movie.
It can be, but doesn't need to be. It's highly compatible with cqrs and event driven in general, usually done with sowmthing like a pubsub event bus (NATS is most often used). Whether you want to go all the way to event sourcing is up to you - it's completely agnostic as to how you do your backend.
Is there documentation on how they made that slick Star space animation on the front page? Very cool and retro looking
It's just a basic 1kb web component driven by datastar attributes
Do you have a link to the web component? I can't find the site code anywhere on their github org.
Seems interesting.
I don't think its going to make me swap from htmx, though. We shall see.
Are we back to asp.net webforms?
Manage all state in the server?
Yes we've come full circle.
Sending chunks of html from the backend and updating only parts of the page is what webforms did 20ish years ago.
I'm trying to figure out what the appeal is here?
Seems pretty elegant if you are willing to give up on the type safety of TSX. I wonder if this can be combined with it somehow. An example using Fresh would be great.
With Datastar your front end logic (if any) is minimal, and you can use any typesafe (or not) language you want for the backend. If you build webcomponents for your Datastar frontend you can use TS to your heart's content.
The type-safety concern would be to do with your templating tool, right? It doesn't have anything to do with Datastar
Datastar itself is written in TypeScript... And it is completely agnostic as to what language or approach you use in your backend, so long as you render html with the appropriate (web standards-compliant) attributes and expressions. Use ts, rust, lisp, or whatever you want on your server.
I actively look for non-TS frameworks. To me it's always been useless overhead. It really is a outcome of startup/enterprise teams that are so far away from how money goes in and out of a business that they sit around and think TS is a good usage of time. It may hurt their feelings to know plenty of people run successful teams and entire businesses without type safety. It also makes the code look like shit.
To each their own I guess.
I mostly agree with this. TS works great in large enterprises where developers don't trust each other. But if you're working on your own, or in a small team where you can easily agree with each other, TS just becomes unnecessary overhead.
At least, that's my experience and I don't like it when people say that everyone must absolutely use TS when they don't know anything about your situation.
[flagged]
I just think you are wrong. It mostly takes mindshare from rookie developers that are insecure and need to cover all their bases lest they be called bad at being a developer. Many grow out of this insecurity and see things for what they are. TS is OKAY, but it's not worth my time.
Well I'm objectively correct about it preventing bugs. This is one of the few things that has been fairly conclusively shown by studies.
As for productivity, maybe it doesn't matter on tiny projects or short-lived one-man projects, but for anything else I don't see how you can argue it. You basically can't refactor reliably without static types, you can't navigate the codebase quickly without static types, and it makes it more difficult to understand other people's code without static types. Sure it might take slightly longer to write in the first place but that is easily outweighed by all those other benefits. Like, by an order of magnitude.
It sounds like you are one of those "well I don't make mistakes" developers.
You basically can't refactor reliably without static types, you can't navigate the codebase quickly without static types, and it makes it more difficult to understand other people's code without static types.
What a great interview test. I’d absolutely not hire someone that can’t do that. It also doesn’t make any sense. That’s like saying entire codebases without types can’t be worked on. Huh? Those are basic things you can do in any language.
This Typescript anointing has got to die. It’s lame, and most of you overuse it even when it’s appropriate.
I said reliably. Without static types in large codebases you are likely to miss things. E.g. you rename a variable but don't catch everywhere you should have updated it.
Don't say "but tests".
If your data model is open and not closed you only need to change the location you are changing. This is how the internet works. Types that don't support this model actively hinder refactoring.
Ifv you include the artificial restriction of not "use the correct tool/tests", then maybe you are right.
Care to share one of your projects with zero bugs?
We have tons of people using TSX in deno or bun. You are just creating it primarily in the back end.
as a newb, does datastar work on mobile?
Most web pages I try to build never look right on firefox on android.
Having followed Data-* from its beginning, it's now fascinating seeing how these threads play out. The troll-y takes from those who took one brief look at the front-page and felt compelled to tear it down in their own 'worthy, hot-take'.
Like T3, the critiques usually compare to JS stacks or how non-HTML it looks(!). It just doesn't make sense to them, so... "I know what I must do, instead of looking into this more, make sure I have a fuller picture of this thing, HN NEEDS to know now".
You have every right, of course. But you undermine yourselves as soon as you post - you clearly have not taken any time to understand where it came from, why it is what it is. Your responses are not, say, genuine questions for clarification or helpful critiques. For the most part they are straight out judgements: 'This is just wrong'.
Of course in your minds the front-page MUST provide you all that in under 30secs, yes? Like, the 'hidden', 'real cost' is ON ANOTHER PAGE?! - instead of reading the reasoning behind it and why YOU won't need it.
You don't need to immediately post here - you are not really looking for answers, are you? You could've just read the website and history of Data- for that?
To all the 'clarfiers' here like Delaney, Anders, nchmy, and others, thank you for the comments refuting most of this stuff, it must be tiring.
All the best, An old, grumpy, ex-HyperCard 'programmer'. *You don't need to validate your comment by reply to this, many comments here are valid and you know it.
so all the UIs I work on have some form of pivotable grids handling some decent quantity of data (several 100k rows)
Obviously in react I can find components that work fine.
But is that something datastar can deal with well, or is this something where Î’d need datastar and some frontend js?
this looks awesome dude
Oh great, yet another front-end framework, but this one is with paid features as well. Are we seriously going to pretend this isn't getting out of hand?
they're a 501c3 non profit and they actively dissuade people from buying the pro license, because YAGNI. If you want those features, or just want to support a genuinely innovative framework that people spent years building, you can get the license. Its not that expensive and is a one-time purchase.
What's your concern with the paid features?
https://news.ycombinator.com/item?id=45537335
it's really a full stack back end agnostic framework. i haven't really seen anything like it.