OpenMeet is an open-source community platform designed to help people overcome isolation and build stronger local connections. Our mission is to strengthen local communities by making it easier for people to meet in person and build meaningful relationships.
Unlike corporate platforms that charge high fees and prioritize profit over community, OpenMeet is:
- Free and open-source: Accessible to everyone
- Community-focused: Designed to foster genuine face-to-face connections
- Privacy-respecting: Your personal information remains private and secure
- Decentralized: Putting community needs first
OpenMeet helps community members who want to be more social reach out and join events or create and share their own gatherings. Connect with your neighbors, build community, and have fun without sitting behind a desk or phone alone.
OpenMeet Platform is built with:
- Quasar Framework: A Vue.js based framework for building responsive web applications
- Vue 3: Progressive JavaScript framework for building user interfaces
- Pinia: State management for Vue applications
- TypeScript: Typed JavaScript for better developer experience
- Cypress: End-to-end and component testing
- Vitest: Unit testing framework
The project follows a modular architecture with:
/src/components
: Reusable UI components/src/pages
: Application pages and routes/src/layouts
: Page layouts and structure/src/stores
: Pinia state management/src/boot
: Application initialization and plugins/src/api
: API service integrations/src/composables
: Reusable Vue composition functions/src/utils
: Utility functions/src/types
: TypeScript type definitions/src/i18n
: Internationalization resources
- Node.js (v20, v22, or v24)
- npm (>= 6.13.4) or yarn (>= 1.21.1)
yarn
# or
npm install
Copy the environment variables example file and set the values:
cp .env.example .env
Key environment variables for development:
APP_DEV_SERVER_PORT
: Port for the development server (default: 9005)APP_DEV_SERVER_OPEN
: Automatically open browser on start (default: true)
The application uses /public/config.json
for runtime configuration. For development, you can copy the example:
cp public/config.example.json public/config.json
Key configuration options:
APP_API_URL
: Backend API URLAPP_TENANT_ID
: Your tenant identifierAPP_TENANT_NAME
: Your organization/community nameAPP_TENANT_DESCRIPTION
: Description of your communityAPP_TENANT_IMAGE
: Path to your organization's logo
Start the app in development mode (hot-code reloading, error reporting, etc.):
yarn dev
# or
npm run dev
Lint the files:
yarn lint
# or
npm run lint
Build the app for production:
yarn build
# or
npm run build
# Run unit tests
yarn test:unit
# or
npm run test:unit
# Run unit tests with UI
yarn test:unit:ui
# or
npm run test:unit:ui
# Run E2E tests with Cypress UI
yarn test:e2e
# or
npm run test:e2e
# Run E2E tests in headless mode
yarn test:e2e:ci
# or
npm run test:e2e:ci
# Run against a specific URL
npx cypress run --config baseUrl=https://platform.openmeet.net
# Run component tests with Cypress UI
yarn test:component
# or
npm run test:component
The project includes Docker configuration for containerized deployment:
# Build and run with Docker
docker build -t openmeet-platform .
docker run -p 80:80 openmeet-platform
# Or use docker-compose
docker-compose up
When adding new environment variables:
- Add to
.env
- Add to
quasar.config.ts
(env section) - Add to
public/config.json
for runtime configuration
For more information about the Quasar Framework, check out:
We welcome contributions to OpenMeet! Please feel free to submit issues and pull requests.