I imported the list of Congressmembers from Sunlight Foundation (which is itself a spreadsheet [1]...then I wrote a script to pull campaign finance data from OpenSecrets using the unique identifiers in the Sunlight sheet [2]. I believe I used the NYT's Congress API [3] to get term data and votes-with-party percentage...though at the time I hadn't known about how to get the data from www.govtrack.us (which has bulk downloads of bill/vote data via rsync)
Then for the rest of the data (news items that featured a given Congressmember), I just researched manually and entered it in by hand into another sheet. I eventually imported everything into a database to make it a Rails app because that's the only way I knew how to build an app at the time...but the laborious part, the research and data entry, was made possible through the use of a spreadsheet...I didn't have to spend time building an admin interface that, no matter how well designed, would have almost been certainly klunkier than using Google Sheets.
The tradeoff is that you have be disciplined in your data entry process...i.e. unique identifiers have to be spelled consistently, as you don't have the ability to enforce constraints or enumeration (well, not without writing a lot of custom JS to run inside of Google Sheets) the same way you do with databases. This isn't too hard if you're working by yourself and you're proficient with keyboard shortcuts (Cmd-C, Cmd-V, Cmd-Tab, particularly)...but it's not easy to bring other people into the project, ad-hoc.
[1] https://sunlightlabs.github.io/congress/#legislator-spreadsh...
[2] https://www.opensecrets.org/resources/create/apis.php
[3] http://developer.nytimes.com/docs/congress_api
Today I would most definitely not have moved it to Rails, as it was a relatively small dataset and the app didn't need anything besides static pages. I now do almost all my medium-to-small apps in Middleman, which is a slightly more complicated version of Jekyll (basically, you can execute Erb instead of being restricted to Liquid). Usually I start off with a spreadsheet, but if the dataset is small enough, I'll record the content in YAML.
edit: added mention of the NYT API