The Public Lab Blog

stories from the Public Lab community

About the blog | Research | Methods

Public Lab's contribution framework (deep dive 2019)

by sashadev-sky | over 1 year ago | 35 | 7

7 Months

I recently reached my 7th month as a contributor to Public Lab's open source software, a milestone that, amongst other things, brought to my attention that it's now or never to write a blog post.

In the spirit of writing about something that really does deserve a full 7 months of consideration, and still keeps me thinking, I want to shine light on Public Lab's contribution framework.

Open source communities are fascinating to think about because they come in all shapes and sizes - most successful communities share certain commonalities (ie. often called "best practices"), but underneath that their foundations are a testament to achieving a specific ethos and set of goals.

Thinking about Public Lab's contribution framework, founded on 3 simple steps, has allowed me to shape my understanding of the all-encompassing open source community, and what makes Public Lab's sub-community so special.


My first PR ever was Oct. 16th, 2018, where I completed what is known in some beginner-friendly OSS communities as an "FTO" (First Timers Only) issue. The labels we use for these, which you might find across Github, are "first-timers-only" and "good first issue". To this day, I have opened 21 of these issues myself.

FTO issues are the glue that holds PL's framework together, and teach us invaluable lessons about open source community and culture. (More on this later).


PL follows a 3 step process for initiating new members:

  1. A new contributor completes a guided "FTO" issue
  2. Then they complete any regular issue, often labeled "help wanted"
  3. Lastly, they open their own FTO and help guide a new contributor through it

these 3 steps are incredibly well thought out.

Primer - Openness

One of the most admirable and celebrated aspects of open source is the various acts of kindness amongst contributors in a community. Open source communities make learning an inherently social process, so contributors share an interest in mutual aid and interaction.

Although socialization is inherent, communities still bear the responsibility to facilitate an optimal environment for it. The foundation a community lays down for workflow and culture shapes contributors' interactions.

Public Lab's approach works on the principle of openness. Openness as a paradigm of organization:

This: Openness is an overarching concept or philosophy that is characterized by an emphasis on transparency and free, unrestricted access to knowledge and information, as well as collaborative or cooperative management and decision-making rather than a central authority. More at Wikipedia

Includes this (open source software): 4. computing degree of accessibility to view, use, and modify computer code in a shared environment with legal rights generally held in common and preventing proprietary restrictions on the right of others to continue viewing, using, modifying and sharing that code.

But also openness as a community mantra (ie. receptiveness, kindness, patience).

As the landscape of open source software changes rapidly, with more users joining Github in 2018 than in its first 6 years combined, some communities lead the way in developing a new collaborative model for this uncharted territory.

PL's workflow is exemplary of how this is done. Its approach is multi-faceted, but the focus here is on its ability to cleverly weave community values into its foundational workflow, which carries the most palpable benefits.

Its workflow is a cycle of reciprocity, in which every contributor experiences both ends. From a contributor's first contribution, an air of gratitude starts spreading which they'll carry on.

This is summarized well by the wise words of Google's Summer of Code mentor guide:

"Consider treating every patch like it is a gift. Being grateful is good for both the giver and the receiver, and invigorates the cycle of virtuous giving"

This cycle starts with step 1.

Step 1

provides the opportunity to learn about PL's community culture firsthand while working through an FTO guided by another contributor. This can often be a contributor's first pull request ever, which is one of the toughest milestones in contributing to OSS. Two notable ways PL empowers contributors through its culture of kindness and gratitude:

  • Welcome bot: each new contributor receives a congratulatory message on their first PR:

image description

  • Every FTO receives feedback from reviewers or maintainers. Commenting something as small as "thank you" makes an impact. Surprisingly, this is not necessarily standard etiquette across open source communities.

A quick anecdote: featuring a community that suffers from the absence of any structured empowerment system

Recently, I stumbled upon some incorrectly translated Russian-language configuration files for a platform-specific i18n community. I opened two PRs. Shortly after, they were merged without any communication exchanged besides these notifications:

image description

It's not that I wanted a gold star. My main problem with this was that the process felt like a side conversation with myself rather than a community contribution, which is not a sought after experience in OS.

Communication is an axiomatic part of a community; this is not a revelation. Any communication is good (a merged pull request is a whole lot better than nothing), but not all communication is the same.

Despite having about 400 contributors and 3,500 stars, the repository still has a number of translation inaccuracies that a single, motivated contributor could fix. It is not meeting its full potential because its large contributor pool is not, well, contributing much after a few initial PRs.

Side note: full respect to this community and what they have accomplished. This anecdote only serves to point out the opportunity cost of expending less resources on contributor engagement, and that contributor participation is not something that's guaranteed to a community.

Step 2

provides the opportunity to rinse and repeat the Git workflow learned from the FTO, with the added challenge and opportunity to create and implement self-directed code improvements.

Step 3

creating your own FTO, provides the opportunity to give back to the community - specifically by guiding new contributors through the same process you just worked through recently.

The result is a community in which the contributors are passionate about helping out: see the free response results of PL's contributor survey.

It also creates an atmosphere of mutual support in which contributors experience being both the supported and the supporter. The implications behind this are important. Contributors that make it to the supporter side and open an FTO typically share a common understanding - that every contributor here is challenging themselves to take on new things and grow, regardless of experience level. The prospect of airing one's work in public feels less intimidating within the community. It is completely reframed as a means of connecting to a community, and materializes one of the key benefits of open source: shared knowledge.


PL's community expansion has largely been self-sustainable so far.

As each new member is expected to add at the very least one new FTO, the community grows exponentially.

As cited in PL's 2019 community report:

"we have grown over 400% in the past year to approximately 500 contributors over the total lifetime of the project."

More importantly, contributors proceed to take on leadership roles, such as joining the "reviewers" team, at a pace that reasonably matches growth. A system of distributed responsibility reminiscent of how a blockchain is governed pans out.

Setting a clear path for contributors to be able to advance to the role of a "reviewer" is an important aspect of openness that leads to sustainability, as it creates an incentive for contributors to become more deeply involved in the community. In PL, this path is the completion of the workflow.

These same contributors always go the extra mile. Off the top of my head, projects spearheaded by contributors in the last few months include: a weekly check-in system (implemented by myself and refined by @bsugar), revamping the community contributor page, updating countless documentation to clarify information for newcomers, establishing a monthly open hour call, and most recently - a system for tracking FTOs (by @gauravano, appointed community coordinator).

The benefit of self-sustainability is critical to understanding that the trend towards openness has benefits previously unreachable with an old leadership model (What comes to mind is a repo advertising "New maintainer wanted" on Github after the old network is exhausted):

image description

Open Source in 2019

PL's community growth aligns with a general growth trend in open source. Consider the 2018 Github stats, such as that 1/3 of all pull requests ever were created in 2018.

As more new contributors look for a fit in an open source community on Github than ever before, openness is a useful mantra to follow in 2019 if an organization seeks to inspire new contributors, scale (relatively) organically, and has the flexibility to restructure.

To ensure the consistent application of a community's desired open source practices, this framework for open governance needs to be built on a tailored and well thought out foundation. Public Lab's simple workflow and emphasis on a positive, supportive culture is a great example of how one community approaches structuring their foundation, managing contributor growth and ethos.

Read more Follow

software blog code barnstar:basic

Introducing a (draft) Style Guide for Public Lab

by warren with sylvan | over 1 year ago | 16 | 8

For a long time, folks making new pages and interfaces at have not had much (if any) guidance or direction, and, understandably, have brought their own ideas to the project. This is great initiative, but we could do a better job setting some clear design conventions, and the whole site would benefit from some more consistency.

@sylvan and I have been working on a Style Guide to serve this purpose. This guide is designed to support coders, designers, and writers building and designing pages on

We're at a point where we could use some input and feedback, so here's a draft!

Our goals include:

Simpler and more consistent design

  • Easier to understand and use: clear and well-explained guidance for design will make it easier to start doing UI work at Public Lab, and easier for people using to use.
  • Less customization: using standard libraries like Bootstrap 4 ( and less custom code will make it less fragile, more compatible and accessible, and easier to upgrade. We strongly encourage using widely familiar interface design conventions, so people don't to have to "learn how to use"
  • Easier to maintain: with a set of standards, it will be clearer what UI /should/ look like, and less likely that it will diverge and become inconsistent or messy. Less code will be easier to maintain at a high level of quality in the long term.
  • More support and guidance for people designing new pages/interfaces

Increased stability

  • Better organized UI code: cleaning up our code, reducing redundancy, and standardizing (and re-using) templates will make it easier for everyone to do good UI design overall.
  • Better UI tests: our new System Tests enable testing of complex client/server interactions exactly like a user will experience them. We aim for high coverage:
  • Fewer UI breakages: all of this should contribute to fewer bugs system-wide.

This guide won't cover every situation, but will establish an overall approach to UI design that all our work should build on cohesively.

Check out the draft style guide here -- comments and input are very welcome!

We'll be adding more and more annotations as we go, so that it's clear /why/ we've made these recommendations, and how to apply them.

We'll also be following up in a later version with code samples and links to templates!


For developing more complex mockups and prototypes, this may be a great tool!

Read more Follow

website design blog code

A big WELCOME to our Outreachy/GSoC team for 2019!

by warren | over 1 year ago | 6 | 2

Hi, all! I wanted to reach out because we will have a record-size team this summer, between 2 Outreachy and 13 GSoC fellows --- we've never had a group this big! We also have a bigger mentor group, but we will certainly need students to help one another. I wanted to reach out and welcome everyone, but also set the tone for the kind of mutual support we will need to succeed together.

Here are the announcements - congratulations!!!:

I was thinking of asking people individually to keep an eye on someone else's work even as they do their own. Each person might have a set of skills they could use to help another with -- whether it's writing tests, making FTOs, solving database issues, designing UIs, or creating clear and simple documentation. We'll need to rely on each other --- students helping students above all --- to pull this off and ensure everyone has a great summer, learns a lot, and finds success!

A note to those who we weren't able to accept in this year's program: we had over 20 fantastic proposals, and if we had the slots available and the mentoring team, we would surely have accepted more. Please know that we are extremely grateful for your work with us to date and that we welcome you to continue being part of this community. We considered many factors, among which are the prioritization of different projects, our ability to support different kinds of projects with good mentorship, and much more. So our inability to accept you should not be taken in a discouraging way, or as a suggestion that your proposal and your skills were not impressive and exciting on their own merits. Thank you for understanding and we hope you'll apply again ❤️


Title Author Updated Likes Comments
GSoC proposal: Mapknitter Image Management and Synchronous Editing @divyabaid16 about 1 year ago 2
SoC proposal: GSoC: Websocket Implementation for Real-time Usage and Sensor data and Display Library @namangupta over 1 year ago 20
SoC Proposal : Spectral Workbench Capture @sidntrivedi012 over 1 year ago 12
SOC 2019: A small proposal for global environmental monitoring @MaggPi over 1 year ago 13
GSOC-19 Mapknitter synchronous editing @vidit over 1 year ago 2
SOC proposal: Extend Leaflet Environmental Layers with new layer menu and layer addition workflow @anan12 over 1 year ago 5
GSoC proposal: Image Sequencer @aashnaaashna over 1 year ago 10
Outreachy Proposal 2019 For Public Lab: @gautami_gg over 1 year ago 12
GSoC Proposal: Mapknitter Rails 6 upgrade @kaustubh_nair over 1 year ago 7
GSoC proposal: Mapknitter ORB Descriptor (w/ auto-stitching, pattern training, and live video support) and LDI revamp (major UI enhancements) @rexagod over 1 year ago 35
SoC proposal: Community Toolbox overhaul @icode365 over 1 year ago 16
SoC proposal: Image-Sequencer v3: Boosting the performance and adding demonstration based on colorimetry @lit2017001 over 1 year ago 7
GSoC proposal: Sensor data upload and display library @IshaGupta18 over 1 year ago 34
GSoC Proposal 2019: Mapknitter's Rails Upgrade @alaxallves over 1 year ago 5
SoC proposal: Enhancing the UI of publiclab and relevant changes to server @lekhidugtal over 1 year ago 21
Show more

Read more Follow

gsoc blog code soc

Public Lab job posting: Business and Operations Manager

by Shannon | over 1 year ago | 0 | 0

Start Date: Mid June 2019

Location: New Orleans, LA

Terms: Full time

The Public Laboratory for Open Technology and Science (Public Lab) is a community-- supported by a 501(c)(3) non-profit--that develops and applies open-source tools to environmental exploration and investigation. By democratizing inexpensive and accessible Do-It-Yourself techniques, Public Lab creates a collaborative network of practitioners who actively re-imagine the human relationship with the environment.

This position is based in New Orleans and will be responsible for managing the business and operations of the Public Lab nonprofit. Day-to-day tasks include bookkeeping and financial management, supporting human resources and keeping a multi-office, remote team organized through meeting coordination and internal staff communications. The goal of this position is to improve and maintain efficiency and productivity of the organization, and to oversee the management and coordination of fiscal activities for Public Lab. This position reports directly to the Executive Director.

Major Position Responsibilities


  • Working with our outside accountant to manage the day-to-day bookkeeping processes at Public Lab including monthly closes, invoicing, reimbursements, and donation and sales processing.
  • Oversee all financial reporting activities for the organization, such as: running balance sheet and profit and loss reports, reporting on organizational and grant budgets and compiling financial reports.
  • Maintain processes to provide timely financial and operational information to the Executive Director, staff and Board of Directors.
  • Support the development of Public Lab's annual budget and program budgets.
  • Manage the financial relationship with an organization Public Lab fiscally sponsors, including reporting and fund disbursement.
  • Serve as a liaison to our CPA firm and manage the yearly audit process.
  • Support project managers in increasing their capacity for management of grant budgets.
  • Ensure compliance with rules from granting organizations.
  • Identify and communicate changes that could increase the efficiency of financial workflows to support stronger reporting practices and organizational growth.

Human Resources

  • Maintain and administer the relationship with Public Lab's third-party payroll and benefits provider.
  • Manage internal staff requests related to HR including time keeping and requests for time away.
  • Facilitate staff trainings, reviews, onboarding and departure from the organization.
  • Manage and update the employee handbook, staff policy and procedure documents and employee files.
  • Manage the hiring and training processes for new staff members.
  • Draft and coordinate the completion of contracts and MOUs with partners, contractors and fellows.


  • Support activities related to monthly and quarterly meetings with the Board of Directors and coordinate logistics for staff meetings and retreats.
  • In coordination with our payroll company and CPA firm, ensure compliance with reporting requirements and tax filings.
  • Maintain organization insurance policies and update as necessary.
  • Support Public Lab program staff in event logistics and scheduling.

All Public Lab staff are expected to adhere to the Public Lab policies, procedures, values and community-wide Code of Conduct.


A Bachelor's degree or equivalent in finance, business or other related field is preferred and 3-5 years of demonstrated job experience in a related field is required.

Additional Preferred Qualifications:

  • Experience at organizations with budgets around $1 million.
  • Knowledge of nonprofit accounting including grant tracking and reporting.
  • Experience with organization finances that include multiple funding sources (grants, memberships, earned revenue) for different organizational programs.

Skills, Knowledge, and Characteristics Required

  • Expertise in using financial software including QuickBooks (online edition) for nonprofits, Expensify and
  • Proficiency in using a variety of collaborative software such as Slack, Google Docs, and Dropbox.
  • Experience using CRM databases such as Salesforce.
  • Excellent attention to detail and organizational skills.
  • The ability to balance multiple competing tasks and requests and enjoyment from working efficiently towards goals and deadlines.
  • A desire for and fulfillment from working on a team, but also an ability to work independently on job tasks.
  • Incredible interpersonal skills, demonstrating great communication, kindness, respect, and patience within our collaborative work environment.
  • An enjoyment of problem solving and the ability to put this to use in areas where organizational operations could be improved.
  • Willingness to work remotely with colleagues, including your manager.

Compensation is between $40,000-$50,000, based on experience and qualifications. Public Lab offers a benefits package that includes four weeks starting vacation time in addition to federal holidays and personal days, 75% coverage of health benefits, a 401k and paid sabbaticals. This job requires occasional travel and work outside regular business hours.

Please send a single document containing a cover letter and resume to by May 19, 2019. No phone calls please.

Public Lab is an equal opportunity employer committed to a diverse, multicultural work environment. We encourage people with different ability sets, people of color, and people of diverse sexual orientations, gender expressions and identities to apply.

Read more Follow

nonprofit blog jobs

Public Lab Code Community Report: April 2019

by warren with bansal_sidharth2996 , gauravano | over 1 year ago | 0 | 3

Jan-Mar 2018: This year we have been buoyed by the growing size of our community and have turned towards larger projects on a year-round cycle, supported by funds from a variety of grants and fellowship programs. Our overall goal this year is to reduce the technical overhead of maintaining systems, and build a sustainable community leadership team that can carry these projects forward responsibly in a more distributed way.

This is "applications season" for our outreach programs, and we've seen a huge response this year (#call-for-proposals), and many applicants for summer fellowships who have already been engaged in our community for months.

Diversity, inclusion, and community growth

We've worked to improve and expand community facilitation and mutual support, as well as build on our commitment to diversity and equity in our work by supporting and encouraging a leadership group with strong representation by groups traditionally excluded in technology development; for the first time, a substantial proportion of our community leaders are women, and greater gender and racial diversity is reflected throughout our community. Our 2019 Software Contributors Survey helped us to better understand both our demographics how our approach to welcoming has worked.

Our community survey shows that ~33% of respondents identify as female or non-binary, which compares favorably with's report that only 4% of the broader open source community are identifying so. In addition, 87% of our community identify as non-white. (cited from our Software Contributors Survey)

We hope that the rich results from this survey can help us to improve even more, and look forward to the deep discussions and plans that will come out of this new information.


With support from Google's Office of Open Source, we are in the middle of a major, months-long project to rebuild and restructure the MapKnitter website and mapmaking toolkit. This has been a great opportunity to build out our leadership team, with five fellows leading projects which engage newcomers while solving substantial technical problems. We hope to begin public testing of the new systems in May.


In the next quarter, we will see a substantial reboot of the MapKnitter project, expansion of the Image Sequencer system (including a colorimetry app), implementation of major UI redesigns, and much more. Thanks to everyone who's helped make this a great quarter for Public Lab software!

Read more Follow

website web-development software outreach

Draft Sand Sentinel Program

by stevie | over 1 year ago | 0 | 0

Logo above courtesy of Pat Popple

Back in September, a number of people from around the Midwest who are fighting frac sand mining issues hosted a couple check in meetings on how things were going, sharing notes on some projects to date (you can read about the conversations here and here). We also had an opportunity to loop in on pathways forward people were seeing that were new, or could use some more attention.

I want to post an update on one of the projects that came up in those September conversations. With support from a number of groups and individuals, we've started to work on the Sentinel Program, originally conceived of by @Pat. This project is aimed at making reporting suspected violations from the frac sand mining industry easier to do.

So far on this project we have:

  • Collected materials people have used in the past in filing suspected violations,
  • Compiled a list of violations that could be observable by people,
  • Collected resources on where materials can be reported to,
  • Compiled a reporting form with information on what could be collected to support people's observations, and
  • Created a draft reporting form folder.

I wanted to share out the materials so far, and am looking for edits, ideas, and further suggestions. You can comment below or in the doc itself here. We'll also be going over some of this material at the event on Saturday in Arcadia.

Read more Follow

wisconsin blog frac-sand pm