Veganify
A multilingual Progressive Web App, which scans the EAN or UPC codes of over 3.000.000 food- or non-food-products and simply tells you if it they're vegan or not.
https://github.com/frontendnetwork/veganify
Category: Consumption
Sub Category: Agriculture and Nutrition
Keywords
barcode barcode-scanner html5 javascript nextjs nodejs nutriscore nutrition nutrition-information nutrition-services openbeautyfacts openfoodfacts progressive-web-app pwa react scanner vegan vegan-dishes vegan-ingredients
Keywords from Contributors
homepage documentation-website md whatwg climate-change climate
Last synced: about 14 hours ago
JSON representation
Repository metadata
Veganify is a modern webapp that allows you to easily scan EAN barcodes to check if a product is vegan-friendly. With a database of over 3 million products, you can quickly find out if your favorite foods and products are suitable for a vegan diet.
- Host: GitHub
- URL: https://github.com/frontendnetwork/veganify
- Owner: frontendnetwork
- License: mit
- Created: 2021-08-21T11:39:20.000Z (about 5 years ago)
- Default Branch: staging
- Last Pushed: 2026-11-04T10:35:26.000Z (7 days ago)
- Last Synced: 2026-11-10T14:03:31.677Z (about 14 hours ago)
- Topics: barcode, barcode-scanner, html5, javascript, nextjs, nodejs, nutriscore, nutrition, nutrition-information, nutrition-services, openbeautyfacts, openfoodfacts, progressive-web-app, pwa, react, scanner, vegan, vegan-dishes, vegan-ingredients
- Language: TypeScript
- Homepage: https://veganify.app
- Size: 112 MB
- Stars: 69
- Watchers: 2
- Forks: 9
- Open Issues: 4
- Releases: 37
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Agents: AGENTS.md
- Claude: CLAUDE.md
README.md
Veganify
Check if a product is vegan or not with » Veganify.app
Overview
Veganify checks the barcode (EAN or UPC) of a food- or non-food-product and tells you if it is vegan or not. It is an useful tool for vegans and vegetarians - Developed with usability and simplicity in mind, so without distracting irrelevant facts or advertising.
Veganify combines the Databases of OpenFoodFacts, OpenBeautyFacts and Open EAN Database, as well as our very own ingredient checker in one tool.
The Veganify Ingredients API checks the products ingredients against a list of thousands of non-vegan items.
Developer Guide
[!TIP]
We're using Conventional Commits for commit messages. Please follow this convention when making changes.
Prerequisites
- Bun 1.4 or later (package manager, test runner and runtime)
Getting Started
-
Clone the repository:
git clone https://github.com/frontendnetwork/veganify.git cd veganify -
Install dependencies & start dev server:
bun install bun run dev
Project Structure
src/
├── app/[locale]/ # App Router pages (i18n-routed)
├── app/globals.css # Tailwind v4 theme tokens (light / dark / OLED)
├── components/ # React components
│ ├── ui/ # Design system primitives (button, dialog, switch…)
│ ├── shared/ # Shared components across app
│ └── ComponentName/ # Feature components
│ ├── hooks/ # Component-specific hooks
│ ├── utils/ # Component-specific utilities (+ tests)
│ ├── models/ # Component-specific types/interfaces
│ └── index.tsx # Main component file
├── lib/ # Shared libs (contexts, springs, utilities)
├── models/ # Global type definitions
├── i18n/ # next-intl routing configuration
├── locales/ # Translation files
└── tests/ # Test setup & Playwright E2E tests
Development Commands
# Start development server (Turbopack)
bun run dev
# Lint + type-check + unit tests in parallel
bun run check
# Run linting (Biome)
bun run lint
# Run type checking
bun run type-check
# Run unit tests
bun run test
# Run end-to-end tests
bun run test:e2e
# Build for production
bun run build
# Start production server (port 1030)
bun run start
# Start staging server (port 1031)
bun run stage
Development Guidelines
[!NOTE]
We're aware not everything in this repo follows those standards. This is because of how the project was started and evolved. We're working on improving this.
Component Structure
- Break down components into smaller, reusable pieces
- Each significant component should have its own directory with the following structure:
hooks/for component-specific hooksutils/for component-specific utilitiesmodels/for component-specific types
- Small, simple components can be single files
Testing
- All utility functions must have 100% test coverage
- Unit tests are written using the Bun test runner
- Components currently don't require test coverage
- Playwright is used for end-to-end testing but currently only covers a few basic use cases. More tests are needed.
TypeScript
- TypeScript is mandatory
- The
anytype is not acceptable unless absolutely necessary - Always define proper interfaces and types in the appropriate
modelsfolder - Use type inference when possible
Internationalization
- Use
next-intlfor translations - Add new translations to all language files in
/locales - Follow the existing translation key structure
Code Style
- Follow Node.js, React, and Next.js best practices
- Use the App Router pattern for routing
- Keep components pure and functional when possible
- Use hooks for state management and side effects
- Follow the DRY (Don't Repeat Yourself) principle
- Use meaningful variable and function names
- Write comments for complex logic
- Keep functions small and focused
Styling
- Use Tailwind CSS v4 utilities exclusively; no SCSS, no component-level CSS files
- Theme via the semantic oklch tokens in
src/app/globals.css(light / dark / OLED) - Shared patterns and design-system primitives live in
src/components/ui/
When making a contribution, please follow these guidelines to ensure consistency and maintainability.
Remember that every contribution, no matter how small, is valuable to the project. Thank you for helping make Veganify better!
Support
Please refer to our issue trackers to see where you could help:
or if you find something else you could improve, just open a new issue for it!
Support us
Premium Supporters
Dependencies & Credits
This repo uses:
License
All text and code in this repository is licensed under MIT, © 2024 Philip Brembeck, © 2024 FrontEndNetwork.
Owner metadata
- Name: FrontEndNet.Work Open Web
- Login: frontendnetwork
- Email: contribute@frontendnet.work
- Kind: organization
- Description: We're a young team of webdesigners and web-developers and we're offering (ads-)free tools and apps as well as open source projects.
- Website: https://frontendnet.work
- Location: Germany
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/88216012?v=4
- Repositories: 10
- Last ynced at: 2026-11-07T12:33:59.353Z
- Profile URL: https://github.com/frontendnetwork
GitHub Events
Total
- Create event: 183
- Delete event: 179
- Fork event: 2
- Gollum event: 1
- Issue comment event: 660
- Issues event: 3
- Pull request event: 376
- Pull request review comment event: 86
- Pull request review event: 174
- Push event: 141
- Release event: 2
- Watch event: 19
Last Year
- Create event: 34
- Delete event: 43
- Issue comment event: 46
- Pull request event: 68
- Pull request review comment event: 8
- Pull request review event: 11
- Push event: 43
- Release event: 1
- Watch event: 1
Committers metadata
Last synced: 1 day ago
Total Commits: 1,551
Total Committers: 19
Avg Commits per committer: 81.632
Development Distribution Score (DDS): 0.272
Commits in past year: 151
Committers in past year: 5
Avg Commits per committer in past year: 30.2
Development Distribution Score (DDS) in past year: 0.351
| Name | Commits | |
|---|---|---|
| Philip | 4****k | 1129 |
| dependabot[bot] | 4****] | 369 |
| Philip | 8****r | 10 |
| ImgBotApp | I****p@g****m | 6 |
| Frank Schneidewind | f****d@m****e | 5 |
| DeepSource Bot | b****t@d****o | 5 |
| snyk-bot | s****t@s****o | 5 |
| Michal Bryxí | m****i@g****m | 3 |
| deepsource-autofix[bot] | 6****] | 3 |
| imgbot[bot] | 3****] | 3 |
| Łukasz Wójcik | 1****k | 3 |
| JokeNetwork Bot | 8****t | 2 |
| felipe-lemos | f****s@p****m | 2 |
| Can Karatepe | c****0@g****m | 1 |
| Nils Jacobsen | n****8@g****m | 1 |
| codefactor-io | s****t@c****o | 1 |
| copilot-swe-agent[bot] | 1****t | 1 |
| philipbrembeck | p****p@b****c | 1 |
| fastrcloud | g****b@c****e | 1 |
Committer domains:
- cldsi.de: 1
- bremb.ec: 1
- codefactor.io: 1
- snyk.io: 1
- deepsource.io: 1
- maibornwolff.de: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 12
Total pull requests: 890
Average time to close issues: 12 months
Average time to close pull requests: 10 days
Total issue authors: 5
Total pull request authors: 4
Average comments per issue: 1.58
Average comments per pull request: 2.98
Merged pull request: 332
Bot issues: 4
Bot pull requests: 830
Past year issues: 0
Past year pull requests: 143
Past year average time to close issues: N/A
Past year average time to close pull requests: 11 days
Past year issue authors: 0
Past year pull request authors: 2
Past year average comments per issue: 0
Past year average comments per pull request: 3.66
Past year merged pull request: 99
Past year bot issues: 0
Past year bot pull requests: 130
Top Issue Authors
- philipbrembeck (5)
- dependabot[bot] (4)
- felipe-lemos (1)
- ahipp13 (1)
- teolemon (1)
Top Pull Request Authors
- dependabot[bot] (830)
- philipbrembeck (56)
- felipe-lemos (2)
- NilsJacobsen (2)
Top Issue Labels
- dependencies (5)
- Javascript (4)
- tasks (2)
- 🌍 Localization (2)
- mid priority (2)
- help wanted (2)
- enhancement (2)
- kind:bug (1)
- low priority (1)
- area:core (1)
- good first issue (1)
- needs priority (1)
- needs-triage (1)
- high priority (1)
Top Pull Request Labels
- dependencies (830)
- Javascript (675)
- github_actions (154)
- released on @rc (81)
- released (60)
- automerge (50)
- 🌍 Localization (1)
Package metadata
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 29
proxy.golang.org: github.com/frontendnetwork/veganify
- Homepage:
- Documentation: https://pkg.go.dev/github.com/frontendnetwork/veganify#section-documentation
- Licenses: mit
- Latest release: v4.1.0+incompatible (published about 2 months ago)
- Last Synced: 2026-11-09T13:33:29.372Z (1 day ago)
- Versions: 29
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.395%
- Average: 5.576%
- Dependent repos count: 5.758%
Dependencies
- barcode-reader ^1.6.1
- jquery ^3.6.0
- pwa-install-prompt ^1.1.1
- actions/checkout v3 composite
- actions/setup-node v3 composite
- base latest build
- node lts-alpine build
- 271 dependencies
- actions/checkout v7.0.1 composite
- azure/setup-kubectl v5.1.0 composite
- docker/build-push-action 53b7df96c91f9c12dcc8a07bcb9ccacbed38856a composite
- docker/login-action dbcb813823bdd20940b903addbd779551569679f composite
- oven-sh/setup-bun v2.2.0 composite
Score: -Infinity