Remote
Hacking on https://mastrojs.github.io – No dependencies. No build step. Just a simple web framework and site generator for people who care about their users and web standards.
https://github.com/mb21
0
Followers
0
Following
32
Posts
Joined November 20, 2022
Place:
Switzerland
Posts
Replying to
@kelson@notes.kvibber.com
@kelson@notes.kvibber.com @arnan@mas.to Here’s another one if you’re into that sort of thing :-) https://mastrojs.github.io
Open post
Replying to
@bw@social.lol
@bw@social.lol If by apps you also mean websites, feel free to send https://mastrojs.github.io/guide/
1
0
0
0
Open post
Replying to
@cadey@pony.social
@cadey@pony.social That’s how I felt when I discovered for loops.
0
0
0
0
Open post
Replying to
@MartyFouts@mastodon.online
@MartyFouts @bsdphk Do you have a link to Dijkstra’s writings on Ada?
0
1
0
0
Open post
Replying to
@adamghill@indieweb.social
@adamghill@indieweb.social That’s the thing! Everybody has strong opinions about it, but it’s 50/50 split 😂
1
2
0
0
Open post
Replying to
@adamghill@indieweb.social
@adamghill@indieweb.social Maybe I should market Mastro also as a web framework for agents 🤔
1
2
0
0
Open post
Replying to
@citizen428@chaos.social
@citizen428 Awesome read!
I also like how the blog post lacks any mention of why you would want to do that 🤣
1
1
0
0
Open post
Replying to
@twifkak@mas.to
0
0
0
0
Open post
Replying to
@peter@thepit.social
@peter Agree. Some of it will pass though. https://htmx.org/essays/yes-and/
1
0
0
0
Open post
Replying to
@Moltz@mastodon.social
@Moltz@mastodon.social Can you also have all the Safari bugs fixed? It’s driving us web developers insane. Thanks and all the best in your new role!
1
0
0
0
Open post
Replying to
@alansuspect@aus.social
@alansuspect@aus.social https://mastrojs.github.io is still independent!
1
0
0
0
Open post
Replying to
@joeri_s@mstdn.social
@joeri_s@mstdn.social Nice! Looks much plainer, which suits the topic :-)
1
0
0
0
Open post
Replying to
@tomi@mamot.fr
@tomi@mamot.fr @dthompson@toot.cat If you want to cheat, have a look at the source code of Mastro: https://github.com/mastrojs/mastro/tree/main/src
it’s just about 700 lines of TypeScript and I wrote it to be readable.
0
0
1
0
Open post
Replying to
@13reak@infosec.exchange
@13reak @pheonix For those curious: https://unix.stackexchange.com/questions/780938/is-it-still-unsafe-to-cat-an-arbitrary-file
The rewrite everything in Rust folks have a point, it seems.
1
0
0
0
Open post
Replying to
@zekjur@mas.to
What?! and how is a patch identified? any line that starts with a minus or plus?
0
0
0
0
Open post
Replying to
@athas@freeradical.zone
That’s exactly how I feel about web frameworks and bundling. For most websites, you can just do without.
0
0
0
0
Open post
Replying to
@soviut@hachyderm.io
Even with SSR you need to ship everything to the client and hydrate. And while I agree React is a big part of the problem, SPAs need to ship a client-router, which in theory is not tied to React.
0
0
0
0
Open post
Replying to
@dan@discuss.systems
Fair. But what if they then also get a child?
0
0
0
0
Open post
Replying to
@bw@social.lol
1
3
0
0
Open post
Replying to
@bw@social.lol
Awesome talk! 👏
The types in JSDoc approach is neat. But even though https://mastrojs.github.io is vocally #noBundler (by default), TypeScript is the one exception, where I decided to use ts-blank-space to transparently transform .client.ts files to .client.js. I’d argue, since it’s a small dependency, and errors/stack traces still point to the right place in the source file, the advantages outweigh the magic factor.
For server-side, Deno and even Node support running TypeScript natively now. I think there’s even a proposal for browsers to strip types as well.
1
0
0
0
Open post
Replying to
@Doveux@meow.social
Judging from the typography, that pharmacy is indeed allergic to LaTeX!
0
0
0
0
Open post
Replying to
@zeldman@front-end.social
@zeldman@front-end.social And now imagine that you can also generate it using your favorite scripting language!
https://mastrojs.github.io/#easy-for-beginners-–-no-installation-needed
0
0
0
0
Open post
Replying to
@gloriousnoise@heads.social
@gloriousnoise@heads.social @zeldman@front-end.social It’s called static site generation :-)
0
0
0
0
Open post
Replying to
@jaredwhite@indieweb.social
@jaredwhite@indieweb.social @mb21@hachyderm.io @vanillaweb@intuitivefuture.com That’s a good point. A lot of built in properties of course reflect to the attribute. And for classes, we use classList anyway, in order to not lose other classes. But yes, a custom field like variant is not auto-reflected. For that, you’d have to add data-bind=“dataset.variant=variant” or similar. Do you think it’s worth adding the same feature for non-data attributes so you could do data-bind=“attributes.variant=variant” ?
0
0
0
0
Open post
Replying to
@jaredwhite@indieweb.social
@jaredwhite@indieweb.social @mb21@hachyderm.io @vanillaweb@intuitivefuture.com I see. The first thing works with Reactive Mastro as well, e.g. document.querySelector('my-counter').count.set(7) on https://mastrojs.github.io/reactive/
But yes, I've always viewed attributes as best left unchanged after the server rendered them. If you have JS updating something, best to encourage properties, which are not just strings? Perhaps I'm missing a use-case? But feels like one of the more annoying aspects of the DOM (and by extension web components).
And yes, it's true that you have to inherit from the ReactiveElement class. I just didn't find a way to reduce the boiler plate without that. At least you can call customElements.define yourself, so strictly speaking it's still a library and not a framework 😉
1
1
0
0
Open post
Replying to
@vanillaweb@intuitivefuture.com
@vanillaweb@intuitivefuture.com Cool! I especially like how you can pass in different signal libs.
Definitely an interesting design space. Thus I have to ask: anything in particular you wanted that https://mastrojs.github.io/reactive/ couldn’t do or couldn’t do well? I still have to look at Reciprocate’s details, but at first sight seems more boiler plate? Is that giving you more control somehow? I see you’re watching attributes, which Reactive Mastro doesn’t do by default. Was this such a common thing that external code sets those and your component needs to react?
0
1
0
0
Open post
Replying to
@chetfaliszek@mastodon.online
@chetfaliszek@mastodon.online @codinghorror@infosec.exchange what was the bet?
0
1
0
0
Open post
Replying to
@ProfKinyon@mathstodon.xyz
@ProfKinyon@mathstodon.xyz yeah, remember my “Analysis I” lecturer being like “now, we’d like to proof that…” and I’m like “whoever that we is, it doesn’t include me!”
0
1
0
0
Remote instance
hachyderm.io
Open on original server