PHPackages                             crumbls/astrology - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. crumbls/astrology

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

crumbls/astrology
=================

Internal Laravel package: natal chart engine (tropical + Vedic) with interactive D3 renderer, built on Swiss Ephemeris.

v0.1.0(1mo ago)00MITPHPPHP ^8.3

Since May 4Pushed 3w agoCompare

[ Source](https://github.com/Crumbls/Astrology)[ Packagist](https://packagist.org/packages/crumbls/astrology)[ RSS](/packages/crumbls-astrology/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

crumbls/astrology
=================

[](#crumblsastrology)

Internal Laravel package: natal chart engine (tropical Western + sidereal Vedic) with an interactive D3 chart renderer. Built on Swiss Ephemeris via [jayeshmepani/swiss-ephemeris-ffi](https://github.com/jayeshmepani/Swiss-Ephemeris-PHP). Verified against Cafe Astrology and `swetest` to the arcsecond.

Install
-------

[](#install)

```
composer require crumbls/astrology
php artisan swisseph:install
```

`swisseph:install` downloads the three required `.se1` data files and builds the `swetest` binary (macOS or Linux). It's idempotent — re-running with no `--force` only fetches what's missing.

Then enable PHP FFI in your environment:

- **Herd / Valet**: open Herd → PHP → INI tab → add `ffi.enable=true` → save (auto-restarts FPM).
- **CLI works without changes** (CLI defaults to `ffi.enable=preload` which still permits FFI from CLI).

Usage
-----

[](#usage)

```
use Crumbls\Astrology\Services\NatalChartService;

$svc = app(NatalChartService::class);
$birth = new DateTimeImmutable('1984-04-19 05:00:00', new DateTimeZone('UTC'));

$chart = $svc->chart($birth, latitude: 38.31667, longitude: -107.78333);
// Returns: birth, mode, ayanamsa, ascendant, midheaven, vertex,
//          part_of_fortune, planets, houses, placidus_cusps, aspects.
```

For a Vedic chart (with nakshatras, padas, Vimshottari dashas):

```
$chart = $svc->chart($birth, 38.31667, -107.78333, NatalChartService::MODE_SIDEREAL);
```

Demo page
---------

[](#demo-page)

Visit `/astro/chart` for an interactive D3 chart wheel with hover tooltips, aspect line highlighting, and a form to compute new charts. Disable with `ASTROLOGY_DEMO_ROUTE=false`.

CLI
---

[](#cli)

```
php artisan astro:chart "1984-04-19 05:00:00" --lat=38.31667 --lng=-107.78333 --tz=UTC
php artisan astro:chart "1990-05-15 14:30:00" --lat=40.7128 --lng=-74.0060 --json
```

Caching
-------

[](#caching)

Chart results are cached via `Cache::rememberForever()` keyed on `(UTC timestamp, lat, lng, mode)`. First call ~2ms; subsequent reads ~0.2ms. Use `ASTROLOGY_CACHE_STORE=redis` (or any cache store name) to override the default store.

Roadmap
-------

[](#roadmap)

- `SynastryService` — cross-aspects between two charts
- `CompositeService` — midpoint composite charts
- `AshtakootaService` — Vedic Guna Milan (36-point matrimonial compatibility)
- Pluggable interpretation-content store

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance94

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

36d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3020753?v=4)[Chase C. Miller](/maintainers/chasecmiller)[@chasecmiller](https://github.com/chasecmiller)

---

Top Contributors

[![chasecmiller](https://avatars.githubusercontent.com/u/3020753?v=4)](https://github.com/chasecmiller "chasecmiller (1 commits)")

###  Code Quality

TestsPest

Static AnalysisRector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/crumbls-astrology/health.svg)

```
[![Health](https://phpackages.com/badges/crumbls-astrology/health.svg)](https://phpackages.com/packages/crumbls-astrology)
```

###  Alternatives

[markwalet/nova-modal-response

A Laravel Nova asset for Modal responses on an action.

17818.7k](/packages/markwalet-nova-modal-response)[crumbls/layup

A visual page builder plugin for Filament 5 — Divi-style grid layouts with extensible widgets.

591.7k1](/packages/crumbls-layup)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.2k](/packages/tomshaw-electricgrid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
