The Apps Behind Your Next Story

Build worlds. Tell stories.
For novelists, GMs, screenwriters & beyond
Build rich worlds, draft your stories and connect everything with advanced linking and easy references.

Practice your writing muscle
Creative writing practice can be exciting
Jump into 30+ writing exercises—playful, reflective, and style-focused. Build the habit that transforms okay writers into great ones.

Build choice adventures
Branching stories on a visual canvas
Map scenes, connect choices, track resources, and publish interactive fiction people can actually play.

1,800+ idea generators
Names, places, plots and more
Beat writer's block in seconds. Over 1,800 free name and idea generators for characters, worlds, items and writing prompts.
Your Storyteller Toolbox
Build worlds. Spark ideas. Practice daily.
Explore more from
- Resolution prompts
- Roblox avatar names
- Secret Santa gifts
- Fantasy team names
- Friends-to-lovers beats
- Daily journal prompts
- News headline ideas
- Instagram bio ideas
- Tattoo design ideas
- Crypto token names
- Gaming setup ideas
- OKR examples
- Yearbook quotes
- Wedding hashtags
- Mob Wife aesthetics
- Album title ideas
- Instagram caption ideas
- Angel number meanings
- SWOT analysis prompts
- Roblox game names
- LinkedIn post prompts
- YouTube video titles
- Mobile app names
- Birth chart readings
- Fantasy league names
- Cat breed names
Discover even more random name generators
Explore all name generator categories
Skip list of categoriesOrigins, history, and why the log matters
Git stores snapshots, but it is the commit message that turns those snapshots into a story. On small hobby projects you can get away with vague subjects, yet once a repository lives for years the log becomes a tool for debugging, auditing, and onboarding. Many teams still follow older mailing list habits: a short subject line, optionally followed by a blank line and a longer explanation. Conventional Commits added a modern twist by standardizing the first token as a type like feat or fix, optionally with a scope, which can feed automated changelogs and semantic versioning workflows.
Picking and using a message effectively
Write the subject like a command
A classic guideline is to write the subject in the imperative mood: add, fix, remove, update. That style reads well when git prefixes it with "If applied, this commit will". Keep the subject compact and concrete so it still makes sense in a one line log view. If you need background, move it into the body, where you can explain why the change exists and what tradeoffs you accepted.
Use structure when it buys you speed
Conventional Commits usually look like type(scope): subject. The type groups changes, the scope points to a subsystem, and the subject says what you did. You can also add a footer for breaking changes or issue references. The key is consistency: if you choose types, keep the list small, and if you choose scopes, keep them stable. A strict structure is not a moral victory, it is a way to make reviews, releases, and debugging faster.
Know when to be plain and when to be playful
There is room for humor, but the log is also a work artifact. In shared repos, a playful message works best when it is still informative. Think of it as seasoning, not the meal. If you are about to squash merge, you can be a little looser in intermediate commits, then rewrite the final message into something crisp. If you keep every commit forever, treat each subject as a headline that your teammates will search later.
Identity and team culture in one line
Your commit style signals how your team thinks. Clear messages reduce cognitive load during code review and make it easier to understand ownership. They also shape the tone of collaboration. A repo full of "wip" and "stuff" tells new contributors that details do not matter. A repo full of readable subjects and helpful bodies tells them that time and context are respected. If you work across time zones, the log is often the first place where you can speak to someone you will never meet live.
Tips for writers
- Prefer one change per commit when possible, so the subject can be specific.
- Use type and scope only if they match a team convention you can keep.
- Put "why" in the body: constraints, risks, and alternatives you rejected.
- Reference tickets in a footer or body, not by cramming them into the subject.
- Rewrite before merge: squash, reword, and clean up noisy intermediate steps.
- Read the subject alone in a log view; if it still makes sense, it is ready.
Inspiration prompts
When you are stuck, use these questions to find the real subject hiding inside the diff.
- What user visible behavior changed, and how would you describe it in one verb?
- Which subsystem does this touch, and would a stable scope help reviewers scan?
- Did you fix a regression, close an edge case, or add a safety guard?
- What would break if you reverted this commit tomorrow?
- What tradeoff did you accept: speed, memory, readability, or compatibility?
- What is the smallest honest subject that still points to the right outcome?
Frequently Asked Questions
Explore common questions about the Commit Message Generator and how it helps you draft commit messages that stay readable in a busy git log.
What makes a good commit message subject line?
Lead with an imperative verb, keep it specific, and make sure it explains what changed, not what you felt. If the subject stands alone in a log, it is doing its job.
Should I use Conventional Commits?
If your team releases software, Conventional Commits can make changelogs and version bumps easier. If you are solo, use it when it adds clarity, not because it looks fancy.
When should I add a scope like feat(api)?
Use scopes when your repo has multiple areas and you want faster scanning. Keep scopes stable and short, and avoid inventing a new scope for every file.
How do I reference issues or tickets?
Add a simple reference like "refs #1234" or your tracker key in the body or footer. Keep the subject focused, and let the reference help reviewers connect context quickly.
What if I already committed with a bad message?
For the latest commit, amend the message. For older commits on your branch, interactive rebase lets you rewrite messages safely before merging. Avoid rewriting history on shared main branches.
What are good commit message ideas?
There's thousands of random commit message ideas in this generator. Here are some samples to start:
- fix(ui): add rate limit backoff
- feat(cache): implement api error handling
- perf(tests): guard audit trail
- simplify routing table for slow networks
- guard rate limit backoff under load
- tighten audit trail (refs #1217)
- remove render pipeline for windows
- add rate limit backoff (refs #1522)
- wire feature flag toggle for staging
- ship it render pipeline and pretend it was intentional
About the creator
All idea generators and writing tools on The Story Shack are carefully crafted by storyteller and developer Martin Hooijmans. During the day I work on tech solutions. In my free hours I love diving into stories, be it reading, writing, gaming, roleplaying, you name it, I probably enjoy it. The Story Shack is my way of giving back to the global storytelling community. It's a huge creative outlet where I love bringing my ideas to life. Thanks for coming by, and if you enjoyed this tool, make sure you check out a few more!
Embed on your website
To embed this idea generator on your website, copy and paste the following code where you want the widget to appear:
<div id="story-shack-widget"></div>
<script src="https://widget.thestoryshack.com/embed.js"></script>
<script>
new StoryShackWidget('#story-shack-widget', {
generatorId: 'commit-message-generator',
generatorName: 'Commit Message Generator',
generatorUrl: 'https://thestoryshack.com/tools/commit-message-generator/',
language: 'en'
});
</script>
