We can roll the new featured tag[s] into /discover
Pros: No extra HTTP requests on the client
Cons: Kind weird, especially with pagination. Larger payload sizes.
GET /disover
{
"projects": [{ /* Projects with the featured flag set to true */ }, ...],
"featuredTags": {
"mozfest2015": [{ /* projects tagged mozfest2015 */ }, ...],
"makerparty2016": [{ /* projects tagged mozfest2015 */ }, ...]
}
}
Option 3 seems very sensible and gives us the most flexibility.
We will need
GET /projects/tagged/hashbrowns
regardless of how we handle featured tags. #hashbrowns might not be featured, but they are tasty and users should be able to tap that tag when it appears in a project description to load related projects.I think I made things confusing when I added the idea of featured tags. We should design without featured tags in mind first, and then figure out how to handle them. These are like little ads we might drop into the Discover view, but they aren't an integral feature of the system.