rpg-cards
rpg-cards copied to clipboard
Redesign using React
This project has started as a quick and dirty tool with very hacky code. Since it has attracted some users, it is time to use some proper design. This is the plan:
- The code will be written in Typescript and compiled to Javascript
- Both the UI and the card generation will use React.
- SVG format icons will be used (in stead of PNG), to avoid rasterized data in the output.
- Icons will be loaded using XHR and inserted directly in the output HTML. The output should contain no external references, so that it can be saved for single-file offline viewing.
It doesn't look like there's been progress on this front. If this goes ahead can I appeal for no typescript?
Unfortunately I won't have time to work on this project in the near future (I have updated the README), so don't expect major progress any time soon.
Out of curiosity, why would you prefer Javascript over Typescript?
My main reason is because it's more accessible. I've found that the choice of tech in an open source project directly affects the number of people capable of contributing.
I just looked at the code for the first time and I was shocked when npm install
failed. Not a single dependency! 👏
Edit: Just saw the lib
folder. Still, everything being bundled together is pretty refreshing.
Not a single dependency!
Well, that's more of a side effect of the fact that this project started as a one-off script for generating some cards for my players. I have a pretty strong opinion that you can't properly write non-trivial software in Javascript, so if I decide to rewrite the code, it's definitely going to be something like Flow, TypeScript, or PureScript.
I do understand that being able to quickly jump in and contribute is important, but I'd rather spend time making the project setup easy than hunting bugs in unmaintainable code.
I have a pretty strong opinion that you can't properly write non-trivial software in Javascript
IMHO this is a fairly trivial app. It is:
- Single-page
- Highly specialized
- (to my understanding) Unlikely to be majorly refactored after this redesign
A good test strategy and a solid architecture should be enough to make bugs traceable without too much headache. This has been my experience at least, even with JS projects more complicated than this.
On the other hand, I've been itching to dive into Flow. I'm not arguing this for my benefit 😛
I'm only pushing the point because you already seem too busy to devote much time to maintaining this. I'd love to see the tool continue to grow and I think the chances are higher without that extra layer of complication.
I'll do my best to support the project, whichever way you decide to take it 👍