OpenAlternative

0

A community driven list of open source alternatives to proprietary software and applications.

Miscellaneous

remix
inngest
open-source
alternative

OpenAlternative

Discover open source alternatives to popular software.
Learn more »

Website · Issues

Github Stars License Commits-per-month open in devcontainer Hacker News

OpenAlternative - Discover open source alternatives to popular software | Product Hunt OpenAlternative - Discover open source alternatives to popular software | Product Hunt

About this project

OpenAlternative is a community driven list of open source alternatives to proprietary software and applications.

Our goal is to be your first stop when researching for a new open source service to help you grow your business. We will help you find alternatives of the products you already use.

Join us in creating the biggest directory of open source software.

Sponsors

OpenAlternative is an GPL-3.0-licensed open source project with its ongoing development made possible entirely by the support of these awesome backers. If you'd like to join them, please consider sponsoring OpenAlternative's development.

Sponsors

Project Structure

OpenAlternative is a monorepo project with two main applications:

  1. Web application (Remix) - located in apps/web
  2. Admin panel (Next.js) - located in apps/admin

Development

This project uses Bun as the package manager and runtime. Make sure you have Bun installed before proceeding.

To set up the project for development:

  1. Clone the repository
  2. Run bun install in the root directory to install all dependencies
  3. Set up the required environment variables (see below)
  4. Run bun run db:push to push the Prisma schema to the database
  5. Create symlinks for the .env file (see Environment Variables section)
  6. Run bun run dev to start both the web and admin applications in development mode

Environment Variables

Refer to the .env.example file for a complete list of required variables.

To manage environment variables across the monorepo, you have two options:

  1. Create symlinks to the root .env file:

    • For Unix-based systems (macOS, Linux):
      ln -s ../../.env apps/web/.env
      ln -s ../../.env apps/admin/.env
      ln -s ../.env packages/database/.env
      
    • For Windows (run in Command Prompt as Administrator):
      mklink apps\web\.env ..\..\\.env
      mklink apps\admin\.env ..\..\\.env
      mklink packages\database\.env ..\.\.env
      
  2. Create separate .env files for each app and package:

    • Copy the .env.example file to each app and package directory
    • Rename it to .env
    • Update the variables as needed for each app or package

Choose the method that best fits your development workflow and security requirements.

🧞 Commands

All commands are run from the root of the project, from a terminal:

CommandAction
bun installInstalls dependencies
bun run devStarts both web and admin apps in development mode
bun run web devStarts web app at localhost:5173
bun run admin devStarts admin app at localhost:5174
bun run buildBuild both apps for production
bun run startPreview production build locally
bun run lintRun linter
bun run formatFormat code
bun run typecheckRun TypeScript type checking
bun run db:generateGenerate Prisma client
bun run db:studioStart Prisma Studio
bun run db:pushPush Prisma schema to database
bun run db:pullPull Prisma schema from database
bun run db:resetReset Prisma schema

Third-Party Services

OpenAlternative uses the following third-party services:

Make sure to set up accounts with these services and add the necessary environment variables to your .env file.

Deployment

The project is set up for deployment on Vercel. Each app (web and admin) can be deployed separately.

To deploy manually:

  1. Build the project: bun run build
  2. For the web app: bun run web start
  3. For the admin app: bun run admin start

Ensure all environment variables are properly set in your production environment.

License

OpenAlternative is licensed under the GPL-3.0 License.