Skip to content

Starter JavaScript/TypeScript projects for kicking off your web, Node.js, and native desktop apps

License

Notifications You must be signed in to change notification settings

mattlean/lean-js-app-starter

Repository files navigation

Lean JavaScript Application Starter

Lean JS App Starter (LJAS) is a development environment designed to kickstart projects across browser, Node.js, and Electron platforms. It offers a modern developer experience, leveraging standard tools from the JavaScript ecosystem. LJAS's transparent and highly customizable configuration makes it easy to modify and meet the unique needs of your app.

🎉 Don't just code for browsers: build servers, desktop apps, CLI tools, and more

Support for TypeScript, Node.js, Electron, React, and Express servers that support React server-side rendering.

🐳 Docker development & testing environments

Alternatively run the dev environment with Docker to simplify onboarding and improve consistency for developers across macOS, Windows, and Linux. Use a specialized Docker test environment to improve the stability and trustworthiness of end-to-end test results.

🧪 Robust testing environment

Write unit tests with Jest and end-to-end tests with Playwright. Test frontends with Testing Library and backend APIs with SuperTest. Mock network requests with MSW.

🗄️ Support for PostgreSQL & MongoDB

Connect to PostgreSQL and MongoDB easily with Prisma. Containerized databases are available so you aren't required to install databases natively on your machine.

⚡ Hot module replacement & auto-reloading

See changes reflected quickly in your app as soon as you save changes to your code.

📦 Optimized builds for production environments

Generate optimized builds specialized for running in production environments. Output cross-browser compatible bundles for the web or OS-specific executable bundles for Linux, macOS, or Windows.

🧼 Effortlessly maintain consistent code style

Stop worrying about needing to remember rules or having disagreements with other team members about code styling. Just let Prettier and ESLint enforce code style for you.

⛷️ Smoothly move across multiple projects

The project setup and configuration consistency allows developers working on multiple LJAS-based projects to move back-and-forth between them easily. If you are familiar with one LJAS project then you will be comfortable working with all of them, regardless if the build target is a browser, Node.js, or Electron.

🥇 Powered by the gold standards of the JS tooling ecosystem

Nothing fancy and no surprises–the core tools are webpack, Babel, and ESLint. The configurations are intentionally designed to follow standard conventions so they are easy to understand and customize.

Documentation

🤔 Need help deciding if LJAS is right for your project?

Read the "Motivation" document in the docs.

📖 Learn about everything LJAS has to offer!

Check out all of the documentation!

Getting Started

LJAS offers several different starter projects with various different technologies pre-configured for you. Each one is designed for different targets like the browser or Node.js, and can also utilize different technologies such as JavaScript, TypeScript, React, or Express, etc. They are all designed as complete development environments that you can rely on out-of-the-box.

Select a starter project below that fits your needs:

Starter Project Name Description JavaScript TypeScript
Basic Browser A simple setup for a browser frontend built with just vanilla JavaScript or TypeScript. View Source / Download View Source / Download
Basic Electron A simple setup for an Electron desktop app built with just vanilla JavaScript or TypeScript. View Source / Download View Source / Download
Basic Node.js A simple setup for a Node.js app built with just vanilla JavaScript or TypeScript. View Source / Download View Source / Download
Express + MongoDB A web server that runs off Node.js, Express, MongoDB, and Prisma. View Source / Download View Source / Download
Express + PostgreSQL A web server that runs off Node.js, Express, PostgreSQL, and Prisma. View Source / Download View Source / Download
React + Browser A browser frontend that uses React. View Source / Download View Source / Download
React + Electron An Electron desktop app that uses React for its renderer processes. View Source / Download View Source / Download
React + Express + MongoDB with SSR A full-stack web app that runs off Node.js, Express, PostgreSQL, Prisma, and React. The backend supports React server-side rendering. View Source / Download View Source / Download
React + Express + PostgreSQL with SSR A full-stack web app that runs off Node.js, Express, PostgreSQL, Prisma, and React. The backend supports React server-side rendering. View Source / Download View Source / Download

Examples

Example projects are built off of starter projects and act as a demonstration of how LJAS can used and adapted to different project requirements.

You will be able to find projects like SPAs, REST APIs, desktop apps, and more. They can be handy if you need references for customized configurations that extend LJAS's functionality or some good ol' inspiration.

Take a look at the example projects in the examples/ directory.

License

Lean JavaScript Application Starter is open source software licensed as MIT.