Discover open source alternatives to popular software.
Learn more »
Website
·
Issues
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.
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.
OpenAlternative uses the following third-party services:
- Database: Neon
- Analytics: Plausible, PostHog
- Newsletter: Beehiiv
- Background Jobs: Inngest
- File Storage: AWS S3
- Payments: Stripe
- Screenshots: ScreenshotOne
Make sure to set up accounts with these services and add the necessary environment variables to your .env
file.
OpenAlternative is built as a Turborepo monorepo with multiple packages. The project structure is organized as follows:
-
/apps
- Turborepo apps-
/app
- Main Next.js application using the App Router architecture/app
- Application routes and layouts (Next.js App Router)/components
- Reusable React components/lib
- Core utilities and business logic/actions
- Server actions/utils
- Helper functions and utilities/hooks
- React hooks/contexts
- React context providers/services
- Service integrations/emails
- Email templates/server
- Server-side code/functions
- Utility functions/config
- Configuration files/content
- Content management/types
- TypeScript type definitions/public
- Static assets
-
/analyzer
- Data analysis tools
-
-
/packages
- Shared packages/db
- Database schema and utilities/github
- GitHub integration utilities
The project uses Turborepo for task orchestration and dependency management across the monorepo.
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:
- Clone the repository
- Run
bun install
to install all dependencies - Set up the required environment variables (see below)
- Run
bun run db:push
to push the Prisma schema to the database - Run
bun run dev
to start the application in development mode
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:
- Clone the repository
- Run
bun install
to install all dependencies - Set up the required environment variables (see below)
- Run
bun run db:push
to push the Prisma schema to the database - Run
bun run dev
to start the application in development mode
Refer to the .env.example
file for a complete list of required variables.
Copy the .env.example
file to .env
and update the variables as needed:
cp .env.example .env
All commands are run from the root of the project, from a terminal:
Command | Action |
---|---|
bun install |
Installs dependencies |
bun run dev |
Starts local dev server at localhost:5173 |
bun run build |
Build production application |
bun run start |
Preview production build locally |
bun run lint |
Run linter |
bun run format |
Format code |
bun run typecheck |
Run TypeScript type checking |
bun run db:generate |
Generate Prisma client |
bun run db:studio |
Start Prisma Studio |
bun run db:push |
Push Prisma schema to database |
bun run db:pull |
Pull Prisma schema from database |
bun run db:reset |
Reset Prisma schema |
The project is set up for deployment on Vercel. To deploy manually:
- Build the project:
bun run build
- Start the production server:
bun run start
Ensure all environment variables are properly set in your production environment.
OpenAlternative is licensed under the GPL-3.0 License.