Skip to content

A plain npm template starter for JS, including 1️⃣ basic scaffold 2️⃣ Lefthook with Jira support 3️⃣ Prettier auto-format staged files 4️⃣ ESLint validations (strict) 5️⃣ CSpell checks

License

Notifications You must be signed in to change notification settings

anchildress1/npm-nodejs-template

Repository files navigation

🚀 NodeCraft: The Ultimate NPM/Node.js Starter Kit

Shaping the Ultimate Starter Kit Together

Important

🦄 Hack Time Update: Contest Mode Activated!

I’m off chasing glory in a coding contest through the end of September, 2025, so this repo’s usual hustle is on a quick coffee break. I’ll ninja-drop updates whenever I can between rounds, but please hang tight while I duke it out on the leaderboard.

Thanks for your patience - and may your builds always pass! 🏅✨


[!WARN] This is a work in progress and may take a few weeks before I have anything truly useful, but feel free to use anything available as a starting point.

📝 I'm open to suggestions. Dive into the Dev.to post for more context!


✨ Repo Pulse: Badges, Stars & Fuel

If you find this project useful or want to support its development, consider sharing it, starring the repo, or even buying me a coffee! Your support keeps the code flowing and the caffeine strong 💪

Tip

This list only includes what's already in the repo or tools used to build it, not what I plan to add later.

Pulse Points Badges
🫶 Show Some Love BuyMeACoffee dev.to Badge LinkedIn
🛼 Recent Activity GitHub commit activity GitHub last commit
GitHub Created At
📊 At a Glance JavaScript Badge Markdown Badge
Project Type Badge GitHub License
🧩 The Non-Negotiables Volta Badge NPM Node.js Badge
🔧 Nerd Tools I Can't Live Without
- Dependencies
Conventional Commits Badge commitlint Badge
👾 Bots in the Basement
- Co-authored-by
GitHub Copilot Badge OpenAI Badge
💬 Meta Magic & Shiny Things
Git GitHub gitignore.io Badge
Shields.io Badge Simple Icons Badge
VS Code Insiders macOS

🎛️ Dependencies + Versions

This is a detailed list of the above dependencies, including their versions currently in use.

Dependencies Dev Dependencies
@commitlint/cli dependency version
@commitlint/config-conventional dependency version

📢 Shoutouts

I want to additionally thank the following communities and tools that have (often unknowingly) helped this project:

Important

If you want to start using badges in your own projects, I highly recommend you donate or support the shields.io project by authorizing their GitHub App, which is free and is a great way to show appreciation for their work! Learn more about it here.


🧠 Looking for Ideas, Not Code

Have thoughts on:

  • What makes a JS template actually useful?
  • Underrated tools or workflows that you swear by?
  • Opinions about what should (or shouldn’t) be included in the starter pack?
  • Quirky pain points only Node devs understand?

Drop a comment (when Discussions are enabled!) or reply on Dev.to. Your input could help shape this into something everyone can steal... I mean, use. 😇


📦 Planned Features (So Far)

Here’s what I’ve mapped out, but this is absolutely up for discussion. Have a hot take? Let me know!

1️⃣ Basic scaffold 2️⃣ Husky with Jira support 3️⃣ Conventional commits & CHANGELOG generation 4️⃣ Prettier auto-format 5️⃣ ESLint validation (strict) 6️⃣ CSpell checks 7️⃣ Vitest for unit and integration testing 8️⃣ Documentation with GitHub Markdown 9️⃣ GitHub Copilot starter


🤔 What’s Already Here

Very basic scaffold

  • README.md – Project overview and starter info (you're reading it!)
  • commitlint.config.js – ES6 Commit message linting rules (not yet enforced)
  • package.json – NPM Node.js project manifest
  • LICENSE – Apache 2.0 License file
  • index.js – Entry point placeholder
  • src/ – Empty source code folder
  • tests/ – Empty test folder
  • wiki/ – Wiki submodule for comprehensive documentation

📚 Working with Submodules

This project includes a wiki submodule for comprehensive documentation. Here's how to get it set up:

First-time setup

git submodule init
git submodule update

Or in one command

git submodule update --init --recursive

To pull the latest wiki updates

git submodule update --remote wiki

For more detailed documentation and guides, check out wiki pages or, once you've loaded the submodule, /wiki in your IDE!


Tooling wish list (all up for feedback!)

🦊 Husky & Jira

  • Optional, enforced branch names with Jira keys
  • Commit messages that keep the PMs happy
  • Lintstaged, because why wait until CI to fail?

📝 Conventional commits & changelog (started)

  • In this area, I'm still a noob, but the goal is to have a system that:
    • Auto-enforce conventional commit format
    • Handles Semver versioning
    • Automatically generates a CHANGELOG

✨ Prettier

  • Runs on pre-commit. Because who doesn’t want their code auto-prettified?

🕵️ Strict ESLint

  • Leaning toward Airbnb + Unicorn configs—unless you have a spicier suggestion
  • Some aggressive custom rules that I can't live without
  • No warnings allowed at commit time (too strict?)

🪄 CSpell

  • Spell checking everywhere
  • Project-specific dictionary - still figuring out the best spot for it

🧪 Vitest

  • I'll find an example something to test, with coverage and reporting
  • Docs somewhere explaining the “why” of testing, not just the “how”

📖 Documentation

  • Added wiki submodule for comprehensive documentation (link to full docs coming soon!)
  • Explainers for each tool, folder, and weird decision

🤖 GitHub Copilot

  • Starter tips for using Copilot well (not just “type // todo and hope for magic”)
  • Would love to crowdsource actual examples and best practices

If you don't know me, check out my recent blog posts on Dev.to - then that last one will make perfect sense 😇


🌱 How You Can Help (Without Writing a Single Line of Code)

  • Share stories: What’s the most annoying thing about starting a new Node project?
  • Suggest tools: What’s one library you can’t live without (and why)?
  • Vote: What do you think is overkill, and what’s missing?
  • Philosophize: What does a “good” JS backend template mean to you?

Drop your thoughts here once Discussions are enabled, or leave a comment on my Dev.to post.


🛠️ Next Steps

  • Add a starting place in Discussions for people to share their thoughts (do we really want this? 🤔)
  • Set up wiki and docs for conventional commits
  • Finish the basics (as described above)
  • Iterate on feedback and turn this template into something worth forking

🙏 Thanks for Stopping By

Stay tuned, and thanks in advance for your brainpower! 🧠💡 — Ashley

P.S. If you’re here from the future and Discussions are already open... go wild!

Most likely, future me forgot to update this README, so if you see any typos or outdated info, please open an issue. Thanks!

About

A plain npm template starter for JS, including 1️⃣ basic scaffold 2️⃣ Lefthook with Jira support 3️⃣ Prettier auto-format staged files 4️⃣ ESLint validations (strict) 5️⃣ CSpell checks

Topics

Resources

License

Stars

Watchers

Forks