Developer Ready: A comprehensive template that works seamlessly for most Qwik projects. Designed for use with the latest active Qwik release, this setup includes QwikCity, an additional toolkit that enhances Qwik by simplifying the creation of full websites with features like directory-based routing, layouts, and more.
Instant Value - All basic tools included and configured:
- π Typescript >= 5.5.4
- π Qwik >= 1.8.0
- π Qwik City >= 1.8.0
- π§ Use Bun as package manager
- π ESM
- π§Ή ESlint with some initial rules recommendation
- π§ͺ Biome for JavaScript code formatting and linting
- β Jest or Bun test for fast unit testing and code coverage
- π Type definitions for Bun.js and Jest
- π¨ Prettier to enforce consistent code style
- βοΈ EditorConfig for consistent coding style
- π¦ NPM scripts for common operations
- π Simple example of Tsx code
- π Run tasks with Grunt (example for backup)
- π₯οΈ Ungit for version control (git) with a GUI
- β‘ Use Vite for lightning fast HMR (hot reload) in SSR mode
- β‘ Optimized build by Vite
- π§ͺ E2E test with Playwright
- π A modern and efficient interface for managing HTTP requests with Undici
- π₯ Easily add over 180000+ icons to your Qwik app with qwikest/icons
- 𧡠Defer third party scripts like Google Analytics, Facebook Pixel, etc off the main thread by using a web worker with partytown
- ποΈ Self-host fonts effortlessly using Fontsource, which includes Google Fonts and other open-source options.
- π³ Containerization for easy deployment and scaling with Docker
- π Tailwind CSS already set up with PostCSS for flexible usage
- π©· Sass extends CSS with features like variables, nested rules, mixins, imports, inheritance, built-in functions, and more ...
You can customize your website faster with PLUM, a mixins toolset powered by SASS. Quickly produce consistent, scalable CSS output, regardless of project size. For the best experience, it is recommended to use SASS version
1.77.6
to ensure smooth integration with PLUM.
To use this template, use the following commands:
bun create github.com/RajaRakoto/qwik-boilerplate <project-name>
cd <project-name>
bun run pkg-upgrade # to upgrade outdated dependencies in interactive mode
- This starter kit uses the MIT license with my name and GitHub profileβupdate or remove if needed.
- Each subdirectory in
src
has aREADME.md
to explain its structure.- Adjust the
package.json
(name, description, author, etc.) to fit your project.
Use the bun qwik add
command to add additional integrations. Some examples of integrations includes: Cloudflare, Netlify or Express Server, and the Static Site Generator (SSG).
Start
- π
start
- Launches the Vite.js server in SSR mode and automatically opens the app in the browser.
Preview
- π
preview
- Run your app with preview mode.
Clean
- π
clean
- Removes server, build, dist, coverage, playwright-report ...
Development
- π
dev
- Launch Vite.js development server using hot module remplacement (HMR) + SSR mode. - π
dev:debug
- Starts Vite.js in SSR mode with Node.js debugger enabled.
Build
- π
build
- Builds the application with Qwik. - π
build.client
- Builds the client with Vite.js. - π
build.preview
- Builds the project in SSR mode fromsrc/entry.preview.tsx
. - π
build.types
- Manages TypeScript type compilation without emitting files.
Testing
- π
test:unit
- Run unit testing with Bun.js. - π
test:unit:watch
- Interactive watch mode to automatically re-run unit testing with Bun.js. - π
test:e2e
- Run end to end (e2e) testing with Playwright.
Linting and Formatting
- π
biome:start
- Starts the Biome daemon server. You can specify a custom configuration file path using the--config-path
option. - π
biome:stop
- Stops the Biome daemon server. - π
biome:fix
- Runs a source code check and applies automatic fixes (linter & formatter) according to the defined rules. - π
biome:unsafe
- Works likebiome:fix
, but may apply more invasive or risky changes. - π
eslint
- Lints the project with ESLint and reports unhandled errors. - π
prettier
- Formats code according to the.prettierrc
rules.
Backup and Dependency Management
- π
backup
- Backup files with Grunt. - π
pkg-check
- Check useless dependencies with depcheck. - π
pkg-upgrade
- Upgrade outdated dependencies (interactive mode) with npm-check-updates.
Versioning
- π
versioning
- Start ungit server.
NPM commands
- π
npm-version:major
- Increments the major version number of your project using npm. - π
npm-version:minor
- Increments the minor version number of your project using npm. - π
npm-version:patch
- Increments the version patch number of your project using npm.
NVM
- π
nvm
- Manage multiple node.js versions. Easily switch between node versions per project to ensure compatibility.
Scripts
- π
script:sass-charset
- Adds the @charset "UTF-8" declaration at the beginning of all SCSS files in the project.
You can also check out my other starter projects:
- π bun-boilerplate
- π node-boilerplate
- π react-boilerplate
- π next-boilerplate
- π vscode-boilerplate
- π cli-boilerplate