Indie Bare Stack

screenshot of Indie Bare Stack

The Remix Stack for deploying to Fly with SQLite, authentication, testing, linting, formatting, etc.

Overview

Remix Indie Bare Stack is a fork of the Remix Indie Stack. It offers a variety of features for developers, including the use of better-sqlite3 and SQL statements instead of Prisma ORM, Litestream setup, dependency injection and service-oriented architecture for state management, and more. The stack also includes features like Fly app deployment with Docker, a production-ready SQLite database, healthcheck endpoint for Fly backups, GitHub Actions for deployment, email/password authentication with cookie-based sessions, and various tools for styling, testing, code formatting, linting, and static typing. Developers can also customize the stack by forking it and making their own modifications.

Features

  • Replaces Prisma ORM: Uses better-sqlite3 and SQL statements instead of Prisma ORM for improved performance and flexibility.
  • Litestream setup: Includes Litestream, a tool for capturing database changes and replicating them to a backup database for added reliability and data durability.
  • No Cypress for end-to-end testing: Does not include Cypress for end-to-end testing, allowing developers to choose their preferred testing framework.
  • No mocking library: Does not include a mocking library, promoting the use of real dependencies for more accurate testing.
  • Dependency injection and service-oriented architecture: Provides a clear life cycle management of state through dependency injection and a service-oriented architecture.
  • Fly app deployment with Docker: Enables easy deployment of the app using Docker containers on the Fly platform.
  • Production-ready SQLite Database: Includes a SQLite database that is ready for production use.
  • Healthcheck endpoint for Fly backups region fallbacks: Provides a healthcheck endpoint to ensure the availability of Fly backups and region fallbacks.
  • GitHub Actions for deploy on merge to production and staging environments: Automates the deployment process by triggering deployments on merge to production and staging branches using GitHub Actions.
  • Email/Password Authentication with cookie-based sessions: Offers authentication functionality using email/password authentication and cookie-based sessions.
  • Database ORM with Prisma: Includes a database ORM (Object-Relational Mapping) with Prisma, allowing developers to interact with the database using a convenient interface.
  • Styling with Tailwind: Uses Tailwind CSS for easy and customizable styling of the app.
  • Unit testing with Vitest and Testing Library: Supports unit testing with Vitest and Testing Library, providing a comprehensive testing solution.
  • Code formatting with Prettier: Includes Prettier, a code formatting tool that ensures consistent and legible code.
  • Linting with ESLint: Provides linting support using ESLint to enforce coding standards and detect potential errors.
  • Static Types with TypeScript: Supports static typing with TypeScript, allowing for better code organization and catching errors at compile time.

Summary

Remix Indie Bare Stack is a powerful development stack that offers a range of features and tools to streamline the development process. It includes alternative technologies like better-sqlite3 and SQL statements instead of Prisma ORM, Litestream for database backups, and a focus on dependency injection and service-oriented architecture. The stack also provides convenient features like Docker-based deployment with Fly, email/password authentication with cookie-based sessions, and support for testing, formatting, linting, and static typing. With its flexibility and customization options, developers can easily tailor the stack to their specific needs.