Elysia Kickstart

screenshot of Elysia Kickstart
tailwind
drizzle-orm

ElysiaJS boilerplate with HTMX, Tailwind, Auth.js, Drizzle, CI. Deploy in one click to Railway or Vercel Edge Functions

Overview

Elysia Kickstart is a feature-packed boilerplate that utilizes the ElysiaJS server framework along with various other tools and libraries to provide a seamless web development experience. It offers extensive support for type safety, authentication, consistent code standards, and easy deployment through Docker and GitHub Actions.

Features

  • TypeScript: Configured to maximize type safety.
  • ElysiaJS: Fast and Bun friendly server framework.
  • HTMX: High power tools for HTML.
  • Drizzle: ORM with maximal type safety.
  • Auth.js: Flexible and secure authentication.
  • ESLint: Consistent code standards.
  • Prettier: Consistent code styling.
  • Tailwind CSS: Utility-first CSS framework.
  • VS Code configurations: Configurations for extensions.
  • Docker: Local and production Docker support with Docker-compose and Dockerfiles.
  • GitHub Actions: Robust CI/CD integration.

Option 1: Clone and deploy to Railway (deployed with Docker)

  1. Clone the repository.
  2. Deploy on Railway.
  3. Deploy on Vercel Edge Functions (refer to Railway template for required environment variables and RUNTIME=edge).

Option 2: Clone and run locally

  1. Fork the repository.
  2. Clone your new repository.
  3. Install dependencies.
  4. Run the development server with "bun" or with Docker.

Configuration

  • Docker: Configure Docker by creating a .dockerignore file, a docker/ directory with Dockerfile and docker-compose.yml for development and production.
  • Drizzle: Configure Drizzle by modifying src/db/src/lib/db.ts and drizzle.config.ts.
  • ESLint: Configure ESLint by modifying .eslintrc.json file.
  • GitHub Actions: Configure GitHub Actions by modifying .github/workflows/ci.yml file.
  • HTMX: Configure HTMX by modifying public/htmx@1.9.5.min.js and types/htmx.d.ts files.
  • NextAuth: Configure NextAuth by modifying src/app/api/auth/index.ts and other related files.
  • Prettier: Configure Prettier by modifying .prettierrc.json and .prettierignore files.
  • Tailwind CSS: Configure Tailwind CSS by modifying src/styles/globals.css and tailwind.config.js files.
  • TypeScript: Configure TypeScript by modifying tsconfig.json and types/reset.d.ts files.
  • Vercel Edge Functions: Configure Vercel Edge Functions by modifying api/index.tsx and scripts/transform-paths.ts files.
  • VS Code: Configure VS Code by modifying .vscode/extensions.json and other related files.

Summary

Elysia Kickstart is a comprehensive boilerplate that offers a wide range of features and tools for web development. It is built on top of the ElysiaJS server framework and includes support for TypeScript, HTMX, Drizzle ORM, authentication, code standards with ESLint and Prettier, Tailwind CSS, Docker deployment, and GitHub Actions for CI/CD. The installation process is straightforward with options for deployment on Railway or running locally. Overall, Elysia Kickstart provides developers with a solid foundation and a rich set of features to kickstart their projects.

tailwind
Tailwind

Tailwind CSS is a utility-first CSS framework that provides pre-defined classes for building responsive and customizable user interfaces.

drizzle-orm
Drizzle ORM

Drizzle ORM is a TypeScript ORM for SQL databases designed with maximum type safety in mind. It comes with a drizzle-kit CLI companion for automatic SQL migrations generation. Drizzle ORM is meant to be a library, not a framework. It stays as an opt-in solution all the time at any levels.

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.