Skip to content

Community Infra vNext migration planning for windowsappcommunity.com #11

@Arlodotexe

Description

@Arlodotexe

Background

See https://discord.com/channels/372137812037730304/845621961882861598/1187180614584127528

For those without access, here's a copy:

🏁 Progress update

Background

  • Noting that this began as an update to Discord.js to get threads and slash command support in Server Companion#4732.
  • Upgrading discord.js broke nodejs compatibility, upgrading nodejs broke Sequelize compatibility, and Sequelize could not be updated without a complete refactor. Added to the prior friction with limitations imposed by Heroku, we opted to move from Postgres to Ipld (see here).
  • The frontend was just as bad. After completing the upgrade to our backend, I've been playing whack-a-mole with our current frontend just to get it building again with the new models and api calls.
  • Adding one package required upgrading nodejs, upgrading nodejs required breaking major version bumps in several other packages, and the usual dependency chaos ensues. Webpack breaks, then typescript breaks, then React breaks, then react-router breaks, and so on.
  • Our backends' http api is 95% refactored, and is simply waiting on frontend changes. The frontend changes have eaten enough time that I'm now considering just skipping to the rebrand and the accompanying new codebase, scrapping our current frontend entirely and replacing the (only) 3 purposes it serves piecemeal, as was planned for the rebrand.

⏩ Skipping to the rebrand

Here's a rough draft on how we'd need to approach that.

The current website does 3 things:

  • Displays the registered projects in the community, and to invite users and developers alike. Will be a set of static generated pages.
  • Keeps people up-to-date on community events. Will be a static blog.
  • Member and project registration. Will be built into a C# SDK and handled via Server Companion#4732 (with slash commands and interactivity).

Also noting:

  • The current frontend was originally set to be scrapped during our rebrand. We'll be pushing the rebrand timeline forward so we can scrap it now. While this temporarily increases the time until Server Companion#4732 can be used in threads, this consolidates several development efforts and allows redistributing the work. Should increase our overall velocity, if divided up carefully.
  • In order to run the Appathon, we need the ability to scan git repos for registered projects and find commits made by other community members. Using automation here is the only way to keep up with the swarm-like nature of open collaboration at the scale we've grown to. Beyond necessity of scale, providing this data to the community may help improve large-scale coordination over time, if presented in a manageable and meaningful way. We need to build this still.

📝 The plan

After carefully considering our options, our timeline, and our tooling:

  • The current website (a React-based SPA) will be replaced in entirety. Instead, we'll build separate tooling for each purpose that the website currently serves (listed above). These will likely be statically generated HTML, and will be hosted via our community ipfs gateway.
  • The finished backend migration will be used to rebuild the interactive features from the frontend into Server Companion#4732, fully utilizing slash commands and interactive Discord messages.
  • In the future, the TypeScript backend providing our community services will be superseded by the C# SDK (with or without relying on an external server). As such, new features for events or collaboration will be built in C#, including the new functionality needed to run the Appathon.
  • I'm waiting to hear back from folks at MS before finalizing the design guidelines for our rebrand. Once I finalize the guidelines, I'll set up a channel (and maybe an event) to discuss, share, and ultimately pick our new design.

In the meantime, I'm refining the plan and laying some new code foundations in the background. I'll update when tasks can be delegated. Start a thread if you have questions! 🧵

This is still our plan, and we're still on track for this.

Problem

While we're on track and have started cohesive planning for the new Community SDK and the new Server Companion, we haven't started tracking planning for the updates to the website.

To recap, the current website does 3 things:

  • Displays the registered projects in the community, and to invite users and developers alike. Will be a set of static generated pages.
  • Keeps people up-to-date on community events. Will be a static blog.
  • Member and project registration. Will be built into a C# SDK and handled via Server Companion#4732 (with slash commands and interactivity).

We'll need to build appropriate replacements for these first two, which means we need:

  • A way to build static blog pages and convert them to html
  • A way to retrieve projects registered with a given community and generate a static set of web pages for listing and detailing them.
  • A way to host the generated files via a reliable ipfs gateway, likely selfhosted.

Solution

Assess, plan, file, track and complete the needed work.

Sub-issues

Metadata

Metadata

Assignees

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions