Spraxium logoSpraxium
Banner image for the Spraxium about page

About the project

Built for engineers who care about structure.

Spraxium started as an internal project at Spacelaxy, built out of frustration with how hard it was to keep discord.js bots maintainable as they grew in size and complexity.

It ran in production for over a year before we opened it up. What you see here is that same foundation - cleaned up, documented, and ready for teams beyond our own.

Origin

It started with frustration.

At Spacelaxy, every bot started the same way: a clean discord.js project that slowly turned into a maintenance problem. Commands grew. The interaction listener file got longer. Permission logic lived in three different places, and nobody wanted to touch the onInteractionCreate handler.

Spraxium was the internal answer to that. Not a framework from the start - just structure. Explicit modules, a proper DI container, and guard pipelines that worked the same way across every interaction type.

It ran every Spacelaxy bot in production for over a year before anyone outside the team saw it. In 2025 we cleaned up the API, documented the architecture properly, and published the ecosystem packages we had been running privately.

Most of the design decisions came from hitting real walls. Missing env keys silently crashing the bot at startup. Permission checks duplicated across handlers that got out of sync. One global listener that every new feature had to touch. Each of those problems has a direct counterpart in how Spraxium works today.

@spraxium/env blocks startup before the bot reaches an undefined state. Guard pipelines enforce access rules once, in one place. @spraxium/http runs in the same process and DI graph as your Discord handlers. @spraxium/signal connects external services without shared state or polling.

The project is maintained by the same people who run it in production every day. When something breaks on our end, we fix it - and that fix ends up in the public release.

2024

Started as an internal framework after our discord.js projects became increasingly hard to maintain as they scaled.

2025

Public release with proper documentation, a working CLI, and ecosystem packages covering the gaps we kept running into.

2026

v3 architecture improvements shipped to all Spacelaxy bots in production first, then released publicly.

Mission

Make Discord bots buildable like real software.

Discord bots are backend applications. They run 24/7, handle concurrent events, enforce business logic, and need to stay maintainable as features pile up. Spraxium approaches that seriously - with modules, DI, guards, and a lifecycle that holds up from command one to command two hundred.

Structure by default

Modules, providers, and handlers are always explicit. Nothing registers itself silently. You always know what is in the DI graph and where it came from.

TypeScript native

Every decorator, guard contract, and injection token is built around TypeScript. The framework never hands you back an any to deal with.

Lean core

The core runtime ships small on purpose. Every ecosystem package is opt-in. You only add what your project actually needs, nothing more.

Open by design

The framework, CLI, tooling, and docs are all open source. You have full visibility into what runs in your bot and you own what you build.

Future

Where we're taking it.

The framework is stable enough to build on today. The next cycles are focused on filling in the gaps - better testing support, more complete CLI scaffolding, and better visibility into what is running in production deployments.

2026 H1

Public API surface stabilization across all packages. Close the remaining CLI ergonomics gaps and ship module scaffolding that teams actually want to reach for.

2026 H2

Testing utilities designed for the framework's patterns: guard isolation, DI wiring, and handler testing without needing a live bot connection.

2027

Observability and operational packages that give real visibility into what your bot is doing, without tying your architecture to any specific platform.

Long term

Keep the project honest: major decisions happen in public, the roadmap is shaped by real usage, and it is maintained by the people who depend on it in production.

Open source

Free to use. Built to last.

Spraxium is licensed under Apache 2.0. Use it however you like - personal bots, internal tools, commercial platforms. There is no catch. If it genuinely saves your team time, consider supporting the project so we can keep maintenance, documentation, and releases moving at a solid pace.

Apache 2.0

Donations go toward maintenance time, documentation work, and keeping the ecosystem's release cadence up across all public packages.

Commercial use
Modify freely
Distribute copies
Private use