Blog

Best Practices for Managing Open-Source Software

Contribution to the open web is one of 10up’s guiding values. The sharing of expertise, like our engineering best practices, and the creation of our open source tools like Distributor, ClassifAI, and ElasticPress, along with our hundreds of commits to open projects like WordPress, reflect 10up’s position as a leading contributor to open source platforms.

Our latest contribution is the release of our official Open Source Best Practices as a public project on GitHub.

10up Open Source Best Practices GitHub Repo Home Page

Following 10up’s mission to make a better web with finely crafted websites and tools for content creators, our Open Source Practice brings forth deep experience in the long-term stewardship of open-source projects. Beyond pushing code to a public repository, effective open-source management requires thoughtful consideration of licensing, defining maintenance procedures, and proactive communication with participants. By releasing our best practices, we hope to provide a guide for the establishment and ownership of open-source projects.

Read More on Best Practices for Managing Open-Source Software

Integrating More Than 20 Million Public Data Records With WordPress

Brian Bourn Speaking at BigWP SF

As a WordPress.com VIP gold agency partner, 10up was recently invited to speak at BigWP SF, the enterprise WordPress meetup series that brings together developers, business leaders, and product managers who work with high-scale WordPress applications every day.

My presentation, Managing Millions of Public Data Records With WordPress, highlighted the challenges we encountered when integrating millions of public data records with the WordPress-powered website for ElectricityPlans, a broker in the deregulated Texas electricity market, and how we used solutions like ElasticPress to overcome those challenges.

Read More on Integrating More Than 20 Million Public Data Records With WordPress

10up Releases Insert Special Characters For The New WordPress Editor

Insert Special Characters Plugin Banner
Last week, we released Insert Special Characters, a plugin that brings a special characters menu to the new WordPress block editor.

The new WordPress editor (aka Gutenberg) introduced a modern, block-based paradigm for visually authoring content. For all of its advancements, a button to insert special characters was not carried over from the classic editing experience—a feature critical to writers and publishers frequently using mathematical notation or other symbols. Feedback concerning its absence and some client questions inspired our Open Source Practice to take action.

Read More on 10up Releases Insert Special Characters For The New WordPress Editor

Introducing GitHub Actions for WordPress (Plugins)

Do you develop your WordPress plugins on GitHub? Then here’s a treat for you! We’re excited to release a GitHub Action that deploys to the WordPress.org Plugin Repository whenever you tag a new version on GitHub. You’ll be able to manage your entire development lifecycle in GitHub—no more futzing with local Bash scripts or controlling commit/push access in multiple places.

Keep reading for more details about GitHub Actions and how to get set up, but the gist is this: you reference our action in your plugin repo’s workflow file, filtered to only run when a tag is pushed, and set your username/password secrets. After that, each time you tag a new version on GitHub, whether by pushing a Git tag from the command line or making one using the GitHub releases interface, your plugin will be deployed to WordPress.org.

Read More on Introducing GitHub Actions for WordPress (Plugins)

Introducing WP Acceptance

Sample of successful execution of WP Acceptance.

WP Acceptance—a team-centric tool we’ve built for writing reliable, scalable acceptance tests—is now available in beta. Part of our pursuit of finely crafted web experiences, we think that WP Acceptance will help ensure stable releases and fewer regressions for WordPress applications. This toolkit lets developers and continuous integration (CI) pipelines test codebases through version-controlled acceptance tests and sharable, defined file and database snapshots.

We’re considering this a public beta release. It won’t adversely affect your application or introduce instability, but it has not yet been thoroughly tested as a framework and may have some bugs. Through our own testing and community involvement, we’ll further solidify WP Acceptance as it approaches a full, public release.

Read More on Introducing WP Acceptance

StoryCorps and Google team up to honor veterans, with a 10up assist

StoryCorps Google Doodle

We love what we do here at 10up—solving problems and creating digital experiences for our clients. The partnerships we’ve been privileged to form not only make the work more rewarding, they open doors to some really … just cool opportunities.

Our friends at StoryCorps are being featured on the Google Doodle today, and we designed a landing page for the occasion.

It’s our mission to make tools that enable simple and affordable digital story telling. We’ve been pleased to work with StoryCorps, and help them to “preserve and share humanity’s stories in order to build connections between people and create a more just and compassionate world.” Through our collaboration, we’re not just making the internet better, we’re making the world just a little bit better.

What can we build together?

Distributor publicly released with Gutenberg support and Enterprise service offering

Distributor

We are proud to announce that Distributor has exited beta and is now openly available. Distributor is a free WordPress plugin that makes it easy to syndicate and reuse content across your websites—whether in a single multisite network or across the web with the REST API.

With Distributor, content creators can “push” or “pull” content between multiple sites, while retaining updates from the original source and preserving SEO. Copy, media, metadata, and categories all come along, and our fully extensible, open-source code base empowers developers to adapt it to even the most complicated workflows. To get the release version, and enable simple updates, head to DistributorPlugin.com and fill out the short registration form.

More than 100 organizations and developers participated in our Distributor beta program. Their feedback has helped us ensure that Distributor can be the trusted solution for sharing content between WordPress sites. We’ve already integrated many improvements contributed by beta testers, including 10up clients. Distributor has been approved for use on WordPress.com VIP and is ready for enterprise implementations. We have a roadmap of planned enhancements, with ambitious plans including more advanced media distribution and sophisticated “take down” features for the forced removal of distributed content.

Read More on Distributor publicly released with Gutenberg support and Enterprise service offering

Introducing Simple Podcasting

When a client with several podcasts expressed interest in a simple way to manage their casts from within WordPress, we began with a review of existing solutions and plugins. We quickly identified a gap between bare bones plugins supporting a single feed and complicated plugins designed for advanced workflows, such as sponsor management. To fill that void, we created Simple Podcasting, an intuitive, lightweight, and forward looking plugin that includes beta support for Gutenberg.

Our client’s ideal user story seemed common enough: they offer several podcasts across a network of news sites, with some sites featuring multiple podcasts. They wanted to fully manage and distribute their podcast feeds inside of WordPress, albeit sometimes hosting the media itself externally. Podcasts episodes would be managed as regular posts, and appear alongside their other news, enabling visitors to play an episode right from the website or by subscribing in iTunes or any other “podcatcher.”

Read More on Introducing Simple Podcasting

WP Local Docker + WP Snapshots

At 10up, we have a history of open sourcing tools that help WordPress engineers practice their craft. One year ago, we introduced WP Local Docker, a lightweight local development alternative to VVV, another popular project started by 10up. A more recent project, WP Snapshots, efficiently pushes project snapshots into the cloud.

As we increasingly used WP Local Docker and WP Snapshots in conjunction, we discovered some technical obstacles that could make WP Snapshots difficult to use. We realized that bundling the two projects would solve those problems and offer value to anyone already using both projects.

Read More on WP Local Docker + WP Snapshots

10up contributes MathML support to Google AMP

Last year, we found ourselves implementing Google AMP for a client who often includes content with mathematical formulas. The formulas were implemented using the open MathML standard, by way of the open source, JavaScript-based MathJax engine. Working around AMP’s JavaScript restriction, we put the formulas into amp-iframe components, which allow for arbitrary JavaScript execution. This workaround posed some limitations that compromised the design: formulas could not be displayed inline (inside of a paragraph), creating a slightly awkward aesthetic that didn’t quite match up with the “full” site’s presentation.

As a regular open source contributor committed to making a better web, it seemed to me that a native AMP implementation of the MathML standard would solve our client’s layout problem and help other developers and site owners. After a bit of background research, I opened an issue on Google’s open source AMP HTML project.

With a prompt and warm welcome, Google’s team accepted my feature request. This being an open source project, I volunteered to help; my offer was greeted with enthusiasm and some tips.

Formulas in iFrames and in-line

Read More on 10up contributes MathML support to Google AMP