"How's that different from Monocle?" Barely. It's still all server-side, and a lot of the code is the same. (But also, it's Laravel-based and progressively enhanced [e.g., JavaScript-only buttons are added _through JavaScript_, so text-only browsers don't even see them]. The design's obviously a little different, and overall there's less markup and templates.)

Show thread

Also, it asks for confirmation before logging out. And the side panel closes when clicking outside. Doesn't "Mark as read" as items scroll by—you have to actually click the text/"Expand" button. Should add confirmation before likes/reposts are sent, though—it's way too easy to accidentally do so now. Will add keyboard shortcuts, too. Not sure if the page header should become fixed. Or if I should move the menu button. It may be a little hard to reach for some.

Show thread

Oh, and I got resizing to work, too, provided Imagick’s installed. Circles for avatars it is! (If no image dimensions are passed along, the original will just be passed through without ever being saved. If dimensions are present, the image’ll be resized and cropped accordingly, and stored indefinitely. [I’m planning a console command/cron job to purge images, say, weekly.]) Still, the entire app now runs on my shared hosting account; no 3rd-party services—other than a Microsub server!—needed.

Show thread

(I could probably have used JavaScript to force a certain aspect ratio, and only then set `border-radius: 50%;`, but ...)

Show thread

I’ve said it before, but I have totally replaced my RSS reader with this. I’m pretty much using it like one, too, and not as a “social” app, per se. Would still love to add an “individual entry” view (but I’m afraid there’s little room for it in the spec). It should, however, be possible if I just integrate the aggregator and reader (i.e., have the latter fetch from the database directly, rather than over a JSON API)—while leaving the API in place, obviously.

Show thread
Follow

The "Mark All Read" button was somehow "broken" due to the way Monocle sorts posts (by date added to channel rather than date published). I'm doing it the other way around, but because of that, "newer" posts (i.e., fetched at a later time, but published before other, actually later posts) would sometimes get skipped. Fixed by processing actual posts IDs instead of a single ID/timestamp.

Feels quite snappy for a "server-side" app (other than the AJAX-powered buttons/commands), too. (And that's on shared hosting.) Faster than many an SPA I've recently tried. Granted, there's actually visible page refreshes.

Show thread

Thing is, both Monocle’s back end and Aperture already support this, so all I had to do was change four or so lines of JavaScript. Yay!

Show thread
Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!