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.
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.
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
Do you really think Datastar is of such ridiculously bad quality that even simple features require a lot of support to get working?
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.
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.
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.
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.
Surviving, or not surviving, a traffic influx is a backend restriction.
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.
The idea that UI state should be managed locally is ridiculous now?
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 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.
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.
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.
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.
It has a whole client side signal system.
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.
Please, I'm begging you to share this "well documented" fact that most frontend frameworks barely "handle" on the simplest of sites.
https://infrequently.org/2024/11/if-not-react-then-what/ (there's MUCH more at this site as well)
> 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
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 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/
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.
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)
But theres rocket and stellar channels in their discord where there's sneak peeks. VERY cool stuff https://discord.gg/bnRNgZjgPh
Do check it all out though - it's a breath of fresh air.
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
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!
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.
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!
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.
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.
[1] https://alpinejs.dev/components [2] https://alpinejs.dev/components [3] https://reactflow.dev/pro
$5 doesn’t cover the cost of you filing a single support ticket.
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?
- 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.
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?
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)
Question also: do you somehow keep a "mental catalogue" of related articles or do you use some tool to find these?
https://news.ycombinator.com/item?id=44861185 (and the other stuff linked from there) has more details
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.
[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.
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
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.
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
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
Please don’t reinvent things.
Turns out brotli compression does wonders.
Because once that connection is primed you are off to the races.
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.
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.
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 teamshttps://data-star.dev/star_federation#nonprofit-organization
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.
Here's how you replace the URL without a page refresh:
function processAjaxData(response, urlPath){
document.getElementById("content").innerHTML = response.html;
document.title = response.pageTitle;
window.history.pushState({"html":response.html,"pageTitle":response.pageTitle},"", urlPath);
}
Similar snippets for the other few and you have successfully avoided helping fund the framework!I hadn’t thought about it, but yes. I say this as someone who paid for Netscape Navigator.
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.
[1] Time-stamped it for convenience: https://youtu.be/eMIB4Bkl08U?si=IfTslvZoGXVbou0w&t=1270
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?
>> 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 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.
This model of using deception to hide costs isn't exactly "exploring". It's tried and tested.
> 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.
The common thing to do today is put a "pricing" menu item at the top right. That'd be fine.
Yes!! That's table stakes. It's the bare minimum needed to not be considered malice.
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.
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.
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.
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.).
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.
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.
I'm sure it would be the same group complaining if it was GPL too.
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.
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.
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.
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.
Which is priced similar to Tailwind UI, which people are fine paying for.
Such a bad move. I told them they should charge more and actually have useful features in pro.
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.
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.
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.
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.
you: "How dare you!!!!!"
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.
Oh the horror!!!!!!
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.
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!!!?!?!"
Frankly your response seems very hostile and makes me wants to avoid them more.
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.
Even if I was paying for that, there's no comparison between AI and a web framework that has many free competitors.
Sad to see developers getting ripped off by AI. Copilot is junk. The whole AI bubble is just a tax powered by fear of missing out. Save yourself 20$ a month, learn to touch type, use snippets and download a local copy of the docs.
Using it for vibe coding where you pay for every token - and end up paying hundreds over dozens of iterations, when it would have been easier to write it yourself - is probably closer to what you're talking about. That's a totally different use case.
Developers are idiots (I include myself in that). The industry is myopic and completely driven by fashion.
Not sure how you can rug pull an open source project...
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.
> 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.
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.
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.
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.
And they don't really care if it "pays off" - it's not meant to
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.
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)
But, as youve said, the info is right there on the site.
Will use it on of my next projects and try it out. Looks interesting. Thanks for the good work!
Trying to decide whether to merge the threads and/or which of them should 'win'...
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.
[0]: https://www.gomponents.com
[1]: https://templ.guide
Use php, python, rust, or anything else that you want. They all have various approaches to html templating.
Which is weird, because this is (was?) the predominant way to make websites for decades.
[Edit: this should've actually been attached to the GP comment. I agree with the parent.]
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
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
data-on-click__debounce.200ms="$landingGearRetracted && @post('/launch')"
Which is just bad designBut 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.
They aren't. This is not good API design
<button data-on-click__window__debounce.500ms.leading="$foo = ''"></button>
> "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?
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.
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:
<div data-signals-result>
<input data-bind-foo
data-on-input="myfunction(el, $foo)"
data-on-mycustomevent__window="$result = evt.detail.value"
>
<span data-text="$result"></span>
</div>
But no! It's absolutely impossible to do something about data-on-click__window__debounce.500ms.leadingWhy 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.
Since they have a full "Datastar expression" language, I'd just expand that. Then you wouldn't need these weird constructs:
<button data-on-click__window__debounce.500ms.leading="$foo = ''"></button>
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
If this paradigm excites you, just use Phoenix, dawg. It's so far ahead, everything else feels primitive.
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.
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
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.
But isn’t HTMX+Websocket basically the same as datastar?
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.
And I like what the author is doing
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.
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.
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
- 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?
Yes? Very few cases need offline capabilities. Why complicate things unnecessarily?
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.
I saw the game of life and checkbox examples but I've never used Clojure
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
There's a few examples in typescript and go floating around.
Here's one:
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?
I don't think its going to make me swap from htmx, though. We shall see.
To each their own I guess.
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.
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.
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.
Don't say "but tests".
Most web pages I try to build never look right on firefox on android.
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.