Turn task and ticket titles into consistent Git branch names without leaving the browser.
GitNameX removes the repeated work of cleaning up task titles by hand. Choose a prefix and separator, paste the wording from Jira, Linear, or GitHub, then copy a branch name that is ready for your normal Git workflow.
Open GitNameX · Contact the maintainer
Project status: The Netlify deployment is reachable for normal use. Deployment content may lag changes that have not yet been merged and deployed. The repository currently has no automated test suite, CI workflow, or open-source license file.
Task titles are written for people, while branch names need predictable separators, prefixes, and character handling. Reformatting them manually is small work, but it happens repeatedly and produces inconsistent results across a team.
GitNameX provides one focused browser workflow:
- Generate the branch name as the task title changes.
- Use
feature,bug, no prefix, or a custom prefix. - Separate words with dashes or underscores.
- Copy the result directly to the clipboard.
- Clear the current task and restore the default format.
- Work in a responsive light or dark interface.
- Open the live application or start it locally.
- Enter a task or ticket title.
- Select a prefix and word separator.
- Review the generated branch name.
- Copy it and create the branch with your preferred Git command.
For example:
Task: Add password reset to account settings
Format: Feature prefix + dash separator
Output: feature/add-password-reset-to-account-settings
You can then use the copied value with Git:
git switch -c feature/add-password-reset-to-account-settingsBranch generation runs in client-side React state. Task titles and generated branch names are not sent to the application server by the generator.
The contact form is separate from the generator. When configured, it sends the submitted name, email address, subject, and message through a Next.js Server Action and Resend so the maintainer can reply.
Do not paste credentials, access tokens, private keys, regulated records, or other sensitive information into the generator or contact form. Client-side processing does not protect against untrusted browser extensions, compromised deployments, or future code changes.
- Node.js 20.9.0 or newer
- pnpm
git clone https://github.com/montasim/GitNameX.git
cd GitNameX
pnpm install
pnpm devOpen http://localhost:3000.
The core generator does not require environment variables. Configure the optional contact form only when you need email delivery.
Copy the provided template:
cp .env.example .env.localThen replace the example values:
| Variable | Visibility | Purpose |
|---|---|---|
RESEND_API_KEY |
Server-only | Authenticates requests to Resend |
EMAIL_FROM |
Server-only | Verified sender address used for outgoing messages |
NEXT_PUBLIC_CONTACT_EMAIL |
Public | Contact address displayed in the interface and used as the message recipient |
Never prefix the Resend API key with NEXT_PUBLIC_ or commit a real .env.local file.
Without these values, branch generation still works. Contact-form submission returns a configuration error instead of attempting delivery.
| Route | Purpose |
|---|---|
/ |
Branch-name generator and usage explanation |
/contact |
Contact channels and email form |
/privacy |
Data-processing and storage disclosure |
/terms |
Conditions for using the application |
Custom 404 and error states provide recovery paths back to the generator.
The branch workflow stays entirely in the browser:
Task title + prefix + separator
|
v
Client-side normalization
|
v
Generated branch name
|
v
Clipboard copy
The generator lowercases input, removes unsupported punctuation, joins words with the selected separator, trims leading and trailing separators, and adds the selected prefix when applicable.
The contact workflow has a separate boundary:
Contact form -> Next.js Server Action -> Resend -> Maintainer and confirmation email
| Area | Technology |
|---|---|
| Application | Next.js 16, React 19, TypeScript 5 |
| Interface | Tailwind CSS 4 and owned shadcn/ui components |
| Accessible primitives | Radix UI |
| Icons | Lucide React |
| Theme | next-themes |
| Contact delivery | Resend |
| Command | Purpose |
|---|---|
pnpm dev |
Start the Next.js development server |
pnpm build |
Type-check and create an optimized production build |
pnpm start |
Serve the production build |
pnpm lint |
Run ESLint across the repository |
There is no test command yet. Before submitting a change, run both pnpm lint and pnpm build.
| Path | Purpose |
|---|---|
app/ |
App Router pages, metadata, global styles, and route-level error states |
components/branch-name-generator.tsx |
Interactive branch-generation workflow |
components/layout.tsx |
Shared navigation, footer, and content primitives |
components/ui/ |
Owned shadcn/ui components |
lib/hooks.ts |
Generator state, normalization, and clipboard behavior |
lib/actions.ts |
Contact-form Server Action |
lib/resend.ts |
Server-only Resend initialization |
prototypes/v1/ |
Approved static HTML and Tailwind design prototype |
The public application is deployed at gitnamex.netlify.app.
For another deployment:
- Install dependencies with
pnpm install. - Add the contact variables only if the email form should deliver messages.
- Run
pnpm build. - Serve the generated Next.js application using the hosting provider's Next.js integration.
The generator remains usable when contact-form variables are omitted.
- Branch transformations are rule-based and do not understand repository-specific policies automatically.
- Generated names should be reviewed before use in source control or automation.
- The normalizer is designed around Latin letters, numbers, and common separators; unsupported characters may be removed.
- The task field is limited to 180 characters in the current interface.
- The repository has no automated test suite or CI workflow.
- No private vulnerability-reporting process, contribution guide, security policy, or code of conduct is currently documented.
- The GitHub repository is not publicly accessible at the time of verification, so clone and issue links require repository access.
Repository collaborators can open focused issues and pull requests. Before submitting a change:
pnpm lint
pnpm buildChanges to branch normalization should include tests once a test framework is introduced. Do not include task titles, credentials, or private repository information in public reports.
Use the application contact page for general questions. Repository collaborators can use GitHub Issues for reproducible bugs and proposals.
No dedicated private vulnerability-reporting policy exists yet. Coordinate privately with the maintainer before public disclosure, and never include secrets or exploit details in a public issue.
Optional support through SupportKori helps with continued maintenance. Bug reports, code contributions, documentation improvements, and feedback are also valuable.
Built and maintained by Montasim.
No license file is included. Source visibility does not grant permission to copy, modify, or redistribute this project.