Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Wallet Bundle Laravel Package

mkurc1/wallet-bundle

A Symfony bundle for integrating virtual wallets into your application. It provides balance tracking, credit and debit operations, and transaction history through reusable entities and services, making it easy to add account funding, ledger, and payment-wallet features.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for wallet/balance capability. This package is a useful reference artifact, not a candidate dependency for a Laravel product. It answers "what does a minimal wallet domain model look like?" — a wallet attached to a user, a balance, and transaction records — which helps you scope an in-house build rather than estimate integration of a third-party library. In practice, adopting it would still mean writing the Laravel implementation yourself.

  • Feature scoping and effort calibration. Reading the source (small codebase, one engineer can absorb it in a day) gives you a grounded estimate for the toy version of the feature — roughly hours to a couple of days of work. That number is useful for MVP experiments and internal tools, and it also makes clear how far it is from a production wallet (3–6 engineer-weeks once you add locking, idempotency, ledger integrity, and reconciliation).

  • Roadmap prioritization: commodity vs. core. If wallet balance is a peripheral convenience (demo credits, internal points, promo balances), it is a commodity and should be built lightweight and in-house. If stored value, payouts, or payments are core to the product, this package is decisively out of scope and the roadmap should carry a funded, first-party ledger initiative with finance and security review gates.

  • Risk register input. Low adoption (7 stars, 0 dependents, composite score 0.155), single maintainer, no SLA, and no evidence of production use are concrete data points for the dependency-risk section of the roadmap and for defining what "production-grade" means for money-adjacent code in your org.

  • Vendor/platform decisions. It confirms the stack-fit calculus: Symfony/Doctrine bundle semantics versus a Laravel/Eloquent application. That is a "no" on runtime dependency and a conditional "yes" on design reference, which is a decision the PM can record and move on from rather than leaving open.

  • Architecture posture for financial data. The package's likely shape (mutable balance column) surfaces the real product question: do we commit to an append-only ledger with derived balances from day one? That is a product-level commitment with cost and auditability implications, not just an engineering preference.

When to Consider This Package

Consider it as reference material when:

  • You need to sanity-check a wallet schema before writing your own Laravel migrations — specifically whether the package models a ledger or a mutable balance column, whether it uses integer minor units or floats, and whether it has any optimistic-lock or version column. Those three answers are worth an hour of source reading.
  • You are prototyping or running an internal tool on Symfony where the requirements are genuinely trivial: one wallet per user, single implicit currency, no concurrency pressure, no regulatory exposure.
  • You need a legally clean starting point — MIT licensing means forking or vendoring portions is permissible, with attribution preserved.
  • You want a low-cost conversation anchor with finance or compliance about why the in-house design differs from a naive one.

Do not consider it when:

  • Your stack is Laravel. This is a Symfony bundle. It ships no service provider, no facade, no publishable config, no Laravel migrations, and it will install via Composer without ever booting. Treat it as source code to read, not a dependency to require.
  • Real money is involved. No vendor, no SLA, no community scrutiny, no evidence of concurrency or idempotency handling, and unknown test coverage are disqualifying for anything that moves funds.
  • You need multi-currency, refunds, holds, payouts, reconciliation, or audit trails. The scope is far below these requirements.
  • You need maintenance guarantees. A single-maintainer repo with zero dependents will not absorb your patches; forking means permanent ownership with no upstream.
  • Composer constraints are stale. Check the PHP and Symfony version ranges before spending any time; if they target EOL versions, the evaluation stops at the read.

In short: consider it as a one-to-two-day spike and a design reference. Reject it as a runtime dependency for a Laravel product.

How to Pitch It (Stakeholders)

For executives: "We evaluated a small, MIT-licensed open-source wallet component. It is built for Symfony, not our Laravel stack, and it has essentially no adoption — seven stars, zero dependent projects, one maintainer, no support path. We cannot drop it in, and even if we could, it provides the demo version of a wallet, not a production one. My recommendation is to record it as a design reference, not a dependency, and to build our own small wallet module if and when the feature is prioritized. If wallet functionality becomes core to the business, we should fund it properly as a first-party ledger initiative with finance and security sign-off — the package saves us days, not weeks."

For engineering: "It is a Symfony bundle with Doctrine entity assumptions. There is no service provider, no config tree we can publish, and no Laravel migrations. Composer will install it and it will never boot — don't burn a day on aliasing. The valuable move is a short, time-boxed source read to extract three things: the data shape (ledger rows versus a single mutable balance column), the money representation (integer minor units versus float — do not inherit float), and whether there is any locking or version column. Then build it natively: a wallets table, a HasWallet trait, and a WalletService that performs every mutation inside a DB::transaction with lockForUpdate(), writes an immutable entry row, and accepts an idempotency key. Use bigInteger minor units, fire domain events from the service, and add a reconciliation job plus alerting on balance drift. That is a few days of work for the basic version and three to six engineer-weeks for something we would let near real money — either way, the code is ours, idiomatic to our stack, and reviewable by the team."

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib