isaacschemm: A cartoon of myself as a snail (snail8)
[personal profile] isaacschemm

Pandacap: Part 6 - Extras

There are a couple other areas of the Pandacap application that are probably worth drawing attention to.

Read more... )
Tags:
isaacschemm: A cartoon of myself as a snail (snail8)
[personal profile] isaacschemm

Pandacap: Part 5 - ActivityPub

A          screenshot of part of Pandacap's favorites page, showing          gallery-style thumbnails

If I'm thinking about how often I use it, the ActivityPub integration in Pandacap really isn't the most relevant part of the application to me on a regular basis (that would be the inbox, and its integration with DeviantArt and Bluesky). It was, however, my inspiration for building Pandacap in the first place. There were a few reasons I felt this was important:

  • I believe decentralized social media will continue to be useful, regardless of whether it achieves mainstream success - maybe not to replace big social media platforms, but for its own distinct merits. To hopefully facilitate the adoption of such platforms, I wanted to ensure that the ability to view and reply to my work would be available there, and I wanted to know I could follow and reply to their work as well.
  • The ActivityPub server-to-server protocol - though it may be somewhat broad and vague - was within my ability to implement (it only uses HTTP requests and is agnostic to the underlying data model), which gives me a feeling of control over my interaction with the fediverse.
  • Joining an existing server would make me nervous about conforming to unwritten community norms, while using my own Mastodon or Pixelfed instance would increase the cost and saddle me with a tech stack I'm not familiar with. (Pandacap can run on a free web app plan and a database billed only by usage.)
Read more... )
isaacschemm: A cartoon of myself as a snail (snail8)
[personal profile] isaacschemm

Pandacap: Part 4 - Inbox

Although it's not public-facing, the Inbox is perhaps the most useful part of the Pandacap web app. As a descendant of Artwork Inbox (Pandacap is built on EF Core + Cosmos DB in a very similar manner), the Pandacap inbox pulls in new posts from ActivityPub, Bluesky, DeviantArt, RSS/Atom, and Weasyl, and allows the logged-in user (me) to view and dismiss them, kind of like an email inbox.

Posts from users and feeds you follow are split between four different inboxes:

  • Image posts: DeviantArt and Weasyl art submissions, and any ActivityPub, Bluesky, and RSS/Atom posts that have an image attached. (Unlike the Pandacap gallery, these aren't called "artwork" posts, because Pandacap can't tell whether an image post is "art" or not.)
  • Text posts: DeviantArt journal entries and status updates, and any ActivityPub, Bluesky, and RSS/Atom posts that don't have an image.
  • Shares: If an ActivityPub and Bluesky post is showing up in your feed because it was shared / reposted / boosted by the user you follow, it will be sent here, instead of to the image post or text post sections. Pandacap will group shared posts by the user who shared them, not by the user who originally posted them.
  • Podcasts: RSS/Atom feeds that have an attached audio file will be sent here.

The user experience here is heavily inspired by the Fur Affinity and Weasyl inboxes: posts are shown roughly in chronological order; image posts have thumbnails and text posts only have a title; you have to click through to see the description / body of the post; checkboxes are used to remove posts from your inbox; and a "next page" button is used instead of a dynamic loading of new content.

Read more... )
isaacschemm: A cartoon of myself as a snail (snail8)
[personal profile] isaacschemm

Pandacap: Part 3 - Creating Posts

Ascreenshot of Pandacap's main page, with the user'savatar andname, links to other sites and protocols, a searchbox, 8artwork thumbnails, and 5 status updates (2 with theirownthumbnails)

From a public-facing perspective, Pandacap is essentially just a single person's art gallery (and blog, microblog, and profile, I suppose). One of Pandacap's philosophies is that fundamentally different kinds of content are separated, so there are three types of public posts:

  • Artwork - a single image, with a title and description.
  • Journal entry - essentially a blog post, with a title and text.
  • Status update - text, with an optional attached image.

These are, not coincidentally, three of the four DeviantArt post types. The paradigm of Pandacap - the context in which it assumes you're creating and uploading your posts - is heavily based on art sharing platforms like it, some of which predate the rise of general-purpose microblogging.

Read more... )
isaacschemm: A cartoon of myself as a snail (snail8)
[personal profile] isaacschemm

Pandacap: Part 2 - Authorization

Since Pandacap is a single-user application, I really didn't want to write my own authentication and authorization system. The only goal was to allow myself to log in, and no one else. So instead of using an email/password combo, like the default Identity template, I've limited it to just this:


Read more... )
isaacschemm: A cartoon of myself as a snail (snail8)
[personal profile] isaacschemm

Pandacap

This has been my hobby project for the better part of the past year, and it's something I've been wanting to make a series of blog posts about for a while. Pandacap is my personal Swiss Army knife web app; it hosts my art gallery and microblog and collects incoming posts and notifications across five different sites and protocols.

The code for Pandacap is open-source (AGPL v3). I don't imagine it will be that useful to many people; trying to ask a non-Microsoft-stack developer to make tweaks to it would be like asking me to contribute to, well, anything in Python. (Plus, the code itself is not very robust, and not at all scalable.) But I've made some very deliberate decisions in the UI of this app, with an eye towards my own psychological well-being. The context collapse of traditional social media kept me away from it for years, and this app (and one of its predecessors, Artwork Inbox) is the reason I can follow artists on Bluesky and Mastodon without giving up in frustration. I'm hoping that someday, these design principles could be useful to other people who find themselves in the same situation.

Read more... )

Snail#

A programming blog where the gimmick is that I pretend to be a snail.

Syndicate

RSS Atom

Expand Cut Tags

No cut tags

Style Credit

Page generated Jun. 16th, 2025 01:21 am
Powered by Dreamwidth Studios