Skip to main content

Define Types. Attach Behavior. Scale Cleanly.

Typeify simplifies how you define and manage type registries in Laravel. Stop scattering type configs and ad-hoc flags across your codebase—define named types once, attach labels, descriptions, import/export flags, and custom options through a single fluent API. One base class, composable traits, and the Laravel container as the single source of truth.

Why Typeify?

One Registry Per Concern

Keep your type definitions normalized and queryable. Each subclass of BaseType is a single registry (e.g. post types, product types). Define types with unique keys, attach parameters via fluent methods, and read them anywhere in the request lifecycle.

Composable Behavior with Traits

  • Labels & Descriptions – Attach translatable label and description per type (HasLabelType, HasDescriptionType).
  • Import / Export – Enable import or export per type with a single flag (HasImportType, HasExportType).
  • Hierarchical & List Options – Mark types as hierarchical or control list UI via HasHierarchicalType and HasListOptionType.
  • Driver Namespaces – Register custom driver classes per type with HasDriverNamespaceType.

Add only the traits you need. Your type classes stay thin and consistent.

Laravel-Native Storage

All type data lives in the Laravel service container under the key returned by typeName(). The same definitions are available in controllers, APIs, admin panels, and CLI—no extra wiring.

What Awaits You?

By adopting Typeify, you will:

  • Reduce development time – Focus on domain types instead of config plumbing
  • Write cleaner code – One registry per concern, fluent API, no scattered type checks
  • Scale your type system – Add traits and new types without breaking existing ones
  • Stay Laravel-native – Service container, trans() for labels/descriptions
  • Empower consistency – Same type definitions everywhere

Ready to Get Started?