Team: Developers

Welcome to the engine room!

We develop the platform. That’s both server-side and client-side code and design (!), as well as any additional tools, apps, etc. If you’re technically minded but want to help more with docs, developer outreach, user needs analysis, you’re also more than welcome to join.

For now we use this team primarily to keep a diary of our work.

Number of members: 1 (view list)


Team rules

You agree to license all technical contributions under CC-0 (public domain); see:

We’ve opted for these terms for our codebase to make re-use and extension minimally complex.

This team has not published any reviews yet.

Team blog

» View all

User preferences without clutter?

I’m not a big fan of classic user preference dialogs where you have to hunt a million sections for the thing you care about. Where it’s possible to do it intuitively, I prefer to integrate preferences into the part of the application they regulate, where the user is likely to look for them.

In this vein, I just added a little pushpin widget to load the rich-text editor by default. Here’s what it looks like:

User preference switcher animation

Under the hood, it makes an API call to toggle the preference. This means it’s a real preference, not stored in your browser. Any new review or other long form text field you write or edit will be loaded in rich text until you click the pushpin again. Is it intuitive? I don’t know — feel free to comment on the relevant bug if you think it can be improved. But I do like that it doesn’t make me go hunting in a “user preferences” section.

Speaking of clutter, I also find it important to prune features that no longer make sense. Accordingly, we’ll be removing the “live preview” feature soon, since it’s made largely obsolete by the rich-text editor. If you disagree, speak up on the bug :-).

   Permanent link

Rich-text editor is now live

I just deployed the initial release of the new rich-text editor for all large text fields on the site (reviews, blog posts, team descriptions, bios). If you have JavaScript enabled, you should see the mode-switcher below the relevant text fields. Here’s what it looks like in action:

Animated RTE example

This editor is powered by ProseMirror, which is more a toolkit for building editors than a drop-in solution. We’ve hacked it to serve the purposes of this site. Features include:

  • You can switch back and forth between markdown and rich-text, and edit in either representation. (Most markdown editing tools only render a preview.)

  • When in rich-text mode, you can use markdown shortcuts such as >, *, 1., # at the beginning of a line to get quotes, bullet point lists, numbered lists, or headlines.

  • Want a bigger editor? In browsers that support it, you can drag-increase the size of the markdown editor. When you switch to rich-text, the new height will be preserved. In future, we may implement a proper full-screen mode.

  • All UI messages can be translated via (become a translator).

ProseMirror itself is still in early development (watch out for this bug with trailing spaces), and I’m sure there are problems in the integration as well. Please don’t hesitate to report bugs!

We’ll continue to chip away at related issue, and will also start turning our attention to other shiny features such as

  • metadata for review subjects

  • import of items from Wikidata

  • API, API, API!

   Permanent link

Coming soon: A new editor

Some new users have requested a nicer way to write reviews, so I’ve decided to give the editing UI some love before moving on to some other high priority tasks. I’m currently working on integrating ProseMirror, which is an open source rich-text editor library.

ProseMirror is extremely modular – it’s basically a “build your own editor” kind of deal. The downside is that it takes longer to build something; the upside is that it’s possible to build advanced functionality and to customize the UI more easily.

Markdown is not going anywhere. One of the PM examples demonstrates the side-by-side use of markdown and rich-text editing. The goal is to create a similar user experience for This way, users will be able to choose the editing environment they prefer on a case-by-case basis.

   Permanent link

 Older blog posts