Version 3.0.6

Goals & Principles

Our mission is to provide a technological edge to Democrats, progressives, and non-profit organizations that work to make the world a better place. That means we work with customers who are themselves strongly mission-driven. We strive to make achieving their mission easier and more pleasant.

We empathize with the humans who are on the other side of our code. We invest time to understand them and what they’re trying to achieve with our product. We always put them first and go out of our way to deliver a powerful, pleasant experience for them.

  • People over data

    Our data should fit the way people use it, not the other way around. Invest time to understand what data and actions the user actually wants.

  • Make the user feel powerful

    Access to our product is a badge of pride as the user is being entrusted with access to important data and tools.

  • Provide a human touch

    When possible, highlight the people who perform actions by showing a person’s name and/or profile picture. If multiple people are contributing to the feature in a similar way, highlight the other users to build a sense of community.

  • Educate people

    Provide useful tips and educational resources. Most people aren’t experts and our position provides a great opportunity to help them do better.

We build experiences that adapt to our various users, from retired volunteers to tech-savvy administrators. We also build experiences that adapt to the different devices people use to access our product, from smartphones to desktops (with reasonable limitations to reduce unnecessary support of old technologies - I’m looking at you Internet Explorer).

  • Provide adaptive UIs

    Not every user requires rich administrative functionality to appear by default. Features should be intuitive for all users by default (free of technical jargon, clearer error messages, etc) with admin users seeing additional functionality.

  • Think about mobile

    As mobile usage takes over traditional weh3 usage, focus on building features that can adapt from smartphone to desktop. The smaller screen real estate of a mobile device allows for only the most essential features, ultimately simplifying our product for all screen sizes as we learn what is most important.

While our product is utilitarian and often a must-have, we should focus on making features a want-to-have by designing their usefulness in a way that delights the user.

  • Surface actionable intelligence

    The most useful people, data, and actions should be displayed to users in an easily digestible manner.

We believe most functionality can be expressed in familiar and reusable ways. Recycling patterns and visual cues results in a consistent, more usable product. Users will reuse existing mental models and transfer knowledge across features, and we save time and reduce work by making improvements across the product at once.

  • Don’t reinvent the wheel

    Only on rare occasions should a feature replace existing patterns with a custom solution. If the feature is so new and unlike anything else already in the product, talk it over with others for the simplest way to reuse existing stuff while still delivering a custom solution.

  • Reduce the number of ways a task can be completed

    Create a consistent workflow for common tasks so that the user knows how to use new features because they work in the same way as existing features. This should also reduce bugs and code by streamlining the way things can be done.

  • Adhere to the brand

    Our company has a strong brand with brand guidelines. Make sure you take them into account when building something.

We focus on providing a clean and understated experience. We remove everything but the most essential items from our product, eliminating distractions.

  • Rely on ProgressUI

    We’ve built a set of clean visual styles so you don’t have to! With ProgressUI, we have cleaned up our interface with fewer fonts, colors, and page layouts. You should use ProgressUI and seek approval for any exceptions.

  • Focus people, data, actions

    Figure out what users are actually trying to achieve with each feature, and then make that task the focus of your experience.

  • Remove clutter

    Keep the page clean by removing everything but the essentials - even the stuff a user doesn't see (i.e. backend code!). Infrequently-used or admin functionality should be hidden away by default. Avoid ornamentation unless it adds value or genuinely provides a more pleasant experience.

Every moment counts when users are busy making the world a better place, we value their time by focusing on making our product experiences as fast as possible.

  • Reduce clicks/touches

    Most used features should require minimal clicks/touches, and we should focus on surfacing important people, data, and actions for users throughout the product so they can more quickly act on the data.

  • Smart defaults

    Where can we keep the user from needing to make a choice at all?

  • Faster recovery

    If a user makes a mistake, we should make recovery fast and easy.

  • Simpler = faster

    If explaining the functionality of a feature or understanding the data takes too long, we should create a simpler solution.

  • Find innovative ways to make information more quickly digestible

    Examples include creating visual shortcuts such as charts and graphs of data over time, or increased use of iconography and larger fonts for certain elements.

  • Focus on speed

    A user should never think about site performance. Google PageSpeed Insights

Ultimately our relationship with the people who use our applications is built on trust and we want to give them an application that they are comfortable using to handle sensitive data.

  • Uptime is vital

    We should target 100% uptime, 24/7/365. Users intrinsically trust a product which is reliable. Other issues will always be in the context of whether a product is available when s/he needs it.

  • Focus on data integrity

    There is no greater way to erode trust and confidence in our product than for data to appear inaccurate or out-of-date. Ensure features clearly communicate what is happening at all times, especially during errors.

  • Conveying security is top-of-mind

    Our users trust us with some of their most sensitive data, we should take this task seriously. We should make use of iconography and language that reassures the user that their data is secure, including encrypting traffic with SSL so the user’s browser displays a trust-boosting green padlock, for example.

  • Reduce bugs without sacrificing speed or innovation

    A stable product breeds additional trust with the user, so we should focus on user testing, automated testing, and widely releasing product features only when they are perfect (rolling out features to a subset of users can help you find bugs/areas of improvement before a wider rollout).

Search Results

Powered by