Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scope out an MVP for the Radio and podcast platform #11

Closed
7 tasks done
gusaus opened this issue Jul 21, 2017 · 78 comments
Closed
7 tasks done

Scope out an MVP for the Radio and podcast platform #11

gusaus opened this issue Jul 21, 2017 · 78 comments
Assignees
Labels
help wanted Extra attention is needed status: needs work This issue needs work

Comments

@gusaus
Copy link
Contributor

gusaus commented Jul 21, 2017

The purpose of this task is to determine a base set of features and functionality we should include in an offering to small broadcasters, podcasters, and internet stations.

We're also working out a base set of features in this doc https://docs.google.com/document/d/1UYP6OfxlTn6WqcxycZ2RqGBHMcngBayDVe-ksAGxd5g/edit?usp=sharing

Features

We'll update this summary as the feature list evolves...

Complete

Plugins

Newspack plugins

The following plugins ship with Newspack - as Newspack is a dependency of this platform, all of these plugins are supported by the Newspack team.

  • Newspack – a plugin that installs the Newspack themes, and the required plugins and some of the recommended plugins, automatically.
  • Newspack Ads – a plugin that helps connect your Newspack site to various ad providers.
  • Newspack Blocks – a collection of custom Gutenberg blocks, designed for building news sites, as well as some extensions to existing Gutenberg blocks.
  • Newspack Pop-ups – a plugin that allows you to create AMP-compatible pop-up notifications on your Newspack site.

Required plugins

The following plugins ship with Newspack - as Newspack is a dependency of this platform, all of these plugins are supported by the Newspack team.

  • AMP – a plugin that enables AMP, to serve up lightning fast sites.
  • Gutenberg – WordPress’s new block-based editor. Newspack runs the latest version of the Gutenberg plugin, which is developed ahead of the version built into WordPress.
  • Jetpack by WordPress.com – a plugin developed by Automattic that brings features from WordPress.com to self-hosted sites. Some features used by Newspack sites include Sharing, Site Accelerator, integration with WordAds, and Publicize.
  • PWA – a plugin that helps easily turn your WordPress websites into a Progressive Web App (PWA).
  • SiteKit by Google – makes it easy to set-up and configure Google Analytics, AdSense, Search Console and PageSpeed Insights, and adds a single dashboard for all to your WordPress Admin.
  • Yoast SEO – a powerful plugin that helps you with your site’s search engine optimization.

Recommended plugins

Newspack has a list of recommended plugins that have been thoroughly reviewed for features, quality, and code. We will include or recommend any of these as we get a better sense of requirements.

Unsupported plugins

The following plugins are not yet supported or recommended by Newspack. We should work with plugin developers to ensure each is compatible and then see if Newspack can recommend.

  • The Events Calendar - Create an events calendar and manage it with ease
  • Radio Station - a plugin to build and manage a Show Calendar in a radio station or Internet broadcaster’s WordPress website.

Development priorities

The following are not requirements for a MVP. We will support based on needs and available resources.

@gusaus gusaus changed the title Scope out an MVP for the radio station platform Scope out an MVP for the radio station and podcasting platform Jun 6, 2018
@gusaus
Copy link
Contributor Author

gusaus commented Jun 7, 2018

@trevortwining Do you have a template or process for completing this task? I wonder if we can use what @zirafa initially put together for Pushtape for inspiration? https://www.drupal.org/node/1398262

Similarly, our own product dev variation of @rickmanelius estimator and project reference guide could be super useful?
https://docs.google.com/spreadsheets/d/1SQHyn1Q-thseklq8h8FLriNGXjpFnoqEohwZGggjYcU/edit#gid=0

https://www.drud.com/workflow/the-practicality-of-project-reference-guides/

As we're product developing in the open, we should be as transparent and collabative wherever we can.

I can plug in details once we sort out a process.

@gusaus
Copy link
Contributor Author

gusaus commented Jun 7, 2018

Taking a fresh look at our gitlab repo, it's improved quite a bit since the project stalled. Possibly we 'should' use that for our main repo. Mirror here and drupal.org... however that works.

What do you think?
https://gitlab.com/openproducer/openproducer

@gusaus
Copy link
Contributor Author

gusaus commented Oct 18, 2019

@tonyzeoli I added you to this GitHub org and will give you access to the doc referenced in this poorly written description. Please feel free to ask questions, make revisions, or just wipe everything and replace with features/functionality you've already included in your client sites!

The copy and features have some Drupal references http://www.getopenproducer.com/

I 'think' we could probably take out all references to a particular CMS the platform is built on.

@tonyzeoli
Copy link

For DanceGruv, which is going to use LibreTime as it's automation software in place of AirTime, I have set up a system with WordPress that helps the station both broadcast its shows using LibreTime podcasting and set the show archive in WordPress as a post with WordPress plugin, Blubrry PowerPress as the Podcast generator, which provides the feed for people to sub to the podcast either in WordPress or through any podcast aggregator (iTunes, Google Play, Stitcher, etc)

In WordPress, we already restrict DJs/Hosts (and now Producers) to only be able to add/edit a show page and add a Post to append to the Show page using the blog and a meta box with the show page assignment tool. So, when someone posts the podcast, the feed pushes the audio content to its show schedule into LibreTime, while leaving it in WordPress as an archive post.

The only issue is publishing the post, but hiding it from the site until after the show airs, so that the archive doesn't appear online BEFORE the show airs. That would defeat the purpose of the live show to begin with.

To do this now, we're using the OnAir2 theme on DanceGruv, which sets up a Podcast "post type" or "CCK" in Drupal. But, we can build a theme which includes Radio Station and PowerPress to enable these functions. So, the radio station would get a pre-built theme with it scheduling software, archive/podcast ability, and push into LibreTime via the podcast feed URL created in Blubrry for each show. Blubrry has taxonomy and post type podcasting - so you use Taxonomy and then create a feed link for each show.

Could you integrate all this into a theme? Sure, but that's a lot of custom programming and truth be told, most stations that already have a theme they are using may not want to change their theme for a vareity of reasons. They may want us to improve upon what they have, but not replace it. Which is the realm of plugins - to enhance and not replace the station's current theme.

In this world, people tie themselves to themes like one would tie themselves to a sports team. There are "Yankee" fans and there are "Red Sox" fans. So, if you came to them with it in mind that they should "change their theme to one we created" they might say absolutely not. And even more so today, because page builders like Divi and Elementor are all the rage. And by giving someone a theme that doesn't have page builder tools, you'd be regressing and not progressing.

@gusaus
Copy link
Contributor Author

gusaus commented Oct 18, 2019

@tonyzeoli Thanks for this comment https://github.com/OpenProducer/openproducer/issues/2#issuecomment-543871398
Feels like we’ve had this discussion in LibreTime and Twitter and agree on the ‘decouple from theme’ approach.

It’s similar to how we’d build on Drupal.

Speaking of which…. would you be interested/able to PM on OpenProducer projects built on Drupal?

The customer/client-facing features would be pretty much the same - little different machinery under the hood.

As far as developing features and functionality that does not yet exist or needs to be improved… each could be a separate campaign or subproject on the OpenProducer collective https://opencollective.com/openproducer

That should include LibreTime, Radio Station, Open Collective integration, etc.

Would be great to loop @Robbt into this discussion since his station uses LibreTime + Drupal. For a Drupal 8 version of OpenProducer, we’d probably want to refactor what inspired the Radio Station plugin https://www.drupal.org/project/station/issues/2608594#comment-10795670

@Robbt
Copy link

Robbt commented Oct 19, 2019

I'm not sure how much Drupal development I plan on doing in the future. I haven't really gotten into Drupal 8. Time will see but I don't know if there is a future here. Focusing on platform agnostic widgets probably makes the most sense. Most of the station module plumbing could be replaced by LibreTime widgets. I'll have to check out what Tony is working on in Word Press.

@tonyzeoli
Copy link

@Robbt https:// wordpress.org/plugins/radio-station

  • Shows custom post type
  • Playlists custom post type
  • Add shows to Master Calendar
  • Add Master Calendar to Wordpress Page with a shortcode, set grid or list view.
  • Show override if schedule interrupted
  • encore presentation designation if a repeat
  • 12/24 hour view
  • upcoming show widget
  • current show / DJ / host widget

On our roadmap we’re building an API for products like LibreTime to connect and publish show and playlist content into WordPress. We want to help stations automate show info so no one has to login to WordPress if the data is coming from LibreTime. It eliminates duplicate efforts and ensures data accuracy.

@Robbt
Copy link

Robbt commented Oct 19, 2019

Thanks for the info. From an engineering perspective it might make more sense to build API calls that exposes this information in LibreTime and then there could be a synchronization script that runs and translates between the two APIs. Or even just have the WordPress plugin pull the info from the LibreTime API (which doesn't currently exist). I guess the question is whether there are other automation systems that you are planning on being interoperable with and what their API compatibility is. Thanks for sharing.

@tonyzeoli
Copy link

tonyzeoli commented Oct 19, 2019 via email

@Robbt
Copy link

Robbt commented Oct 19, 2019

Well LibreTime has an undocumented API, one of the next steps in LibreTime development is to spec out an API. We are actually discussing it in the developers channel of chat.libretime.org - the plan is at some point to create a new API for the next version of LibreTime.

As far as the podcast issue goes I'd suggest a good first step would be to open up an issue on github. I searched for podcast and did not see it, make sure you include a link to a feed that doesn't work and a feedburner version of the same feed. I don't know if anyone will step up and fix your problem but this will at least make it easier for someone to do so. If you already did this send me the link.

@gusaus
Copy link
Contributor Author

gusaus commented Oct 19, 2019

So the high-level goal is to provide stations/users with something they can configure and manage themselves. I'm less familiar with WordPress, but there are already a couple stable, well funded Drupal distributions that can be used as a base for this type of radio station and podcasting platform.

Without going too much into the technical weeds, a major benefit of creating a child distribution is we can collaborate with existing teams and partners to extend 'their' product. If the base distribution/product was on Open Collective, there could be a campaign or subcollective/subproject for our product + any features/functionality not included in the base distribution. For a variety of reasons, at this moment in time Acquia's Lightning may be better suited than Burda Magazine's Thunder as both a base distribution and partner.

Considering Radio Station is based on Drupal Station module, possibly there's an opportunity for Tony to assume the product manager role that Dan was going to take on? The functional requirements are similar https://github.com/OpenProducer/openproducer/issues/2#issuecomment-544139885 and a variation of what I was riffing on in this crowdfunding idea would provide funds to kick start development for the same partner I was referencing https://github.com/AMTVDigital/soundsandcolorsradio/issues/1

@gusaus
Copy link
Contributor Author

gusaus commented Oct 22, 2019

Here are a couple more examples of radio/podcast services that are extended by their own site builder and/or integration -

We'd like to include similar features in our site builder.

@gusaus
Copy link
Contributor Author

gusaus commented Oct 22, 2019

the plan is at some point to create a new API for the next version of LibreTime

We should include this in the MVP and develop any needed functionality as part of our beta. Probably could start by making sure all features are scoped out in the issue queue? https://github.com/LibreTime/libretime/issues

This comment is related - https://discourse.libretime.org/t/any-interest-in-libretime-available-as-a-saas-with-hosting-and-support/121/23

@gusaus gusaus changed the title Scope out an MVP for the radio station and podcasting platform Scope out an MVP for the radio station and podcasting profile Oct 29, 2019
@gusaus gusaus changed the title Scope out an MVP for the radio station and podcasting profile Scope out an MVP for the radio station and podcasting platform Oct 29, 2019
@gusaus gusaus changed the title Scope out an MVP for the radio station and podcasting platform Scope out an MVP for the OpenProducer platform Oct 29, 2019
@gusaus gusaus changed the title Scope out an MVP for the OpenProducer platform Scope out an MVP for the Radio and podcast platform Nov 6, 2019
@gusaus
Copy link
Contributor Author

gusaus commented Nov 23, 2019

@tonyzeoli As (one of many things) mentioned in Slack

Could https://netmix.com/ provide this type of SaaS radio + site builder + custom services offering? https://github.com/OpenProducer/openproducer/issues/2#issuecomment-544848054

If so, OpenProducer could focus on developing, maintaining and funding the OSS product (and underlying projects). Netmix could be a primary service partner.

@gusaus
Copy link
Contributor Author

gusaus commented Dec 30, 2019

https://www.basswise.com/ is one of the best LibreTime powered sites I’ve come across. I really like how they’re scheduling, distributing and promoting DJ submitted shows. https://www.basswise.com/join

@James built it with Ruby on Rails, deployed using Dokku. The Framework is using Bootstrap 4 for the grid and custom CSS across the site.

Curious what it would take to build something like this on WordPress or Drupal.

@tonyzeoli
Copy link

Right now, I'm building out DanceGruv, a DJ culture site in Raleigh, NC. On the dev server, we've got WordPress integrated with Digital Ocean Spaces using a plugin for that specific purpose, so that all uploads go to DO Spaces and not to the server hosting WordPress itself. The site is using Blubrry PowerPress as the feed generator that builds the feed based on Podcasts created in WordPress. The feed is passed to Feedburner, because PowerPress feeds are not being accepted by LibreTime. So, it's burned as a Feedburner feed and then passed into LibreTime Podcasting. The smart block is assigned to a sheduled show which pulls the playist created by the Podcast. We are using the scheduling tool in AirTime WordPress theme and setting some modifications and restrictions on when a DJ can add a file to WordPress and schedule that file as a Show (has to be 60 minutes before air time so LibreTime can check the feed for new shows.

@gusaus
Copy link
Contributor Author

gusaus commented Jan 9, 2020

Quick followup on https://github.com/OpenProducer/openproducer/issues/2#issuecomment-544854222 and related discussions about LibreTime priorities libretime/libretime#935 (comment)

@paddatrapper @Robbt @tonyzeoli Would it be possible to collaborate on project scope for the LibreTime API? If so, where should we move that part of the discussion?

@gusaus
Copy link
Contributor Author

gusaus commented Jan 15, 2020

Would it be possible to collaborate on project scope for the LibreTime API? If so, where should we move that part of the discussion?

Thanks @tonyzeoli for posting WP requirements https://discourse.libretime.org/t/planning-out-an-api/341/7?u=gusaus

I'd like to include this functionality in the MVP.

@gusaus
Copy link
Contributor Author

gusaus commented Jan 15, 2020

Could we integrate MetaBrainz projects for stuff like

  • DJ tools
  • Playlist display
  • Artist profiles/music pages
  • etc.

@Robbt
Copy link

Robbt commented Jan 16, 2020

Using MetaBrainz is certainly a good idea, but to do so would require someone to get to know their API etc and see how to access the information and integrate it, and to also identify where it would be useful to connect it etc.

@gusaus
Copy link
Contributor Author

gusaus commented Jan 16, 2020

to do so would require someone to get to know their API etc and see how to access the information and integrate it, and to also identify where it would be useful to connect it etc.

@tonyzeoli Are you integrating MetaBrainz/MusicBrainz into Radio Station plugin and/or any of the WordPress/LibreTime sites?

@tonyzeoli
Copy link

tonyzeoli commented Jan 16, 2020 via email

@gusaus
Copy link
Contributor Author

gusaus commented Jan 17, 2020

Curious what it would take to build something like this on WordPress

In addition to the website builder, Radio.co provides some great examples for functionality we might want to build into LibreTime.

  • Voice Tracking - Record voice tracks in your browser and add them to playlists. Record voice tracking links, mix songs, and add jingles to create the perfect playlist that sounds like you’re broadcasting live.
  • Track Editor - Edit audio playback for any track directly in your browser. Adjust start/endpoints, fade in/out, and your track information, which is ideal for shows that want to segue smoothly between music.
  • Live Recording - Broadcast live to your listeners anytime. Takeover pre-programmed shows to connect with your audience in real-time.
  • Manage Your Radio Station's Media - Learn how to easily manage your radio station’s media by uploading files in bulk and organising tracks by genre or artist using tags to build your radio library.
  • Mixcloud Integration - Integrate your radio station with Mixcloud to publish live recordings and DJ mixes.
  • Listener Requests - Let listeners request songs and play them out on your radio station. The more popular a track request is, the sooner it will play!
  • Advanced Stats - Edit audio playback for any track directly in your browser. Adjust start/endpoints, fade in/out, and your track information, which is ideal for shows that want to segue smoothly between music.
  • News Bulletins - Broadcast the news, on the hour, to all your listeners automatically without manually scheduling events or replacing files.
  • DIY Player Kit - Embed a highly customisable radio player for your website out of the box or tailor it to suit your needs. There are lots of features at your disposal via our player API toolkit.

@gusaus
Copy link
Contributor Author

gusaus commented Apr 19, 2021

When it installs, does it actually add plugins to the Plugin library? Or, do you see your options through the Newspack Settings interface?

Another good thing about Newspack as a base is they're well funded and regularly making improvements since the first release about a year ago. It's actually been awhile since I installed from scratch, so the best way to see how the dependencies work is to install yourself.

@gusaus
Copy link
Contributor Author

gusaus commented Apr 29, 2021

@tonyzeoli below is my long-form reponse to OpenProducer/community#4 (comment)

...for the OpenProducer platform where it's an install package that includes Radio Station and its assorted features, we'll have to speak with @majick777 about how that rolls out. Of course, the free version will be included in OpenProducer, but we need to ascertain how something like JetPack works, where it's a plugin with multiple plugins that install as dependencies. I see this is themes, where the theme has dependant plugins that need to be installed. So, if OpenProducer is a "theme" per se, with it's dependant plugins to be included, that's certainly a doable scenario. I've just never had reason to do it before, but it can be done. All these themes you buy on ThemeForest have dependency plugins that are installed with the package. They just have to be activated from the dependant plugin panel. @majick777 probably knows how that works.

As noted in #11, The only thing we'd need to potentially fork, develop, and maintain for OpenProducer would be https://github.com/Automattic/newspack-plugin which would include additional dependencies (like Radio Station + The Events Calendar, etc) and custom configuration, branding, and demo content.

Not sure the theme analogy is needed because Newspack (and hence OpenProducer) does not require specific themes for it work. It would be nice to include a couple OpenProducer themes (children of the Newspack theme?) - the themes Newspack already includes work pretty well (out of the box - or with custom children) https://newspack.pub/support/themes/

I'm probably saying this all wrong - best way to understand it's not a theme (or theme dependent) again is to test it out - https://github.com/Automattic/newspack-plugin#readme

By the way, you'll have to learn how to commit OpenProducer to the WordPress repo via SVN or some other method. I can help you with that. There is a way to link Git rep to the WordPress repo. I've sort of set it up, but have never used it. I still commit via SVN by deleting what's up on WordPress now and replacing it with a new package using Versions for the Mac. I think you're PC, so they probably have one for PC too.

If OpenProducer ends up being a fork of the one Newspack plugin, I think we should mimic how/where they're releasing the plugin. Currently the plugin is only available on Github - https://github.com/Automattic/newspack-plugin

Think we can do the same for any themes we release -
https://github.com/Automattic/newspack-theme

it's probably important for you to think about releasing this as a theme and not a plugin, since the theme will be what you're offering along with the installed dependant packages unless @majick777 might advise differently. or, you could release a separate theme and then have your companion plugin. So, you would have the OpenProducder Theme in the theme directory and the OpenProducer plugin in the plugin directory.

Hopefully the previous comment provided clarity.

You're going to have to develop around this, so your budget is going to need to be in place and/or you get contributors to help you with coding this up and making it function correctly on install.

Not if I can make a good case for Netmix owning it https://github.com/OpenProducer/internal/issues/8

@gusaus
Copy link
Contributor Author

gusaus commented May 24, 2021

@tonyzeoli @majick777 Our unexpected, last-minute addition to FundOSS (https://fundoss.org/collective/openproducerplatform) has made figuring out resolving the issues brought up in #11 a burning priority.

https://fundoss.org/ starts in about two weeks and they've already ramped up their marketing and promotion. As the only WordPress participant, we should generate a good bit of additional promotion and funds from being actively engaged in the WordPress community leading up to and during the campaign. I'm fully prepared to take on that responsibility.

We'll get an additional bump from partnering or collaborating with Automattic, the product owners of the plugin we'll need to fork https://github.com/automattic/newspack-plugin

We can not really go public with this project until that happens. We need to establish how we'll work together or at minimum get their blessing on how we intend to proceed.

I'm well aware Radio Station PRO is the priority until it's launched. The reality is we now have a good chance to fund the final development piece and send funds downstream to dependencies (i.e. Radio Station) and integrations https://github.com/OpenProducer/openproducer-platform/issues?q=is%3Aissue+is%3Aopen+label%3A%22radio+station%22

@tonyzeoli If there's no hard deadline for releasing Radio Station PRO, maybe it would be worth spending a couple hours figuring out #11 and circling back to Newspack. We can discuss options and our approach in the following public thread. We could also put the call out for additional contributors if there's a need https://opencollective.slack.com/archives/C22E2D2F2/p1621323513001700

If we sort it out over the next couple days, we'll have an additional revenue stream and a promotional vehicle for Radio Station. The countdown clock is ticking on this one!

@majick777
Copy link

majick777 commented May 25, 2021

@gusaus Curious to know your experience with Newspack... finally had a chance to give it a spin and here's mine.

I installed the Newpack plugin and the setup screen attempted to install a bunch of required plugins and the Newspack theme. (Not sure why, but all of these failed to install for me, so I did so manually.)

Then, after installing the "required" plugins (marked with * in the below list) it says it is "installing core plugins", which include a mix of more Newspack plugins, curated popular plugins and even some Premium plugins (**):

Akismet Anti-Spam, AMP*, AMP TablePress, AutomateWoo**, Bing URL Submissions, Broadstreet, Co-Authors Plus, Coral Project, Disqus for WordPress, Distributor, DocumentCloud, Instant Articles for WP, Jetpack by WordPress.com*, Mailchimp for WooCommerce, Mailchimp for WordPress, Newspack Ads, Newspack Blocks*, Newspack Campaigns, Newspack Disqus AMP, Newspack Image Credits, Newspack Listings, Newspack Media Partners, Newspack Newsletters*, Newspack Rename Comments, Newspack Sponsors, Newspack Supporters, Organic Profile Block, Parse.ly, Password Protected, Publish to Apple News, PWA*, Pym.js Embeds, Redirection, Regenerate Thumbnails, Reusable Blocks Extended, Simple Local Avatars, Site Kit by Google*, Super Cool Ad Inserter, TablePress, Web Stories, WooCommerce*, WooCommerce Name Your Price**, WooCommerce Stripe Gateway, WooCommerce Subscriptions**, Wordpress Commenting**, WP GDPR Cookie Notice, Yoast SEO*

Again it seems like WordPress.Com service for Newspack they are keeping a list of curated plugins that best work with Newspack. And it does seem like the Newspack functionality can be used without the Newspack theme (or it's choice of 5 child themes) since the Newspack plugin site states: "To take full advantage of Newspack, the plugin and theme should be run together, but each should also work fine individually." It isn't clear yet what the combination of Newspack plugin and theme provides for over say, the plugin and a non-Newspack theme, and this will need further investigation.

The next step is to connect Automattic's Jetpack and Google's Site Kit, which is not optional since I cannot continue through the wizard without doing so... Obviously there are some "decisions not options" built into the Newspack project as is Automattic's way of doing things, currently I just wish I could see/know what the Newspack functionality actually IS somewhere more clearly without having to do all this and possibly spend hours looking through all the plugin code (and subplugin code) to work that out. I will have to get back to trying that when I have more time.

As for "forking" Newspack... I'm not seeing why that would at all be necessary? Probably not desirable or maintainable to keep a separate codebase, and should be extensible in the same way as other plugins. But so far It seems to be a bundling plugin for subplugins, and so I'd think it would be sufficient to bundle it further with whichever projects Open Producer wants to go along with it. Being aware of the setup/installation steps of course - this could possibly be streamlined by prebundling the "required" plugins for Newspack (or using another bundler for Open Producer such as the popular TGMPA.)

@gusaus
Copy link
Contributor Author

gusaus commented May 25, 2021

@majick777 Not sure if you were answering my urgent call #11, but I was really happy to see your last comment... so much that I'm staying up a bit longer to reply.

I strongly suggest you just take a few minutes and skim through the comments beginning here #11. That should give you a sense for my experience and the reasoning behind moving from Drupal to WordPress. It will also illustrate how I'm still trying to learn how WordPress works after spending the last decade immersed in Drupal. It should also be obvious that I'm just a site builder who has a hard time speaking in code.

I was trying to explain in this comment the reasoning behind a fork and why the only codebase we'd need to fork and maintain is this plugin https://github.com/automattic/newspack-plugin

I tried to explain 'why' in that comment.

There's not yet a proper release (or readme) but this code is just Newspack (including its dependencies) + Radio Station https://github.com/OpenProducer/openproducer-platform

The same code is powering this Pantheon instance https://live-openproducer-platform.pantheonsite.io/

I'd be happy to add you to the Pantheon team, so you can do a fresh install and test on that environment.

Bottom line is we need to make a decision on if/what to fork and the time/cost/people resources needed to maintain. Our participation in FundOSS should cover development costs if we can move quickly through the steps laid out in #11

Best case scenario would be if Netmix owned it and the same team behind Radio Station were the initial maintainers. I do think FundOSS will create an opportunity onboard contributors wherever there's a need.

@tonyzeoli @majick777 I'd be extremely grateful if we could touch base and make some decisions over the next day or so. We will be rewarded with funds flowing into our projects and pockets next month!

@tonyzeoli
Copy link

Okay, so I read through Tony's comments but haven't yet spoken to him about the project. We're both working hard on Radio Station PRO, which is the priority. I have put aside any sales efforts for now for Digital Strategy Works business to focus on Radio Station PRO and to finish one final project I'm working on for a Real Estate broker in Portland, ME. And, as you know, my son is a priority with Covid halving his school time, as well as my wife's health issues making me more responsible for things that most people take for granted.

That being said, if we were to fork Newspack, I don't see how we can maintain the Newspack system as a fork given our priorities and I don't know that forking Newspack would allow us to take new Newspack updates and continue to develop new ideas and code into the project. My understand is, and @majick777 correct me if I'm wrong, once you "fork" a plugin and spawn a new plugin, that you are disconnected from taking any and all updates and that if you're writing new code for that plugin, that there are bound to be clashes given that you're not closely following development of the parent and that when the parent pushes code, you're actually able to ascertain the changes and roll them into the fork while also being mindful of your own contributions to the forked version.

As someone who is a "site builder," I believe you think this is easy to do, but it's not or we'd see this happen far more frequently with a lot of projects. A fork means that you take what's build and go it alone. It doesn't mean that you take what's built, keep feeding off the parent, but then add new code to the project. No one can possibly know what's going on with the parent while developing the forked version.

Remember, once you fork a plugin, then you're in full control of that fork and disconnected from the parent. I don't know that you can continue to get what the parent has and even if you tried to take what the parent has, it would clas with what you're building. In fact, you might probably build the same feature two different ways and then what?

@majick777 are you in agreement with my thoughts here?

@gusaus
Copy link
Contributor Author

gusaus commented May 27, 2021

Thanks @tonyzeoli! First off I'm very aware of your business and family priorities. I would not be upping the urgency level if I didn't believe successful FundOSS (which is going to be my focus next month) would recoup whatever time is needed to make decisions on #11 and then following up with Newspack with our suggested approach and name change. It should also provide an incentive to @majick777 to fork and create an initial release (if he's interested in doing it). Obviously, I have no idea how much time that would take. I do know we can't fundraise during FundOSS on top of someone else's platform without sending funds to their development team or at minimum getting their blessing on what we're doing.

Really I'd be good with having the technical discussion with the Newspack product team. In my mind, the ideal would be to say we want to call it Radiopack and see if they'd be up for co-owning and maintaining.

The fundraising and marketing bump we'd get as the only WordPress participant in FundOSS would be through the roof!

Quick note on the technical bit - I don't think it's easy and definitely don't understand how this works compared to Drupal. In Drupal, we'd create a child distribution (aka Drupal product) or an installation profile on top of an existing distribution. That's what we did for the Drupal 7 version of OpenProducer and what we were going to do for Drupal 8. We could essentially add/remove dependencies, configure, add demo content... all without having to fork with the parent.

The Newspack plugin essentially does that same thing. It downloads dependencies, gives you a dashboard for additional configuration, demo content... pretty much exactly what a Drupal distribution does. For kicks I tried a speed fork of the plugin by doing a find/replace, newspack to radiopack on all the files and file names. Problem was that affected auto downloading the required dependencies with Newspack in the name. We don't need to fork or modify any of the dependencies (see https://newspack.pub/support/plugins/) - we do need to create a couple additional dependencies (like Radio Station), modify the dashboard, and create our own configuration and demo content. Main thing we need to do is replace the name 'Newspack' with 'Radiopack' or whatever is the new name. Again I don't know how time/labor-intensive it would be to do it. But I did skim over some of the code that grabs the dependencies and does the configuration. It seems like it wouldn't really require custom code... we'd mainly need to basically replicate what the plugin is doing.

Again, I'd like us to get on the same page on whether or not that is feasible or if there's another approach. Then @tonyzeoli and anyone else you think should be present should followup with Newspack to discuss options. This really needs to happen this week... not actually forking but agreeing to the best approach and following up w/ Newspack.

Oh ya - I'd really like Netmix to own it - mainly meaning lets transfer the repo from OpenProducer - and for you both to be on the team. FundOSS, Gitcoin, Open Collective are going to be doing a massive amount of marketing (I want to help them!) and I think the Wordpress community would pick up on the only WordPress participant as big news.

The product will be way more legit w/ Netmix and the creators of the Radio Station plugin visibly owning it and able to speak on a technical level. If it ends up either or both of you can't commit any time to maintain ongoing, we will have a budget to bring on additional team members after FundOSS is complete.

Hope that wasn't too little or much information. Money in our pockets next month if we can figure this out and circle back to Newspack this week!

Thank you both in advance!

@majick777
Copy link

majick777 commented May 27, 2021

@tonyzeoli Yes I'd agree forking Newspack isn't the way to go here for the reasons you describe. I mean, this is basically the reason why there are dependency management scripts/programs for this such as composer, to keep a bundle of different software together from multiple sources and to be able to take updates from each of those sources.

@gusaus You need to consider the intended "target user" also... On the one hand, full stack developers would be quite comfortable with a composer-like package, while your average WordPress user wouldn't touch it. I'm guessing most users of the Open Producer Platform are going to be left of centre, so possibly quite comfortable with doing that - but also possibly not yet.

Other things to consider is existing versus new users - so it's fine to have a platform-style setup for starting from scratch... but an existing WordPress site is going to have a different transitional approach to switching over to this to incorporate these features in a more piecemeal as time/budget permits... which is also going to be a consideration is someone already has hosting and isn't ready to switch to Pantheon (not a big deal so long as everything works without it.)

What comes up most for me here is that what is going to make it simpler for overall development? What is going to consume less time in keeping things updated? ... so that more time can be spent on the planning and actual code writing - not lost to package and dependency maintenance?

For example, to take our current approach with Radio Station. It's a free plugin, and we are going to sell the Pro version with Freemius... usually in the Freemius system you bundle the Pro code inside the "Premium" plugin, and with each update you upload the latest complete premium plugin and their system splits it out into a Free version which you then can upload back to the WordPress repository for the free release. Besides this being quite backwards to our existing workflow, it just consumes too much time in unnecessary steps. So instead, we have the free version of the plugin, with sufficient hooks and filters in it to be extended by Add-ons - and on a technical level the Pro version will itself be an "Add-on" in that it uses these to extend the functionality. This way we can upload and release as many Free OR Pro versions as we like a) without having to update them both each time, and b) while being able to maintain a public and private repository for each.

So with Newspack... cool it does all this stuff (again is not clear as yet what it does as a plugin itself besides adding all the subplugins that do cool stuff and helping configure them) - but you can already install that as a plugin. Basically you can benefit from the curated list of plugins it includes. And with this Platform we can choose and curate our own list of plugins that add the additional functionality that we deem suitable for Open Producer (eg. Radio Station.)

But I also get that at the same time Newspack might include a bunch of things (and seems to) that is deems necessary or useful for it's SaaS product (basically a News-specialized WordPress VIP install) which may not be suitable for Open Producer users... eg. are WooCommerce and WC add-ons relevant? Which may bring up the question of Is there a way of filtering the list of "required" Newspack plugins and installed subplugins and if so that may be all we need to do?

Or in other words we could just create an Add-on style "setup" plugin (similar to Newspack, but not Newspack) that you would install to WordPress first, which would basically be primarily TGM Plugin Activation along with the list of Newspack-required plugins (so we can bypass possible install failures I experienced) - and along with Radio Station and whatever else we decide to include - and then Newspack itself to let the Newspack setup process to complete - and once that is complete, hook back in to a welcome screen for Open Producer Platform. (I think we could include an in-between screen - unlike Newspack - a screen where you can mark which subplugins you're not going to use so they can be removed.)

The tricky part then would be then, this repository would no longer be a fork of WordPress, but for a plugin... but alternatively, create a separate one for the plugin, and just incorporate updates to it in this repository... so you would have the complete platform here as you do which can be pulled as a whole for fresh installs. Or the installer plugin could be used by existing users (or on a fresh install also.) Along with clear instructions at the top of each repository as to these options and when you should do which.

I know I'm rambling a bit but just thinking out loud also to get to a solution... but it seems like quite a feasible option to create such a plugin (could be done in short order) - and we would then be circling back to what (if any) other plugins to include - or recommend... So then I am coming to your question of what we need for an MVP... apart from the scope outlined in this issue, I'm really not clear on what more is needed or what steps we need to complete this? You keep referencing back to comments in this thread but I'm not sure which one's are really relevant here and if you want things to move fast on this point we need some very clear spelling out to get there.

@gusaus
Copy link
Contributor Author

gusaus commented May 27, 2021

@majick777 Thanks again for that - your input has been extremely helpful!

I wish I was able to sneak in my last comment beforehand #11, because I 'think' some bits would have provided a bit more clarity.

I know you have Newspack a try - I'd like to add you to the Pantheon team (@tonyzeoli is already there) so you can do a fresh install but also use their platform for development. I'm not suggesting they should be the goto host for bespoke development or SaaS - even though they certainly could be an option. The development environment is free and partner agencies have access to some additional tools and partner benefits... anyhow that's another discussion.

Back on topic, I think it helps just to look over the list of plugins when you do a fresh install -
https://newspack.pub/support/plugins/

There are very few plugins that are downloaded and enabled upon installation (the Required Plugins). All the rest are optional. I'd actually have to do a fresh install to remember what additional plugins are downloaded but not enabled upon install. The user has a dashboard/wizard type of thing where they can select which plugins they would like to enable. It's actually quite nice and constantly improving (thank you Automattic!).

As a non-coder, pretty much the target user for Newspack and the project formerly known as OpenProducer... I find the setup and configuration super easy. I also love that there are constant improvements and cutting edge features (Newspack is really a test case for all the stuff they're rolling out into Gutenburg and WordPress.com). I also love that I don't need to invest a dime into product development. As a partner or someone who builds on their product I want to - but users who would rather self host don't really have to pay for product devleopment.

I'm getting rambly again - but just to give you an idea - the following sites are pretty much 100% Newspack - even using their theme as a base -
https://justjazz.tv/
https://angelcityjazz.com/

I developed them on Pantheon (I'm very used to that workflow with Drupal sites) but they're actually hosted on freaking Bluehost. You don't need Wordpress.com - the code that's available for free on their Github works quite well on any host.

All in all - I think we're clear this is doable - we just need to make some internal business and marketing decisions before FundOSS commences in 2 weeks!

@tonyzeoli
Copy link

@gusaus and @majick777 I can contact the folks from Newspack, but they were very unreceptive to anything radio in the past.

Newspack pulls together the five themes and all the plugins to basically generate a website for news organizations to use to publish content and monetize with Google AdWords.

I just don't see how we can fork this project and maintain it on our own with the idea that we're going to grab new updates from Newspack and roll them into OpenProducer.

Tony, I read your post, but if you can be concise, is the above actually possible? Forking something then pulling new features from the original project and pushing them into the forked project, while ensuring their are no clash or code or features?

@gusaus
Copy link
Contributor Author

gusaus commented May 27, 2021

@tonyzeoli @majick777 I'm thinking we should decouple the business/partnership or even forking discussions from this issue.

Take a fresh look at the feature list #11

A big reason I decided to jump over from Thunder / Drupal to Newspack / WordPress was you forkers had a stable version of a pretty key component for a Radio Station site. Both projects are well funded (and have a similar focus on publishing), but Newspack had more to offer out of the box and we had plugins (like Radio Station) ready to go.

Newspack pulls together the five themes and all the plugins to basically generate a website for news organizations to use to publish content and monetize with Google AdWords.

@tonyzeoli It sounds like you still haven't tried to install and tested... at least recently.

If you think more about the features and functionality (rather than plugins, modules, or themes), there's really not much difference between a community news org and a community/public radio station. They have similar needs. Below are some of the sites I try to use as a model.

https://www.kcrw.com/
https://www.kexp.org/
https://www.npr.org/
https://www.npr.org/music
https://www.sfjazz.org/
https://livesessions.npr.org/

Keep in mind that my budget and WordPress experience was very limited - the first couple sites built on Newspack (I'm even using the parent Newspack theme as a base) should illustrate what it provides out of the box

https://angelcityjazz.com/
https://justjazz.tv/

Here's what we should determine in this issue.... Does Newspack + Radio Station (as an add-on dependency) provide pretty much all the features/functionality listed in the issue description? #11

Think about that while you do a fresh install of Newspack. Check out and test how Radio Station works when you add to NewsPack https://live-openproducer-platform.pantheonsite.io/

@majick777 I added your netmix email address to the Pantheon team. If you know your way around feel free to create a multisite instance or wipe and do a fresh install on the dev environment.

You too @tonyzeoli - I think that would help you understand the functionality included out of the box.

With regards to following up w/ Newspack... I think there's a big difference between 'can you add my plugin' and 'we want to collaborate or partner on extending your plugin/platform to target a new vertical'. We actually made that pitch to https://www.thunder.org/ and it was well received. I think Newspack/Automattic would be warm to the idea if we were coming to contribute or partner. Extra special points if we can sell them on the idea of calling our plugin/platform Radiopack!

@tonyzeoli @majick777 It would be great to touch base over Slack or phone before anyone reaches out to Newspack. #openproducer in https://opencollective.slack.com/ is a real good room async convo if we can't find a good global time tomorrow.

I should be available anytime after 2pm edt/11am pdt USA

@tonyzeoli
Copy link

But this is not about WordPress, Drupal, Newspack, or Radio Station. It's about the software development process. It's about forking someone's project - whatever that project is - and believing that you can somehow take their updates and merge them with your own. It doesn't matter whether I install the plugin or not. We need to ANSER THAT QUESTION.

Can you fork a project, take updates from the prior parent, and merge them with your own. Period.

NO ONE HAS ANSWERED THAT QUESTION CONCISELY.

You seem to think that this is possible. I don't think it is. Someone has to confirm it first.

It's like you keep missing the point and thinking that this is just as easy as you say it is. It's not.

Newspack is on its own Git. When someone contributes code to a WordPress project, it gets pushed up into the WordPress repo where the last version is removed and the new version takes it's place. Then everyone sees the new version update in their dashboard and they click to update from the previous to the new.

Once we fork Newspack, it is NO LONGER CONNECTED TO THE CORE PROJECT. You can't just take the update like everyone else. You've forked the project. You now control your version of the code. And, you can't know that Newspack is planning on doing or what code they are going to push. And, once they push it and you try to figure out what changes were made, you have to figure it out, roll it in, and then test it yourself.

But, at the same time, you're writing new code for your version of the plugin. And what if that clashes with whatever they are writing? How are you going to know? They're focused on the news industry and not radio. They're not going to help.

What I'm saying is, forking this project is opening up a can of worms that is very difficult to solve.

The better idea is to just have OpenProducer be a plugin for Newpack that adds features to Newspack, but we don't fork Newspack at all. We leave it as is and build OpenProducer as a Newspack plugin that contains Radio Station and other advancements.

@majick777
Copy link

@tonyzeoli Again I agree we shouldnt be looking to fork Newspack plugin, but there isnt anything wrong with having it as part of the Open Producer Platform, along with other plugins. The advantage being the setup configuration wizard process it includes.

@gusaus Can I get a response from (both of) you as regards my proposal to create a simple bundler plugin, to install those list of plugins (call it RadioPack or something else Open Producer related) and then go from there with what else may be needed? Or does someone have a better approach?

@tonyzeoli
Copy link

@majick777 Okay, so then we include Newspack in the distribution package that installs all the plugins for OpenProducer...that's more like it. Then, anyone can take a Newspack update and we don't have to worry about code clash or whatever. That sounds good to me.

I think Gus just wanted to call the whole thing, "OpenProducer" and that would be the name of the plugin that installs everything. He's asking us if we want to make that part of our Git, so OpenProducer would live on the Netmix Git, be distributed as a WordPress plugin pushed through WordPress.org. He's hoping to get FundOSS to put some dollars into this project as an open-source project only. There would be no PRO version.

@gusaus
Copy link
Contributor Author

gusaus commented May 27, 2021

@tonyzeoli @majick777 I haven't been able to take a deep dive into the options you're proposing because 1) it's not really related to the MVP (my bad for not spinning off a seperate issue); 2) I'm again new to WordPress so it'll take me a bit to comprehend, let alone discuss options and make recommendations is a clear consise way; 3) I'm aware we're typing from different parts of the world and providing input here in between other high priority projects and commitments; for me I was trying to make sense of all this during my evening and late at night. I'm now delaying my usual morning walk so I can followup up on the most time sensitive issues we need to evalauate and resolve before following up with Newspack.

First off I think we can close out this mega meta discussion if we all can read over the feature list #11 and comment about any features you think are missing. Please note the list has evolved ever since we started the project on Drupal and some of the featue descriptions are obsolete (descriptions lifted from the Drupal projects we were incorporating) or outdated. We can spin up issues to lock down the feature descriptions and other writing/marketing related tasks.

Also note I checked off the Radio box #6 even though not everything listed is complete. We're including Radio Station plugin already, so I think we're already providing all the features stations will need... they can of course soon purchase PRO if they need more.

So for this issue we just need a general agreement that we're including all the key features important to the same group you're focusing Radio Station plugin on. If the list generally looks good, please sign off on it and let's close this issue.

I'll set up an issue for the technical discussion but will just say that we're all in agreement about the genral approach.

I'm giong to followup on the pressing business/marketing stuff in #openproducer channel in https://opencollective.slack.com/ and will ping you both. I don't expect we'll be able to talk in real time, but we should be able to spend 5 minutes here and there whenever we are able.

I'm not going to proof what I just wrote because I'm still without my walk and coffee.

@gusaus
Copy link
Contributor Author

gusaus commented May 27, 2021

Oh ya - I guess one thing I should point out... just in case you haven't looked at the code https://github.com/OpenProducer/openproducer-platform - we're already including the Newspack dependencies along with their themes (I think we actually just need to include their base theme). What we don't have is the thing that packages everything together..including our specific dependencies. That said, it seems like we'll have it soon!

@tonyzeoli
Copy link

@gusaus let me try and explain our logic:

  1. Newspack cannot be forked, period. End of story.

  2. We can create a plugin that includes Newspack and all the other dependent plugins and themes and call it OpenProducer. When anyone installs it in WordPress, they get Newspack, all dependent Newspack themes and plugins, Radio Station, and anything else we want to throw in.

  3. By doing number 2, we can include future versions of NewsPack from their core team without having to worry about whether we can merge code or not, every other plugin dependency, and create our own additional plugins to work independently or support Newspack.

So, it's what you wanted to do initially - create a "distribution" package that installs everything. But we don't have to "fork" anything. I think you believe that by forking something, you can still take updates from the software you forked, but you cannot. So, that's a moot point and I don't see any value in discussing any further, because it's really just rehashing the same issue and both Tony and I are saying a firm no to forking Newspack. We can adopt Newspack INTO OpenProducer, but not "fork" it.

As for an Azuracast dependy, because that needs to be installed separately on a server, it can't be included inside the OpenProducer plugin, but once both are installed on a server or servers (for those using WP Engine or other WordPress only hosts), then we could have some kind of set up screen for both when they are installed on the same webserver somewhere or when OpenProducer is installed on WP Engine and Azuracast is installed on Pantheon or something like that.

@tonyzeoli
Copy link

@gusaus One more analogy I just thought of.

Say you have a house. You make an exact copy of that house, with every single thing that exists inside the house. You plop the exact copy of the house down on another plot of land. Do you really expect the owners of the house you copied to provide the same updates they make to their house? No. They won't. They change their washer and dryers. You don't know they changed it. And, once you think you've figured it out, they change it yet again without telling you. You now have no visibility into the original home's insides and even if you had a map, it would always be after the fact and you couldn't keep up with their updates. Also, you might by your own washer and dryer that work differently then theirs. But they make get a super dope one that you want, but you have to wait to find out what it is until they publish it, then you have to scrambel to figure out if their new washer / dryer will conflict with anything else in your new house that used to be an exact copy, but itsn't anymore.

Again, this is NOT a WordPress thing. It's a software development thing.

@gusaus
Copy link
Contributor Author

gusaus commented May 27, 2021

@tonyzeoli I thought we'd already determined we want the same thing - I get the issues with forks - can we please now move that part of our discussion here? #5

@gusaus
Copy link
Contributor Author

gusaus commented May 28, 2021

@tonyzeoli I'm confused by your AzuraCast reference #11 Maybe because of #8?

I thought that would be available as a Radio Station add-on after we're able to scope out the feature and fundraise to build. It's not a requirement for the MVP - that said with AzuraCast and whatever we're going to rename OpenProducer both participating in https://fundoss.org/ there could be some creative ways we can band together to fundraise and build.

@gusaus gusaus unpinned this issue May 28, 2021
@gusaus
Copy link
Contributor Author

gusaus commented May 29, 2021

I think we have the MVP locked down already - we still need to glue it all together #5 but I think we can shut down this MEGA meta issue

@gusaus gusaus closed this as completed May 29, 2021
@gusaus gusaus transferred this issue from another repository Mar 31, 2022
@OpenProducer OpenProducer locked and limited conversation to collaborators Apr 2, 2022
@gusaus gusaus converted this issue into discussion #25 Apr 2, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
help wanted Extra attention is needed status: needs work This issue needs work
Projects
None yet
Development

No branches or pull requests

4 participants