Skip to content

Instantly share code, notes, and snippets.

View LordGhostX's full-sized avatar

LordGhostX LordGhostX

View GitHub Profile

Convoy vs. Hookdeck vs. Svix: Picking the Right Webhook Infrastructure

Most webhook systems start small: a POST /webhooks route, signature verification, a database write, and a retry loop. That is usually enough until traffic stops being polite. A Paystack event arrives twice. A Flutterwave notification fails while your API is down. A customer endpoint times out for a full day. Support asks for the delivery history, and all you have is an application log line.

At that point, the problem is not accepting HTTP. It is operating unreliable event traffic: retries, queues, replay, endpoint health, signing, routing, observability, and customer experience.

Convoy, Hookdeck, and Svix all help with webhooks, but they sit in different parts of the event path. Convoy fits teams that want a gateway they can run and control. Hookdeck fits teams that need to receive, route, inspect, and replay inbound events before they reach the app. Svix fits products that need to send webhooks to customers.

| Product | When it fi

@LordGhostX
LordGhostX / build-and-deploy-pinocchio.md
Last active September 17, 2026 14:57
How to Build and Deploy a Solana Program Using Pinocchio

How to Build and Deploy a Solana Program Using Pinocchio

Pinocchio is a lightweight library for building Solana programs in Rust with a focus on performance. It replaces the solana-program crate with a zero-dependency, no_std alternative that gives you full control over how your program runs.

Pinocchio is not a framework like Anchor. It doesn't generate boilerplate or add high-level abstractions. Instead, it's designed for developers who want fine-grained control and care about writing efficient, low-level programs.

Why Use Pinocchio?

  • No external dependencies
  • Works without the standard library or memory allocator
@LordGhostX
LordGhostX / validate_email.py
Last active August 13, 2023 17:09
RegEX to validate email
# validate email addresses
def validate_email(email):
pattern = r"(^(?!-|\.)([a-zA-Z0-9._%+-]+)@(?!-)[a-zA-Z0-9.-]+(?<=[a-zA-Z0-9])\.[a-zA-Z]{2,}$)"
if re.match(pattern, email):
return True
else:
return False
if __name__ == "__main__":
import matplotlib.pyplot as plt
def spot_formula(x, y=100):
return (1 + (x / 100)) * y
def usdt_m_formula(x, y=100):
return (1 + (x / 50)) * y
def coin_m_formula(x, y=100):
return ((1 + (x / 100)) ** 2) * y
@LordGhostX
LordGhostX / blockchain.go
Last active March 27, 2024 20:34
Blockchain POC with Golang
package main
import (
"crypto/sha256"
"encoding/json"
"fmt"
"strconv"
"strings"
"time"
)
import json
import requests
from bs4 import BeautifulSoup
def fetch_coingecko_html():
# make a request to the target website
r = requests.get("https://www.coingecko.com")
if r.status_code == 200:
# if the request is successful return the HTML content
@LordGhostX
LordGhostX / main.go
Created October 12, 2021 01:31
Solana Wallet with Go
package main
import (
"context"
"fmt"
"github.com/portto/solana-go-sdk/client"
"github.com/portto/solana-go-sdk/client/rpc"
"github.com/portto/solana-go-sdk/common"
"github.com/portto/solana-go-sdk/program/sysprog"
"github.com/portto/solana-go-sdk/types"
package sequences
import (
"errors"
"math"
)
func calcNextSequence(a, b, c float64, n int, apSeq bool) (float64, error) {
if apSeq {
if c - b != b - a {
@LordGhostX
LordGhostX / loginradius_flask_demo.py
Last active May 29, 2022 08:15
Shows how LoginRadius services can be integrated into a Flask application
from flask import *
from LoginRadius import LoginRadius as LR
app = Flask(__name__)
app.config["SECRET_KEY"] = "SECRET_KEY"
LR_AUTH_PAGE = "https://<APP_NAME>.hub.loginradius.com/auth.aspx?action={}&return_url={}"
LR.API_KEY = "LR_API_KEY"
LR.API_SECRET = "LR_API_SECRET"
loginradius = LR()
@LordGhostX
LordGhostX / flask_restful_demo.py
Created June 7, 2021 13:16
Todo Demo for Flask RESTful
from flask import Flask
from flask_restful import Api, Resource, reqparse, fields, marshal_with, abort
app = Flask(__name__)
api = Api(app)
TODOS = {}
parser = reqparse.RequestParser()
parser.add_argument(
"task",