Nolan is a user on toot.cafe. You can follow them or interact with them if you have an account anywhere in the fediverse.
Nolan @nolan

Pinafore is an alternative web client for Mastodon that I'm releasing today. The goal is to make a lightweight standalone web app that can plug into multiple instances, with a UI focused on speed and simplicity.

Pinafore is still beta-quality in places, but it's already the main client @ElfLord and I have been using for the past few weeks. I've been working on it since the start of this year. Hope y'all like it. 😊

· Pinafore · 118 · 141

@nolan @ElfLord tell me all about your svelte experience. i'm considering moving a major project to it and i'd love to hear some feedback from people who've already implemented it at scale.

@selfagency Svelte is awesome. I could probably write a whole blog post about how much I love Svelte. It's similar to VueJS but does a really good job of compiling down to a "minimal" JS frontend.

@nolan awesome. can't wait to give it a go. out of curiosity, why not have a dropdown menu to switch between instances in pinafore instead of burying it under settings? also, what about a merged TL that has all instances and lets you choose which account to write/reply from when tooting, including multiple accts, like buffer?

@selfagency Easier instance switching is on the roadmap. I think you should be able to tap your profile picture to switch between them. github.com/nolanlawson/pinafor

@nolan I'm giving it a try now, works great in Firefox on Android ☺ My only comment atm is that there's no obvious way to jump back to the top of a feed after you've been scrolling for a while.

@kepstin Yep, I think I'm going to make it so you can tap the nav button to get back up to the top. Agreed it needs fixing: github.com/nolanlawson/pinafor

@nolan @ElfLord Previous toot nuked now that I've seen the CONTRIBUTING.md guide.

One smol question : can this be statically hosted or does it really need the npm service running on a given port?

@ambassador @ElfLord In theory you can run `sapper export` to just output a set of static files. In practice, I need to upgrade to the latest version of Sapper in order to enable this, and plus there is some stuff that just can't work statically without some nginx/apache magic (namely dynamic routes, e.g. /tags/myCoolHashtag).

@nolan @ElfLord Understood.

We have a static web host for artodon/haclyon 😉

Pinafore looks amazing as well. We could see it being a semi-instagram like UI which... kind of our 'killer feature' 😉

(note: we're not asking you to adapt pinafore in any way, just hoping to support the project via a deployment / similar if it makes sense for us)

@ambassador @ElfLord Standalone mobile apps are on my roadmap as a possible future feature: github.com/nolanlawson/pinafor . I do really like that it's "just" a website though. 😊

@nolan @ElfLord I'm actually less concerned about the 'stand alone app' and more about a way to get an instagram like experience 😉

I think I'm going to be deploying a test instance of this shortly to see if it feels like a photo first browser for our instance. (Based on the screen grabs... I think this is darn close to what we've wanted for awhile).

@ambassador
Hey, I'm actually currently working on an instagram-like federated social network called Fontina. I wasn't aware your instance existed until just now, but I would love to see if I could work with y'all to make sure it's great for photographers as well as your average user.

It's still in a very early stage, but I feel it's fairly important to make sure it's welcoming to communities like yours

@nolan @ElfLord Nolan, I make a little add-on for to open mastodon on a sidebar. Later today, I will switch it to pinafore because opening mastodon on an iframe causes csp violation depending on the instance. Thanks for the hard work.

@soapdog @nolan @ElfLord Yay!

On a Pixel as FF PWA <3

Where can I start contributing to get a black theme/🌃 mode :D

toot.cafe/media/y41lxb9bzrxhZ6

@nolan Looks awesome! Would it be practical to embed the server in a mobile app and make it entirely stand-alone?

@jaycie @nolan related question... since the glitchsoc fork has multiple frontend support, could we make this an optional frontend on glitchsoc instances potentially?

@bea @jaycie It's possible, but would require a bit of work first to change how auth is handled. What's supported today is self-hosting, but you'd still have to have the user log in to the instance manually.

@nolan @bea @jaycie Would it be possible to have it 'configurable' for a 'lock' to a specific instance?

So we could deploy it for 'instance.com' and have a login experience similar to the standard UI?

Simple username/password/totp that's wrapped up in pinafore to help with multi-instance confusion.

@kemonine @bea @jaycie Allowing instances to self-host as an alternative frontend where you're automatically signed in is a possible future goal, but right now it's not quite there yet due to having a separate auth system from Mastodon. github.com/nolanlawson/pinafor

@nolan @ElfLord Looks good so far! Using it from Firefox already. Needs a dark theme though. :-) It's "snappy". Much faster than the default Mastodon UI. Congrats!

@nolan @ElfLord I don't mean to be proscriptive about this or anything but IMO there is approximately one single reasonable possibility for a logo
and I can't wait to see a mastodon wearing a pinafore typing on multiple laptops at once.

Who do I pay to help make my dream a reality.

@gaditb @ElfLord lol, I used a boat as the icon because I was thinking of the play, not the apron thing. But yes, I can totally see that. 😉

As noticed by @lychee, it seems Privacy Badger doesn't play nice with Pinafore. It thinks your instance is a "third-party tracker" because of the cross-origin requests. 🙃 github.com/nolanlawson/pinafor

The only fix is to disable Privacy Badger for Pinafore apparently. Sorry about that; if anyone knows of any workaround please do let me know.

@nolan @lychee I re-enabled it after signing on and it's fine now?

@nolan @lychee btw it seems it works with privacy badger in android Firefox.

@nolan @lychee i'm not having a problem with this?

Really love the Mastodon community. Pinafore still has plenty of bugs and missing features, but folks have been super positive in the responses. Makes me want to keep working on it! 😊

@nolan its such a wonderful start, you've done a good job so far and I look forward to it's continued development.

@nolan Mastodon reminds me of when big companies like Twitter and Google still had a developer community. And this time, it doesn't exist at the whims of VCs and advertisers.

@KinmenRisingProject It's there in the instance settings. :)

@nolan ah, ok, found it. Imho it would be better to put it on the main bar, to be immediately available. Just my 2cents

@nolan wow, just trying this one out, and I must say I am pleased to see how accessible it is to a screen reader! Really well done, Sir!

@marcozehe Awesome, glad to hear! 😊 I did spend some time testing screen readers (mostly VoiceOver on Mac). If you do run into any problems though then please feel free to open an issue: github.com/nolanlawson/pinafor

@nolan Yes, will do, thanks! Already found a few keyboard focus transition issues. :) But also saw some instances where keyboard focus was already being handled gracefully. Am really impressed!

@marcozehe Yes, I try my best to maintain keyboard focus across multiple timelines. Curious to know where it loses it though. :)

@nolan See github.com/nolanlawson/pinafor. There seems to be a difference when using VoiceOver's Activate command versus using Space to activate the Reply button. Interesting... Just noticing this now as I reply.

@nolan is there anyone working on a photo/art (ie Instagram-like) specific UI?

@sivy not a whole lot of progress yet as I still have to do class work, but working on it nonetheless :)

@nolan and thank you to you for creating such a great web alternative for Mastodon. 👏👍

@nolan @lychee PB determines "trackers" heuristically and by client-side observation, which is why you're getting a lot of "works for me!" replies. (They haven't seen that request from different domains.) A non-trivial workaround is to post a compliant Do Not Track policy (but that might be per instance, so... non-trivial) eff.org/dnt-policy

@nolan @lychee It was enough, I think, to "greenlist" my instance when it appeared as a third-party origin in Privacy Badger. No need to disable Privacy Badger overall.

I've reported this to them, and I'm probably not alone. :-P

@nolan Great work; this is perfect and a huge improvement over the default web client. I was getting super frustrated with focus issues when using the default client in a keyboard-driven browser just a few days ago: icosahedron.website/@technoman

I like to complain about resource-hungry JavaScript apps getting out of control, so it's so refreshing to see not everything has to be that way.

@nolan @ElfLord where can I find this? Please tell me that it has a light theme, as the dark theme in Mastodon is a huge usability for me.

@nolan @ElfLord I'm trying it now. I like it a lot. Quite the relief to be able to use Mastodon on the web without going blind. :-)

I wish I had your webdesign skills. Then Potato would have a much nicer UI and possible be generally usable for anyone who is not a developer.

@nolan @ElfLord That’s fast, this feels SO refreshing; and very complete!!

Some suggestions I didn’t see in the Github issues:
– it feels a bit too spaced for my taste; especially on small screens. Maybe try to merge CW text and button, or put the button before (on the same line) the CW text with some down arrow icon?
– I don’t like the compose box at the box, it takes place when I really want to see the latest toots.

If that makes sense for you, I can open issues about it. :)

@melunaka @ElfLord Yep I could imagine making the compose box a bit more compact. E.g. you tap it, it expands. These are reasonable feature requests. 😊

@nolan @ElfLord Oops, seems that changing current instance and then refreshing a toot opened in another tab doesn’t work. I’m not sure that’s easy to fix (or doable at all), because I never saw a client doing it right.

@melunaka @ElfLord Yeah unfortunately I don't think there's an easy way I can support this. When you switch instances, all the status/account IDs change (e.g. account #1 on one instance is different from account #1 on another instance).

@nolan @ElfLord Well you could probably try to find a toot posted from the the same user (same @) at the exact same time but that sounds like a pain to do.

@nolan @ElfLord Oh, that's lovely. I will give that a try.

@nolan @ElfLord Wow. Pinafore is amazing! Light, smooth, and doesn't feel like there's an unnecessary layer between me and Mastodon. Nice work!

@nolan I’m very impressed. It’s super fast, smooth and feels very lightweight.

@nolan @ElfLord Do you have an open instance for test ? I already tester pleroma who is alternative to mastodon using ActivityPub too

@tofeo @ElfLord I use malfunctioning.technology occasionally for ad-hoc testing, but the Pinafore test suite actually runs its own local Mastodon server with pre-populated data. :)

@nolan @ElfLord
Just logged in pinafore.social on my iPhone browser. Looks nice!

@nolan I'm trying it out now :)

One thing that bothers me is that I can't swipe to switch tabs like with the normal masto/web/UI

@miwilc I chose not to implement swiping for now because I've found it's a bit wonky in some browsers. E.g. in mobile Firefox, sometimes a "scroll down" gesture is interpreted as a "swipe" gesture, which can be frustrating. I'll open an issue, though: github.com/nolanlawson/pinafor

@nolan Loving the clean look! This is a huge improvement to new users’ Mastodon experience. Well done! I noticed an issue on iOS already: PWA functionality does not play nicely yet on iOS11.3 because when adding an instance, Safari opens & gets the login cookie instead of the sandboxed PWA webview, so it cannot login.

@tbaldauf Oof, I had not tested in the latest iOS 11.3. Opened an issue: github.com/nolanlawson/pinafor

@nolan @ElfLord that said, lack of GS support is kind of a deal-breaker for me. is that on the roadmap?

@sonya @nolan @ElfLord I think someone mentioned that they are working on making GS talk with ActivityPub.

@maloki @ElfLord @nolan @sonya that's for server-server comms afaik? either gnusoc would have to add support for mastodon's REST api or pinafore would have to add support for whatever gnusoc's client api looks like

@nolan

Hi! Loving Pinafore, but I can’t figure out how to mute or block someone, or how to report a toot? Is this something that’s in the works? Thanks!

@gannet It's not supported yet, sorry about that: github.com/nolanlawson/pinafor

In the meantime you can copy a permalink to the toot/user (permalinks have a little icon of a square with an arrow coming out of them), and report/block in the main Mastodon web UI.

@nolan @ElfLord Does Pinafore let you reply to a toot on a different account than the one on whose timeline it arrived?

@wrenpile Unfortunately no, you have to copy the permalink, switch to the other instance, and paste it in to the search. I'd love to add a shortcut for this though (I believe some native clients already have this).

@nolan Ok, I’ll be paying attention to this project for sure.

Thanks for everything you do!

@nolan so, is Svelte all it's cracked up to be?

@nick Svelte is awesome. Can't say enough good things about it. My favorite part is actually the programming model, which is similar to VueJS.

@nolan This is way neat! Your introductory blog mentions multiple account support - does this mean account switching?

@ti Yes, you can log in to multiple instances and then switch between them. :)

@nolan Is... there a switch button? How do I do this fabulous life-changing thing? 😃

@ti Right now it's in the instance settings, but in the future it'll probably be on the home timeline for easier access. :)

@nolan @ElfLord thank you. Thank you so much. My eyes thank you. My already eroded attention span thanks you. Generations of #fedizens yet unborn thank you ...
pinafore.social/statuses/10015