GithubHelp home page GithubHelp logo

devhubapp / devhub Goto Github PK

View Code? Open in Web Editor NEW
9.5K 180.0 811.0 118.37 MB

TweetDeck for GitHub - Filter Issues, Activities & Notifications - Web, Mobile & Desktop with 99% code sharing between them

Home Page: https://devhubapp.com

License: GNU Affero General Public License v3.0

JavaScript 1.65% TypeScript 96.12% CSS 0.48% Starlark 0.03% Java 0.40% Ruby 0.88% Objective-C 0.17% HTML 0.27% C 0.01% Swift 0.01% Shell 0.01%
github typescript react react-native react-native-web redux ios android web desktop

devhub's Introduction


DevHub: GitHub Notifications & Activities on your Desktop
Android, iOS, Web & Desktop with 95%+ code sharing between them
thanks to React Native + React Native Web

Download on the App Store Get it on Google Play

Why

DevHub is a mobile and desktop app to help you manage GitHub Notifications and stay on top of repository activities. Save custom searches, apply filters and don't miss anything important.


Screenshots

Desktop

DevHub Desktop)

Menubar

DevHub Menubar

Mobile

DevHub Mobile - Notifications DevHub Mobile - Notification Filters DevHub Mobile - Repository activity


Download links


Features

  • Multi-column layout: See at a quick glance everything that is going on (like TweetDeck!);
  • Filters: Apply different filters to each column, save your custom searches to make your life easier;
  • Inbox Zero: Mark columns as done and gain peace of mind;
  • Notifications manager: See all the relevant information before opening the notification, like comment content, issue/pull request status, release description, etc.;
  • Repository watcher: Keep up to date with repositories' activities without using the watch feature so your notifications don't get cluttered;
  • User stalking: Follow user activities without using the follow button; see activities that GitHub doesn't show on your feed, like their issue comments and pushed commits;
  • Home/Dashboard: See yours or other users' home screen (a.k.a. GitHub Dashboard), a great way to discover interesting repositories;
  • Save for later: Save any activity or notification for later, so you don't forget to get back to them;
  • Keyboard shortcuts: Do anything using only the keyboard (press Shift+? in the web or desktop app to see all available shortcuts);
  • Theme support: Choose between 6 light or dark themes; Automatically detect system preference;
  • And more!: Desktop apps, native mobile apps, open source, modern tech stack, ...

Next features:

  • Issues/PR management: Manage all issues and PRs, filter the ones related to you, take actions, etc. (vote: #110);
  • Trending: New column type to show Trending repositories (vote: #48);
  • Push notifications: Enable push notifications for your filtered columns on mobile and/or desktop (vote: #51);
  • Drag & Drop: Allow moving columns using drag&drop (vote: #42)
  • GitHub Enterprise: Support for self hosted GitHubs on local networks (vote: #165)

Which one do you want first? Any other recommendations? Search for existing feature requests and add a ๐Ÿ‘ reaction on them, or create a new one. Feel free to ping me (@brunolemos) if you feel it's something important.


Backers

Thank you to all our backers! ๐Ÿ™ [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

Donate


Tech Stack


Contributing

See CONTRIBUTING.md



Community

Twitter: @devhub_app
Slack: Slack Invitation

Author

Follow me on Twitter: @brunolemos
Donate to me: Patreon | Crypto
Donate to DevHub: OpenCollective | Crypto


License

Copyright (c) 2019 Bruno Lemos.

This project is provided as is without any warranties. Use at your own risk.
By using DevHub you agree with its privacy policy and license.

devhub's People

Contributors

amorist avatar arminkhodaei avatar brunolemos avatar d2s avatar dependabot[bot] avatar diegohaz avatar dkniffin avatar edxds avatar gregoryfm avatar jletey avatar leocolomb avatar lucasgdb avatar mrchocolatine avatar mtsmfm avatar pocka avatar rchinerman avatar svenefftinge avatar tusharjoshi avatar zhigang1992 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

devhub's Issues

Improve notifications layout

I think that it's hard to understand the context of the notifications. In this example, it's not clear that the Tooltip Issue is related to devhub's rep. Icons and fonts have the same size and identation.

screen shot 2018-12-12 at 22 04 41

Maybe some margin-right will do the job.

Improve theme change performance on mobile

Currently it triggers a rerender of almost all components, which is very slow, specially on low end devices. On web it's fast because I used CSS Variables to avoid rerenders.

If you can, please contribute.
If you have ideas on how to improve this, comment below.

Styled-Components

Would there be any downsides to introducing styled-components to the project? Documentation link.

Perhaps the biggest benefit from this would be the ability to access more advanced CSS features that can't be easily done using normal inline styles, like :hover.

Feature Request: Make columns draggable

๐Ÿ™„ What?

  1. Make columns draggable without having to use < > buttons.
  2. -or- change column order by dragging users on the left most column panel

๐Ÿค” Why?

  1. Requires two clicks to move each column
  2. Attention is lost when moving a column
  3. To match TweekDeck behavior (as the tag line is DevHub: TweetDeck for GitHub [BETA] ๐Ÿ™‚)

As I add more users/repos/groups, it was hard to organize them.

๐Ÿš€ Demo

Below image shows first 2 problems mentioned in why? (requires two clicks, & attention is lost).

It's hard to move gaearon to other columns by more than one column.

2018-12-16_08-50-18

While TweekDeck allows dragging (using icons on the left panel & dragging columns directly) as shown below.

2018-12-16_08-54-42

๐Ÿ™ Suggestion

Make following areas drag'n'droppable.

image

Visibility lib on web

Curious why the web implementation of visibility is custom and not based on AppState. Something missing?

Push notifications

Issuehunt badges

Related #90

  • Add option on each column
  • Electron (macOS, Windows, Linux)
  • Web
  • iOS
  • Android

There are two possible ways to check for new items:

  1. Run a script on app background every X minutes (has limitations on iOS: if app gets closed it will stop updating, minimum 15 minute interval to update, etc)
  2. Move this responsibility to the server (probably would not scale well, imagine the server having to do thousands of github API requests per minute)

We can do option 1 for android and desktop, but for ios and web needs to be option 2.


IssueHunt Summary

Backers (Total: $100.00)

Become a backer now!

Or submit a pull request to get the deposits!

Tips


IssueHunt has been backed by the following sponsors. Become a sponsor

Support for private repositories

If you want this feature for your personal private repositories, please react with a ๐Ÿ‘.
If you want this for your team/company/organization private repositories, react with a โค๏ธ.
Follow @devhub_app on Twitter to be notified when this becomes available.

Add support for:

  • Showing activities of private repositories
  • Enhance notifications of private repositories

Implementation requirements

  • Request only the permissions that are strictly necessary
    • For this reason, we will need to migrate from OAuth App to GitHub App (see comparison)

Why not enable private access using the current implementation?

GitHub OAuth Apps have a very broad and dangerous permission scope. See this petition for details. For example, to be able read activities (issue comments, ...) from private repositories, we need to request the repo scope. And this is what it gives access to:

screen shot 2018-12-14 at 22 45 22

As a security precaution, DevHub does not intend to ask for this permission, since it doesn't ever need any code or write access.


TL/DR: This feature is planned and is high priority.
But to do it right, first we need to make DevHub work as a GitHub App instead of OAuth App. This will cause an increase of server usage and costs.

Follow @devhub_app on Twitter to be notified when this becomes available.

ToolTips

Set ToolTips to the buttons and other components without description for better UX

E.g:

Permit enhanced filtering of issue notifications for a repository

Feature request:

When I'm looking at the available options for a repository, it's not obvious how to (or if it's possible to) limit notifications in the column to only those issues where I have subscribed, been mentioned, have participated, or have had my review requested. On a high-traffic repository like wordpress/gutenberg the noise can quickly drown out the signal without this sort of limiting filter, so I'd like to request that DevHub be enhanced with the ability to focus on issues where we have explicitly participated.

Thanks much!

Web: remove reset.css

Global reset (or CSS files) should not be used in this context. If there's a reason why you have the reset, please let me know. Same goes for the styles in index.css.

Feature Request: Prevent users from adding more than 20 columns

๐Ÿ™ Feature Request

Would you be able to prevent users from adding more than 20 columns by disabling the "โž•" button?

Current behavior looks as shown below

  • Some columns fail with following message

โš  Too many columns
You have reached the limit of 20 columns. This is to maintain a healthy usage of the GitHub API.

image

โž• Additional Context

Not sure if it's the GitHub issue or DevHubApp throttling the API call as it's been working until this morning.. ๐Ÿค”

Improve iOS bottom bar design

The icons are small to the dictionary some columns, ends up disturbing the usability (it's my point of view)

The icons are small to the dictionary some columns, ends up disturbing the usability (it's my point of view)

46b0fe19-ed09-4674-914e-6ad6c626a7b9

Offline support

Accessing the app without Internet access is redirected to it from login
Local cache request done showing the last data seen and display an information (in the header) that this without Internet

Typescript project setup

Thank you for a great project, learned a lot from it. ๐Ÿ˜„

Currently, we have TypeScript setup in all the places except www.

But most of our TypeScript code is in component and core, and both mobile and web are only referencing on component.

Right now, mobile doesn't have any TypeScript in it. And I was actually surprised to see it's working without an rn-cli.config.js to do react-native-typescript-transformer. (I see react-native-typescript-transformer listed in component/packages.json, but it's never used anywhere.)

web has one index.tsx, but in order for that to work, we need a config-overrides.js which took me a long time to understand ๐Ÿ˜ญ . I'm guessing it's there for TypeScript support and also references source files outside of web/src. I have some questions regarding it.

  1. Isn't react-scripts already working with typescript?
  2. react-app-rewired says they don't support CRA2, should we consider switching to customize-cra, for readability. ๐Ÿ˜„
const {
  override,
  babelInclude
} = require("customize-cra");
const path = require('path');

module.exports = override(
  babelInclude([
    path.resolve("src"),
    path.resolve("../component/src"),
    path.resolve("../core/src"),
  ])
);

In the component repo, we are doing yarn tsc -w, but I don't think we are using the dist folder anywhere right? Because we are always referencing @devhub/component/src/component/App.

How would you feel about the following two options?

Option 1

  1. In components/tsconfig.json, change jsx to react.
  2. Then referencing @devhub/components/dist/App in web and mobile.
  3. Remove typescripts from mobile, web and perhaps root.
  4. Remove react-app-rewired altogether because we no longer need to include source files outside of web/src for babel to compile.

And optionally, we need to find a way to surface Typescript error on the web page.

With this option, we can also benefit from it in #47 because it'd be less code to duplicate. ๐Ÿ˜„

Option 2

  1. Remove TypeScript from component and core and have TypeScript setup in all the shell workspaces.
  2. And reference .ts code directly in shell projects?

Again, thank you for an awesome project. would love to learn more context behind it.

GitLab support

Would be great, especially after the news of many projects migrating to gitlab this year (after purchasing from GitHub by Microsoft)

Rename columns

I've got more columns of same "repo" but with different "notifications" settings, could be useful if I could rename column to understand well what I'm seeing.

Theme change is not intuitive

Hello,

I've decided to check your project and looks great so thanks for creating it ๐Ÿ˜„ ๐Ÿ‘

When I try to choose one of the three dark themes, they don't work. Any button that I press on the light theme changes the ui straight away but not the dark ones.

On my first try of DevHub I tried to change the theme to Dark Blue and nothing changed, then later on the ui changed to the dark blue theme out of nowhere - I tried to refresh the page but it doesn't seem to have any effect.

Are the dark themes only activated after a certain time (like night time)? Or is this a bug?

I'm using Safari 12.0.1

License alternatives

Any recommendation that could fit this project well?

One that allows open source contribution, but avoids clones. One that allows this to be a commercial project, but doesn't allow others to bypass its paid features or charge people on their own. One that limits liability.

AGPL-3.0 doesn't tick all the boxes but looks interesting. Which others?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.