d12 / social_spaces

0 stars 0 forks source link

MVP #13

Open d12 opened 4 years ago

d12 commented 4 years ago

The MVP should be a product we feel comfortable testing out at one of our companies (Shopify, GitHub, ApartmentList). It should have enough functionality to get good feedback from people, but a small enough surface area to be usable in small numbers.

Functionality

Authentication

Authentication is done via Google OAuth. A config option gates entry by google TLD (@shopify.com). Each deployment is scoped to a single enterprise. There is no functionality for users not logged in.

Homepage

Screen Shot 2020-06-05 at 8 35 30 PM

There are two options available, CHAT or DRAW (skribbl.io). Below each button, we show the total number of people currently participating in the activity.

Clicking on an activity will matchmake you into an activity room.

Matchmaking

MVP matchmaking is extremely naive. If there is a non-full room, put them in the room. If there are no rooms with space, create a new room and put the person in the new room.

When a room becomes full, we mark it as "full" and stop putting people in the room, even if someone leaves.

Activity Rooms

An activity room has a Google Meet call URL. For MVP, video/audio will not be embedded in the UI at all.

For the DRAW activity, we will generate a room URL for people if possible. If not, we'll appoint a host and ask them to create a private room and share the URL in the activity room. This will send the URL to the other participants so they can join.

Activity rooms are closed when no participants remain (if we can tell). If not, rooms are closed after a fixed timeout (3h?).

Google Meet calls

There is not a public API to generate Google Meet calls, however a Google Meet URL will persist until it's been inactive for 30 days. We'll assign Google Meet calls to activity rooms by maintaining a resource pool of Google Meet URLS that have to be setup when the app is first deployed.

When creating a new activity room, we should select the most inactive Google Meet call.

d12 commented 4 years ago

I was doing some more thinking here, the current design will be difficult to take off due to the "critical mass" needed to make these activities interesting, doing anything alone defeats the entire purpose of what we're doing. And we won't be able to add too many different activities or it'll dilute the participant pool too much. See https://en.wikipedia.org/wiki/Metcalfe%27s_law

It'd be good to start with a user experience catered to existing groups to begin with. E.g., your team, or your org, or a group of friends at a company. This solves the problem of being useless without an existing userbase, and lets us get traction to build up to something more suited for the "I'm solo and want to meet other people" experience we're going for longer term.

The new MVP is fairly simple. You begin with groups, either creating or joining a group. If you create a group, you can share a URL that lets others join your group. Groups are scoped to people within the same organization.

Screen Shot 2020-06-09 at 8 11 08 PM

When you have a group, the leader can choose an "activity". An activity is absolutely any SFW experience that people can do together over a video/audio call. Video games are in, "drinking" games or other fun social games are in, icebreaker games are in. Building a solid suite of activities is important, this is where the bulk of the early value comes from. When someone thinks "I want to do something social with my remote team", we want them to go "Oh, makes it really easy to find something to do with my team".

Screen Shot 2020-06-09 at 8 14 32 PM

Same as before, we auto-setup a Google Meet / Zoom call for you to use in your activity. Eventually it'd be good to handle P2P video ourselves, it'll let us do more here.

The MVP ends around here. No solo experience is needed for now, lets build something really useful for teams first and we'll go from there.