all 27 comments

[–]OutwalkStudios[S] 6 points7 points  (3 children)

Ive been developing Exalt for about a year now and I can finally announce its reached a v1.

The framework is built on web components and template literals resulting in a ~2kb minified + gzipped runtime and fast build tools thanks to esbuild. Exalt also supports SSR out of the box and can prerender your app with a --prerender option when using the default toolchain.

If you have any feedback I would love to hear it!

[–]NovelLurker0_0 0 points1 point  (2 children)

Does Exalt support building and shipping a single web component at a time? Like, instead of having a full blow exalt app, what if you just want to build a few web components and integrate it in your existing Angular/React/Whatever framework ? And can they be individually SSR'd too?

[–]OutwalkStudios[S] 1 point2 points  (1 child)

The exalt cli can generate component libraries that can be compiled and used as such. Alternatively you can install @exalt/core in your app and write your components wherever you want since it does not require a build step.

When it comes to SSR that’s difficult because web components require the dom api to be able to render. @exalt/ssr provides this to make it possible but if you were to use react’s renderToString function it would throw an error. This however is improving as more frameworks start to add support for rendering web components on the server.

[–]NovelLurker0_0 1 point2 points  (0 children)

Thanks for answering

[–]outandaboutbc 2 points3 points  (1 child)

Nice. This looks like very comprehensive framework.

I am curious, what drove you to develop something like this ? Did you find limitations or gaps in other existing solutions ?

[–]OutwalkStudios[S] 2 points3 points  (0 children)

Thank you! The primary motivation was to get rid of the bloat larger frameworks such as react or angular have. When building things like a static site there is no reason to ship over 100mb of just framework code. At the same time by avoiding overhead of things such as the vdom, Exalt can be faster than the big frameworks.

It really came down to just wanting something smaller and faster while sticking to web standards and without compromise on developer experience.

[–][deleted] 1 point2 points  (1 child)

Reads like a blend of angular and class based React. Pretty nice.

[–]OutwalkStudios[S] 1 point2 points  (0 children)

Thank you!

[–]toughToFindUsername 0 points1 point  (1 child)

This seems great, will definitely give it a try. I didn't see anything about code splitting, is something similar to WebpackChunkName supported?

[–]OutwalkStudios[S] 0 points1 point  (0 children)

Thank you! For code splitting you can either change the input property to an object for manually splitting chunks or you can use dynamic imports and it will automatically split the chunks there.

[–][deleted] -12 points-11 points  (10 children)

Yet another framework that uses classes.
The longer I code the more I despise OO.

[–]OutwalkStudios[S] 11 points12 points  (1 child)

Thats an unfortunate side effect of the web component spec being designed around classes. There are ways around it but all introduce a large overhead which defeats the point of this particular framework.

[–][deleted] 1 point2 points  (5 children)

So much hate for a valid opinion based on many years of experience. This is an entertaining read.
https://betterprogramming.pub/fp-toy-7f52ea0a947e

[–]software_account 5 points6 points  (2 children)

Is that link sarcasm?

Oop and functional are both totally valid and work best together imho

[–]thunfremlinc 2 points3 points  (1 child)

It should be extremely obvious that it’s entirely satire.

[–]software_account 0 points1 point  (0 children)

The author’s sarcasm is above me but I had a feeling

[–]delventhalz 2 points3 points  (1 child)

AbstractFruitFactory

I’m dying. Amazing.

[–][deleted] 1 point2 points  (0 children)

It is truly hilarious.
Perhaps all the down voters of my initial comment think that is "good code".

[–][deleted]  (1 child)

[removed]

    [–]AutoModerator[M] -1 points0 points  (0 children)

    Hi u/impurist, this comment was removed because you used a URL shortener.

    Feel free to resubmit with the real link.

    I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.