This is a prototype for a product to create better sharable assets. It uses techniques like copying/freezing the DOM, optionally showing history, allowing inline comments, taking clips and screenshots.
You can view the site (with a link to install the Add-on) at pageshotpages.appspot.com
It is implemented as a Firefox Add-on, using the Add-on SDK and a website using NodeJS. The addon is in addon/
, and the website is in server/
Ian has been blogging about the design, definition, and development process.
Install Postgres.
Install node.js. Version 0.12 is required.
Clone the repository.
Inside the local clone, run npm install
and npm install -g jpm
There are two scripts to run the server locally and develop the addon:
./bin/run-server
will run the server on localhost:10080 and automatically restart if there are changes./bin/run-addon
will build the addon, start Firefox with the addon installed (you must have Nightly or Developer Edition)
By default, PageShot will connect to a postgres database on localhost:5432. To change which database and user it connects to set/export the environmental variables: RDS_USERNAME, RDS_PASSWORD, and RDS_HOSTNAME
The server will automatically setup the tables in your database, and keep them up to date over time (using pg-patcher).
We apologize but we have no story for development on Windows.
To make the auto-reloading of the addon work, after you first start Firefox using run-addon
you must manually install the autoinstaller addon into your development profile. This will allow the script to push updates into the browser without browser restarts.
There is an IRC channel #pageshot
on irc.mozilla.org.
We hold daily standups each weekday at 3pm Eastern, 2pm Central, noon Pacific. Meetings typically last 20 minutes, and we just discuss whatever we're working on. Feel free to stop by and say hi. Follow this link to join the meeting (you'll have to install the Vidyo video conferencing software, sorry). Please don't join with your video turned off, it's a conversational meeting and we like to know who is part of the conversation. If someone is out for some reason we may cancel this meeting, check in on IRC if you are unsure.
Planning and ideation is happening in the issue tracker. We use a pattern roughly like:
- Issues with no milestone are awaiting triage
- Issues set to the next milestone can be worked on any time (this link will rot!)
- Issues in Next Tasks will be re-triaged when the current milestone is done
- Issues in Blue Sky are mostly shelved; we'd like to do them but have no plans to move forward. (If you see something you care about there, comment on it -- otherwise we may not notice it)
- Issues with the needs-discussion label are for discussion at the next meeting. We don't have a plan for open meetings (not that we don't want them, we just don't have a plan), so this is largely for internal use.
Issue tags otherwise aren't very structured. Research is primarily analysis of other products that do something interesting, or some source material that could provide insight. Input on these (things like "I like this product because...") is very helpful!
Also Ian blogs regularly about PageShot.