+28
-23
text/0001-appview.md
+28
-23
text/0001-appview.md
···
1
1
# Summary
2
2
3
-
Build starhaven.dev as an atproto appview with a community forum and mod
4
-
browser. Users sign in with any atproto account or sign up for a
5
-
`*.starhaven.dev` handle via the Star Haven PDS. Forum threads, replies, and
6
-
mod listings are atproto records stored in users' repos. The source lives at
7
-
`starhaven.dev/appview`.
3
+
Build starhaven.dev as an [atproto](https://overreacted.io/a-social-filesystem/)
4
+
appview with a community forum and mod browser. Users sign in with any atproto
5
+
account or sign up for a `*.starhaven.dev` handle via the Star Haven PDS.
6
+
Forum threads, replies, and mod listings are atproto records stored in users'
7
+
repos. The source lives at `starhaven.dev/appview`.
8
+
9
+
In this RFC, "end-users" refers to people who play mods (as opposed to modders
10
+
who create them). Modders are also users of the site, but the distinction
11
+
matters for the mod browser and patching sections.
8
12
9
13
# Status quo
10
14
···
68
72
promotional material all on the same page. Integration with PM-DX (and further
69
73
tools down the line) enhances the developer experience.
70
74
71
-
For players, a modern, professional mod browser removes the reliance on Discord
72
-
for viewing, downloading and playing mods.
75
+
For end-users, a modern, professional mod browser removes the reliance on
76
+
Discord for viewing, downloading and playing mods.
73
77
74
78
## Why atproto?
75
79
···
94
98
works on Bluesky, Tangled, and any future atproto service.
95
99
- We don't have to maintain a user/password system. atproto OAuth handles it.
96
100
- The PDS can support Discord OAuth via
97
-
[tranquil](https://tangled.org/@mary.my.id/tranquil), so Discord users can
101
+
[tranquil](https://tangled.org/tranquil.farm/tranquil-pds), so Discord users can
98
102
sign up without learning what atproto is. They get an atproto identity for
99
103
free.
100
104
- Other communities can run the same appview software against their own PDS and
···
148
152
Users who don't have an atproto account can create one on pds.starhaven.dev.
149
153
`/signup` collects an email and a captcha, then calls the PDS admin API
150
154
(`com.atproto.server.createAccount`) to create the account. The user picks a
151
-
handle (`*.starhaven.dev`) and sets a password. Same flow as tangled.sh.
155
+
handle (`*.starhaven.dev`) and authenticates via passkey or Discord OAuth
156
+
(supported by the PDS via
157
+
[tranquil](https://tangled.org/tranquil.farm/tranquil-pds)). No passwords.
152
158
153
159
## Routes
154
160
···
344
350
Paper Mario mods can't just ship a ready-to-play ROM or ISO - that would
345
351
require distributing copyrighted game data. Instead, mods are distributed as
346
352
patches or file overlays that are applied to a user-supplied copy of the
347
-
original game. The patching strategy varies by game:
353
+
original game. The mod browser handles all of this transparently: end-users
354
+
provide their base ROM/ISO once (stored in the browser's IndexedDB for reuse)
355
+
and then just click "download" on any mod. No separate patching program
356
+
required. The patching strategy varies by game:
348
357
349
358
**PM64 (N64)** - Mods are distributed as `.bps` patch files targeting the US
350
-
ROM (the only supported base for now). When a player hits "download" on a mod
351
-
page, the site asks for a base ROM if one hasn't already been provided (stored
352
-
in the browser's IndexedDB for reuse). The `.bps` patch is fetched, applied to
359
+
ROM (the only supported base for now). The `.bps` patch is fetched, applied to
353
360
the base ROM entirely client-side using JavaScript, and the patched ROM is
354
-
downloaded to the user's machine. No game data ever leaves the browser or
361
+
downloaded to the end-user's machine. No game data ever leaves the browser or
355
362
touches the server.
356
363
357
364
**TTYD (GCN)** - Patching strategy TBD. Needs input from existing GameCube
358
365
modders.
359
366
360
-
**SPM (Wii)** - Like PM64, the user must supply a base `.iso` or `.wbfs`
361
-
(stored in IndexedDB for reuse). There are multiple regional revisions (3 US,
367
+
**SPM (Wii)** - Like PM64, the end-user supplies a base `.iso` or `.wbfs`.
368
+
There are multiple regional revisions (3 US,
362
369
2 JP, ~1 PAL) but mods ship a single patch - the tooling uses symbol-based
363
370
replacement so it handles revision differences automatically. The existing
364
371
Flipside Mod Manager uses the C libraries
365
372
[wiimms-szs-tools](https://github.com/Wiimm/wiimms-szs-tools) and
366
373
[wiimms-iso-tools](https://github.com/Wiimm/wiimms-iso-tools) to apply
367
374
patches. Rather than porting these to JavaScript, the patching runs client-side
368
-
inside CheerpX (WebVM), a browser-based x86 virtual machine. The output is
369
-
either a `.iso` (for Dolphin emulator) or a `.zip` (for Riivolution on real
370
-
hardware). As with PM64, no game data leaves the browser.
375
+
inside CheerpX (WebVM), a browser-based x86 virtual machine. The output is an
376
+
`.iso` (WBFS filesystem) that works with both Dolphin and USB loaders on real
377
+
hardware. As with PM64, no game data leaves the browser.
371
378
372
379
**Modern PM (3DS, Wii U, Switch)** - Mods are zip files containing replacement
373
380
assets that get extracted to console-specific paths (e.g.
374
381
`sdmc:/luma/titles/<title-id>/romfs/` on 3DS). These don't require patching
375
382
against a base ROM - the zip is the deliverable. Modders upload the zip to
376
-
starhaven.dev and players download it directly, either through the web mod
383
+
starhaven.dev and end-users download it directly, either through the web mod
377
384
browser or through on-device homebrew app stores (Universal Updater on 3DS,
378
385
Homebrew App Store on Wii U/Switch) via the `/repo.json` compatibility endpoint.
379
386
···
446
453
- Multi-region PM64 patch support via a custom patch format for papermario-dx.
447
454
- Mod collections and events (jams, curated sets like Master Quest, Paper Dank
448
455
Rave, the Holiday Specials).
449
-
- Discord SSO on the PDS, so users can sign up and log in with their Discord
450
-
account without needing a separate password. Requires modifying the PDS or
451
-
waiting for Bluesky to add pluggable auth providers upstream.
456
+
- Additional PDS auth providers beyond passkeys and Discord (e.g. GitHub OAuth).
452
457
453
458
# Unresolved questions
454
459
History
3 rounds
2 comments
expand 0 comments
bates64.com
submitted
#1
1 commit
expand
collapse
add appview RFC
expand 0 comments
bates64.com
submitted
#0
1 commit
expand
collapse
add appview RFC
expand 2 comments
thank you!
- I really like your summary of the status quo and I think we should incoporate into the RFC, perhaps verbatim
- 'GitHub with Tangled' I think you mean replacing our git forge, GitHub, with Tangled - but I'm being kinda pedantic
- In the long term we could look at dropping itch.io for our own mod browser and jam system but thats a long way off and not really necessary
- "all that other communities would need to do is fork our software solution" - yep! if we provide decent docs for how to set up the infra. we could potentially design the appview/scopes in a modular way if you could see this being useful for other communities of a particular archetype (e.g. we make "steam for atproto" as the backend and then just skin that, rather than making paper mario specific features), although im hesitant on this because it means designing for users that dont exist (yet)
- The Case for Privacy: yes, this is a problem. it's one that the bluesky team are working on ('permissioned data') but there is no roadmap yet. I think we can encourage people to use whatever git forge they prefer (e.g. github) until this feature is done, and we can revisit it later down the line instead of trying to solve a problem that should get solved for us eventually.
- Slow Adoption: 100% i see this being an issue for forums part. it may be that, with the discord admin team's support, we close down some channels here and direct people to the appview (the work in progress mods channels, for instance, is better served with a kind of devlog system similar to itch). we should do this later down the line instead of forcing people to migrate while its still in alpha. for the mod browser thing, we close down the released channels here and then have a steam-like homepage and player UX is much better than 'join discord and download a bps and put it on this patcher website', and people will come to use it, I think
- Legacy Mod Support - yeah, uploading legacy content is a fun one that we should think about eventually, but i dont think it would block an MVP
- "requiring an open-source repository for mods" - I don't think we need to make open source mods a requirement - just highly encouraged. if there is a tangled repo attached then thats great, but it can be optional. this allows closed source mods from the past to exist
- We Can't Fully Replace Discord, But That's Okay - 100% agree, and this isnt a goal
- 2000s Forums Are Called That For a Reason - worth looking at Discourse as an example of a modern forum. https://users.rust-lang.org/
- Optional GitHub Support - I see some complexity with this but it highly depends on exactly what counts as a "mod" in the lexicon, and is something we can solve in a later RFC I think
- Event Support / Mod Collections - yep. scratch has these and they work well
- Discord <-> AT-Proto Bridge - I think I disagree with this. it's a lot of work for little gain and discourages people from actually checking the site. at best we could have a #forums channel that posts a message for new forum posts via a webhook. maybe down the line we can have our own discord bot that provides deeper integration (e.g. if there is a ranking system on the forums, we can map it to discord roles). chat can remain on discord, and we can do mobile support on the site as a first class feature
- What about the docs? - yes, it makes sense to keep it as it is for now besides migrating the source to tangled. we can talk about making it easy to edit the docs pages on the site directly (like mediawiki) at a later stage
- Scalability - "for the short-term it is likely best to focus on what would make this work for Star Haven specifically" I agree, although before a 1.0 we should be careful to not set any lexicon in stone that is super specific to us if we intend to open it up in future
Summary#
I'm on board! But, a lot to consider for a project of this magnitude and for a community as unique as the Paper Mario Modding scene.
Current Solution#
Synopsis#
Currently, Star Haven is used as a central hub for Paper Mario modding, except for when it is not and breaks off into smaller sub-communities (Modern Paper Mario Modding, WUA, NicTube and Lily's mods, etc.) or when users migrate to larger platforms (Itch, or formerly romhacking.net)
Star Haven facilitates general chat, private chats, individual mod and game discussion, general modding assistance, mod release notifications and community events.
How Did We Get Here?#
Some modders have the social capital to promote, release and discuss their mods in their own bespoke communities and have no need for a centralised modding hub. Some modders even get news coverage when they release their mods!
However, such modders are the exception rather than the rule! Initially, most modders bounced around various forums until landing in Star Haven's Discord server, where they continued to develop and release their mods.
How does Star Haven facilitate mod development?#
Star Haven's Discord Server holds the largest repository of modding advice, through years of Discord chats and real-time assistance from experienced modders.
Additionally, Star Haven acts as an aggregation service for modders to publish their creations to a wider audience with relative ease, providing either a thread or a bespoke channel dependent on the mod's popularity.
On top of that, Star Haven aggregates and hosts modding tools, as well as similar help channels for said tools.
Star Haven also uses Discord and Itch.io to host regular jam events, where modders create teams to create themed mods in a certain timeframe.
What else do modders use?#
Modders use GitHub to collaboratively develop their mods, private Discord servers to facilitate development chats and voice-calls, and Itch.io to publish their mods.
Offline, modders use a wide variety of tools such as Star Rod, Mamar, Unsimplifier and more.
How does Star Haven assist mod players?#
Star Haven provides an avenue to discuss mods, the Paper Mario games, ask for help on a per-mod or a general basis, or have a general chat for most players.
Additionally, we offer a list of mods in the Discord, and the aforementioned broken mod browser on starhaven.dev/mods.
Is any of this ideal?#
Not really! The community is splintered across multiple technologies and platforms that do not neatly integrate with one another, limiting most modders' reach to a single medium-sized Discord server.
That and everyone quite dislikes Discord.
The Proposed Solution#
Synopsis#
We replace the Discord Server with Star Haven Forums (built atop at-proto), GitHub with Tangled, and Itch.io/GitHub with Star Haven Mod Browser 2.0. All of this is hosted at starhaven.dev!
What's Good For Star Haven Modders?#
The removal of reliance on closed-source, walled garden technologies allows us to exist as a self-sustaining community indefinitely, tailoring the platform we use to our individual community needs!
The use of open-source, federated technology also allows other communities to fork our work in their own endeavours to replace Discord in their usage.
Hosting all of Star Haven on the open web allows for easy searching of modding information, mods, and to contribute to our community without a Discord account.
We can have a bespoke theme for our forums, making the user feel more at home.
A non-Discord mod browser allows for much greater modder control of how their mods are promoted and advertised, providing descriptions, updates and promotional material all on the same page!
Integration with PM-DX (and further tools down the line) makes this a no-brainer as a future goal, because it enhances the developer experience.
What's Good For Star Haven Players?#
A modern, professional mod browser removes the reliance on Discord for viewing, downloading and playing mods, and allows users to find mods without scrolling up through discord channels to find them!
Would this be good for the greater Paper Mario Modding Community?#
It's likely! If the forums and mod browser are federated, then other sub-communities will be free to host their own PDS, allowing them to leverage our mod browser and forums while still maintaining separate communities.
Would this be good for other modding communities?#
Also likely! If I'm understanding correctly, all that other communities would need to do is fork our software solution, adapt the theming for their own game or platform, and then they would be able to host a similar solution!
Many modding communities are stranded in Discord servers that become difficult to find over time, and so a federated, web-based solution such as this could breathe new life into otherwise forgotten modding communities, as well as allow their mods to live on post-shutdown.
The scalability and federation of at-proto would allow for even larger mod aggregate sites, that aren't at the risk of shutting down and losing all mods like romhacking.net.
Considerations#
The Case for Privacy#
Most modders work in secret until they're ready to release their mods. An open, fully-public platform such as Tangled (and at-proto at large) removes the ability for modders to do so.
This clashes with the approach taken for Jams, where modders all keep their repositories private until it is time to release their mods.
Slow Adoption#
I say this with love, but the Paper Mario Modding Community is very slow to adopt new technologies. Decomp has been out for years and years, yet modders prefer to backport features from Star Rod Decomp to Classic in many cases!
This (typically) isn't due to modders being stubborn, but oftentimes older solutions have answers to problems that the newer solutions don't account for.
Classic->Decomp is a conversation that's been done to death, with every second person providing a reason to stick with Classic despite the technological superiority in most aspects of Decomp.
If users cannot access the full suite of features they have come to appreciate about even inferior platforms such as Discord, it is unlikely that they will move over, partially or in full. As a community platform is only as good as its users, if nobody moves, the work would not benefit Star Haven!
That, and the closer we stick to the Discord model, the less we benefit from the move. For example, if we were to port #pm64-modding directly over as a forum thread, people would be able to search for strings of text, but not for topics. This is not that much better than using Discord!
Additionally, channels like #star-kids may also need to be dropped entirely, as they don't really map to the forum model, which creates friction which some may object to.
As such, user behaviour would need to change slightly - instead of talking in a general modding thread, they might need to create a thread to ask questions. Thankfully, with control over the appview, we can make this as obvious, simple, and fast as we need to. Off-topic conversation may coalesce into one general thread (or even an IRC channel...), which likely doesn't need to be scrapable by search engines.
Legacy Mod Support#
As users require accounts to publish mods, it is unlikely that we will see the full Paper Mario Mods catalogue available on Star Haven for some time, unless we reach out to other communities or retired modders.
Additionally, requiring an open-source repository for mods released years before this became standard practice limits the ability for us to serve legacy mods to users, which is something the Discord Server still supports (i.e. the Pro Mode download link is still hosted with us.)
We Can't Fully Replace Discord, But That's Okay#
Star Haven Forums would not be able to support voice chats, screen-sharing or private modding chats. That's okay, because people tend to do this in private modding servers anyway! It does however mean that modders will be using Discord to mod collaboratively, and Star Haven to publish mods.
I don't think there's a way to fix that short of hosting a federated Discord alternative (that also supports invite-only servers and mobile support), but we're already hosting three services as is and I don't want to keep stressing out poor Kuribo.
2000s Forums Are Called That For a Reason#
I love the 2000s forums look! However, it fell out of favour for a variety of reasons, notably accessibility reasons and mobile support.
We can still achieve a personalised, homely look - Mario Fan Games Galaxy and Spriters Resource achieve this with custom icons, banners, fonts and palettes, but it would be wise to take cues from modern sites to ensure that Star Haven remains as accessible as it can be for all players and modders.
That, and a bespoke design gives us the opportunity to create a modern, mobile-supported look to go alongside the modern technologies we're employing.
Potential Addendums#
Optional GitHub Support#
To my understanding, while private repos are in the works for Tangled, they are not yet available. If we happen to release a version of starhaven.dev before they are available, we should allow users to link GitHub repositories to their mods until we can properly replace GitHub's functionality.
Event Support / Mod Collections#
Events are really just collections of mods with a synchronised release date. We have a lot of mod collections anyway (Master Quest, Paper Dank Rave, the Holiday Specials) and so we would benefit from including support for them, as it's something that the Discord and Itch facilitate that this proposed solution does not, yet.
Discord <-> AT-Proto Bridge#
If we can't bring Discord users to the site immediately, we can still absolutely bring over their messages! And vice versa, with webhooks.
However, this bridge would mean that, in the early days, nobody would be punished for using the site as an early adopter, which would accelerate adoption of the site.
Inversely, a Discord bridge also allows mobile users to remain able to post to the forums while we sort out a suitable solution for a mobile version of the forums.
In the event that Star Haven chat remains on Discord, this also allows us to have the best of both worlds, leveraging the only thing that Discord is really good for!
Moderator Simplicity#
I assume the same people who moderate the server will be moderating the forums. We should strive to make doing both as seamless as possible for them.
What about the docs?#
Will we be including Star Haven's tool documentation in this solution, or will that remain as a unique system?
Scalability#
Because we're already making considerations for seven different games, each with their own modding tools, it is likely that our forums and mod pages are game-agnostic.
Similarly, if we provide the ability to host mods and users from separate PDS servers, this technology may easily be of great use to every modding circle looking for a Discord replacement!
This justifies the time-sink it would take to create a bespoke software solution for about 20 users, as all of a sudden our work becomes useful to Every Modder Ever.
However, this does mean that some unresolved questions (hardcoding categories makes less sense in this context) become easier to solve, but provide us with less flexibility in making changes for ourselves.
As such, for the short-term it is likely best to focus on what would make this work for Star Haven specifically.
Conclusion#
Yeah this is something I'd like to contribute my time to setting up this community is just a little unique with it sometimes ๐