Having read bothand I've got a different use-case to throw into the mix for consideration: a freelance musician or a band. There are some subtle differences between what musicians need vs. what bands need, but I think it's safe to discuss both as aspects of the same use-case.
The main goals of the site would be to communicate:
- What kind(s) of music you do
- If you perform and/or teach
- How to hear you (both recordings and at live shows)
- How to contact (and ideally hire) you
I'm going to leave "buy your merchandise" out of the main picture, since I think that's taking things a bit too far for "portfolio" as I understand it, but ideally, it would be an easy add-on (if possible).
The main types of content would be:
- Audio/video samples
- Descriptions for each of your bands/projects (with other fields like a logo image, teaser, etc)
- Calendar entries (upcoming shows, workshops, etc)
- Featured news / updates (announcing new projects, tours, highlighting a featured show, etc)
- A professional bio (probably could be handled by the CV/resume plumbing being discussed at and )
- Photos (press shots, gigs, etc)
A freelance musician might have a number of separate bands/projects they work with. Much like the photo projects yoroy discusses at #1341338, a musician might need to categorize all of this content by band. Your different bands/projects would determine the primary sections of the site.
Secondary types of content might include:
- Testimonials/reviews/quotes (about you, your music, your teaching, etc)
- Rich links (e.g. to other bands/musicians, to your recordings on cdbaby or itunes, kickstarter campaigns, etc) with metadata (descriptions (why you like a given band), a thumbnail logo, etc)
- More traditional "blog" content (your thoughts on creativity and meditation, ergonomics, your inspirations, whatever)
- Product pages (CDs, t-shirts, hoodies, etc) -- only if you turn on the "sell your stuff!" add-on
The front page would probably be something like a "dashboard" displaying all the active projects/bands with their teasers and recent featured content, maybe a unified calendar of all your events across all projects, and obvious follow + contact info.
Clearly,is going to be critically important for this use-case. A few words about how that could work that might not be obvious:
Each band you're in probably has its own FB and twitter identities. So, the site needs to be smart enough to authenticate differently for any automated sharing/linking depending on the band/project that each piece of content is classified as.
There are a lot of places you might post calendar events about your upcoming shows. Facebook is the most obvious, but there are plenty of other sites that let you post events (craigslist, meetup, etc). Ideally, you only ever have to post one event, on your own site, which is the canonical storage. Then, your site automatically goes off and publishes events at all the event-aware sites you participate in. Maybe it's even smart enough to create the FB event first, and then it includes a link to that in all the other events it creates. It'd be nice to have it automatically tweet the event details both when the event is first published (to give people advance notice) and then again automatically N hours before the event is actually starting (where N is configurable, probably with a site-wide default but the option to override for each specific event entry). It should also be possible to subscribe to an iCal feed of your events directly on the site (without any social media sites at all).
Differences between bands and individual musicians
N > 1
Things can be more complicated for a whole band: you might have multiple users posting content, separate bios for each band member, etc.
However, you gain the simplification that there's only 1 band, so maybe the ability to handle social media for an individual musician's N different bands is all we need to handle a single band's N different musicians.
That said, it'd be nice if the CV plumbing could be easily carved up such that you could build separate CVs for different people. Perhaps that same classification functionality would allow #1354086 to have different CV listings for different aspects of your career (e.g. for my own personal site, I would have my Drupal CV as "dww", my music-related CV (maybe even that would be broken down into my Brazilian CV vs. my North Indian classical CV vs. my bodymusic CV), my Breema CV, etc.).
In bands, you might have more of a need for private content:
- Private calendar items for internal events (rehearsals, after-parties, etc).
- Set lists or programs for upcoming shows
- Notation of your compositions and arrangements
I realize this is getting into more of a community collaboration site at this point, so I don't want to get too crazy. That's supposed to be a job for snowman, right? But, maybe a simple and effective solution for private content is worth considering (again, perhaps as an optional add-on), since everything else is so similar.
I hope this is useful to the construction of portfolio. I'd *LOVE* to have a site that did all this right now! ;) I desperately need my own portfolio site, and to enter the world of social media (I've been resisting FB and twitter all these years, but I think I'm finally about to cave in since they seem so critical to my musical and political lives, even if I can get by in the Drupal world just here on *.d.o). Tons of people are always asking me how to find out about my gigs, and I'm absolutely terrible at letting people know or otherwise promoting my own projects. If I had a single place to post things that was trivial for anyone who cared to subscribe to, which then went forth and posted everything to the other sites where people might be following me, that'd be huge.
If only I wasn't so damn over-committed, I'd be all over portfolio and clamoring to be a co-maintainer. As it is, I at least wanted to share this detailed use-case in the hopes that it helps the structure and design of portfolio (even if it doesn't handle all of this automatically for me out of the box). ;) And who knows, I might be able to throw some code at these problems as they're taking shape.
Thanks again to sun for getting this project started!