0.4.4 • Published 2 months ago

localdev-tui v0.4.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

localdev

An interactive TUI for local development.

A video of using localdev

Usage

Install the localdev-tui npm package using your favorite JavaScript package manager:

npm install --save-dev localdev-tui

Then, create a localdev.config.mjs file in the root of your project:

// @ts-check

/** @type {import('localdev-tui').LocaldevConfig} */
export default {
	servicesToLog: {
		'my-website': true,
	},
	services: {
		'my-website': {
			healthCheck: {
				port: 3001,
			},
			command: {
				string: 'npm run start',
			},
		},
	},
	localDomains: ['my-website.test'],
	proxyRouter(req) {
		const hostname = req.hostname;

		if (hostname === 'my-website.test') {
			return 'http://127.0.0.1:3001';
		}
	},
};

Then, add a dev script in your project's package.json file:

{
	"scripts": {
		"dev": "localdev"
		// ...
	}
}

Now, you can run npm run dev (or the equivalent for your package manager) to start localdev!

Motivation

Often times, developing a complex application involves running many separate services that interact with each other. During development, it's tedious to manually run every service in separate terminals every time. Instead, it's a lot easier to have one dev server that automatically manages multiple development processes.

However, building a dev server isn't as easy as simply running all programs concurrently and outputting all their logs. Many services output a significant amount of logging output (especially during debugging) that can quickly clutter a single terminal window.

Thus, an interactive solution is needed, and that's where building a TUI for local development comes into play.

Why not Kubernetes?

You might recognize that managing multiple services sounds similar to Kubernetes, and you wouldn't be mistaken. Kubernetes does solve a similar use case, which we heavily rely on for deployment.

However, during development, Kubernetes incurs significant performance and DX (developer experience) tradeoffs. Running development processes in a VM or Docker can be 10x slower than running the process on the host machine, not to mention the extra amount of disk space, CPU and memory a local Kubernetes cluster running minikube would take up.

Thus, we decided that we will instead focus on building a great developer experience by running development processes on the host machine.

0.4.4

2 months ago

0.4.1

3 months ago

0.4.0

3 months ago

0.4.3

3 months ago

0.4.2

3 months ago

0.3.17

6 months ago

0.3.18

6 months ago

0.3.16

8 months ago

0.3.15

8 months ago

0.3.14

8 months ago

0.3.12

11 months ago

0.3.11

1 year ago

0.1.10

1 year ago

0.1.11

1 year ago

0.1.12

1 year ago

0.3.9

1 year ago

0.1.13

1 year ago

0.1.14

1 year ago

0.1.15

1 year ago

0.3.10

1 year ago

0.1.20

1 year ago

0.1.21

1 year ago

0.1.0

1 year ago

0.3.0

1 year ago

0.1.2

1 year ago

0.2.0

1 year ago

0.1.1

1 year ago

0.3.6

1 year ago

0.1.16

1 year ago

0.1.8

1 year ago

0.3.5

1 year ago

0.1.17

1 year ago

0.1.7

1 year ago

0.3.8

1 year ago

0.1.18

1 year ago

0.3.7

1 year ago

0.1.19

1 year ago

0.1.9

1 year ago

0.1.4

1 year ago

0.3.1

1 year ago

0.1.3

1 year ago

0.3.4

1 year ago

0.1.6

1 year ago

0.3.3

1 year ago

0.1.5

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.6

1 year ago

0.0.3

1 year ago