npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@shuraim_khan/project-starter

v1.0.5

Published

Project starter scaffold CLI (Frontend + Backend) with configurable backend DB stack and no auto-install.

Downloads

218

Readme

Project Starter (Frontend + Backend)

This starter provides a first-step choice between Frontend and Backend templates.

  • Frontend: full frontend template copy from the packaged repository snapshot
  • Backend: API starter with selectable DB stack (Prisma/Mongoose + Mongo/SQL)

Dependencies are never auto-installed.

Core foundations included:

  • Simple auth APIs
  • Minimal Express app structure
  • Global error handler with DB logging
  • Security middleware stack
  • File upload API (local or S3)
  • Email service foundation (SendGrid or SMTP)
  • Basic WebSocket service foundation

Included APIs

Base path: /api/auth

  • POST /register
  • POST /login
  • GET /me (Bearer token required)

Base path: /api/file

  • POST /upload (form-data with file field)

Error Logging

All errors are handled globally by the central error middleware and saved in MongoDB using Prisma.

  • HTTP request errors are stored with endpoint and method details.
  • Process-level errors (uncaughtException, unhandledRejection) are also stored.
  • Logs are saved in the error_logs collection.

Email Service

The project includes a base email service at src/services/email.service.js with two providers:

  • SendGrid (SENDGRID_API_KEY, SENDGRID_FROM_EMAIL)
  • SMTP (SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS)

WebSocket Structure

The project includes a basic Socket.IO structure at src/services/websocket.service.js.

  • Initialized on server startup
  • Supports user room join via join:user
  • Includes emitToUser(userId, event, payload) helper

Tech Stack

  • Express
  • Prisma
  • MongoDB
  • JWT
  • bcrypt

Quick Start

Use As NPM Package

After publishing this package, users can scaffold directly in the current folder with one command:

npx @shuraim_khan/project-starter --name=my-project --type=backend --stack=prisma-mongo

This command:

  • asks/sets project name
  • asks/sets starter type (frontend/backend)
  • configures selected backend stack when backend is selected
  • creates starter files directly in current folder
  • does not install dependencies automatically

Frontend non-interactive example:

npx @shuraim_khan/project-starter --name=my-frontend --type=frontend

Supported stack values:

  • prisma-mongo
  • mongoose-mongo
  • prisma-sql

Supported type values:

  • frontend
  • backend

You can also run interactively:

npx @shuraim_khan/project-starter

Run the interactive DB stack wizard first:

npm run setup:db

Or run one command (interactive setup):

npm run setup:one

Or full non-interactive one command:

npm run setup:db -- --name=my-project --stack=prisma-mongo

Supported stack values:

  • prisma-mongo
  • mongoose-mongo
  • prisma-sql

The wizard will:

  • ask for your project name (updates package.json name)
  • ask for starter type first (frontend/backend)
  • ask for DB stack when backend is selected
  • generate files directly in the current folder (no new folder is created)

It supports:

  • Prisma + MongoDB
  • Mongoose + MongoDB
  • Prisma + SQL (PostgreSQL)
  1. Install dependencies
npm install
  1. Create env file
cp .env.example .env
  1. Run app
npm run dev

Environment Variables

PORT=3000
NODE_ENV=development
DATABASE_URL="mongodb://localhost:27017/flowgo"
JWT_SECRET=your_jwt_secret
JWT_EXPIRES_IN=24h
USE_S3=false
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=us-east-1
AWS_S3_BUCKET=
B2_S3_ENDPOINT=
API_URL=http://localhost:3000

Scripts

  • npm run setup:db
  • npm run dev
  • npm start

If you choose a Prisma option in setup, Prisma scripts are added automatically by the setup wizard.

Project Structure

prisma/
  schema.prisma
src/
  config/
  controllers/
  middleware/
  routes/
  services/
  utils/
  server.js