{"id":13825041,"url":"https://github.com/ebidel/polymer-gmail","last_synced_at":"2025-04-06T04:11:05.635Z","repository":{"id":22795625,"uuid":"26141969","full_name":"ebidel/polymer-gmail","owner":"ebidel","description":"Polymer 1.0 version of New Gmail app","archived":false,"fork":false,"pushed_at":"2016-01-20T17:52:39.000Z","size":871,"stargazers_count":525,"open_issues_count":6,"forks_count":119,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-03-27T22:43:22.624Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://poly-mail.appspot.com/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ebidel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-03T22:31:19.000Z","updated_at":"2025-03-05T16:30:32.000Z","dependencies_parsed_at":"2022-07-17T10:00:49.792Z","dependency_job_id":null,"html_url":"https://github.com/ebidel/polymer-gmail","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebidel%2Fpolymer-gmail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebidel%2Fpolymer-gmail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebidel%2Fpolymer-gmail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebidel%2Fpolymer-gmail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebidel","download_url":"https://codeload.github.com/ebidel/polymer-gmail/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247430870,"owners_count":20937874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T09:01:13.927Z","updated_at":"2025-04-06T04:11:05.617Z","avatar_url":"https://github.com/ebidel.png","language":"HTML","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"## PolyMail\n\nPolyMail is an offline, mobile-first, web version of the [new Gmail native app UI](http://gmailblog.blogspot.com/2014/11/a-more-modern-gmail-app-for-android.html). It's built using [Polymer 1.0](https://www.polymer-project.org/1.0/) and [Service Worker](http://www.html5rocks.com/en/tutorials/service-worker/introduction/) and...is a WIP.\n\nDemo: [https://poly-mail.appspot.com/](https://poly-mail.appspot.com/) \u0026nbsp; (mock data:  [https://poly-mail.appspot.com/?debug](https://poly-mail.appspot.com/?debug))\n\n![PolyMail](https://raw.githubusercontent.com/ebidel/polymer-gmail/master/images/screenshot.jpg)\n\n**Note**: the app is *read only* despite what the permissions popup says. Also, most of the buttons don't do anything. There's a lot of missing functionality.\n\n#### Performance\n\n*TLDR: paint is ~393ms and the app loads ~1s on Chrome desktop. Motorola G - Chrome - 3G Fast connection first paint is 1.66s*  The full performance improvements over the Polymer 0.5 version are documented [here](https://github.com/ebidel/polymer-gmail/issues/6#issuecomment-123875813).\n\n[Full results](https://github.com/ebidel/polymer-gmail/issues/6#issuecomment-123875813)\n\n===\n\n### Setup\n\nIn your local checkout, install the deps and Polymer elements\n\n    npm install\n\nThis will also run `bower install` for you.\n\n### Development \u0026 Building\n\n##### Compile the ES6\n\nWhile ES6 Classes run natively in Chrome, FF Nightly, Safari 9, and Edge, some of JS\nin PolyMail still requires compilation using Babel. In particular, `scripts/googleapis.js` uses ES6 `=\u003e` functions and modules (`import` statement) in addition to classes.\n\nCompile the JS/CSS:\n\n    gulp\n\nThis produces a single built and concatenated `dist/scripts/bundle.js` and compiles the rest of the app into `dist/`. You're ready to run the app!\n\n### Run the app\n\nUse any webserver you'd like. I use [npm serve](https://www.npmjs.com/package/serve):\n\n    serve -p 8080\n\n**You must run from /dist**\n\n`serve -p 8080` serves the root folder, but the app runs the production version from `dist/`.\nSo be sure to first run `gulp`, then hit [http://localhost:8080/dist/](http://localhost:8080/dist/).\n\n##### Watching files\n\nFor easier development, there's a task for rebuilding the [vulcanized](https://github.com/polymer/vulcanize) elements.html bundle and compiling the ES6 as you make changes:\n\n    gulp watch\n\n### Using test data\n\nHitting [http://localhost:8080?debug](http://localhost:8080/dist/?debug) will bypass Google Sign-in and use mock data for threads. Under this\ntesting mode, you will no see custom labels in the left nav or user profile images show up on threads.\n\n### Deploying\n\n    npm run deploy\n\n### Future improvements\n\n- Push notifications\n- Reading emails in a thread\n- Creating emails\n- Clicking Label actually does filtering\n- Pagination (currently only the first few emails are visible)\n- a11y (keyboard access, tab support)\n- i18n\n- [x] http2 push\n- [x] Service Worker offline support \u0026 caching\n- [x] Caching API requests\n- [x] Auto-refresh inbox\n- [x] Use Google Sign-in 2.0\n- [x] Use GMail API push notifications ([docs](https://developers.google.com/gmail/api/guides/push))\n- [x] Use GMail API history feature ([docs](https://developers.google.com/gmail/api/v1/reference/users/history/list))\n- [x] Searching emails. Full gmail search (e.g. `to:me from:someone@gmail.com` is supported`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febidel%2Fpolymer-gmail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febidel%2Fpolymer-gmail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febidel%2Fpolymer-gmail/lists"}