{"adoption": {"forks": 2686, "observed_at": "2026-08-28T04:10:39.291066+00:00", "stars": 10027}, "canonical_url": "https://ross.abutalabs.com/products/invoice-ninja", "card": {"archived": false, "artifact_type": "application", "description": "A source-available invoice, quote, project and time-tracking app built with Laravel", "domain": ["fintech", "developer-tools", "e-commerce", "self-hosted", "cross-platform"], "enriched": true, "function": ["pdf", "api-framework", "self-hosted"], "health_score": 100, "homepage": "https://invoiceninja.com", "language": "PHP", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["invoiceninja/invoiceninja", "invoiceninja/admin-portal"], "name": "Invoice Ninja", "platform": ["php", "self-hosted", "windows", "cross-platform"], "pushed_at": "2026-08-25T22:55:14+00:00", "repo": "invoiceninja/invoiceninja", "stars": 10027, "tags": ["invoicing", "quotes", "expenses", "kanban", "e-invoicing", "peppol", "laravel", "flutter", "client-portal", "payment-gateways", "freelancers", "small-business", "billing", "time-tracking", "payments", "web-server", "android", "ios", "macos", "linux", "docker"], "topics": ["php", "expenses", "javascript", "invoices", "tasks", "laravel", "payments", "time-tracker", "kanban", "invoice", "flutter", "hacktoberfest", "invoiceninja", "einvoicing", "projects", "quotes"], "urls": [{"kind": "homepage", "url": "https://invoiceninja.com"}, {"kind": "site_page", "url": "https://invoiceninja.com/pricing-plans"}, {"kind": "site_page", "url": "https://invoiceninja.com/automations"}, {"kind": "site_page", "url": "https://invoiceninja.com/our-story"}, {"kind": "site_page", "url": "https://invoiceninja.com/features"}], "use_cases": ["create and send invoices to clients", "accept online payments via stripe or paypal", "track billable time and convert tasks to invoices", "manage recurring invoices and auto-billing", "send quotes and proposals with e-signature approval", "track expenses and import bank transactions", "self-host an invoicing app for my business", "give clients a branded portal to view and pay invoices"], "what_it_is": "Invoice Ninja is a source-available invoicing application for freelancers and small businesses, covering invoices, quotes, expenses, projects, time tracking, and online payments. It is built with Laravel and Flutter, and can be used as a hosted SaaS or self-hosted with full control over the server.", "when_to_avoid": ["you need a fully open-source (OSI-approved) license - the code is source-available with restrictions", "you only need simple one-off invoices without projects or payments", "you want to remove branding without paying for a white-label license", "you need deep accounting features like double-entry bookkeeping - use dedicated accounting software"], "when_to_choose": ["you are a freelancer or small business needing invoicing, quotes, and payments in one tool", "you want a self-hosted alternative to commercial invoicing SaaS", "you need time tracking, projects, and expense management alongside invoicing", "you require multi-currency, multi-language invoicing with customizable templates", "you want e-invoicing and PEPPOL network access"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/invoiceninja/invoiceninja", "repo": "invoiceninja/invoiceninja", "role": "main", "score": 95}, {"path": "/repos/invoiceninja/admin-portal", "repo": "invoiceninja/admin-portal", "role": "frontend", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:19:55.301911+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aec2031883ec4fdb5f369a04bd584480b987e03344b3382204ef20ea6864f355", "fetched_at": "2026-08-28T04:10:39.291066+00:00", "kind": "readme", "missing": false, "url": "https://github.com/invoiceninja/invoiceninja"}, {"content_hash": "59fcc9aa7b08a5b7ecfa51f758e156ceb13b0a8e9bb55b0e61139a58ef4b923a", "fetched_at": "2026-08-29T08:19:49.049306+00:00", "kind": "homepage", "missing": false, "url": "https://invoiceninja.com"}, {"content_hash": "cc9d15e8ed5adaf45c6d19f2cc6f0b7e44a30281f1896bf50b5e79c519fc6f49", "fetched_at": "2026-08-29T08:19:49.058602+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/features"}, {"content_hash": "c5b8f6279393728a244701f7fbfd8848559ca530925f3a46cf9b5e6a830ee4fe", "fetched_at": "2026-08-29T08:19:49.060533+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/pricing-plans"}, {"content_hash": "b6d422db7a672452fa930663e460310f7417ef25a0cdcca7814ad9fca492f77c", "fetched_at": "2026-08-29T08:19:49.062500+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/automations"}, {"content_hash": "f4a61538b8242c7bbb1753faadd1b3ec97b4c57148078e84d8ac2ac6016c2b7e", "fetched_at": "2026-08-29T08:19:49.064307+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/our-story"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:19:55.301911+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aec2031883ec4fdb5f369a04bd584480b987e03344b3382204ef20ea6864f355", "fetched_at": "2026-08-28T04:10:39.291066+00:00", "kind": "readme", "missing": false, "url": "https://github.com/invoiceninja/invoiceninja"}, {"content_hash": "59fcc9aa7b08a5b7ecfa51f758e156ceb13b0a8e9bb55b0e61139a58ef4b923a", "fetched_at": "2026-08-29T08:19:49.049306+00:00", "kind": "homepage", "missing": false, "url": "https://invoiceninja.com"}, {"content_hash": "cc9d15e8ed5adaf45c6d19f2cc6f0b7e44a30281f1896bf50b5e79c519fc6f49", "fetched_at": "2026-08-29T08:19:49.058602+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/features"}, {"content_hash": "c5b8f6279393728a244701f7fbfd8848559ca530925f3a46cf9b5e6a830ee4fe", "fetched_at": "2026-08-29T08:19:49.060533+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/pricing-plans"}, {"content_hash": "b6d422db7a672452fa930663e460310f7417ef25a0cdcca7814ad9fca492f77c", "fetched_at": "2026-08-29T08:19:49.062500+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/automations"}, {"content_hash": "f4a61538b8242c7bbb1753faadd1b3ec97b4c57148078e84d8ac2ac6016c2b7e", "fetched_at": "2026-08-29T08:19:49.064307+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/our-story"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:19:55.301911+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aec2031883ec4fdb5f369a04bd584480b987e03344b3382204ef20ea6864f355", "fetched_at": "2026-08-28T04:10:39.291066+00:00", "kind": "readme", "missing": false, "url": "https://github.com/invoiceninja/invoiceninja"}, {"content_hash": "59fcc9aa7b08a5b7ecfa51f758e156ceb13b0a8e9bb55b0e61139a58ef4b923a", "fetched_at": "2026-08-29T08:19:49.049306+00:00", "kind": "homepage", "missing": false, "url": "https://invoiceninja.com"}, {"content_hash": "cc9d15e8ed5adaf45c6d19f2cc6f0b7e44a30281f1896bf50b5e79c519fc6f49", "fetched_at": "2026-08-29T08:19:49.058602+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/features"}, {"content_hash": "c5b8f6279393728a244701f7fbfd8848559ca530925f3a46cf9b5e6a830ee4fe", "fetched_at": "2026-08-29T08:19:49.060533+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/pricing-plans"}, {"content_hash": "b6d422db7a672452fa930663e460310f7417ef25a0cdcca7814ad9fca492f77c", "fetched_at": "2026-08-29T08:19:49.062500+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/automations"}, {"content_hash": "f4a61538b8242c7bbb1753faadd1b3ec97b4c57148078e84d8ac2ac6016c2b7e", "fetched_at": "2026-08-29T08:19:49.064307+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/our-story"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:19:55.301911+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aec2031883ec4fdb5f369a04bd584480b987e03344b3382204ef20ea6864f355", "fetched_at": "2026-08-28T04:10:39.291066+00:00", "kind": "readme", "missing": false, "url": "https://github.com/invoiceninja/invoiceninja"}, {"content_hash": "59fcc9aa7b08a5b7ecfa51f758e156ceb13b0a8e9bb55b0e61139a58ef4b923a", "fetched_at": "2026-08-29T08:19:49.049306+00:00", "kind": "homepage", "missing": false, "url": "https://invoiceninja.com"}, {"content_hash": "cc9d15e8ed5adaf45c6d19f2cc6f0b7e44a30281f1896bf50b5e79c519fc6f49", "fetched_at": "2026-08-29T08:19:49.058602+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/features"}, {"content_hash": "c5b8f6279393728a244701f7fbfd8848559ca530925f3a46cf9b5e6a830ee4fe", "fetched_at": "2026-08-29T08:19:49.060533+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/pricing-plans"}, {"content_hash": "b6d422db7a672452fa930663e460310f7417ef25a0cdcca7814ad9fca492f77c", "fetched_at": "2026-08-29T08:19:49.062500+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/automations"}, {"content_hash": "f4a61538b8242c7bbb1753faadd1b3ec97b4c57148078e84d8ac2ac6016c2b7e", "fetched_at": "2026-08-29T08:19:49.064307+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/our-story"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:19:55.301911+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aec2031883ec4fdb5f369a04bd584480b987e03344b3382204ef20ea6864f355", "fetched_at": "2026-08-28T04:10:39.291066+00:00", "kind": "readme", "missing": false, "url": "https://github.com/invoiceninja/invoiceninja"}, {"content_hash": "59fcc9aa7b08a5b7ecfa51f758e156ceb13b0a8e9bb55b0e61139a58ef4b923a", "fetched_at": "2026-08-29T08:19:49.049306+00:00", "kind": "homepage", "missing": false, "url": "https://invoiceninja.com"}, {"content_hash": "cc9d15e8ed5adaf45c6d19f2cc6f0b7e44a30281f1896bf50b5e79c519fc6f49", "fetched_at": "2026-08-29T08:19:49.058602+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/features"}, {"content_hash": "c5b8f6279393728a244701f7fbfd8848559ca530925f3a46cf9b5e6a830ee4fe", "fetched_at": "2026-08-29T08:19:49.060533+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/pricing-plans"}, {"content_hash": "b6d422db7a672452fa930663e460310f7417ef25a0cdcca7814ad9fca492f77c", "fetched_at": "2026-08-29T08:19:49.062500+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/automations"}, {"content_hash": "f4a61538b8242c7bbb1753faadd1b3ec97b4c57148078e84d8ac2ac6016c2b7e", "fetched_at": "2026-08-29T08:19:49.064307+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/our-story"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:19:55.301911+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aec2031883ec4fdb5f369a04bd584480b987e03344b3382204ef20ea6864f355", "fetched_at": "2026-08-28T04:10:39.291066+00:00", "kind": "readme", "missing": false, "url": "https://github.com/invoiceninja/invoiceninja"}, {"content_hash": "59fcc9aa7b08a5b7ecfa51f758e156ceb13b0a8e9bb55b0e61139a58ef4b923a", "fetched_at": "2026-08-29T08:19:49.049306+00:00", "kind": "homepage", "missing": false, "url": "https://invoiceninja.com"}, {"content_hash": "cc9d15e8ed5adaf45c6d19f2cc6f0b7e44a30281f1896bf50b5e79c519fc6f49", "fetched_at": "2026-08-29T08:19:49.058602+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/features"}, {"content_hash": "c5b8f6279393728a244701f7fbfd8848559ca530925f3a46cf9b5e6a830ee4fe", "fetched_at": "2026-08-29T08:19:49.060533+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/pricing-plans"}, {"content_hash": "b6d422db7a672452fa930663e460310f7417ef25a0cdcca7814ad9fca492f77c", "fetched_at": "2026-08-29T08:19:49.062500+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/automations"}, {"content_hash": "f4a61538b8242c7bbb1753faadd1b3ec97b4c57148078e84d8ac2ac6016c2b7e", "fetched_at": "2026-08-29T08:19:49.064307+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/our-story"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:39.291066+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:19:55.301911+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aec2031883ec4fdb5f369a04bd584480b987e03344b3382204ef20ea6864f355", "fetched_at": "2026-08-28T04:10:39.291066+00:00", "kind": "readme", "missing": false, "url": "https://github.com/invoiceninja/invoiceninja"}, {"content_hash": "59fcc9aa7b08a5b7ecfa51f758e156ceb13b0a8e9bb55b0e61139a58ef4b923a", "fetched_at": "2026-08-29T08:19:49.049306+00:00", "kind": "homepage", "missing": false, "url": "https://invoiceninja.com"}, {"content_hash": "cc9d15e8ed5adaf45c6d19f2cc6f0b7e44a30281f1896bf50b5e79c519fc6f49", "fetched_at": "2026-08-29T08:19:49.058602+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/features"}, {"content_hash": "c5b8f6279393728a244701f7fbfd8848559ca530925f3a46cf9b5e6a830ee4fe", "fetched_at": "2026-08-29T08:19:49.060533+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/pricing-plans"}, {"content_hash": "b6d422db7a672452fa930663e460310f7417ef25a0cdcca7814ad9fca492f77c", "fetched_at": "2026-08-29T08:19:49.062500+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/automations"}, {"content_hash": "f4a61538b8242c7bbb1753faadd1b3ec97b4c57148078e84d8ac2ac6016c2b7e", "fetched_at": "2026-08-29T08:19:49.064307+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/our-story"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:19:55.301911+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aec2031883ec4fdb5f369a04bd584480b987e03344b3382204ef20ea6864f355", "fetched_at": "2026-08-28T04:10:39.291066+00:00", "kind": "readme", "missing": false, "url": "https://github.com/invoiceninja/invoiceninja"}, {"content_hash": "59fcc9aa7b08a5b7ecfa51f758e156ceb13b0a8e9bb55b0e61139a58ef4b923a", "fetched_at": "2026-08-29T08:19:49.049306+00:00", "kind": "homepage", "missing": false, "url": "https://invoiceninja.com"}, {"content_hash": "cc9d15e8ed5adaf45c6d19f2cc6f0b7e44a30281f1896bf50b5e79c519fc6f49", "fetched_at": "2026-08-29T08:19:49.058602+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/features"}, {"content_hash": "c5b8f6279393728a244701f7fbfd8848559ca530925f3a46cf9b5e6a830ee4fe", "fetched_at": "2026-08-29T08:19:49.060533+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/pricing-plans"}, {"content_hash": "b6d422db7a672452fa930663e460310f7417ef25a0cdcca7814ad9fca492f77c", "fetched_at": "2026-08-29T08:19:49.062500+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/automations"}, {"content_hash": "f4a61538b8242c7bbb1753faadd1b3ec97b4c57148078e84d8ac2ac6016c2b7e", "fetched_at": "2026-08-29T08:19:49.064307+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/our-story"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:19:55.301911+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aec2031883ec4fdb5f369a04bd584480b987e03344b3382204ef20ea6864f355", "fetched_at": "2026-08-28T04:10:39.291066+00:00", "kind": "readme", "missing": false, "url": "https://github.com/invoiceninja/invoiceninja"}, {"content_hash": "59fcc9aa7b08a5b7ecfa51f758e156ceb13b0a8e9bb55b0e61139a58ef4b923a", "fetched_at": "2026-08-29T08:19:49.049306+00:00", "kind": "homepage", "missing": false, "url": "https://invoiceninja.com"}, {"content_hash": "cc9d15e8ed5adaf45c6d19f2cc6f0b7e44a30281f1896bf50b5e79c519fc6f49", "fetched_at": "2026-08-29T08:19:49.058602+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/features"}, {"content_hash": "c5b8f6279393728a244701f7fbfd8848559ca530925f3a46cf9b5e6a830ee4fe", "fetched_at": "2026-08-29T08:19:49.060533+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/pricing-plans"}, {"content_hash": "b6d422db7a672452fa930663e460310f7417ef25a0cdcca7814ad9fca492f77c", "fetched_at": "2026-08-29T08:19:49.062500+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/automations"}, {"content_hash": "f4a61538b8242c7bbb1753faadd1b3ec97b4c57148078e84d8ac2ac6016c2b7e", "fetched_at": "2026-08-29T08:19:49.064307+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/our-story"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:19:55.301911+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aec2031883ec4fdb5f369a04bd584480b987e03344b3382204ef20ea6864f355", "fetched_at": "2026-08-28T04:10:39.291066+00:00", "kind": "readme", "missing": false, "url": "https://github.com/invoiceninja/invoiceninja"}, {"content_hash": "59fcc9aa7b08a5b7ecfa51f758e156ceb13b0a8e9bb55b0e61139a58ef4b923a", "fetched_at": "2026-08-29T08:19:49.049306+00:00", "kind": "homepage", "missing": false, "url": "https://invoiceninja.com"}, {"content_hash": "cc9d15e8ed5adaf45c6d19f2cc6f0b7e44a30281f1896bf50b5e79c519fc6f49", "fetched_at": "2026-08-29T08:19:49.058602+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/features"}, {"content_hash": "c5b8f6279393728a244701f7fbfd8848559ca530925f3a46cf9b5e6a830ee4fe", "fetched_at": "2026-08-29T08:19:49.060533+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/pricing-plans"}, {"content_hash": "b6d422db7a672452fa930663e460310f7417ef25a0cdcca7814ad9fca492f77c", "fetched_at": "2026-08-29T08:19:49.062500+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/automations"}, {"content_hash": "f4a61538b8242c7bbb1753faadd1b3ec97b4c57148078e84d8ac2ac6016c2b7e", "fetched_at": "2026-08-29T08:19:49.064307+00:00", "kind": "site_page", "missing": false, "url": "https://invoiceninja.com/our-story"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4663, "days_push": 8, "days_rel": 8, "gap_med": 1.0, "n_releases_24m": 223}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}