WordCamp PWA: Plugin proposal and designs

Planning is well underway to create a new look Progressive Web App (PWA) for WordCamp events. The PWA will make accessing and providing content on mobile devices much easier for attendees and organisers.

This builds on the work to create a PWA for previous WordCamp Europe (WCEU) events.

However, rather than developing a standalone PWA at a separate URL to the WordCamp site, as has been the case in the previous years, the plan is to create a layer of contextual information for Camp attendees that is served from and integrated with the WordCamp website, and which can be stored locally on the user’s devices for offline access.

WCEU Blog post on the PWA development

The PWA will present a better mobile experience, taking advantage of touch screen gestures, and will put the most relevant information “at the fingertips” of Camp attendees. The PWA will enhance a WordCamp website, and will allow users to bookmark the website to their device’s home screen for offline access.

This PWA functionality will initially be created as a plugin, displaying an additional visual ‘layer’ of content aimed specifically at attendees, in an ‘App like’ way over the main WordCamp website content. However, both online and offline users will have access to this same layer of content.

WordCamp PWA plugin design proposal v1 - PWA landing page displaying PWA controls over the main WordCamp website
WordCamp PWA plugin design proposal v1 – PWA landing page displaying PWA controls over the main WordCamp website

The plugin should be simple to set up and configure, so that – in the longer term – any WordCamp event can take advantage of its features.

This initiative is being led by the WordCamp Europe 2019 Organiser teams, with design prototyping by the WCEU Design team and development by the Attendee Services team. The Communications team is also actively guiding the design and development of the PWA.

The plan

  • The WordCamp PWA plugin will present an additional ‘layer’ of mobile friendly content over the main WordCamp website – inheriting the basic colours and fonts of the website. However, individual WordCamps should be able to customise the look of the PWA further using CSS overrides.
  • This PWA layer can be switched on/off from plugin settings within WordPress admin, so that it is only available for the duration of the Camp. When viewing the site on touch screen devices during the Camp, users will see the PWA layer appearing over the top of the WordCamp site.
  • The PWA controls will look very like a native smartphone App, and will be optimised for touch screen devices, employing swipe gestures.
  • On loading the website on touch screen devices, the user would be presented with a range of PWA control, docked to the foot of the screen, offering PWA menu options as icons around a large, central, ‘always visible’ circular button that will be used to open/close the PWA layer.
  • Using the power of PWA, the content of the App will be downloaded and stored offline on the user’s local device, and can be bookmarked on the user’s home screen to be accessed at any time, with or without an internet connection.
WordCamp PWA plugin design proposal v1 - Screen layouts
WordCamp PWA plugin design proposal v1 – Screen layouts


The PWA plugin will display a range of key content sections relevant to conference attenders. Each content section will animate open as a panel from the icon at the bottom of the screen. This will initially include the following screens (which relate from left to right to the icons in the image above):

  • Attendees: a full list of attenders with Gravatars, sorted alphabetically, with search field to look up attendees by name. For GDPR reasons, attendees should not be downloaded and stored offline on the local device – although this may be reviewed in the future in line with GDPR and privacy regulations and with any permissions requested during attendee sign-up.
  • Speakers: a full list of speakers with Gravatar, biog and links to relevant sessions, sorted alphabetically, with options to filter by schedule date/topic group and search field to look up speakers by name.
  • Schedule: a full schedule for the WordCamp, with a single column per schedule date, and option to filter by Track. Users will have the ability to ‘favourite’ sessions, and these preferences will be stored on the local device. Columns can be swiped left/right to view previous/next day, and the sessions should be filterable to show just the sessions which the user has marked as their ‘favourite’. Depending on when the schedule is viewed, the schedule list should visibly scroll/animate down to the current time/session, so users can see ‘at a glance’ what is ‘on now’.
  • Venue Map: one or more graphical floor plans of the venue, with the ability to swipe/pinch to resize and re-position the maps within the viewable area of the screen.
  • Announcements: a chronological listing of announcements for attendees during the WordCamp, filterable by type (that is, catering, sessions, social, and so on) and can be determined by the WordCamp organisers.

These five sections will be arranged as icons around a large central ‘Start’ button, docked to the bottom of the screen, to allow users to turn the PWA layer on/off. This circular arrangement would allow us to add additional buttons/sections at a later date, and have these icons ‘revolve’ around the main circular ‘Start’ button with swipe gestures.

The content for all the above sections is already present with the WordPress database for WordCamp sites, apart from ‘Announcements’, which will need a new Custom Post Type to be added, potentially with its own custom taxonomy (to allow users to filter different types of announcements). Venue Map images may also require the use of one or more custom fields for storage and display.

Tablet view proposals


The ambition is to pilot a version of the WordCamp PWA plugin at WordCamp London in April 2019, followed by a full launch at WordCamp Europe 2019 in Berlin in June 2019.


  • Would you use this PWA plugin for your WordCamp event?
  • Is the content detailed above the most useful for WordCamp attendees – is anything missing or unnecessary?
  • Is the design/UI proposed intuitive and accessible?
  • Any other feedback or observations?

UPDATE: 17 April 2019

After posting these original plans to enhance WordCamp websites with Progressive elements, we received a lot of feedback and suggestions to enhance this development work. Thank you!

Based on this feedback, we now intend to take a more integrated approach to the project.

In practical terms, this will build on the great work of Weston Ruter and his Progressive Web App feature plugin, which brings PWA capabilities – including service workers and the web app manifest – to WordPress. This will mean that, rather than create a new and separate “layer” of context based information “over” the WordCamp website, we will instead allow key pages of an existing WordCamp site to be stored locally on a user’s device for offline access.

In addition, we would intend to create a new homepage for the website for the duration of the WordCamp to display context based content on the Sessions that are “on now” and “up next”, alongside the latest Posts from the Camp website, to put this key information at the fingertips of attendees.

We intend to complete this work in time for WCEU2019. Beyond that, we hope that this enhancement to WordCamp websites would be available to WordCamps around the globe.

#apps, #improving-wordcamp-org, #progressive-web-app, #pwa, #regional-wordcamps, #wordcamp, #wordcamp-sites, #wordcamps

Progress update: New WordCamp theme “CampSite 2017”

As announced in a previous post, this year’s WordCamp Europe team is working on a new WordCamp base theme for the community. We’re calling it “CampSite 2017”. Since the announcement was made, we were able to gather initial feedback (which was primarily positive), solidify and further develop our ideas. I’d like to share our progress with you today to hear your feedback and thoughts.


After we heard your feedback from our introduction post, we made a list with all common pages, components, shortcodes used, etc. each WordCamp site would need. We then created and started refining wireframes of the main page templates (you can click through the different pages by opening the sitemap button on the top left of the online tool).

For the homepage we put the emphasis on flexibility and being able to tease to different content rather than having a very long blogroll (as often seen on WordCamp sites). This allows us to surface important content, feature relevant calls-to-action (like Call for Speakers, Buy your ticket, Call for Sponsors, etc.). We did want to include latest blog posts, but limited the number on the homepage. The layout is created mainly with widgeted areas where we allow for some additional flexibility (see “Widget Area Top 1” + “2”, where you can use one or both depending on your needs).

Attendees page:
We’re working on extending the attendees page shortcode to include pagination and a search functionality. Bernhard published a meta post about it.

Speakers page:
On the speakers page we were playing with different grids and types of information to output. Since the event organizers can include different fields / types of information for speakers, they can also decide what to output here. We’ll achieve this by extending the speakers shortcode and will publish a meta post with all the details soon.

Speakers bio page:
We’d like to include a little more information around speakers on this page. We would find it very useful to have prominent links to a speaker’s website and social profile. We furthermore feel that it would be very helpful to see the talk a speaker is giving would be shared on their speaker bio page, instead of having to click one more time to see their full talk info, as well as a link to the slides and talk video (once available). To achieve this will will create a new page template.

Here we’d like to provide a simple footer with just the social links or an extended footer with additional widget areas for menus and other links.

General layout templates:
Furthermore we’ll create the following general layout templates that can be used for any regular content page on the WordCamp site:

The Theme Repo – work in progress

We’re using the latest version of Underscores as a base for the theme and setup a repo on Github for the theme. As pointed out in the previous post, most features implemented in the default theme were widgets areas. As shown in the wireframes, we will add some widget areas in the new theme, but with more specific positions. The new page templates will help with some special pages, like the speakers list and bio page or the homepage. A first version with the new templates will be published next week.


Accessibility will be an important aspect of the new CampSite 2017 theme. We’re planning on implementing A11y standards and once the theme is ready for testing would love the community’s help to do a separate A11y testing phase. We’ve received some feedback from the A11y team about the biggest issues of the current theme and the things that Underscores is still lacking. We will take some A11y changes from TwentySeventeen and integrate them into the new theme and ask the A11y for additional feedback, once the prototype is available.

PS: Style Guide

As mentioned in the announcement posts, the CampSite 2017 theme will be shipped with only minimal CSS so you can use it as a starter theme and add all your own CSS styles if you like. But we will also ship an accompanying style guide with full CSS styling open source. The style guide can be used as is, as a base for customization, or cloned and made fully your own. We will publish a full post about the style guide, how it works, and our vision for the future very soon.

Your feedback please!

We’re still working on quite a few things and would to hear your feedback about the wireframes, our ideas around the page templates and shortcodes, etc. This project is for you, it will benefit the greater WordCamp community and any organizer setting up a WordCamp site in the future. So we want to hear your voice!

#campsite-theme, #meta-wordcamp, #wordcamp-sites #wordcamps

WCEU17 design team is building improved and more flexible WordCamp theme

In the Summer of 2015, a survey on WordCamp.org tools has brought up some great ideas and suggestions for a new default WordCamp.org theme. We, the growing design team of WordCamp Europe 2017, this year 6 people strong, want to help create such a new default theme for WordCamps. The ideas voiced in the survey were pretty much in line with our vision for a new theme.

We currently use the “WordCamp Base Redux” theme for WCEU17 which is based on a very old version of _s, lacking some of the newer features. The Redux theme also has some major A11y issues we’d like to tackle.

The suggestions from the survey we felt most strongly about were “serve the many, not the few“, “flexible starter theme“, and “be a theme only“. Using a current version of _s would solve a lot of these wishes voiced by the community.

The status quo

To tackle this, we compared the Base Redux theme with a current version of _s. We wanted to identify feature that were added and might need to be implemented in a new WordCamp base theme. Many added functions in Base Redux are legacy code, including older versions of the custom post types for speakers, session, etc. As those features are now handled by plugins, they are no longer needed in a new theme.

After stripping out all old and unused functions, we identified only some additional widget areas used:

  • Two additional widget areas after the header: after-header and after-header-homepage (only on the front_page)
  • Two additional widget before the content: before-content and before-content-homepage (only on the front_page)
  • A second sidebar: sidebar-2
  • 5 footer widget areas: footer-widget-1 … footer-widget-5
  • A credit action in the footer (which was never really used)

We do see the need for some additional widget areas and will decide which widget areas make sense to add to the new default theme to add additional flexibility. Having special page templates with no sidebars (full width) or other layout options, could also be very useful additions.

In the comments to the survey, Josh Leuze came up with some ideas for a new default theme. He wanted to introduce a theme with a basic design, so any WordCamp organizing team, with limited design resources, has a good starting point for a nice WordCamp theme. Josh included some of his ideas in the GitHub repo with additional assets for visual design ideas.

A new theme without a bundled design

The Base Redux theme is a starter theme and doesn’t really include any design. When using it you basically have three options, to create a design:

  1. Clone the design of a current WordCamp also using Base Redux
  2. Adding styles to Base Redux using the “Custom CSS” functionality from Jetpack
  3. Adding styles to Base Redux using the “Remote CSS” functionality bundles in a WordCamp.org meta plugin

For the new WordCamp theme we envision to:

  1. Have a solid technical framework with improved A11y using the latest version of _s
  2. Provide more flexibility and ease in setting up the WordCamp site by providing more layout options, page templates, and additional widget areas
  3. Provide modular CSS and style guide (provided separately / not included in theme – more info below)

Other theme improvements

We’re still working on the full list of theme improvements and features we’d like to include in the new WordCamp theme, but here are some of our ideas so far:

  • More flexible homepage options to share timely announcements, calls for sponsor/speaker/volunteers throughout the life span of an event
  • Page templates for speakers, sponsors, etc
  • Paginated archives for post types
  • Improved A11y

Sneak Peek: Theme CSS and a living style guide

Designing a WordCamp website can be challenging since we can’t modify HTML or JS so it’s important to have a good CSS starting point and documentation to speed things up. Separate from the new WordCamp theme, we’re also creating modular CSS and a living style guide as a convenient starting point for WordCamp organizers to use.

We’ll be releasing it open source for anyone to use, edit, and fork to create and share new versions. The styles can easily be applied to a WordCamp site using the “Remote CSS” plugin.

We’re hoping this to be a starting point and that the style guide will evolve over time. This will give others the opportunity to release more versions of it for the community to choose from. We understand that not every WordCamp team has design resources, so we want to help with some of the heavy-lifting providing this style guide.

We’ll be publishing more info about this soon. But for now, we’d like to share a few screenshots of what such a style guide would look like:

Style Guide: Color variables and values

Style Guide: Example of components

Big thanks to my team members @kau-boy and @lucijanblagonic who helped me kick this off.

Dear community

We’re very excited about this project and we’d love to hear your feedback! Also read our intro post on WCEU.

#campsite-theme, #meta-wordcamp, #wordcamp-sites

A/V Release Form

The last two WordCamps I had the pleasure to visit asked speakers to sign the A/V release form on a pdf file. This means having a printer and a scanner (or if you are more tech savvy and you have a Mac use Preview, but I don’t assume everyone knows that – I didn’t up until a few days ago!).

For WordCamp Torino we pasted the text of the A/V release form in a page and added a form with:

  • Name
  • Date
  • Checkbox (redundant, cause if you didn’t send the form for us it meant you didn’t sign the form, but we felt it reinforced the importance of explicitly approve the rules).
  • Send

I feel that this would make the process easier for speakers.

Do you think we could create this page for all WordCamp.org installations?


Automated ticket invoicing

I consider myself to have pretty high tolerance for monotonous, “mindless” tasks, but after taking on ticket invoicing for 3 consecutive WordCamps (Paris, London, Europe), I must re-evaluate. Some mindless manual tasks are still necessary (folding laundry), but as software engineers, our mission is to make life easier by automating as many such tasks as possible, right?

TL;DR : let’s automate ticket invoicing by adding an option for ticket fields to be included in the email confirmations, along with a couple other default modifications 😀

Current state of affairs

When an attendee purchases a ticket to a WordCamp, they do not receive an invoice. For many attendees this is not a problem, but for businesses and/or employees looking to declare their expenses or get reimbursed, they need proper, standardized documentation.

An invoice should include at least:

  • The full name and postal address of the issuer (the Foundation).
  • The full name and postal address of the purchaser.
  • The VAT number of the purchaser where applicable/if needed.
  • The word “invoice” and sequential numbering (invoice #001, …).
  • The date of purchase.
  • The date of issue (if different).
  • The name of the product (type of ticket).
  • The single ticket price.
  • Currency used.
  • The number of tickets purchased.
  • The total price of purchase.
  • The amount of VAT included*

What a purchaser does receive is:

  1. An email confirmation sent by the website.
  2. A PayPal receipt.

The email confirmation contains only limited information, and mostly serves to give access to the online ticket in case it needs to be modified. Here are two examples:

wc-us_confirmation wc-london_confirmation

They contain 4 out of the 12 elements of a basic invoice:

  • The name of the product (type of ticket).
  • The single ticket price.
  • The number of tickets purchased.
  • The total price of purchase.

The PayPal receipt is slightly more complete (sorry, French):


It also includes:

  • The transaction date.
  • The name and email address of the recipient.
  • The currency of purchase (and exchange rate).
  • A transaction number.

Key components still needed/missing:

  • The full name and postal address of the issuer (the Foundation).
  • The full name and postal address of the purchaser.
  • The VAT number of the purchaser where applicable/if needed.
  • The word “invoice” and sequential numbering (invoice #001, …).

*VAT (Value added tax) is an issue in and of itself. I’d like to set the VAT question aside for the purpose of this post and the question of automating ticket invoicing. As it is, manual invoices do not include VAT, but rather the VAT line in the total reads, 0. I do believe these to be two important, but separate, problems.

Solution #1: build on the email confirmation

As we already have these two supports available, it would seem logical/relatively easy to build on them.

Could we not modify the existing email confirmation template to include by default:

  • The full name and postal address of the WordPress Foundation.
  • The word “invoice” (internationalized), followed by sequential numbering based on the post ID (or something along these lines) of the ticket purchased.
  • Add the VAT line to the total, to read 0 (until that separate and local problem/question can be addressed).

Could we imagine the possibility of adding custom fields to the email templates?


This would allow us to use custom fields to include optional company and tax information for purchasers. I’ve seen this work in the WooCommerce extension WooCommerce Checkout Field Editor, and although the interface is a bit different, the actions/results are the same.


And ideally, as a next step, and as would be great to see for Sponsors invoices as well (!), the possibility to generate an invoice (email and/or PDF) directly from the Admin would be a huge bonus (because emails invariably get lost/discarded).

Solution #2: PayPal invoices

In talking with @paolo about my fantastic custom fields idea, he mentioned that PayPal should have the capability to send invoices for us. I went poking around a bit, and mostly came up with information about sending invoices for payment, not as receipt of payment.

They do talk about Invoicing APIs that can integrate with accounting systems. Personally reading this makes my face hurt and I feel the above solution #1 would be faster/more direct to implement, but PayPal integration with accounting might be a better long-term solution. Dunno, worth looking into. J


Though when I think about the world of e-commerce, I think of it being natural for the site selling to be responsible for accounting, not the financial institution charged with the transaction…


Number of manual invoices created:

  • Paris: 28
  • London: 21
  • Europe (Vienna): 59

These may seem like small numbers considering the total number of attendees for each event, 500, 660 and 2200 respectively. But what these numbers don’t show is the time also spent in communicating with attendees who request these invoices, the time it takes to look up the ticket and make sure it was purchased (yes, not all requests are attached to actual tickets), discrepancies when the asker is not the purchaser, the number of back and forths to explain that the postal address is needed but that the invoice will be sent by email, etc. Sometimes several people can be involved if the request goes first to Central before making its way to appropriate parties, managing email inboxes, etc. London helped the process along by creating an online form for requests and a spreadsheet to manage them. But in the end it was still a couple hours of work to verify, issue and send each requested invoice.

Automating this process would collectively save us volunteers huge amounts of precious time. I’m convinced that updating our email confirmation templates would be a fast and direct solution. I also think there is inspiration (and code) to be found in existing WooCommerce solutions (templates, extensions).

Thanks for reading, look forward to your thoughts and am happy to help in any way I can (conceive templates, test code, etc). 🙂


cc: @iandunn

#automation, #invoicing, #wordcamp-sites

Hi Everyone I have an idea for the…

Hi Everyone, I have an idea for the WordCamp websites relating to the new Session Slide Link functionality.
I posted some questions in Slack starting at https://wordpress.slack.com/archives/outreach/p1465885292000003 and Ian said to post here.

Essentially I would like a shortcode that only included the Session Time, Title, Speaker and Link to slide.
So no long session description that currently happens with `[sessions show_meta=”true”]`.

Either added to the `[sessions]` one or if `slide_link=”true”` was added to the `[schedule]` shortcode.

A visual of what I’m wanting to accomplish is on https://2016.kansascity.wordcamp.org/presentation-slides/.

My reasoning is that when the schedule is printed in the name badge, attendees circle/mark which sessions they go to on the badge. When they go to look for the link later, having it somewhat be in the same place will make it easier to find then a long list of Session titles.

Anyone else think this would be a good idea and/or could code it?

#slides, #wordcamp-sites, #wordcamps


Promotions isn’t really the right word, but I wanted something with the same excitement as announcements for Commit Access get on core. Brandon Dove (@brandondove) and Kevin Cristiano (@kcristiano) have been powerhouse deputies since the program began, and their dedicated volunteerism deserves thanks from us all.

While we work out how to improve our processes and as we grow the community team with more deputies, we’ll be working within the (sometimes kludgey) systems we have. One of the bottlenecks for deputies has been that sending out organizer agreements and setting up new WordCamp sites was limited to Cami and Josepha. Brandon and Kevin now also have these abilities to help speed along the process of approving WordCamps. Hopefully we will be adding more people and/or changing the way this process works so that it can be automated on approval, but for now, yay — instead of only 2 people there are 6 (because also Andrea and I are back).

Thank you again, Brandon and Kevin, and may you send many exciting organizer agreements and set up many default sites as the future unfolds!

#community-core-team, #community-management, #organizer-agreement, #responsibilities, #wordcamp-sites