naturalcrit / homebrewery

Create authentic looking D&D homebrews using only markdown
https://homebrewery.naturalcrit.com
MIT License
1.09k stars 326 forks source link

Continuing Homebrewery development? Volunteers? #627

Closed Rae2che5 closed 5 years ago

Rae2che5 commented 6 years ago

@stolksdorf: Could you please share your thoughts on how you see the Homebrewery's future? I know I don't speak just for myself in wanting to thank you for everything you've done for the D&D community, literally transforming the homebrew scene with your projects. If you no longer have the time or interest to carry on, or if you could use volunteer or co-maintainer help, I would certainly appreciate knowing where we stand.

I can't help noticing that the last update to the code was almost a year ago, and numerous issues are piling up in the issue tracker. In addition, the GM Binder has come up, building on the Homebrewery's ideas and success but pursuing a closed-source model that makes many (myself included) reluctant to switch to it. According to GM Binder's main developer's statistics, though, many users are indeed migrating.

My intuition is that this is mainly because of the pause in active development here, and I know there are several of us around who would be glad to contribute time and expertise, if this would be welcome. I'd invite all who would be interested in pushing the Homebrewery's development forward under an open-source model to speak up here.

SANSd20 commented 6 years ago

As much as I love HB, I can't help but see that things have come to a standstill. I am one of the people that have migrated. At this point, the two are close to being on par, with GMB having some really neat features that HB does not have. But the thing that really got me to jump was the fact that GMB seems to be constantly adding, and the the upcoming binder feature.

Rae2che5 commented 6 years ago

@Sansd20, I'd be curious to hear more concretely about the GMB features you would particularly miss. How much of a concern is the lack of source code for GMB for you?

calculuschild commented 6 years ago

I'd definitely be interested in pushing Homebrewery development forward. Over the last year, I've seen dozens of the same issues being reported over and over, and a lot of them even have easy fixes that have been added as pull requests or typed out in the issue comments; one or two lines of code to change (I have documented several myself along with their fixes). Unfortunately, since none of them ever get fixed, we keep having people trying to use the Homebrewery, running into one of these common errors, then getting frustrated and leaving.

SANSd20 commented 6 years ago

@Rae2che5 Starting with the latter, there is no concern. I have no programming knowledge so I wouldn't know what to do with it. The fact that GMB is not open source also don't not concern me. HB is open source and that does not seem to prevent the development from halting.

As for the former, I am not quite sure about the question. I think you mean, what are the features that I would miss if I stayed with HB? if that is the case, the first one off the top of my head would be the easy implantation of different themes. Other than the PHB, it is very easy to change the theme to either XGtE, the MM theme, the EE theme, or even the non 5e Genesys theme. I also am really digging the built in support for creating front and back covers.

I don't want it to seem like there is nothing I like about HB, but honestly, I can only think of one. When viewing what brews/documents you have created, GMB currently lists them in the order they were created from oldest, to newest; whereas HB does this alphabetical order. HB does make it finding the document easier this way.

DoctorDan1986 commented 6 years ago

I've already migrated to GMB. HB taught me a great deal about CSS and HTML, and though it's far from user-friendly, I think I am much better for it. But GMB is much more...I want to use the word 'competent', though that implies that HB is not, which simply isn't true. GMB is definitely a seriously refined version of HB, with many options that I dearly wanted to see (and asked to see) in HB.

Things that took frustrating coding to accomplish in HB are much simpler in GMB. So simple, in fact, that I have found myself spending several minutes trying to code around an undesirable result, only to realize that GMB does what I'm trying to do BY DEFAULT, and all I have to do is remove the unnecessary code for things to fall into place.

misthero commented 6 years ago

i have to say GM Binder si very nice, but slow for big brews, with an hardcoded limit to 1000 lines before slowing down. I would like hombrewery to resume the development.

stolksdorf commented 6 years ago

So sorry for the slow response guys, you caught me while on a vacation out of the country. I'll try my best to address some things below.

What have I been doing?

These last few months have been very busy and I haven't been able to give this project the attention it deserves. I should have opened the project up sooner to get your help in maintaining and improving the Homebrewery.

Community Involvement

Some changes need to be made to the project to facilitate community contributions. In addition to setting up community members as collaborators to merge PR's and oversee future development, I need to make the project more friendly including linting, tests, HTTPS, continuous integration on PR and contributing guides. To better enable the community to contribute, I will also set up a subreddit for support and development.

Issues & Subreddit

Another issue is the issues themselves, hundreds of them in fact. It's currently a weird mix of actual bugs, feature requests, and (mostly) help support tickets. I used to stay on top of these, but spending hours every Saturday doing support started to wear me down. Once the subreddit is setup, I'm going to go through the issues and do my best to consolidate/sort them. I'm going to setup better tags and try to simply tags issues as they come in and encourage other community members to hop in and help out when possible, keeping the support and questions going to the subreddit instead, keeping the github issues for actual issues and feature requests.


Whew, okay. So the above stuff can be done pretty quickly. As for the roadmap of development, I've actually been doing a ton of dev work on the work over the last year, but I've been having a hard time following through on completing the features to release them. I set up a Trello board over the christmas break organizing the work I have done and what is planned. When I get home, I'll make this board public and publish the work-in-progress branches so that other people can pick up the work.

Here are the broad strokes:

An actual account system! Using Passport.js to allow users to login using google, fb, github, etc. The tricky part is easily having users upgrade existing accounts to use other logins. I have most of this work done, but haven't explored the edge cases yet.

API + Search This is mostly done and is pretty cool. I got hung up on the UI for this, but the backend work is done. Even tests!

Onboarding + UX This includes a better homepage (wireframes done), an in-depth FAQ, a better print page with instructions that hide when you print, more meta data on each brew that you can edit, splitting out style in a separate editor (this is so good). The new style editor is working, even with CSS syntax highlighting.

Large Brew Support The most requests I get is for better huge brew support. Using the split out style, I can finally implement a partial rendering system that works for brews 1000+ pages pretty efficiently.

Edition support - I started a very basic system for changing the styling for different editions/formats. Getting the right assets and fonts is the real sticking point on this, so I would love some community help on that.

Offline support - I have a layer mostly working that will fallback to using the filesystem as the DB if you install it locally. Less things to install and better startup scripts will make running your own version a lot easier. And I would love to reach out to find someone who would work on an electron version (another big feature request).

Change in markup - A while ago I mentioned I had some ideas about radically changing the markup, removing HTML support. So I built it, and wasn't as great as I imagined. I hated the idea of sharding the brew markup into two versions. I've coded up a pretty good compromise, where HTML can still work, but is considered a "super user" feature, and I have a much simpler markup for making style-able divs that I can catch errors on way better for non-tech-savvy users. You have no idea the number of issues I have received because people simply forget to close HTML tags, so I'd love to make that more intuitive to users. One issue I have is I really want code fences back, but there are currently being used as a column break.

Okay, so I'm back home in 2 weeks, and I'll start on the first chunk of the stuff I mentioned then.


Some comments from this thread:

@Rae2che5 Thanks so much for bringing the topic up, I'll reach to you and @calculuschild when I'm back, we'll discuss if you'd like to be set as collaborators on the project.

@Sansd20 some of the feature your suggesting will be very easy to implement, and I'd like to get them listed as feature requests once the issue page is cleaned up.

@DoctorDan1986 I'm interested to hear what you like specifically about GMB and how it flows better for you (especially the small little things). I hope we can add more delighters like that to HB.


Lastly I wanted to share a lil side project I have also been building over the last year. Definitely not done, definitely on a cheap server on heroku. I was waiting til I finished it to share it, but hey, why not. Have fun.

Thanks again for the support guys ❤️

Rae2che5 commented 6 years ago

Thanks for the reply, @stolksdorf -- it's great to hear about your current status. It'd be awesome if we can ensure the homebrew tool of choice continues to be open source.

Some changes need to be made to the project to facilitate community contributions. In addition to setting up community members as collaborators to merge PR's and oversee future development, I need to make the project more friendly including linting, tests, HTTPS, continuous integration on PR and contributing guides. To better enable the community to contribute, I will also set up a subreddit for support and development.

All sounds great. Looking forward to a this!

An actual account system! Using Passport.js to allow users to login using google, fb, github, etc. The tricky part is easily having users upgrade existing accounts to use other logins. I have most of this work done, but haven't explored the edge cases yet.

I can see the migration being the hardest part. Would I be totally wrong to suggest that perhaps we can simply not do it? It doesn't seem unreasonable to require a new registration to use the new account providers, after which people can manually migrate (by Ctrl+C/Ctrl+V) the brews they care about.

API + Search This is mostly done and is pretty cool. I got hung up on the UI for this, but the backend work is done. Even tests!

Awesome. Would love to hear more.

Large Brew Support Edition support Offline support

Yes, yes, and yes please.

Change in markup - A while ago I mentioned I had some ideas about radically changing the markup, removing HTML support. So I built it, and wasn't as great as I imagined. I hated the idea of sharding the brew markup into two versions. I've coded up a pretty good compromise, where HTML can still work, but is considered a "super user" feature, and I have a much simpler markup for making style-able divs that I can catch errors on way better for non-tech-savvy users. [...]

I have to admit I'm glad to hear it. Part of the flexibility that makes the Homebrewery so powerful is the ability to fall back onto plain HTML if really necessary. I'd be very interested to learn more about your compromise approach.

Having said that, I very strongly support the position that raw HTML should be a very rare exception (and a super-user feature that "voids your warranty"). I recently mentioned the possibility of at least trying not to invent our own thing here. Pandoc has added markdown extensions for fenced divs (inspired by fenced code-blocks) and bracketed spans, which look much more Markdown-native while allowing block and character styles to be applied to any content. Hopefully they'll become more widely adopted over time -- at least markdown-it already has a plugin for the fenced-divs syntax. What do you think about this approach? I'd be happy to help work towards it.

@Rae2che5 Thanks so much for bringing the topic up, I'll reach to you and @calculuschild when I'm back, we'll discuss if you'd like to be set as collaborators on the project.

Sounds great, I'd be very happy to help out.

misthero commented 6 years ago

Lastly I wanted to share a lil side project I have also been building over the last year. Definitely not done, definitely on a cheap server on heroku. I was waiting til I finished it to share it, but hey, why not. Have fun.

Oh!! that's awesome!!

glad to hear you are coming back.

calculuschild commented 6 years ago

Good to hear from the man himself! I'm excited to see this project back in action!

Edition support - I started a very basic system for changing the styling for different editions/formats. Getting the right assets and fonts is the real sticking point on this, so I would love some community help on that.

I know we have some people on Reddit who have already made Homebrewery stylesheets for various 5e book styles (Monster Manual, Dungeon Master Guide, etc.), and I'm sure they would love to offer their work as a basis for this.

DoctorDan1986 commented 6 years ago

@stolksdorf One of the biggest reasons I switched was because of the 'Snippets' feature on GBM. Of particular delight for me is the ability to preview the elements added under the 'Description' header. It's a good feature, and one which I can't wait to see expanded.

Another item of interest was the themes. More specifically, the fact that adding a theme will actually implement a code block of attributes that you can alter as you see fit. It facilitates easy alteration and creation of your own styles.

For some reason with HB, I always had trouble with the right column of the page not aligning correctly with the left side - I would always have to manually alter the top margin on a per-page basis. I dunno, maybe I'm coding very badly or misusing stuff. But GMB takes care of that alignment automatically, which makes writing fluid and natural - you don't have to worry about problematic coding or adjustment in the middle of inspiration.

The syntax for some of the code is to my personal liking (like \pagebreakNum, which combines a page break and your own pagenumber=auto feature), but that's a subjective thing.

One of the best things about GMB, though, is the Table of Contents feature. Not only can you jump to any section in your preview window by clicking on auto-generated headers, but you can also jump directly to code sections by clicking on the corresponding item in the preview.

Finally, there were just a lot more assets available that I didn't have to create myself, like the red diamond, cover page and back page graphics, so on and so forth.

calculuschild commented 6 years ago

@stolksdorf I wanted to check in and see if there is any progress on the Trello boards going public or the subreddit being set up? I would be happy to start sorting through the hundreds of issues so they aren't such a giant mess.

jendave commented 6 years ago

Regarding an Electron version of Homebrewery, looks like someone has already done this https://github.com/noahlange/homebrewery-electron

stolksdorf commented 6 years ago

✅ Collaborator invite sent out to calculuschild and Rae2che5. Thanks for being awesome ❤️. ✅ Subreddit setup. I'll be looking into styling it soon. If anyone has any ideas or resources let me know. Also moderators; Let me know if you are interested. ✅ Trello board setup ✅ All dependencies and build scripts updated. ✅ Published my most far along branches, most notably v3 and newRenderer. I'll be isolating and moving those changes over into separate PRs on a per feature basis. ✅ Automatic deploys setup for the staging environment ✅ Test framework setup and CircleCI configured to run on every PR ✅ Contributing and Issue template docs setup ✅ Linting configured and tasks setup.

Thanks for the patience guys.

HeruAsatru commented 6 years ago

I subscribed to the subreddit and would volunteer as a moderator. I admined a few forums in my time, if things haven't changed too much, I think I could still handle it. I do have, however, a full-time job and a D&D group to run, so I won't be in the subreddit 24/7. If that's ok for you, I'd love to contribute to this project in that way (I'd love to help coding, but I just know some html/css/php/js, nothing fancy)...

AlexeySachkov commented 6 years ago

Thanks for nice tool, @stolksdorf

I would like to propose another one idea which may help the project: What about "Frequently Asked Questions" page? As you and @calculuschild already said there are a lot of similar issues containing help/troubleshooting requests. For example: "How to rename brew?", "How to download brew?", etc.

I would be happy to start sorting through the hundreds of issues so they aren't such a giant mess.

I guess @calculuschild can prepare list of main questions based on issues analysis.

By the way, @stolksdorf, why did you decide to use Trello board instead of Github features? I mean project dashboards, milestones and labels

dWhisper commented 6 years ago

If you're looking for some people to pitch in and help as well, I'd be interested in helping out (several years as a UI dev with UX experience, and a couple of years doing react projects).

MarcSharma commented 6 years ago

Hey,

While I can't help out with any thing coding related, I could indirectly help out through support.

I am the admin of the Discord of Many Things, the most active dnd discord homebrew community on the internet. It is the unofficial discord of UnearthedArcana, but also of your direct concurrent, GMBinder. I would not mind at all if it became the unofficial discord of the Homebrewery as well. It has lot of active homebrew users (although most have switched to GMBinder) and could help you a lot with feedback.

Please join here, if you would like to discuss: https://discord.gg/JSArr5p

P.S. if @stolksdorf isn't reading this, please @calculuschild and @Rae2che5 transmit my message to him.

stolksdorf commented 6 years ago

Thanks for all the offer of help!

@AlexeySachkov We desperately need FAQs. I have a branch where I made a folder that stored simple markdown files that would render to static HTML pages (eg. doc/faq.md -> homebrewery.naturalcrit.com/faq). I like this because it uses the internal markdown -> brew renderer, and it makes it super easy for the community to edit and submit PRs for.

Also, I had no idea Github had the project boards feature. Looks pretty new. I'll take a peek at it.

@dWhisper Thanks! right now my tasks are still pretty large, so we'll need to break them apart into more approachable tasks/project so it's more approachable to jump in and improve the code.

@MarcSharma Sounds great. I haven't had time to pretty-up the subreddit and make some stickies and what not. I'll keep the Discord in mind when writing some stickies and the sidebar content to point people there. I think the more feedback people can get is always better.

rjbprime commented 6 years ago

I have a question that I hope can be answered.

Is there an offline version available to be run currently? I've looked at that homebrewery-electron port, and I can't work out how to get it to work. I've just posted on the subreddit, with regards to asking for help, and I'm cross posting here for more visibility.

If someone is able, could they give me a quick rundown on how to proceed?

HeruAsatru commented 6 years ago

@rjbprime that's not a question for this thread, but I tried to provide an answer in the subreddit.

ericscheid commented 6 years ago

One issue I have is I really want code fences back, but there are currently being used as a column break.

I'd love to see \column be used to indicate a column-break (similar to \page for a page break) instead of code-fences. #607

calculuschild commented 6 years ago

@stolksdorf What are your near-term plans for those sweet, sweet v3 and newRenderer branches? I know you mentioned it was your goal to start extracting some individual feature PR's, and honestly those branches are pretty beastly as I tried sorting through them. How close are they to production, and what would you like us to do as collaborators? It would be nice to start merging them into the master branch, but there's so much in there it's hard to tell which features are ready to go. Just skimming through it also looks like some of the current issues might already have fixes in there, so we don't want to duplicate the work.

Also, @Rae2che5 and I have been plodding through a few bugfixes here and there, and are curious what you would like the process to be for pushing out a new production version? I think the users would appreciate having these fixes live since some of them have been around for several months at this point.

Lastly, there are a ton of random branches on this project. Should we plan to keep all of them, and if not, which ones are safe to prune? I think it would be helpful for community members who want to contribute if we start consolidating a lot of these down into a more common code base.

Thanks Stolksdorf for the awesome tool and everything you've done for the community!

AlexeySachkov commented 6 years ago

Hi guys, I just found another one cool GitHub feature which, I guess, can prevent creating of new duplicating tickets.

Here it is: https://blog.github.com/2017-07-20-support-file-support/, https://help.github.com/articles/adding-support-resources-to-your-project/

The idea is to commit special file to the repo which points to specific support resources (reddit, forum, faq, etc.). Then, whenever someone creates an issue in your repository, they will see a link to your project's SUPPORT file.

@stolksdorf, @calculuschild, @Rae2che5, what do you think?

HeruAsatru commented 6 years ago

hey, it has been some time since the last update/information. Is there any news?

We also have some activity in the subreddit (where I and others were able to help a few people (I'm u/thurse over there)), so it might be a good idea to link that in the README.md?

AlexeySachkov commented 6 years ago

Hi, @HeruAsatru

Thanks for your help in subreddit! (My username is u/alexey152)

Regarding your question: some time ago I raised another one conversation about homebrewery development, see #739. As a result naturalcrit Github origanisation and Gitter chat were created. You can find some discussions about the roadmap in the chat.

We still can't get any response from @stolksdorf, neither via github or reddit or even email. It is a problem because we cannot update homebrewery.naturalcrit.com to the newest version containing some bugfixes.

I have some progress on developing new features (see gitter chat), but I'm in early development stage and cannot send any PR with production code yet (I wish it happens in a few weeks).

HeruAsatru commented 6 years ago

Thanks for your answer @AlexeySachkov

I must admit, I didn't follow the github issues much anymore since the inception of the subreddit. I feel like the subreddit is a better place for "customer support" than github, but maybe that's just because I'm more familiar with reddit.

I joined the gitter, with which I'm also not familiar (I would have prefered discord, but alas, I'm too late to cast my vote), but I'm not a good enough developer to help with anything, so I'm not sure how much good that will do... :)

Let's hope then that @stolksdorf is paying us a visit again soon... :D

calculuschild commented 5 years ago

Closing. I don't think we need this floating around anymore.