mattbrictson / mattbrictson/nextgen

Clarify Propshaft vs Vite branches and option-selection expectations (docs-only)

Open
#195 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
386
Forks
16
Avg merge
4d 9h
Merged PRs (30d)
3

Description

Hi Matt — I’ve been using Nextgen for quite a while (previously used rails-template as well) and I really appreciate how transparent and production-focused it is. The way it prints the exact rails new flags and then applies enhancements in separate commits is especially helpful for understanding what’s happening under the hood.

After reviewing previous issues — particularly the Tailwind/Vite discussion and the JS package manager thread — I noticed a recurring theme around how users interpret the Vite branch. I wanted to share a couple of observations and get your thoughts.


1. Propshaft vs Vite branch behavior

After running nextgen create multiple times, I now understand that:

  • The Propshaft branch maps closely to rails new defaults, including --css= and --javascript= flags (e.g., Tailwind + Bun).
  • The Vite branch appears to start from rails new -A (skip asset pipeline), then configures vite_rails and related best practices.

Once I understood that mapping, the differences made sense — especially why CSS framework prompts (e.g., Tailwind) appear in the Propshaft path but not in the Vite path.

However, this wasn’t immediately obvious when going through the interactive prompts. I initially expected something like “Vite + Tailwind” to be a guided combination.

Would it be helpful to document this mapping more explicitly? Even a short explanation clarifying:

  • Propshaft = Rails-native asset prompts
  • Vite = skip asset pipeline + minimal frontend baseline

could reduce confusion for users coming from more JS-centric ecosystems.


2. Option selection and learning curve

Another observation from my own experience: Nextgen makes it very easy to enable a large number of enhancements (linting tools, CI improvements, recommended gems, etc.), which is fantastic if you’re already familiar with those tools.

However, for users still learning:

  • It’s easy to select everything without fully understanding what each tool does.
  • The result can be a larger, more complex codebase that’s harder to maintain confidently.

Over time, I’ve come to appreciate the discipline these tools provide, but at first it was difficult to know which options were essential versus optional quality-of-life improvements.

Would it make sense to include a short section in the docs clarifying:

  • Who Nextgen is optimized for
  • That selecting every enhancement isn’t necessarily recommended
  • That starting minimal and adding tools intentionally can be a good approach

To be clear, I’m not suggesting any generator changes — just documentation to clarify expectations and decision-making.

If this aligns with your vision for the project, I’d be happy to draft something.

Thanks again for maintaining Nextgen.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the project's documentation covering the Propshaft and Vite branches and the interactive enhancement options; no specific file or test is named in the issue. Update the relevant guidance so the branch mapping, Vite/Tailwind expectations, and minimal-versus-comprehensive setup trade-offs are explicit, then verify the documented choices match the current prompts.

Written by the indexing model from the issue text.

Assessment

Tech stack
rails, vite
Domain
developer-experience, documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.