Live data from Hacker News

A Simplified Jira Clone Built with React/Babel and Node/TypeScript

github.com

61–70 of 101 posts

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#61

The real issue with jira is how unresponsive the backend feels.

I used it (Jira) for a short period of time a while back. I seem to recall that it's performance was highly influenced by non-obvious JVM parameters, and bits of the system would stall or crash without a clear pattern until a bit of trial & error with parameters solved it. It wasn't very "turn key" and the out-of-the-box config were... less than ideal. This was for a single user (me) so it's not like there was a much…

Most pages take 10+ seconds to load for us and we are using Atlassian's hosting.

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#62
post #55

Earlier quoted context omitted.

What do you prefer to Jira? At a former workplace we used Gitlab, which was a pleasant suite to use. These days we use Atlassian and often find myself incredibly frustrated by their products

Request Tracker (RT) is awesome. Does it look good? Nah, not particularly.

I have fond memories of RT, but it seems like it has largely been forgotten. It was very simple. One of the best things about it was that it could largely be used via email. The web interface was very fast and efficient compared to JIRA. One major downside: Its search feature was not great, so I would usually search in my mail client.

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#64
post #61

Earlier quoted context omitted.

I used it (Jira) for a short period of time a while back. I seem to recall that it's performance was highly influenced by non-obvious JVM parameters, and bits of the system would stall or crash without a clear pattern until a bit of trial & error with parameters solved it. It wasn't very "turn key" and the out-of-the-box config were... less than ideal. This was for a single user (me) so it's not like there was a much…

Most pages take 10+ seconds to load for us and we are using Atlassian's hosting.

Opening up the Network Inspector when loading a single issue in the "new" UI shows a dumpster fire of 128 requests, 5 MB transferred. It's like the paradox of the heap: No one request is abnormally slow (although a 1.1MB slug of unminified JS from jiraplugin.zendesk.com sure isn't helping things) but the whole thing combines to give JIRA a reputation it surely deserves.

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#65

Creator of "Jira Clone" here. First of all I want to make it clear that this is just a showcase/demo product. It's definitely not something I'm planning to sell. Additionally, it's not even remotely production ready, and it's missing about a zillion features that would make it a full-fledged project management software. The main reason I built this was to have a good showcase for potential future clients. The second…

Fewer features sounds great. I personally loath Jira, and avoid using it whenever possible, but your clone looks really nice. You can improve 100x on Jira just by making it faster, simpler, and easier to use. One suggestion: it looks too similar to Jira, you might want to change the design a bit so that Atlassian doesn't try to sue you or something.

JIRA is great but only in an enterprise where there's a team to manage it, I've moved on from it and I miss the flexibility that it offers - but that flexibility comes with extreme complexity. Most small to medium sized businesses don't need it and can make do with something with less features.

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#66

Just randomly reading into React over this example, I'm surprised by how React itself confused me with the useState function.

useState is a memoization technique and an abstraction to hide global state. You can do:

    let _count = 0;

    function Component() {
      return (
        
          {_count}
           { _count++; render(); }}>Increase
        
      );
    }

    function render() {
      React.render(, root)
    }
Or you can abstract it:

    let _count;

    function useCount(initialValue) {
      return [_count, (value) => { _count = value; render(); }]
    }

    function Component() {
      const [count, setCount] = useCount(0);

      return (
        
          {count}
           setCount(count + 1)}>Increase
        
      );
    }
And then generalize it and make each state dependent on the order of useState calls:

    const states = [];

    function useState(initialValue) {
      const state = states.shift() || { value: initialValue }; // Pop or create
      setTimeout(() => states.push(state), 0); // Defer the push
      
      return [state.value, (value) => { state.value = value; render(); }];
    }
    
    function Component() {
      const [count, setCount] = useState(0);
      const [name, setName] = useState('World');

      return (
        
          {count}
           setCount(count + 1)}>Increase
          Hello {name}
           setName(e.currentTarget.value)} />
        
      );
    }
Actual hooks also track the component that's being rendered, and don't just call the global render function, but that's pretty much the whole useState implementation.

Here's a codepen: https://codepen.io/lxe/pen/RwbXPKo

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#67
post #21

Earlier quoted context omitted.

I would much rather not deal with jira tbh. Some companies take it too far and use jira as a micromanagement tool.

I’ve found jira dysfunction often reflects the dysfunction of the underlying corporate structure.

Yeah, any time someone complains about how many FEATURES JIRA has, it's actually an issue with how their company's management team uses JIRA to micromanage the shit out of them and aggressively optimize metrics that don't matter. But that would be an issue with the organization instead of the tool. And those are much harder to fix.

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#68
post #66

Just randomly reading into React over this example, I'm surprised by how React itself confused me with the useState function.

useState is a memoization technique and an abstraction to hide global state. You can do: let _count = 0; function Component() { return ( {_count} { _count++; render(); }}>Increase ); } function render() { React.render( , root) } Or you can abstract it: let _count; function useCount(initialValue) { return [_count, (value) => { _count = value; render(); }] } function Component() { const [count, setCount] = useCount(0);…

For a developer who has not done React before - this looks super convoluted for some reason. Global functions with constants defined in another function, that act as ... methods? I'm lost :D

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#69
One of my pet theories is that if you are building a software engineering product, you should never write your own tools. You can't sell them, and you'll just be learning lessons completely unrelated to your product.

However; if you are building a software engineering culture, you should write as many of your own tools as you can get away with. Nothing builds culture like a shared unique experience.

Re: A Simplified Jira Clone Built with React/Babel and Node/TypeScript

#70

Creator of "Jira Clone" here. First of all I want to make it clear that this is just a showcase/demo product. It's definitely not something I'm planning to sell. Additionally, it's not even remotely production ready, and it's missing about a zillion features that would make it a full-fledged project management software. The main reason I built this was to have a good showcase for potential future clients. The second…

IMO this "Jira clone" is way beyond the middle ground, it's way too complex for that. Might be a lot closer to a product than you think. ;)

For technology showcases the RealWorld example is pretty popular: https://github.com/gothinkster/realworld. Showcasing your tech prowess is quite a bit different, I get that.

Kudos for readable hook-based code. :)

Post reply on HN