• Stars
    star
    270
  • Rank 152,189 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 7 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Save to Pocket is a browser extension that is used to save pages to a connected Pocket account

Save To Pocket Extension

Save to Pocket Extension

Introduction

Save to Pocket is a browser extension that is used to save pages to a connected Pocket account when clicking a toolbar button, selecting a context menu item, or pressing keyboard shortcut. When a page is saved, a β€œSaved to Pocket” notification appears and offers additional actions, including:

  • Add Tags (with support for Suggested Tags for Pocket Premium subscribers)
  • Remove Page
  • View List
  • Settings

About this Repository

This is the skeleton structure for the Save to Pocket extension codebase.

It leverages a rollup build script to keep things simple when working with the operational code.

At this time it is set up to use the following:

  • React
  • Jest for testing
  • Eslint for JS linting
  • Babel for ES6/7
  • Linaria
  • Rollup
  • Storybook

Getting Started

High level steps

  1. Prepare your project
  2. Install dependencies
  3. Create a development/production build
  4. Load the extension into your browser

Setup

Before you get started you will need to do the following:

  1. Register an API key from https://getpocket.com/developer/
  2. Create a keys.json file in the root directory of the project with the folowing format:
{
  "browserName": "key"
}
  1. During the build process it will inject the key into the manifest file

Installation

The app is bundled with rollup via node. You may use NPM to run the build/start/test scripts.

npm install

Creating a build

Development

Run npm run build

This will create an optimized build and place it inside _build at the root directory.

Running npm run storybook will open a development envorinment to allow for building and testing of simple components.

Production

Run npm run release

This will create an optimized build, zip it up, and place it inside _releases at the root directory.

Loading The Extension

To load the extension:

  1. Open chrome and navigate to chrome://extensions
  2. Check the Developer mode in the upper right
  3. Select Load unpacked extension...
  4. Select the _build folder when prompted.

Package Deployment

TBD

Third Party Tools Licenses

  • downshift - MIT License (MIT) Copyright (c) 2017 PayPal

  • linaria - MIT License (MIT) Copyright (c) 2017 Callstack

  • match-sorter - MIT License (MIT) Copyright (c) 2020 Kent C. Dodds

  • prop-types - MIT License (MIT) Copyright (c) 2013-present, Facebook, Inc.

  • react - MIT License (MIT) Copyright (c) 2013-present, Facebook, Inc.

  • react-dom - MIT License (MIT) Copyright (c) 2013-present, Facebook, Inc.

  • autosize-input - MIT License (MIT) Copyright (c) 2017 Jed Watson.

  • webextension-polyfill - Mozilla Public License Version 2.0

  • babel - MIT License (MIT) Copyright (c) 2014-present Sebastian McKenzie and other contributors

  • rollup - MIT License (MIT) Copyright (c) 2017 contributers

  • storybook - MIT License (MIT) Copyright (c) 2017 Kadira Inc.

  • types - MIT License (MIT)

  • cross-env - MIT License (MIT) Copyright (c) 2017 Kent C. Dodds

  • eslint - Copyright (c) OpenJS Foundation

  • jest - MIT License (MIT) Copyright (c) Facebook, Inc.

  • prettier - MIT License (MIT) Copyright (c) James Long

  • styled-jsx - MIT License (MIT) Copyright (c) 2016-present Vercel, Inc.

More Repositories

1

Pocket-ObjC-SDK

Headless iOS/Mac SDK for saving stuff to Pocket.
Objective-C
230
star
2

pocket-ios

Mozilla's Pocket iOS App, Rebuilt in Swift
Swift
222
star
3

data-flows

Pocket data flows orchestrated using Prefect
Python
42
star
4

terraform-modules

Terraform CDK Modules
TypeScript
41
star
5

pocket-monorepo

Monorepo of all Pocket App Typescript Backend Sevices
TypeScript
38
star
6

extension-pocket-new-tab

Pocket New Tab is a browser extension that serves as a replacement to the default new tab.
JavaScript
32
star
7

recommendation-api

Rank and serve recommendations
Python
25
star
8

proxy-server

Service to deliver sponsored content while preserving privacy
Python
20
star
9

front-end-build-tools

Modified Create React App for use with Pocket extensions
JavaScript
19
star
10

curation-tools-frontend

DEPRECATED
TypeScript
10
star
11

hashicorp-pocket-cdktf

TypeScript
10
star
12

collection-api

The API that manages Pocket's curated collections.
TypeScript
7
star
13

Firefox-Integration-Add-On-Prototype

JavaScript
6
star
14

backend-typescript-template

Template to spin up a new service in Typescript and Pocket's terraform-modules package.
TypeScript
5
star
15

firefox-android-home-recommendations

REST API endpoint for Firefox Android home recommendations
TypeScript
5
star
16

Pocket-iOS-Extension-Tweet-Attribution-Helper

Tweet Attribution is a feature inside of Pocket that enables attaching the original tweet to a saved link from Twitter.
Objective-C
5
star
17

docker-kinesis-agent

Docker container for running AWS Kinesis Agent
Dockerfile
4
star
18

pocket-ff-addon

JavaScript
4
star
19

eslint-config

ESLint Config used across Pocket
JavaScript
2
star
20

annotations-api

Annotations API Subgraph
TypeScript
2
star
21

tsconfig

JavaScript
2
star
22

shared-snowplow-consumer

This is SharedSnowplowConsumer
TypeScript
2
star
23

apollo-utils

Utilities for Apollo gateway and implementing services
TypeScript
2
star
24

curation-admin-tools

a suite of admin tools for the editorial team to curate stories
TypeScript
2
star
25

list-api

TypeScript
2
star
26

curated-corpus-api

TypeScript
2
star
27

cloudwatch-metrics-aggregator

nodejs lib to easily aggregate and process cloudwatch metrics in the background
TypeScript
2
star
28

dynamore

A better query language for DynamoDB
TypeScript
2
star
29

admin-api

TypeScript
2
star
30

fxa-webhook-proxy

Receives FxA events as webhook requests and proxies the requests to the User Service through the Client API.
TypeScript
1
star
31

pocket-event-bridge

This is PocketEventBridge
TypeScript
1
star
32

moz-social-analytics-demo

1
star
33

curation-tools-data-sync

This is CurationToolsDataSync
TypeScript
1
star
34

canary-tests

Contains infrastructure related to AWS Canaries and their test modules. Can be used for health checks and e2e testing.
TypeScript
1
star
35

terraform-pocket-emergency-response

Terraform module for PagerDuty + SNS
HCL
1
star
36

data-product-admin

TypeScript
1
star
37

terraform-modules-site

Documentation for pocket/terraform-modules
1
star
38

backend-benchmarking

Stores utility methods for benchmarking performance of APIs
TypeScript
1
star
39

renovate-config

Renovate config for Pocket
1
star
40

terraform-pocket-metrics-alerting

HCL
1
star
41

terraform-pocket-ecs-autoscale

HCL
1
star
42

data-product-docs

Data product documentation
TypeScript
1
star
43

related-content-api

An API that suggests further content given a specific piece
Python
1
star
44

pocket-android

Pocket Android app
Java
1
star
45

braze-content-proxy

TypeScript
1
star