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

malas

v2.1.0

Published

Deterministic CLI generator for repetitive dev workflows. Simple, fast, no AI.

Readme

malas

CLI buat developer malas yang tetap pengen rapi.

malas menghapus kerja berulang di workflow dev: generate file, folder, dan struktur yang itu-itu lagi, dengan hasil konsisten, deterministic, dan bisa dipreview.

Bukan AI. Bukan framework. Bukan tool serba bisa.
Cuma generator kecil yang bikin kamu lanjut kerja lebih cepat.


Instalasi

npm install -g malas

atau pakai langsung:

npx malas gen svelte route blog

Quick Start

# Generate Svelte route
malas gen svelte route blog

# Generate React component
malas gen react component Button

# Generate Neovim plugin structure
malas gen nvim plugin my-plugin

# List semua generator
malas list

Kenapa malas?

Karena ini kejadian terus:

  • bikin route Svelte → copy folder → rename → cek ulang
  • bikin component → boilerplate sama lagi
  • setup plugin Neovim → struktur sama, beda nama
  • dotfiles berantakan karena path config beda-beda

Semua bisa manual. Semua juga malesin.

malas menghapus ritual itu.


Cara Kerja

1. Preview Dulu

$ malas gen svelte route blog

✓ Preview changes:
  + src/routes/blog/+page.svelte
  + src/routes/blog/+page.server.ts
  + src/routes/blog/+page.ts

  Apply changes? [Y/n]

2. Deterministic

Input sama → output sama.
Tidak ada guessing, tidak ada magic.

3. Idempotent & Aman

Bisa dijalankan ulang tanpa rusak struktur yang udah ada.
Preview diff kalau file sudah exist.


Generator Built-in

Svelte / SvelteKit

# Route dengan server load
malas gen svelte route blog

# Component dengan TypeScript
malas gen svelte component Button

# Layout
malas gen svelte layout dashboard

Output:

src/routes/blog/
├── +page.svelte
├── +page.server.ts
└── +page.ts

React

# Functional component
malas gen react component Button

# Component dengan hooks
malas gen react hook useCounter

Neovim Plugin

malas gen nvim plugin my-plugin

Output:

lua/my-plugin/
├── init.lua
└── config.lua
plugin/my-plugin.lua

Custom Template

Template disimpan di ~/.config/malas/templates/.

Struktur:

~/.config/malas/templates/
├── svelte/
│   ├── route/
│   │   ├── +page.svelte.hbs
│   │   └── +page.server.ts.hbs
│   └── component/
│       └── Component.svelte.hbs
└── react/
    └── component/
        └── Component.tsx.hbs

Template pakai Handlebars syntax:

<!-- +page.svelte.hbs -->
<script lang="ts">
  export let data;
</script>

<h1>{{name}}</h1>

Default template udah oke buat 80% kasus.
Edit kalau kamu butuh style spesifik.


Prinsip Desain

  • Offline-first – tidak butuh internet
  • Deterministic – input sama = output sama
  • Preview-first – lihat dulu sebelum apply
  • Aman – idempotent, bisa dijalankan ulang
  • Opinionated – default yang masuk akal

Kalau belum kamu pakai sendiri tiap hari, fitur itu belum layak ada.


Yang Tidak Dilakukan malas

malas tidak:

  • menggunakan AI
  • mengirim data ke cloud
  • menjadi build tool atau bundler
  • mengatur task atau project management
  • menggantikan editor atau shell

Ini cuma generator. Simple dan fokus.


Cocok Dipakai Kalau

  • kamu sering scaffold hal yang sama
  • kamu peduli struktur tapi nggak mau ribet
  • kamu suka tool kecil yang fokus
  • kamu lebih pilih konsistensi daripada fleksibilitas berlebihan

Kalau kamu cari tool "bisa semuanya", ini bukan itu.


Commands

# Generate dari template
malas gen <framework> <type> <name>

# List semua generator tersedia
malas list

# Show template location
malas config

# Show version
malas --version

# Help
malas --help

Development

# Clone repo
git clone https://github.com/yourusername/malas
cd malas

# Install dependencies
pnpm install

# Build
pnpm build

# Test locally
pnpm link --global
malas gen svelte route test

Roadmap

  • [x] Core generator engine
  • [x] Svelte/SvelteKit templates
  • [x] React templates
  • [x] Neovim plugin templates
  • [ ] Hono API route generator
  • [ ] PostgreSQL schema generator
  • [ ] Dotfile backup helper (experimental)

Scope dijaga ketat. Fitur bertambah hanya kalau dipakai beneran.


Filosofi

Lebih baik tool kecil yang kepake tiap hari
daripada tool gede yang cuma dibaca README-nya.

Kalau sesuatu bisa dilakukan manual tapi bikin kamu malas,
itu kandidat fitur malas.


Kontribusi

PR welcome untuk:

  • Bug fixes
  • Template improvements
  • Documentation

Tidak diterima:

  • AI integration
  • Cloud features
  • Fitur yang terlalu general

Keep it simple. Keep it focused.


License

MIT


Author

Dibuat karena males ngulang-ngulang hal yang sama.

Maintained dengan prinsip: kalau nggak kepake, nggak masuk.