Back to blog

Seyfert v2.0.0: Zero Dependencies, Maximum Power

We rebuilt the foundation from scratch. No dependencies. No compromises. Just pure performance.

August 23, 2024

The Liberation

Today marks a turning point for Seyfert. After months of meticulous engineering, we're thrilled to announce Seyfert v2.0.0 — a release that fundamentally changes what a Discord library can be.

The headline? Zero external dependencies. That's right. We've built our own WebSocket client from scratch, optimized specifically for Discord's gateway. No more dependency bloat. No more security vulnerabilities from packages you've never heard of. Just Seyfert, lean and mean.

What This Means for You

Blazing Fast Cold Starts

Without a dependency tree to resolve, your bot starts faster. This is especially critical for serverless deployments and edge computing scenarios.

Complete Control

Every line of code that touches your bot is now maintained by us. When something breaks, we fix it. When Discord changes something, we adapt immediately.

Smaller Bundle Size

Less code means faster installations, smaller Docker images, and happier CI/CD pipelines.


New Features That Will Change How You Build Bots

HandleCommand: Your Commands, Your Rules

Ever wanted to customize how Seyfert processes commands? Now you can. The new HandleCommand class lets you override the entire command handling pipeline.

import { HandleCommand } from 'seyfert'

client.setServices({ 
  handleCommand: class extends HandleCommand { 
    argsParser = yourCustomParser() 
  } 
})

Building a Seyfert plugin? This is your entry point. Every structure in Seyfert is now modifiable, giving plugin authors unprecedented flexibility.

Transformers: Reshape Discord Data

What if you could intercept every Discord object before it reaches your code? With Transformers, you can. Transform, extend, or completely replace any Discord structure.

import { Transformers, Poll } from 'seyfert';

const storage = new Map();

class TrackedPoll extends Poll {
  track() {
    return storage.set(this.id, this);
  }
}

Transformers.Poll = (...args: ConstructorParameters<typeof TrackedPoll>) => 
  new TrackedPoll(...args);

declare module 'seyfert' {
  interface CustomStructures {
    Poll: TrackedPoll;
  }
}

Now every poll in your bot automatically has a track() method. The possibilities are endless.

Full Discord API Coverage

We've caught up with Discord's latest features:

  • Monetization API — Build premium features into your bot
  • Polls — Create interactive polls with our intuitive builders
  • Application Emojis — Custom emojis for your bot's personality
  • Voice State Management — Full control over voice connections
  • Role Fetching — Direct role access without cache workarounds

Breaking Changes (Worth It)

We've cleaned house to make Seyfert more intuitive:

  • disabledCaches is now an object for granular control
  • Fixed several cache-related bugs that were causing event inconsistencies
  • Permission bit resolution now works correctly in all edge cases

Upgrade Today

pnpm install [email protected]

This release represents hundreds of hours of work, countless cups of coffee, and an obsessive attention to detail. We can't wait to see what you build with it.

Welcome to the future of Discord bot development. Welcome to Seyfert v2.