Some things that have happened in the meantime:

I'VE CONQUERED SLICES !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

a screenshot of a user's slice on slices.network. there is a dropdown that has two items: one item says "fan.fics.work (4)", and the other says "fan.fics.work.chapter (2)". the page itself displays "fan.fics.work" records that were successfully posted through slices.

Granted, it's literally all fetch requests to the Slices XRPC API. I literally don't know how secure that is, but at least I can partially opt out of the OAuth by getting a generated token (a bit flaky at the moment) and use that for now.

Previously, I was copying Leaflet's flow of making a new publication -> then adding a document to make new fanfics with the first chapter on a user's PDS.

This was only to grab the URL generated by the "create" method for a new fanfic work (a record that contains metadata for a given fanfic) and link the first chapter to the fanfic with this URL, but I was given a tip by mary to generate the URL ahead of time using the record key!

This allowed me to make both the fanfic's metadata and its first chapter in a single transaction. That way, fans don't need to go through a two-step process and this lowers the friction of publishing fanworks! This needs a bit more testing for me to call this a Finished(tm) feature in my humble opinion.

And we got more hands on hand!! It's not just me hammering away on this in isolation. In fact, I just merged a new feature to save drafts!! Many thanks to momijizukamori for contributing this! :)

Still figuring out how publishing could look like on a UX level. Giving users power to control the visibility of their fanfic would be very cool. The current options are:

  • Public on the "website", not public on ATProto

  • Public on both the "website" and on ATProto

There's tradeoffs and benefits for both options, I've listed them before in the first devlog here. There's more options I'd like to explore, like showing fics to only your mutuals on Bluesky or to a specific group of people by their handles/DIDs. Something to consider!

I also say "website" loosely here since at the moment, I don't know if I would have the resources (financially, legally, and/or mentally) to actually host this project in practice. If I've learned anything from AO3, it's that people really, really like being horny in a lot of different ways. It's great! But horrible for current political climate where we face increasing pressure from various powerful forces to censor kinky weird media.

(Also am still looking for a job. Feel free to DM me on Bluesky if you want to hire me to smack front end stuff onto your site!)

Which is why this project is open-source: to allow others to contribute and host this on their own. (But I don't even want to think about the possibility of this project being monetized since I'm not in the best financial situation and I'd rather not let that negatively affect anything.)

This project was always meant to be put into people's hands and empower them to build their own fannish spaces however they want/can.

The lexicons are also available for anyone to hack or improve upon, both on GitHub and on Tangled:

fanfic-atproto/lexicons/fan/fics at main · haetae-bit/fanfic-atproto
experimenting with atproto and decentralized fanfics. tangled.sh mirror: https://tangled.sh/@haetae.tngl.sh/fanfic-atproto - haetae-bit/fanfic-atproto
https://github.com/haetae-bit/fanfic-atproto/tree/main/lexicons/fan/fics
/fanfic-atproto/lexicons/fan/fics at main · @haetae.tngl.sh/fanfic-atproto
experimenting with making decentralized fanfic archives on atproto. github mirror: https://github.com/haetae-bit/fanfic-atproto
https://tangled.org/@haetae.tngl.sh/fanfic-atproto/tree/main/lexicons/fan/fics

Please feel free to open an issue on either site to give your thoughts and feedback on the lexicons!

Importing content from Bluesky and/or Leaflet as chapters should be possible, the code is there, but it needs some actual testing before I can say it works. I'm so glad for Ana's atproto-ui library and Astro's compatibility with React/Preact, because this enabled me to create components to render Bluesky posts and Leaflet documents!! That's the presentation step down, now I just need to actually, um, figure out... chapters....

...

Oh no...

Anyway!

aquoferne dropped a new song and you should check it out: