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

create-turks

v0.5.0

Published

Compose production-ready polyglot application monorepos.

Readme

turks

Build a typed, polyglot application monorepo from compatible clients, backends, databases, and data layers.

Turks is a TypeScript CLI with a Chalk-powered terminal experience. Every major category supports opting out, so client-only, API-only, database-without-ORM, and minimal repositories are all valid.

Usage

npx create-turks@latest my-app

To generate into the current empty directory, use a dot:

mkdir my-app && cd my-app
npx create-turks@latest .

For a reproducible non-interactive build:

npx create-turks@latest my-app \
  --client expo,next \
  --backend rust \
  --framework axum \
  --database postgres \
  --data-layer sqlx \
  --docker \
  --ci github \
  --yes

Or scaffold a complete starter template as the whole project:

npx create-turks@latest my-app --template gpui-starter --yes

Use --client none, --backend none, --database none, or --data-layer none to omit a layer. Use --dry-run to inspect the exact generation plan without writing files.

Interactive runs ask whether to start from a starter template, which client, backend, database, and data layer to compose, which package manager to use, whether to install dependencies, and whether to initialize a Git repository. Choosing a template skips the stack questions because the template defines the whole project. Use --template none|gpui-starter, --package-manager npm|pnpm|bun, --no-install, and --no-git in automated runs.

When the destination already contains files, Turks asks before merging the generated project and overwriting conflicting paths. Use --force for deliberate non-interactive merging.

Support matrix

| Category | Choices | | --- | --- | | Clients | Expo, Next.js, React + Vite, Vue + Vite, SvelteKit, Astro, React Native, Tauri, Electron, or none | | Templates | GPUI desktop app (gpui-starter), or none | | Rust | Axum, Actix Web, Rocket, or no framework | | Go | standard library, Chi, Gin, Fiber, Echo, or no framework | | TypeScript | Hono, Express, Fastify, Nest, or no framework | | Python | FastAPI, Django, Flask, Litestar, or no framework | | Databases | PostgreSQL, MySQL, SQLite, MongoDB, or none | | Rust data layers | SQLx, SeaORM, Diesel, or none | | Go data layers | GORM, Ent, Bun, or none | | TypeScript data layers | Drizzle, Prisma, TypeORM, Kysely, Mongoose, or none | | Python data layers | SQLAlchemy, Django ORM, Tortoise ORM, PyMongo, Beanie, or none | | Package managers | npm, pnpm, or Bun | | Optional tooling | Docker Compose (requires PostgreSQL, MySQL, or MongoDB), GitHub Actions, Moon, dependency installation, Git initialization |

Turks validates compatibility before creating anything. For example, MongoDB is accepted with Prisma, TypeORM, Mongoose, PyMongo, or Beanie in their supported languages, but rejected with SQLx.

Multiple clients are comma-separated:

npx create-turks@latest my-app --client next,expo,tauri --backend go --framework chi --database sqlite --data-layer bun --yes

Moon

Moon is not required to build or use Turks. npm, pnpm, Bun, Cargo, Go, and uv already provide the native workspace and build tools the generated repository needs.

Moon is an optional advanced output for teams that want a shared task graph and caching layer. It defaults to none; enable it with --orchestrator moon or --moon.

Templates

Templates are vendored starters that become the whole generated project. Selecting gpui-starter scaffolds the GPUI starter desktop app verbatim — same file layout — with crate names, identifiers, titles, and the window bundle id rewritten to match your project name. Run it with:

cd my-app
cargo run -p my-app-desktop

Turks asks whether to build the template (cargo build) right after scaffolding. Docker Compose and GitHub Actions are stack options and are not available with a template.

Development

pnpm install
pnpm typecheck
pnpm test
pnpm build
node dist/cli.js --help