psanchez 3 days ago

Wow. Really cool. I wasn't expecting something so polished.

JIRA speed drives me crazy sometimes, so a couple of months ago I decided to build myself a tool to do instant searches/filters on multiple projects right from the browser just to scratch my own itch.

I just wanted to see if I could have near-instant filtering. I think I got a pretty decent performance by using some JS tricks. I'm sure there might be ways to make it even faster.

Page is around 70kb (HTML+CSS+JS). Everything is manually crafted. I know the design won't win a beauty contest, but it does feel instant and works for my personal use-case. I had a lot of fun building this side-project.

There is a public URL, feel free to try it out [1]. Already mentioned in a previous comment in HN a while ago [2].

[1] https://jetboard.pausanchez.com [2] https://news.ycombinator.com/item?id=44740472

For the record, it uses a proxy because of CORS. Proxy is in few lines of golang. No NPM or any other framework used to make the project. In any case, if anybody is interested in the source code to run it yourself I'm happy to make the project public. Trusting a proxy on some random's guy on internet is probably a bad idea, given all NPM shit that happened yesterday, in any case, if you want to try, feel free, but use at your own risk :P

  • benbristow 3 days ago

    Looks cool, but definitely a security team's nightmare. Putting an API key into some random HN'ers hobby project is a bad, bad idea, whoever you are (not saying you're a bad actor, but a zero-trust policy would agree with me).

    • psanchez 3 days ago

      Indeed. That's why I was transparent from the start. As I mentioned, using an API key this way is generally a bad idea. Even if I'm not a bad actor (which I'm not, but you shouldn't trust me), if someone compromises my server and forges requests, they could potentially access your projects.

      JIRA's OAuth implementation requires apps to be registered, involves public/private key pairs, and changes the auth flow. That adds complexity and makes setup harder, which is why I opted for a simpler API key setup, you get the API key, you write it down, you can make requests. It is just simpler and does not require JIRA admin rights.

      For comparison, JiraTUI also uses the user's API token. The difference, I guess, is that it runs locally on your machine, but they could also send it somewhere else. At the end of the day, it comes down to whether you trust what you're downloading versus trusting what runs on a remote server. It is true that locally you could potentially inspect all HTTPS or even TCP requests whereas in the remote server you don't have a clue.

      The thing is, OAuth in JIRA demands app registration and certificate management, so I guess many developers end up defaulting to user API keys as the path of least resistance, even if they encourage OAuth as well.

      • psanchez 3 days ago

        BTW, just to make it clear, in the case of jiratui you can also download from github repo directly and inspect the code if you wish :D

      • nine_k 3 days ago

        > they could also send it somewhere

        Run JiraTui in a container / bubblewrap, and only allow it to connect to the Jira API host:port.

        • gabeio 3 days ago

          Wouldn’t that mean they could still exfiltrate it to another jira site they control?

    • conception 3 days ago

      Yeah, oauth would be better.

rtpg 3 days ago

I desparately want something like this for Github.

I appreciate the value of the web browser providing the universal "quick" GUI (as in "I can open it on most devices and instantly interact"), but for power users I really wish more people were shipping things that helped out people not afraid to learn a bunch of keyboard commands

  • nine_k 3 days ago

    Nothing prevents a Web app from having good keyboard shortcuts; Gmail and Linear are great examples.

    GitHub becomes much more comfortable with the Refined GitHub extension. It adds a bunch of keyboard shortcuts, among a ton of other small improvements.

    • troyvit 2 days ago

      > Nothing prevents a Web app from having good keyboard shortcuts; Gmail and Linear are great examples.

      I think nothing prevents a web app from having keyboard shortcuts, but more often than not what I see is web apps having bad keyboard shortcuts that hijack the browser's natural behavior (taking over <ctrl>-f is a good example). I think often people go at this as if it's an Electron app and not a browser that has literally a hundred other interfaces loaded into it, leading the user to have certain expectations.

      All that aside your Gmail example is spot on, and I'm one of those google-hatin' dudes.

      • nine_k 2 days ago

        Yes, the unfortunate tradition of hijacking Ctrl+F is annoying. OTOH the forming tradition to use Ctrl+K to show a command palette / command line is commendable.

  • toomuchtodo 3 days ago
    • rtpg 3 days ago

      The presented TUI is a full UI for simply browing Github, the Github CLI is not that.

      Notice how I can list with `gh pr list` but then will need to run a full new command to actually inspect the contents of those PRs. I think an interactive interface would be nice!

      • redserk 2 days ago

        I think you could probably whip something very basic and crude up with fzf and the “—-preview” flag

  • prmoustache 2 days ago

    Not satisfied with your IDE integration? There are some github plugins for nearly every IDE I can think of.

  • Banditoz 3 days ago

    Github's UI used to be usable, at least.

  • tcoff91 3 days ago

    For reviewing PRs I use Octo.nvim

IshKebab 3 days ago

This is cool. I'm not a fan of TUIs at all (poor man's GUI if you ask me) but anything beats the Jira website trash.

I will definitely be curious to see how much of Jira's abysmal performance is due to the website design (got to be a fair bit given how badly things like drag and drop perform) and how much is due to the server.

  • zffr 2 days ago

    What I like about TUIs are that they are forced to be simple, and are forced to load all data at once. I don’t prefer interacting with an app in a terminal window, but I do prefer the kinds of apps that are built with these constraints in mind.

    There’s nothing preventing web apps from being built this way, but they just often are not.

    • willmartian 2 days ago

      Could you expand on "and are forced to load all data at once"?

  • troyvit 2 days ago

    I consider it the frugal man's GUI. Right now looking at top, any time I load a browser tab with Jira content chromium spikes to the top of the list. I'm not even doing anything with it.

    • IshKebab 2 days ago

      Sure but that's just because the Jira website is awful. There's no reason you couldn't design a more frugal version, or a native GUI that was faster.

  • mwcz 3 days ago

    The way drag and drop and most other updates block all UI interaction until the network response is infuriating.

  • dumpsterdiver 3 days ago

    [flagged]

    • totallykvothe 3 days ago

      Why the snark? It's a valid preference and he wasn't demanding anything.

Apreche 3 days ago

I am absolutely going to try this.

One question. Is there any way that if I click a JIRA link somewhere, like email or Slack, that it could open in the TUI instead of in the browser? I just can’t imagine that being possible.

  • turtlebits 3 days ago

    Its possible- you'd have to register a new uri handler to call the TUI (it'll need to take cli args to load the link/issue), then rewrite Jira links (tampermonkey script/browser extension) to use the new uri.

_flux 3 days ago

I do have some complaints about the Jira web ui (in particular it seems finding correct issues can be difficult), though maybe nothing too severe.

For me the most useful thing would be a cli tool (not tui) to just add stories. This way I could just write a bunch of stories in a text file (..or an .org file..) with the conveniences of my editor and upload them. Seems jiratui actually comes with some cli tools as well, but it doesn't seem this is yet included, or it's not just documented yet. I'll give a shot to this..

Now I'm doing that by copypasting the entries from the file, one by one, to the fields in the web ui, and not all of the fields can be copy pasted, and then updating also the file to have the correct issue ids so I can use them for finding issues with e.g. grep. Naturally this will only work for my stories, and won't synchronize with changes made in Jira.

  • 0x008 2 days ago

    You can write your stories in csv (or vibe code a tool to do that) and then batch import the CSV.

Biganon a day ago

Tried it; pretty cool, but I spent a long time crafting the perfect JQL query, just to lose it as soon as I closed the software. It might be nice to automatically save the search parameters as they are being submitted.

ako 3 days ago

Yes, back to Oracle Forms 3.0. Fastest and best versions of Oracle Forms, as long as you know the keyboard shortcuts.

svl7 2 days ago

I'd love to work with this. The normal web view is annoyingly slow. Too bad it is not compatible with Api v2 used by on-prem Jira instances.

  • fru654 2 days ago

    Sadly, the author indicated it's unlikely to support v2

snthpy 3 days ago

Looks great. How tied is it to Jira? How hard would it be to make it usable for Linear and Github Projects as well?

danielvaughn 3 days ago

I want this but for Linear

  • dimarco 3 days ago

    https://github.com/markmarkoh/lt

    I wrote lt as a TUI for navigating/searching Linear issues. It is read-only right now.

    • danielvaughn 3 days ago

      Very cool! Thanks for sharing. I've never written Rust but I've heard of ratatui - how do you like it?

      • dimarco 2 days ago

        Rust is a joy to work with 85% of the time. Ratatui was a fun and easy way to get a TUI up and running.

aeve890 2 days ago

Looks amazing! Does anyone know of TUI libraries for Rust or Go that achieve this level of polish? I've tried bubblegum, ratatui, tview but none of these seem to match the sleek, polished look of Textual.

__fst__ 3 days ago

Brilliant. Really nice looking TUI. One thing I noticed is that I still find myself using the mouse to click the form fields. The keyboard navigation seems to sometimes get stuck on fields and I then can't move around anymore. Is there an easy trick for jumping between the fields?

sghiassy 3 days ago

I’m just commenting for the algorithm gods to promote this post - this is cool!!

  • viraptor 3 days ago

    You're potentially doing the opposite. Upvote the post if you like it, but increasing the comment/vote ratio can cause a "controversial post" penalty.

tiomat 3 days ago

It’s awesome! I wrote a TUI for Jira for my own use, with extra stats like average time spent on tasks and counts of issues or bugs per epic. But yours looks so nice and polished—thanks for sharing your work!

jdlyga 3 days ago

Looks promising, but there's some limitations. It cuts off the list of assignees after a few hundred or so. JQL works though.

  • 9dev 3 days ago

    You have issues with hundreds of assignees?

    • mwcz 3 days ago

      At least on our instance there can only be one assignee, so I assume they are referring to the selection list of possible assignees.

nurettin 3 days ago

I remember using bitbucket API to open and close taskwarrior issues. Good times.

troupo 2 days ago

I think the only thing it's missing is the board view.

dbacar 3 days ago

Looks cool and unnecessary :)

  • Biganon 3 days ago

    Looks absolutely necessary given how terrible Jira's UX is

bvvgpc 3 days ago

Simply lovely, will try this out, thanks for sharing!

numbers 3 days ago

is there something like this for Asana, I hate their UI and UX. Their keyboard shortcuts are based off `Tab` key being a "modifier" which makes absolutely no sense.

johntash 3 days ago

Very cool, thanks! I'll give it a shot in the near future

jvanderbot 2 days ago

Tangential: I feel that CLI is in vogue again. Does anyone else sense that pendulum swinging again? Is it just me?

I've sensed for years from colleagues or blog posts etc a drive to go deeper and lower in the stack. I attributed this to the huge amount of front end devs who feel detached from the "real" stuff because of layers of frameworks. Not derisively, I think it's great. Even coworkers will express this to me.

This is what I suspect helped Rust skyrocket in the zeitgeist, too. It's got a lot of modern conveniences but it targets the more difficult areas like embedded, drivers, kernel, or performance critical code. And you can justifiably rewrite things (debatable but whatever). A way in!

I wonder if this is related?

Could be wrong on all this, of course.

theappsecguy 3 days ago

This is so fantastic. I want something like this for slack...

  • rtpg 3 days ago

    https://cancel.fm/ripcord/ Ripcord isn't exactly this but it's fairly close. Hasn't been updated in 4 years though... when I messed with it in the past it felt nice!

outlore 2 days ago

very cool! is there a jira gui for efficient bulk management? does this TUI do it?

gjvc 2 days ago

we need a TUI version of the AWS console :-)

awinter-py 3 days ago

why, is something wrong with the jira web ui?

  • abrookewood 3 days ago

    It's incredibly slow and they keep shovelling crap at users: - You highlight text and up pops an icon to "Use AI to summarise this?" - You use a short-cut only to find that it has changed - And it is just generally really slow

    • viraptor 3 days ago

      You can also see how badly the state changes are handled. Some elements flicker on every new letter typed. (They broke it twice at least)

  • sdovan1 3 days ago

    JIRA web eats all my memory on Firefox, so laggy that pressing a button takes 3 or 5 seconds, not to mention page transitions. It only becomes usable when I add the uBlock Origin rule[1]:

      yourcomany.atlassian.net##+js(aeld, /^(?:mousemove|pointermove|pointerout|pointerover|touchmove)$/)
    
    [1] https://community.atlassian.com/forums/Jira-questions/Re-Re-...
  • mr_mitm 3 days ago

    I hate how Atlassian products hijack regular browser features and re-implement them in JS. When I open our Confluence page, it runs a bloated mess of 10MB of JavaScript. All of their WYSIWYG editors are terrible and I'm constantly fighting the formatting. Just let me input regular markdown already.

    TUIs are usually the most snappy interfaces you can have. Pure bliss in comparison. To their credit, at least Atlassian provides usable APIs.

    • frumplestlatz 2 days ago

      Unfortunately, Textual, the TUI framework this uses, hijacks the mouse and regular terminal and GUI features and reimplements them poorly in Python.

      It breaks everything from text selection to copy and paste.

      It’s not your usual TUI framework. I tried using it yesterday to implement a simple console app — the damn thing even uses CSS for styling.

joshdavham 3 days ago

This is a really cool project! I'd be curious if maybe a poweruser could become more productive using this as opposed to using vanilla Jira.

...I also wonder if Atlassian might try acquire this for 600M? /s

giancarlostoro 3 days ago

I still dont understand why there is no unified UI for a lof of ticketing systems, I'm so tired of popping into different teams and its a night and day difference between how things are configured.Just give me a kanban board.

  • loloquwowndueo 3 days ago

    Get your Jira admin to configure it as Kanban :)

    • giancarlostoro 2 days ago

      Sometimes the org is so big, nobody wants to put any effort into knowing who the admin even is.

      Nowadays I'm in ADO, I still want a unified UI for any and all ticketing systems that allows me a consistent UI regardless of JIRA or even ADO. I'm tired of so many different workflows that make no sense.

      But they all claim to be scrum / agile.